====== SR과 RS플립플롭 ======
플립플롭은 1비트의 상태를 기억하는 회로인데, CODESYS에선 RS플립플롭과 SR플립플롭 펑션블록을 지원합니다. 기본적인 사용법과 더불어 둘 사이의 차이점이 무엇인지 알아보겠습니다.
{{ :codesysmanual:srrs1.png?nolink |}}
두개 모두 논리표는 동일합니다.
{{ :codesysmanual:srlogic2table.png?nolink |}}
SR펑션블록의 ST코드 소스
Function_Block SR
Var_Input S1, R : BOOL; End_Var
Var_Output Q1 : BOOL; End_Var
Q1 := S1 OR (Q1 AND NOT S);
End_Function_Block
RS펑션블록의 ST코드 소스
Function_Block RS
Var_Input S, R1 : BOOL; End_Var
Var_Output Q1 : BOOL; End_Var
Q1 := (Q1 OR S) AND NOT R1
End_Function_Block
동작을 확인하기 위해서 다음과 같이 Visualization을 작성했습니다.
{{ :codesysmanual:srrs2.png?nolink |}}
===== 동작확인 =====
기본적인 동작은 똑같습니다. Set신호가 들어오면 출력Q가 On상태를 유지합니다. 이후 Reset신호가 들어오면 출력Q는 Off됩니다.
{{ :codesysmanual:flipflopvideo1.gif?nolink |}}
Set신호와 Reset신호가 둘다 On상태일때 결과가 다릅니다. SR플립플롭 출력은 On상태를 유지하는 반면, RS플립플롭은 Off 됩니다. 즉, RS플립플롭은 Reset신호 우선입니다.
{{ :codesysmanual:flipflopvideo2.gif?nolink |}}
===== Set코일과 Reset코일 =====
동일한 동작을 Set코일과 Reset코일 써서 할 수도 있습니다.
{{ :codesysmanual:setreset2.png?nolink |}}
{{ :codesysmanual:setreset3.png?nolink |}}
[[codesysmanual:index|CODESYS]]