LD 프로그램
|
ST 프로그램 코드
|
비고
|
|
Y0 := X0 AND X1 OR X2 AND NOT X3;
|
|
다음도 사용 가능:
|
IF X0 AND X1 OR X2 AND NOT X3 THEN
Y0:=TRUE;
ELSE
Y0:=FALSE;
END_IF;
|
동일한 동작이지만 더 많은 리소스가 필요합니다.
주석 WHILE 루프로 인해 스캔 타임 에러 및 워치독 에러가 발생할 수 있습니다.
|
2. 출력을 설정 또는 초기화한 네트워크
|
LD 프로그램
|
ST 프로그램 코드
|
|
|
IF X0 AND X1 THEN
Y0 := TRUE;
END_IF;
IF X2 AND NOT X3 THEN
Y0 := FALSE;
END_IF;
|
|
3. 펄스 플래그가 있는 네트워크(상승/엣지 하강)
|
LD 프로그램
|
ST 프로그램 코드
|
비고
|
|
(* rising edge *)
IF X0 AND NOT X0_Old THEN
Count:=Count+1;
END_IF;
X0_Old:=X0;
(* falling edge *)
IF NOT X1 AND X1_Old THEN
Count:=Count-1;
END_IF;
X1_Old:=X1;
|
펑션 또는 펑션블럭이 없는 명시적 에지 쿼리 감지.
|
다음도 사용 가능:
|
(* rising edge *)
R_TRIG_X0( CLK:= X0 );
IF R_TRIG_X0.Q THEN
Count:=Count+1;
END_IF;
(* falling edge *)
F_TRIG_X1( CLK:= X1 );
IF F_TRIG_X1.Q THEN
Count:=Count-1;
END_IF;
|
IEC 표준 라이브러리에서 R_TRIG 또는 F_TRIG 펑션블럭 인스턴스 사용
|
다음도 사용 가능:
|
(* rising edge *)
IF DF(X0) THEN
Count:=Count+1;
END_IF;
(* falling edge *)
IF DFN(X1) THEN
Count:=Count-1;
END_IF;
|
기본 펑션 DF 또는 DFN 사용.
|