どうも、もももです!
KV STUDIOでファンクションブロックの使用方法について紹介します。
ファンクションブロック(FB)とは
ラダー中で何度も繰り返して使用する回路に任意の名前を付けて登録したものをファンクションブロックと呼びます。
同じ処理をファンクションブロック化することによりラダーの入力工数の削減できたり、回路変更時にはファンクションブロックとして登録した1カ所のデータを修正するだけで済むのでラダーの変更工数が削減でき、修正ミスも防げます。
マクロの類似機能でファンクションブロックがありますが、ファンクションブロックはマクロの上位互換機能になります。KV-8000などでは「ファンクションブロック」の使用が推奨されています。
マクロの使用方法については以下で紹介しています。
前提条件
本稿は以下環境を元に作成します。
- KV STUDIO:Ver11
- 使用機種:KV-8000
引数で指定したデバイスと定数の加算処理を行うファンクションブロックを作成し、シミュレータで動作確認を行います。
設定手順
以下にファンクションブロック作成~作成したファンクションブロックを呼出す手順をまとめます。
ファンクションブロック作成
「プロジェクト」の「ファンクションブロック」を右クリックし「新規作成」を選択します。
「プログラム新規作成」画面が表示されるので、プログラム名を「INCREMENT」とし「OK」ボタンを押下します。
「OK」ボタン押下後は「INCREMENT」ファンクションブロックが作成され、画面上部に表示される「引数設定領域」より引数の設定を行います。
引数設定
引数は上図の様に設定しました。
「現在値」は加算前後のデータの引数で引数タイプは「IN-OUT」、「加算値」は加算を行う引数で引数タイプは「IN」、どちらもデータ型は「UINT(1ワード符号なし整数)」としました。
引数タイプやデータ型は用途に合わせて設定して下さい。
- IN:ファンクションブロック実行開始時、指定したデバイスまたは定数の値を引数に格納する。
- OUT:ファンクションブロック実行終了時、引数の値を指定したデバイスに格納する。
- IN-OUT:ファンクションブロック実行開始時、指定したデバイスへの参照を引数に格納する。ファンクションブロック実行中に引数に対して行う処理は、都度指定したデバイスへ反映される。
- ユニット:今回は割愛します。
ファンクションブロックに処理を記述
引数「現在値」と「加算値」を加算した結果を「現在値」に格納する簡単なラダー回路を記述しました。
作成したファンクションブロックを呼出
ファンクションブロックはドラッグ&ドロップでラダーに追加することが出来ます。
ドラッグ&ドロップ後、「インスタンス名」と「引数」を指定します。
「MR000」のON立上りで「DM0」に「1」を加算するファンクションブロックを呼び出すようにしました。
動作確認
上図はシミュレータを起動して「MR000」をONした結果になります。
「MR000」のONで「DM0」の値が「0」から「1」に変化することを確認できました。
また、画像は準備していませんが、「MR000」のON/OFFを繰り返すことで「DM0」の値が「1」ずつ増加していきます。
活用事例
まとめ
KV STUDIOでファンクションブロックの使用方法についてまとめました。
ラダー中で何度も繰り返して使用する回路をファンクションブロック化することで、処理の記述箇所を1カ所にまとめることができ、回路変更時の修正漏れなども防ぐことができます。
ある程度共通化できる処理はファンクションブロック(マクロ)化していった方が保守性の高いプログラムになるのではないでしょうか。
コメント