ファンクション・ブロック・ダイアグラム

ファンクション・ブロック・ダイアグラムまたはFBD言語はプログラマブルロジックコントローラ用のグラフィカルなプログラム言語で、 IEC 61131-3標準で定義される5言語のうちのひとつである。

「入力パラメータ」と「出力パラメータ」をもち、複数の機能を組み合わせた制御が部品化され、1つの命令のように簡素化される。

1. 主なコンポーネント
------------

ファンクション・ブロック・ダイアグラムを構成する主なコンポーネントには以下のものがある。

ファンクション・ブロック :1個以上の入力パラメータと1個の出力パラメータを持ついわば関数である。ファンクションは入力パラメータに与えられた値をもとに演算を行い、結果を出力パラメータに出力する。またプログラム上では同じ機能のファンクション・ブロックであっても各々が固有の内部状態を持てるものもある。 変数 :ファンクション・ブロックの入力パラメータに渡すデータ、もしくは出力パラメータから得た結果を格納するメモリ領域。 接続線 :ファンクション・ブロックと変数、あるいはファンクション・ブロック同士を接続し、データの代入を行なう。
複数の基本的なファンクション・ブロックを1個のファンクション・ブロックとしてまとめて表現することもできる。
ファンクション・ブロックの出力パラメータを別のファンクション・ブロックの入力に接続することもできる。典型的なプログラム例のようす。 入力 ファンクション・ブロック　出力　　　　　　 +------------------------+ X| +-----+ |R1 +------+

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|----| * |-------------|-------| Var1 | Y| | | | +------+

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|----| |--+ | | +-----+ | | A| +-----+ | +-----+ |R2

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|----| + | +-| MAX |--|------- 他のファンクション・ブロック等へ B| | | | | |

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|----| |----| | | C| +-----+ | | |

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

|---------------| | | | +-----+ | +------------------------+

2. プログラムのルール
------------

ファンクション・ブロックの入力パラメータや出力パラメータは接続線または「リンク」で結ばれる。 言い換えると接続線は下記の2点間を接続するのに使う。

入力変数と、ファンクションブロックの入力パラメータ
ファンクションブロックの出力パラメータと、他のファンクション・ブロックの入力パラメータ
ファンクションブロックの出力パラメータと、出力変数接続線には向きがあり、データは原則として左から右に向かって渡される。

また、接続される変数やパラメータは同じデータ型同士である必要がある。

変数や出力パラメータの右側から複数の接続線を複数の相手に接続することで、同じデータ値を複数の相手に渡すこともできる。なお、この場合も受ける側の変数や入力パラメータはすべて同じデータ型である必要がある。

3. 参考
-----

プログラマブルロジックコントローラ
IEC 61131-3
ラダー・ロジック
シーケンシャル・ファンクション・チャート
ストラクチャード・テキスト
分散制御システム