ユニット 6 / 9

産業オートメーションと PLC プログラミング

利益:

  • AIを使用してラダーロジックとストラクチャードテキスト(ST)構造をドラフトとして作成する機能
  • AIの助けを借りて安全回路、インターロック、ステートマシンを構成する機能
  • AI で生成された PLC ロジックを I/O マップおよび安全要件に照らして検証する機能

工場分野における信頼性の名称はPLC(Programmable Logic Controller)です。コンベヤー、ロボットセル、充填ライン、プレス;すべてPLCによって制御されます。 PLC プログラミングはデスクトップ ソフトウェアとは別世界です。ラダー ロジック (LD) はリレー ロジックを模倣したビジュアル言語ですが、ストラクチャード テキスト (ST) はパスカルに似たテキスト言語です。どちらも IEC 61131-3 規格で定義されています。この環境において最も重要なのは機能性ではなく安全性です。なぜなら、論理エラーによりプレスが間違ったタイミングで停止し、オペレーターが危険にさらされる可能性があるからです。 AI は、ラダーおよび ST ドラフトの生成、ステート マシンの構築、ロジックの文書化に役立ちます。ただし、安全回路やインターロック、最終検証はエンジニアの責任であり、AIに任せることはできません。この単元では、AI を使用して PLC ロジックを構築および検証する方法について説明します。

PLCの動作ロジック:スキャンサイクル

PLC はコードを 1 回実行するだけで完了するわけではありません。連続スキャン サイクルを実行します。各ループでは、(1) すべての入力を読み取り、(2) ロジックを上から下に実行し、(3) すべての出力を更新します。このサイクルはミリ秒単位で継続し、無限に繰り返されます。この動作は、PLC ロジックを作成するときに重大な結果をもたらします。

  • 出力はループの最後に更新されます。ループ内の複数の場所で出力に値を割り当てると、最後の割り当てが優先されます。
  • ロジックは各サイクルで最初から動作します。したがって、ラッチ変数または状態変数は状態を「記憶」するために使用されます。
  • スキャン時間が延長されると、高速イベントが見逃される可能性があります。重大なイベントはハードウェア割り込みまたは高速カウンターによって捕捉されます。
ヒント: AI に PLC ロジックを書き込むときは、「スキャン ループの動作を考慮し、同じ出力への競合する割り当てを考慮せず、状態にはラッチ/ステート マシンを使用してください」と言います。 AI はデスクトップ ロジックのように思考し、スキャン動作をスキップすることがあります。

ラダーロジックと構造化テキスト

同じロジックを両方の言語で記述することができます。簡単な例: スタート ボタンが押されるとモーターが始動し、停止ボタンが押されると停止して自己ラッチします。

LADDER(テキスト表示):エンジン始動・停止---| |------|/|---------------( )--- | エンジン |---| |------+ (モーターの接触が自動的に維持される -> シールイン)説明: スタートを押すと、エンジンが通電されます。モーターは独自の接点 (シールイン) を介して電流を維持します。停止(NC)を押すとチェーンが切断されます。

(* STRUCTURED TEXT と同じロジック *)IF 始動し、かつ停止しない THEN エンジン := TRUE;END_IF;IF 停止 THEN エンジン := FALSE; (* 常に停止が優先されます *)END_IF;(* 注: 停止ボタンは物理的に NC (通常閉) に接続されているため、ケーブルが破損した場合は Stop=FALSE となり、システムは安全側に切り替わります。 *)

ここでの安全性の詳細は重要です。停止ボタンは物理的に常時閉 (NC) に接続されています。したがって、ケーブルの断線や接触不良が発生した場合には、信号が遮断され、システムは「停止」方向に移行します(フェールセーフ)。 NO (ノーマルオープン) が接続されている場合、ケーブルが破損するとストップは動作しません。これは危険なサイレント故障です。 AI コードが論理的に正しいように見えても、この物理的な接続の決定はエンジニアに任されています。

安全性: 非常停止、ロックアウト、フェールセーフ

産業オートメーションにおける安全性は、「ソフトウェアで処理」できる問題ではありません。それはハードウェアとソフトウェアの階層的なコラボレーションです。基本原則:

原則

意味

アプリケーション

フェイルセーフ

失敗は安全側につながるはずです

NC接点、故障=停止

冗長性

クリティカル機能デュアルチャネル

2つの接点、クロスモニタリング

連動

危険な状況を防ぐ

ドアが開いていると機械は動作しません

非常停止

独立した非常停止

PLCから独立したハードウェアレベルで

重要な点: 非常停止はソフトウェアだけに任せることはできません。安全関連の緊急停止は、多くの場合、安全リレーまたは安全 PLC によってハードウェア レベルでも中断されます。標準 PLC ソフトウェアは、これに追加のレイヤーを追加します。 ISO 13849 (機械安全) および IEC 62061 は、これらの設計のフレームワークを提供します。

