セット/リセット
ファンクションブロックSRは、出力をセットまたはリセットします。
入力
セット
S1信号の立ち上がりエッジで、出力Q1がONになります
リセット
R信号の立ち上がりエッジが検出されると、出力Q1がOFFになります。ただし、S1信号がONになっているときは除きます。(タイムチャートを参照)
出力
入力条件により、セットまたはリセット
S1で立ち上がりエッジが検出されると、ONになります
Rで立ち上がりエッジが検出され、S1がONでない場合、OFFになります。
両方の入力(S1/R信号)の立ち上がりエッジが検出されると、ONになります。
初期化時、出力Q1は常に0 (リセット)状態になっています。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
copy_name: SR;
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がON (TRUE)になると、signal_outputがONになります。resetだけがONになると、signal_outputはreset (FALSE)になります。setとresetの両方がONになると、signal_outputはONになります。
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_VAROUT,,signal_output,13,2,15,4,);
B(B_CONTACT,,set,3,1,5,3,);
B(B_CONTACT,,reset,3,3,5,5,);
B(B_FB,SR!,copy_name,8,1,13,5,,?BS1?BR?AQ1);
L(1,2,3,2);
L(1,4,3,4);
L(5,4,8,4);
L(5,2,5,3);
L(5,3,8,3);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
copy_name( SET:= set, RESET:= reset);
signal_output:= signal_output;