PLCの信号機-すべての言語IEC 61131-3

以前の記事PLCの信号機-30ブロックでは 、PLC信号機のプログラムはFBDでのみ記述されていました。

新しいプログラムは、IEC 61131-3標準の5つの言語すべてを使用します。



最初のセクションはILについてです。

これはアセンブリ言語です。

セクションには2行しかありません。

LD-バッテリーへの負荷値

S-バッテリーがtrueの場合、変数をtrueに設定します。そうでない場合、変数は変更されません。



周期が0.5秒のパルスジェネレーターは、以前のバージョンと同様にFBDで記述されています。



メインセクションはSFCで記述されています。 これは、IEC 61131-3規格で使用するのが最も難しい言語であるように思えます。

プログラムは、ステップと遷移で構成されています。

プログラムが開始されると、Initステップが実行されます。

次のステップは、遷移条件が真の場合に実行されます。 ステップは遅延する場合があり、ステップ時間が制限される場合があります。

次の図では、1つの遷移のみに条件が含まれています。 他の遷移は常に実行されます。

チェーンの最後で、WaitPeopleラベルへの無条件ジャンプが実行されます。



各ステップは、特定の状態の信号機に必要な時間に対応する遅延で実行されます。



各ステップで、特定のアクションが実行されます。 私のプログラムでは、ST言語のセクションの実行が設定されています。



uState変数がプロジェクトに追加され、信号機の状態に対応します。

手順で実行されるすべてのセクションの内容は次のとおりです。



STのセクションは、uStateの状態に応じて、値をブール変数に書き込みます。ブール変数は、出力に書き換えられます。 これは、stStep_1..stStep_8セクションで行うことができますが、CASEステートメントが表示されず、STがIEC 61131-3標準のプログラマーに最も近い言語であることが理解できます。 また、このセクションでは、ソフトウェアエラーに対する保護が、未定義の状態で黄色に点滅する形で導入されています。



LDはラダーロジック回路に近い。 LDの基礎は接点とコイルです。 この図は、左側が「電圧」(真)が分岐に沿って右側に伸びる導体であることを示しています。

バインドされた変数がtrueの場合、通常開いている接点(コンデンサに類似)は閉じます。

通常閉じられている接点(内部にスラッシュがあるコンデンサに似ています)は、それに接続されている変数がfalseの場合に閉じます。

コイル(2つのブラケット)は、それ自体に「電圧」を渡し、その値(falseまたはtrue)をそれにバインドされた変数に書き換えます。

プログラムでは、このセクションを使用して、ソフトウェアエラーから保護して、中間変数を出力バインド変数に書き換えます。 緑色のライトは、この信号機に赤がなく、別の信号機に緑がない場合にのみ点灯します。



プログラムの結果:



1つのプログラムで5つの言語すべてを使用することは正当化されません。 しかし、実際のプロジェクトでは、2..3言語を同時に適用する必要がある場合があります。 ほとんどの場合、STを使用しますが、FBDはあまり使用せず、ILも使用します。 実際のプロジェクトでのSFCとLDは適用する必要がありませんでした。



UPD。 修正を行いました-RouRの発言に従って、標準の名前から余分なゼロを削除しました



UPD2。 LDの説明のわずかな変更。



All Articles