どうも、もももです。
以前紹介したファンクションブロック(以下FB)について、実際に機能を作成してみたいと思います。
今回は入力に対する挙動をFBで標準化します。
標準化の内容としては、入力に対して
- ON確認時間
- OFF確認時間
を指定し、入力が「ON確認時間」の指定秒数ONで「ON確認」を出力し(ON確認)、「OFF確認時間」の指定秒数OFFで「ON確認」の出力を止めます(OFF確認)。
上記のような対応を行うことでチャタリングが発生した場合にプログラムへの影響を小さくできます。
前提条件
本稿は以下環境を元に作成します。
- KV STUDIO:Ver11
- 使用機種(PLC):KV-8000
※KV STUDIOのシミュレーション機能を用いて動作確認
FB作成
引数及びローカル変数の設定
引数及びローカル変数は以下を設定します。
引数は入出力の他、入力のON/OFFタイマーの時間を指定できるように設定しました。
ラダー
・入力→出力(1~3行目)
「入力」が引数で指定した「ON確認時間」中ONすると「出力」がONします。
もし「入力」がOFFしても「ON確認タイマ」で自己保持をかけているため、
「OFF確認タイマ」がONするまで(「入力」が「OFF確認時間」中OFF)は「出力」のONが継続します。
動作確認
使用デバイス一覧
今回は下記のデバイスを使用します。
ラダー
FBを設置して上図のように引数を設定しました。
入力(R001)が1秒間ONで出力(MR001)がONし、出力ON中に入力が1秒間OFFで出力がOFFします。
動作確認
シミュレータ&リアルタイムチャートモニタで入力と出力の関係を確認しました。
「1秒以下の入力ON」では出力はOFFのままで、「1秒以上の入力ON」で出力がONします。
また、出力ON中に「1秒以下の入力OFF」が発生しても出力はONしたままで、「1秒以上の入力OFF」が発生すると出力もOFFします。
まとめ
今回は入力に対するチャタリング防止プログラムをFB化しました。
使用する全ての入力に上記FBを適用すれば、入力に対する挙動を標準化することが出来ると思います。
使用状況にあわせてON/OFF時間を設定してみてください。
FBの概要ついては下記を参照下さい。
コメント