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

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ファンクション・ブロックの例。入出力の接続線がある(この場合、入力2個、出力1個)。

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

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

主なコンポーネント[編集]

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

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

典型的なプログラム例のようす。

  入力    ファンクション・ブロック 出力      
         +------------------------+
        X|    +-----+             |R1     +------+
 --------|----|  *  |-------------|-------| Var1 |
        Y|    |     |             |       +------+
 --------|----|     |--+          |
         |    +-----+  |          |
        A|    +-----+  | +-----+  |R2
 --------|----|  +  |  +-| MAX |--|------- 他のファンクション・ブロック等へ
        B|    |     |    |     |  |
 --------|----|     |----|     |  |
        C|    +-----+    |     |  |
 --------|---------------|     |  |
         |               +-----+  |
         +------------------------+

プログラムのルール[編集]

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

  • 入力変数と、ファンクション・ブロックの入力パラメータ
  • ファンクション・ブロックの出力パラメータと、他のファンクション・ブロック(または自分自身)の入力パラメータ
  • ファンクション・ブロックの出力パラメータと、出力変数

接続線には向きがあり、データは原則として左から右に向かって渡される。

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

変数や出力パラメータの右側から複数の接続線(「分岐」(ダイバージェンス)ともいう)を複数の相手に接続することで、同じデータ値を複数の相手に渡すこともできる。なお、この場合も受ける側の変数や入力パラメータはすべて同じデータ型である必要がある。

関連項目[編集]