사용자 도구

사이트 도구

English

codesysmanual:callfb

펑션블록(FB) 호출

선언한 펑션블록(FB)은 모든 언어에서 호출 할 수 있습니다. FB에는 하나 이상의 입력 및 출력 변수가 있습니다. 인스턴스가 선언 되자마자 POU, 블록의 입력 및 출력 변수 인스턴스도 자동으로 선언됩니다.

LD언어에서 FB호출

LD언어에서는 이렇게 FB를 사용합니다.

ST언어에서 FB호출

이 FB인스턴스는 ST언어에서 이렇게 기술 합니다.

FunctionBlock_Add_0(IN1 := In1, IN2 := In2, Sum => Out1);

FB 인스턴스 호출에서 값이 반환되지 않습니다. 대신 인스턴스 실행 결과는 출력 변수에 저장됩니다. 이러한 변수는 어떤 프로그래밍 언어를 사용하든 관계없이 객체 지향 방식으로 참조됩니다.

위 예제에서 사용된 FunctionBlock_Add_0에 Sum이라는 출력 변수가 있습니다. 그러면 Sum은 다음 구문으로 참조됩니다.

FunctionBlock_Add_0.Sum

이 출력을 다른 변수에 할당 할 수 있습니다.

bVar : = FunctionBlock_Add_0.Sum;

FB가 호출되는 동시에 결과를 가져올 수도 있습니다. 연산자 "=>"를 사용하면 호출에서 괄호 안의 다른 변수에 대해 출력 변수를 할당 할 수 있습니다. (아래 예에서 Sum "=>" Out1 참조)

FunctionBlock_Add_0(IN1 := In1, IN2 := In2, Sum => Out1);

타이머

타이머와 카운터도 펑션블록중 하나입니다. 시스템에서 사전에 정의해 놓은 펑션블록입니다. 타이머는 이렇게 기술합니다.

Three_sec(IN := %IX1.2, PT := T#3s);
%Q2.3 := Three_sec.Q;
CurrentTime := Three_sec.ET;

카운터

카운터는 이렇게 기술합니다.

VAR
    Count_Items : CTU;
END_VAR
    Count_Items(CU := %IX2.0 AND Run,
    RESET := %IX2.1, PV := 4400, Q => %QX4.0, CV => CurrentCount);
END_PROGRAM;

CODESYS

codesysmanual/callfb.txt · 마지막으로 수정됨: 2020/12/13 18:42 저자 Comfile Technology