리셋/셋
펑션블록 RS(리셋/셋)을 사용하면 출력을 리셋하고 설정할 수 있습니다.
입력
셋
RESET이 설정되지 않으면 S의 각 상승 엣지마다 출력 Q1이 설정됩니다.
리셋(R)
R1의 각 상승 엣지마다 출력 Q1이 초기화됩니다.
출력
S에서 상승 엣지가 검색되고 R1이 설정되지 않으면 설정됩니다.
R1에서 상승 엣지가 검색되면 초기화됩니다.
두 입력에서 모두 상승 엣지가 검색되면 초기화됩니다.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR
copy_name: RS;
set: BOOL:=FALSE;
(*output_value is set for each
rising edge at set_input,
if reset_input is not set*)
reset: BOOL:=FALSE;
(*output_value is reset for each
rising edge at reset_input*)
signal_output: BOOL:=FALSE;
END_VAR
set이 설정된 경우(상태 = TRUE), signal_output이 설정됩니다. reset이 설정된 경우에만 signal_output이 reset됩니다(상태 = FALSE). set과 reset이 모두 설정되면 signal_output이 FALSE로 reset됩니다.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_FB,RS!,copy_name,9,1,14,5,,?BS?BR1?AQ1);
B(B_VAROUT,,signal_output,14,2,16,4,);
B(B_CONTACT,,set,3,1,5,3,);
B(B_CONTACT,,reset,3,3,5,5,);
L(1,2,3,2);
L(1,4,3,4);
L(1,0,1,5);
L(5,2,8,2);
L(8,2,8,3);
L(8,3,9,3);
L(5,4,9,4);
END_NETWORK_BODY
END_NET_WORK
END_BODY
copy_name( SET:= set, RESET:= reset);
signal_output:= signal_output;