ChatGPTでPLCプログラムの設計はできる?

ChatGPTの実務での活用例と限界を徹底解説

近年、生成AIの進化が目覚ましく、製造業の現場にもその波が押し寄せています。

中でも注目されているのが、ChatGPTなどの生成AIを活用したPLCプログラムの作成です。

では、実際にChatGPTでPLCのプログラム作成はできるのでしょうか?

 本記事では、筆者が試した事例をもとに、活用の可能性と限界をわかりやすく解説します。

ChatGPTではPLCプログラムをどこまで作れるのか?

ChatGPTに「ラダープログラムを作ってください」と依頼すると、基本的な回路であればそれらしいコードを自動生成してくれます。

例えば、以下のような自己保持回路は問題なく出力されます。

LD X0

OR Y0

AN X1

OUT Y0

このように、簡単なパターンであれば、IL(命令リスト)形式で比較的正確なコードが得られます。

しかし、ラダープログラムの作成はできません。

作成はしてくれますが、以下のように変なラダープログラムが作られます。

また、同じ処理を繰り返すようなコード(例えば10系統分の自己保持回路)も、ChatGPTは一定の規則性を理解して正確に展開してくれます。

ST言語やPLCopen XML形式にも対応できる?

ラダー図だけでなく、ST(Structured Text)言語への変換も可能です。

例えば、複数のスタート・ストップスイッチとモーターを配列で管理するSTコードも、以下のように生成できます:

FOR i := 0 TO 9 DO

    IF StartButton[i] THEN

        MotorOutput[i] := TRUE;

    END_IF;

    IF NOT StopButton[i] THEN

        MotorOutput[i] := MotorOutput[i];

    ELSE

        MotorOutput[i] := FALSE;

    END_IF;

END_FOR;

このようなループ構造をChatGPTに依頼すれば、時間短縮や効率化の助けになります。

さらに、ChatGPTはこのSTコードをPLCopen XML形式に変換することも可能です。
これは、ドキュメント作成や一部ツールでのコードインポートに活用できる点も注目です。

現場での活用例|こう使えば便利!

筆者は、ChatGPTを以下のように活用しています。

  • ✅ 若手教育用の例題作成(自己保持回路やタイマ回路など)
  • ✅ 繰り返し構造のラダーやSTコードの自動生成
  • ✅ 仕様書や命令リストの下書き支援
  • ✅ ST → XML 形式への変換でドキュメント補助

一から人が書くよりも「下地を作る」という意味では十分に実用的であり、 特にルール化されたコードやテンプレート化された処理には非常に強みを発揮します。

限界と注意点|そのままでは使えないケースも

ただし、ChatGPTにすべてを任せるのはまだ時期尚早です。

以下のような点には注意が必要です:

❌ 機種依存命令に非対応 or 誤解

三菱シーケンサ特有の命令や、iQ-Rシリーズに特有の機能を正しく理解できない場合があります。

❌ 複雑な論理やフローは破綻しがち

複数の条件分岐やタイマ、割込み処理が絡むような複雑回路は、誤解や意図しない挙動になることもあります。

❌ 実行環境との非連携

GX Works3やGX Works2など、エディタへそのまま貼り付けできない形式で出力されるため、修正や再構築が必要です。

では、どう使うべきか?ベストな活用法

現在のChatGPTは補助ツールとして活用するのが現実的です。

以下のような用途での利用が推奨されます:

活用目的内容
テンプレ生成自己保持、タイマ、カウンタなどの雛形生成
学習補助初心者向けにSTやILの構文を例示
ドキュメント出力PLCopenXML形式などでの資料化
試作支援設計前のたたき台としてのコード生成

こうした活用により、作業効率を高めつつ、設計の質を人間が担保するというスタンスが最も効果的です。

まとめ|AIは道具。判断は人間が行う

ChatGPTによるPLC設計は、まだ完全自動化には程遠いものの、ルールに沿ったコードや文書作成の「下地」としては十分に活用可能です。

むしろ大切なのは、AIに期待しすぎず、適切な使い方を見極めるスキルです。

今後も生成AIの進化は続くでしょう。

「AIを活かす力」を持つPLCエンジニアこそが、これからの製造現場で価値を高めていくはずです。

📌 おまけ:ChatGPTへのプロンプト例

「三菱電機のシーケンサで、X0がONするとY0が自己保持し、X1がONで停止するラダープログラムをIL形式で作ってください」

このように、できるだけ具体的な仕様を明示することで、より正確な出力が得られます。

次に読みたい

ラダープログラムとは?PLC制御の基本構造と読み方をわかりやすく解説ラダープログラムとは?PLC制御の基本構造と読み方をわかりやすく解説 PLCエンジニアの副業・フリーランス事情|案件獲得から単価までPLCエンジニアの副業・フリーランス事情|案件獲得から単価まで
Picture of しーけん師匠

しーけん師匠

「しーけん師匠」こと当サイト運営者は、制御エンジニア歴35年以上。三菱電機製シーケンサや産業ネットワークを中心に、現場からIT/OTの連携まで幅広く対応。若手に制御エンジニアの魅力を伝え、業界の活性化と人材不足の解消を目指して情報を発信中。

上部へスクロール