概要
FBDおよびLDプログラミングの基本単位はネットワークです。各ネットワークには、1) 論理式または算術式、2) POU(関数、ファンクションブロック、プログラム、またはライブラリPOU)の呼び出し、3) ジャンプ命令またはリターン命令を表す構造が含まれます。
ILは実際にはネットワークを必要としません。しかし、CODESYS ILプログラムは、FBDまたはLDへの変換をサポートするために、少なくとも1つのネットワークで構成されます。これを考慮して、 ILプログラムを意味のあるネットワークに分割する必要があります。
ファンクション ブロック ダイアグラム(FBD)
ファンクションブロックダイアグラムは、グラフィカル指向のIEC 61131プログラミング言語です。ネットワークのリストを扱います。これにより、各ネットワークは、論理式や算術式、ファンクションブロックの呼び出し、ジャンプ、またはreturn文を含む構造を持ちます。
ここではブール代数でお馴染みのボックスが使用されています。ボックスと変数は接続線で結ばれています。ネットワーク内の信号の流れは左から右へ流れ、エディター内の信号の流れはネットワーク1から始まり、上から下へ流れます。

ヒント
CFC も FBD と同じ原理に基づくプログラミング言語ですが、次のような違いがあります。
CFC エディターはネットワーク指向ではありません。
CFC エディター内で要素を自由に配置できます。
フィードバックパスの直接挿入が可能です。
実行順序は現在挿入されている要素のリストによって決定されますが、これは変更できます。
詳細については、以下を参照してください。ファンクション ブロック ダイアグラム(FBD)でのプログラミング
ラダー ロジック ダイアグラム (LD)
ラダー ロジック ダイアグラム(LD) は、電気回路図に似たグラフィカル指向のプログラミング言語です。
ラダー ロジック ダイアグラムは論理的なスイッチングユニットの設計に適していますが、一方でFBDと同様にネットワークを作成することもできます。そのため、LDは他のプログラムブロックの呼び出しを制御するのに非常に有効です。
ラダー ロジック ダイアグラムは、一連のネットワークで構成されます。ネットワークは、左側が垂直線(バスバー)で区切られます。ネットワークには、接点、コイル、オプションボックス(POU)、接続線からなる回路図が含まれます。
ネットワークの左側には、次のものを中継するa接点または一連のコンタクトがあります。ON
またはOFF
状態はブール値に対応するTRUE
そしてFALSE
左から右へ。各a接点先にはブール変数が関連付けられています。この変数がTRUE
の場合、ステータスは接続線を介して左から右に中継されます。それ以外の場合はOFF
中継される。その結果、ネットワークの右側のコイルは値を受信する。ON
またはOFF
左から来て、価値TRUE
またはFALSE
割り当てられたブール変数にそれに応じて書き込まれます。
要素が直列に接続されている場合はAND演算、並列に接続されている場合はOR演算となります。要素に線を引くと、その要素の否定が示されます。
入力または出力の否定は、円記号で示されます。

IEC 61131-3は、様々な種類の接点とコイルで構成される完全なLDコマンドセットを定義しています。接点は(種類に応じて)左から右へ電流を流します。コイルは入力値を格納します。接点とコイルはブール変数に割り当てられます。LDネットワークには、ジャンプ、リターン、ラベル、コメントを追加できます。
インストラクションリスト (IL)
命令リストは、アセンブラのような IEC 61131 準拠のプログラミング言語です。
アキュムレータベースのプログラミングをサポートします。
命令リスト(IL)は、一連の命令で構成されます。各命令は新しい行から始まり、演算の種類に応じて、演算子と1つ以上のオペランド(カンマで区切られる)で構成されます。
命令の前にコロンの後に続くラベルを置くことができます。これは命令の識別に使用され、ラベルをジャンプ先として使用できます。
コメントは行の最後の要素にする必要があります。命令と命令の間には空行を挿入できます。
すべての IEC 61131-3 演算子がサポートされており、複数の入力、複数の出力、否定、コメント、出力のセット/リセット、条件付き/無条件ジャンプもサポートされています。
各命令は主にアキュムレータへの値のロードに基づいています(LD
その後、アキュムレータのパラメータを用いて対応する演算が実行されます。演算の結果は再びアキュムレータに書き込まれ、そこから特定の値を格納する必要があります。ST
命令。
命令リストは比較演算子(EQ, GT, LT, GE, LE, NE
)とジャンプを使用して条件付き実行やループをプログラミングできます。ジャンプは無条件(JMP
)または条件付き(JMPC
/ JMPCN
条件ジャンプの場合は、アキュムレータの値がTRUE
またはFALSE
。