注意: AI が生成した非常停止またはロック ロジックが「ソフトウェアで十分」であると想定しないでください。安全機能は関連規格 (ISO 13849 PL、IEC 62061 SIL) に従って設計されており、ハードウェア層が含まれており、リスク評価によって検証されています。この評価はエンジニアと組織の責任です。 AIが作成できるのは概要とチェックリストだけです。

ステートマシン

複雑な自動化ロジックは、煩雑な if-else ではなくステート マシンで編成されます。システムは特定の状態 (アイドル、開始、実行、停止、エラー) を見つけて、定義された遷移を続行します。この構造は読み取り可能であり、検証可能です。

(* 単純なガソリンスタンドステートマシン *)CASE Case OF 0: (* BOSTA *) IF StartButton AND CoverClosed THEN Case := 10; END_IF; 10: (* 充填 *) バルブ := TRUE; IF レベルフル THEN バルブ := FALSE;ステータス := 20; END_IF; CoverClosed でない場合、バルブ := FALSE;ステータス := 90; END_IF; (* 安全性 *) 20: (* ドレン *) パージ := TRUE; IF LevelEmpty THEN 空 := FALSE;ステータス := 0; END_IF; 90: (* エラー *) バルブ := FALSE;空:= FALSE; (* すべてのアクチュエータは安全です *) IF ResetButton THEN ステータス := 0; END_IF;END_CASE;

この構造では、安全遷移 (カバーが開いている場合はエラー状態に移行し、すべてのアクチュエータが閉じている) があらゆる状況に明確に含まれています。 AI はステートマシンのスケルトンを迅速に生成します。ただし、どの安全インシデントがどの状況から発生するかは、リスク分析によって決まります。

弱いプロンプト / 強いプロンプト

弱:「コンベア用の PLC コードを作成します。」(I/O なし、安全性なし、不明瞭な言語。フィールド ドラフトはできません。) 強:「IEC 61131-3 構造化テキストを使用してコンベア コントロールを作成します。入力: 開始 (NO)、停止 (NC)、PhotocellProductVar (NO)、CoverOpen (NC 安全)。出力: コンベア モーター、警告ランプ。ステート マシンを使用します (アイドル、実行、エラー)。常に停止が優先され、蓋が開いているときにエラーに進み、このコードの安全性評価が行われます。

ミニケース

オートメーション エンジニアのトルガは、包装ライン用の ST コードを AI に要求します。 AI は機能するように見えるコードを生成しますが、Tolga がそれを I/O マップに対して検証すると、2 つの問題が見つかりました。 1 つ目: AI は停止ボタンを NO (通常は開いている) ロジックで処理しました。 Tolga はこれを NC フェイルセーフ ロジックに変えます。ケーブルが破損した場合、ラインは停止する必要があるためです。第二に、保護カバーが開いているときに機械を停止しなければならないロックは、動作中ではなく起動時にのみチェックされます。 Tolga は、スキャン サイクルごとにチェックされるように修正します。また、実際の非常停止がソフトウェアに任せられるのではなく、安全リレーによってハードウェアでも中断されることも確認します。 AI はその論理骨格をすぐに与えました。しかし、エンジニアの検証により、フェールセーフ接続、永久ロック、ハードウェア非常停止という 3 つの安全性に関する決定が確保されました。

よくある間違い

  • 停止/非常停止ボタンを NO に接続すると、ケーブルが破損した場合にフェールセーフ動作が失われます。
  • 連動(蓋、ライトカーテン)の確認は起動時のみ行い、動作時はスキップします。
  • セキュリティ機能を完全にソフトウェアに任せ、ハードウェア層を無視します。
  • スキャン ループの動作を忘れて、同じ出力に矛盾する割り当てを行う。
  • ステートマシンの代わりに複雑な if-else を使用して複雑なロジックを記述することで、複雑なロジックを検証不可能にします。
  • セキュリティ基準を公式テキストで検証せずに、AI の解釈を受け入れる。

要約すると

  • PLC は連続スキャン サイクルで動作します。出力はループの最後に更新されます。
  • ラダーと構造化テキストは、2 つの異なる IEC 61131-3 言語で同じロジックを表現します。
  • 停止/非常停止ボタン NC とフェールセーフが接続されています。失敗は安全側につながるはずです。
  • ロックアウトはスキャン サイクルごとにチェックされます。セキュリティ ハードウェア層が含まれます。
  • ステート マシンにより、複雑なロジックが読みやすく検証可能になります。
  • 安全性評価 (ISO 13849/IEC 62061) はエンジニアの責任です。 AIがドラフトを生成します。

アプリケーションタスク

単純な自動化シナリオ (例: セルフラッチ モーターの開始/停止、2 位置アクチュエーター、または小型の充填ステーション) を選択します。 I/O リストと安全要件 (どのボタンが NC で、連動しているか) を書き留めます。 AI にこのコンテキストを使用して構造化テキスト ステート マシンを生成させます。次に、出力の安全性を確認します: (1) Stop は各状態からの安全な終了を提供しますか、(2) 各スキャン サイクルでインターロックがチェックされますか、(3) エラーが発生した場合にすべてのアクチュエータが安全な状態に移行しますか?見つけた安全上の欠陥や修正点を書き留めてください。