オフディレイタイマ
ファンクションブロックTOFで、オフディレイタイマをプログラムすることができます。
入力
タイマオン入力
INで立ち下がりが検出されると、内部タイマが開始されます。PT時間が経過する前にINで立ち上がりが検出されても、出力QはOFFになりません。
スイッチオフディレイの設定時間(PT = preset time)
16ビット値: 0~327.27s
32ビット値: 0~21,474,836.47s (32ビット値は、FP3、FPC、FP5、FP10/10Sでは使用できません。)
単位は10ms
出力
信号出力
PT値がET値と等しくなると、出力QがOFF (FALSE)
経過時間
タイマの経過時間の現在値を表わします。
プログラミングエディタから値を書き込むことにより、カウント動作中に値を変更することができます。
QはPTで設定した時間分遅れてOFFになります。スイッチオンは遅れなく実行されます。
IN (タイムチャートt3~t4)がディレイタイムPTの前にONになっても、QはONのままです(タイムチャートt2~t3)。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
copy_name: TOF;
start: BOOL:=FALSE;
set_value: TIME:=T#0s;
signal_output: BOOL:=FALSE;
current_value: TIME:=T#0s;
END_VAR
startがOFFになると、この信号はset_valueのタイムディレイでsignal_outputに転送されます。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_FB,TOF!,copy_name,9,1,14,5,,?BIN?BPT?AQ?AET);
B(B_CONTACT,,start,3,2,5,4,);
B(B_VARIN,,set_value,7,3,9,5,);
B(B_VAROUT,,current_value,14,3,16,5,);
B(B_COIL,,signal_output,21,2,23,4,);
L(1,3,3,3);
L(5,3,9,3);
L(14,3,21,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
copy_name( IN:= start ,
PT:= set_value ,
Q=> signal_output ,
ET=> current_value );
インストラクションリスト内でファンクションブロックを呼び出す場合は、以下のように記述してください:
CAL |
copy_name(IN:= start,, PT:= set_value,, Q:= signal_output,, ET:= current_value,) |