Page top

ディレイ要素付きアナンシェータ回路を教えてください。

FAQ番号:FAQ01010

 

回答

ノンロックイン・タイプのアナンシェータ回路において、警報入力信号にディレイ要素を持たせる方法についてご紹介します。
タンクの液面監視装置などでよく見られる警報入力信号回路にオンディレイ要素を持たせたアナンシェータです。
FAQ01009の回路への追加機能となりますので、まず、FAQ01009をご一読ください。
32点式ディレイ要素付きアナンシェータのタイムチャート

<動作説明>
警報入力信号ON後、個々のタイマの設定時間(t1,t2,t4)経過後に警報処理をおこない、警報入力信号がOFFになると警報処理は停止します。
(*1)のように、警報入力信号のON時間がタイマの設定時間(t3)に満たないときは警報処理を行いません。
ブザー停止PBを押下すると、ブザーを停止し、警報表示出力も点灯に切り替えます。
ランプテストPBを押下している間、すべての警報表示出力を点灯させます。

<プログラムの組み方>
FAQ01009と同様に、①アドレスオフセット方式と、②ファンクションブロック方式をご紹介します。
また、巻末に従来の③インデックスレジスタ方式についても添付しています。

①アドレスオフセット方式
タイマとタイマ設定値を32個の配列にして追加し、配列内の何番目のデータかを[ ]内にポインタptrの添え字で指定します。
TIM命令のタイマ番号T_NoはTIMER型の配列とし、タイマ設定値SVはTIM命令の設定値がBCDなので、UINT_BCD型とします。
これまで警報入力AlarmInで直に制御していた箇所を、一旦警報入力AlarmInでタイマを起動し、タイマのアップ接点T_Noで制御するように変更します。
変数テーブル (①と②共通、ただし②では変数ptrとT_Noは不要)

ラダープログラム① (警報入力AlaramInでタイマを起動しタイマのUP接点で制御するよう変更)


②ファンクションブロック方式
①では追加したタイマとタイマ設定値を配列として定義しましたが、②ではタイマ設定値だけを配列で定義してファンクションブロックに渡し、タイマそのものはファンクションブロックのインスタンスごとのタイマを使用します。
ラダープログラム②(ファンクションブロックの外側のプログラム:タイマ設定値を追加しFBに渡す)と説明

ファンクションブロック定義:内部変数と入力/出力パラメータ (入力パラメータSVと内部変数T_Noを追加)

ファンクションブロック定義:ラダープログラム (警報入力AlaramInでタイマを起動しタイマのUP接点で制御するよう変更)


③インデックスレジスタ方式
従来どおりのインデックスレジスタ方式でのプログラムは以下の添付資料をご確認ください。

~「インデックスレジスタを使いこなそう」シリーズより~

          indexreg2.pdf