CT_FB

ダウンカウンタ

CT_FBファンクションブロックで使用できるカウンタは、ダウンカウンタです。カウンタ設定値エリアSVの範囲は、1~32,767です。

パラメータ

入力

Count (BOOL)

カウント接点(ダウンカウンタ)

Count入力の立ち上がりが検出される毎に、経過値EVから値が"0"になるまで"1"ずつ減算します。

Reset (BOOL)

リセット接点

Reset入力の立ち上がり検出毎に、"0"がEVに割り当てられ、信号出力Cがリセットされます。Reset入力での立ち下がり検出毎に、SVの値がEVに割り付けられます。

SV (INT)

設定値

リセット後のEVの値

出力

C (BOOL)

信号出力

EVが"0"になるとセットされます。

EV (INT)

経過値

  • 現在のカウンタ値

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

解説

  • 正確に動作させるため、CT_FBファンクションブロックは、使用前に毎回リセットしてください。

  • 使用可能なカウンタ数には制限があり、システムレジスタ5、6の設定により変化します。コンパイラは、すべてのカウンタインスタンスにNUM*アドレスを割り当てます。アドレスは、割り付けできる最大アドレスから順に割り付けられます。

  • 基本ファンクションCT (ダウンカウンタ)が同じNUM*アドレスエリア(Num入力)を使用します。エラー(アドレス衝突)を避けるため、ひとつのプロジェクトでCTファンクションとCT_FBファンクションブロックを同時に使用しないでください。

タイムチャート

  1.  (1) PROGモード
  2.  (2) RUNモード

POUヘッダ

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

	VAR
		copy_name: CT_FB;
		set_value: INT:=10;
		signal_output: BOOL:=FALSE;
		count_contact: BOOL:=FALSE;
		Reset_CT: BOOL:=FALSE;
		machine_error: BOOL:=FALSE;
		number_error: INT:=0;
	END_VAR

POUボディ

この例では、変数を使用しています。入力変数に定数を使用することもできます。カウント入力count_contactの立ち上がり検出毎に、経過値EVから"1"が減算されます。経過値EVが"0"になると、Signal_outputTRUEにセットされます。

LDボディ

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,CT_FB!,copy_name,9,1,15,6,,?BCount?BReset?BSV?AC?AEV);
B(B_VARIN,,count_contact,7,2,9,4,);
B(B_VARIN,,Reset_CT,7,3,9,5,);
B(B_VARIN,,set_value,7,4,9,6,);
B(B_VAROUT,,signal_output,15,2,17,4,);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,10,1,16,5,,?DEN?D?AENO?C);
B(B_VARIN,,copy_name.EV,8,3,10,5,);
B(B_VAROUT,,number_error,16,3,18,5,);
B(B_CONTACT,,machine_error,4,2,6,4,);
L(1,3,4,3);
L(6,3,10,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ILボディ

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

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