TM_1ms_FB

0.001秒オンディレイタイマ(0~32.767s)

1ms (0.001秒)タイマは、オンディレイタイマとして動作します。ファンクションブロックのstart接点がONのとき、プリセットされた時間SV (設定値)の計時が開始されます。この設定時間が経過すると、タイマ接点TがONになります。

パラメータ

入力

start (BOOL)

スタート入力

立ち上がり検出毎に、設定値SVの値が経過値エリアEVにコピーされ、タイマを開始します。

SV (INT, WORD)

設定値

定義されたオンディレイタイマ(0~32.767s)

出力

T (BOOL)

タイマ接点

SVで設定された時間が経過すると(EVが0になると)セットされます。

EV (INT, WORD)

経過値

タイマ動作中、0.001秒毎に"1"が減算されます。

プログラミングエディタから値を書き込むことにより、カウント動作中に値を変更することができます。

解説

  • 使用可能なタイマ数には制限があり、システムレジスタ5、6の設定により変化します。

  • タイマファンクションブロックでは、コンパイラがすべてのタイマインスタンスにNUM*アドレスを自動的に割り当てます。アドレスは、割り付けできる最大アドレスから順に割り付けられます。

タイムチャート

  1.  (1) ダウンロードPROGモード
  2.  (2) RUNモード

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		Alarm_control: TM_1ms_FB;
		Start_contact: BOOL:=FALSE;
		Alarm_Relay_1: BOOL:=FALSE;
		Alarm_Relay_2: BOOL:=FALSE;
	END_VAR

この例では、変数を使用しています。入力変数に定数を使用することもできます。

POUボディ

変数Start_contactTRUEになるとすぐに、タイマAlarm_controlの計時が開始されます。タイマの変数EVは、SVの値に設定されます。Start_contactTRUEになっている間は、1ms毎にEVから"1"が減算されます。EVの値が0になると、(TM_1ms_FBタイマではSV = 1000なので1秒後に)、変数Alarm_Relay_2TRUEになります。

タイマの変数EVの値が500 (0.5秒後)以下でEVが0でないときは、直ちにAlarm_Relay_1TRUEにセットされます。

LDボディ

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_VARIN,,Start_Contact,7,2,9,4,);
B(B_VARIN,,1000,7,3,9,5,);
B(B_VAROUT,,Alarm_Relay_2,16,2,18,4,);
B(B_FB,TM_1ms_FB!,Alarm_control,9,1,16,5,,?Bstart?BSV?AT?AEV);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_F,@LE-2!,Instance,11,0,16,3,,?D?D?C);
B(B_VARIN,,Alarm_control.EV,9,0,11,2,);
B(B_VARIN,,500,9,1,11,3,);
B(B_F,@NE!,Instance,11,5,16,8,,?D?D?C);
B(B_VARIN,,0,9,6,11,8,);
B(B_VARIN,,Alarm_control.EV,9,5,11,7,);
B(B_F,@AND-2!,Instance,20,2,25,5,,?D?D?C);
B(B_VAROUT,,Alarm_Relay_1,25,2,27,4,);
L(16,1,17,1);
L(17,1,17,3);
L(17,3,20,3);
L(17,4,20,4);
L(17,4,17,6);
L(16,6,17,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

Alarm_Control( start:= Start_Contact ,
        SV:= 1000,
        T=> Alarm_Relay_2 ,
        EV=> Alarm_Control.EV );
(*The ON-delay time is 1000ms*)
Alarm_Relay_1:= Alarm_Control.EV <= 500 & Alarm_Control.EV <> 0;
(*Alarm_Relay_1 is set to TRUE after 500ms*)

ILボディ

インストラクションリスト内でファンクションブロックを呼び出す場合は、以下のように記述してください:

CAL

Alarm_control (start:=Start_contact,

SV:= 1000 ,

T:= Alarm_Relay_2)

LD

Alarm_control.EV

LE

500

AND(

Alarm_control.EV

NE

0

)

ST

Alarm_Relay_1

最終修正日: 2021-01-11このページに関するフィードバックお問い合わせ窓口