素のLLMはPLCコードを「書けそうで書けない」

PLC(プログラマブルロジックコントローラ)のプログラムは、IEC 61131-3で規定された言語(ラダー図、ST=構造化テキスト、FBDなど)で書かれます。一般的なプログラミング言語に比べて、インターネット上の公開コードが少なく、メーカーごとの方言(命令やライブラリの違い)が大きい分野です。

2024年1月に公開され、ソフトウェア工学の国際会議ICSE 2024で発表された論文「LLM4PLC」は、GPT-4やLLaMa2などの汎用LLMが、そのままでは有効なPLCプログラムを生成できないと報告しました。文法の誤り、存在しない命令、仕様を満たさないロジックが出るためです。

LLM4PLCが示した「検証ループ」の効果

LLM4PLCの研究チームは、LLMの出力をそのまま使うのではなく、検証の仕組みを組み込んだ反復のパイプラインを作りました。

仕様からLLMがコードを生成し、文法チェック、コンパイル、形式検証、人のフィードバックを経て合格するまで繰り返すループ 仕様自然言語 LLMが生成 文法チェック コンパイル 形式検証(SMV) 人のフィードバック 合格 失敗理由を戻す
LLM4PLCの検証ループの考え方。生成→文法チェック→コンパイル→形式検証を回し、失敗した情報をLLMに戻す。

文法チェッカー、コンパイラ、SMVという形式検証器(ロジックが仕様の条件を満たすかを数学的に確かめる道具)とユーザーのフィードバックを組み込み、さらにLoRAという手法でモデルを追加学習させた結果、次の改善が報告されています。

PLCプログラムの生成成功率
47%→72%
LLM4PLC(arXiv 2401.05443、2024年1月、FischerTechnik製造テストベッドで検証)
専門家評価のコード品質(10点満点)
2.25→7.75
同上

この数字の読み方には注意が必要です。72%は「検証ループを回した後でも、約3割は合格しなかった」ことを意味します。また、検証は研究用の製造テストベッドで行われたもので、実際の工場の大規模なプログラムでの成功率ではありません。

2024年10月に公開された「Agents4PLC」は、自然言語の要件、人が検証した形式仕様、参照用のPLCコードを紐づけたベンチマークを作り、RAGを備えた複数のLLMエージェントでコード生成とコードレベルの検証を閉ループにしています。研究の流れは、生成の精度を上げることより、検証を自動で回す仕組みを作る方向に進んでいます。

製品の到達点:Siemens・Rockwellの公表内容

製品では、SiemensとRockwell Automationが自然言語からのコード生成を提供しています。

項目Siemens Industrial Copilot(Engineering)Rockwell FactoryTalk Design Studio Copilot
対象TIA Portal、SCL(構造化テキスト)の生成Logix向けのコード・ラダーの生成、説明、トラブルシュート
公表された効果SCL生成が推定約60%高速化(同社、2025年3月)定量値の公表なし
注意事項thyssenkruppがグローバル展開中でコード品質と開発速度の向上を報告(同社発表)公式ヘルプが「不正確な情報を表示する可能性がある」と明記し、オンラインヘルプとの照合を求める

Siemensの「約60%」は同社の推定値で、比較条件は公表資料からは読み取れません。Rockwellの公式ヘルプは、Copilotが会話の文脈として直近5往復のみを参照することも明記しています。両製品の詳細はPLC開発Copilot比較で扱っています。国内でも、オムロンがLaboro.AIとPLC向けの設計コード生成AIを開発し、制御設計者のコーディングを支援していると公表されています。

現場で使うための検証ループの組み方

研究と製品の状況から言えるのは、PLCコード生成AIの価値は「生成」より「検証を速く回せるか」で決まるということです。

ステップ1の仕様の明文化が最も重要です。仕様が担当者の頭の中にしかない状態では、AIに正しい入力を渡せず、生成されたコードが正しいかを判定する基準もありません。生成AIの導入は、制御仕様を文書化するきっかけとして扱うのが現実的です。

効果が出やすい使い方

現時点で効果が出やすいのは、ゼロからの生成より、既存コードを扱う用途です。

  • 既存コードの説明:前任者が書いたラダーの動作を文章で説明させる(引き継ぎ、保全時の調査)
  • コメント付け:コメントのない既存コードにコメントを付ける
  • 定型ブロックの生成:アラーム処理、データ変換など、パターンの決まった部分の下書き
  • テストケースの作成:仕様からシミュレーション用のテストシナリオを作る

既存コードの説明は、誤っても設備の動作には影響しないため、制御系の用途の中では誤りのコストが低い部類です。製造業の生成AI活用の全体像で示した「制御系は最後に」という順番の中でも、最初に試す用途として適しています。

よくある質問

ラダー図とST(構造化テキスト)では、どちらが生成AIに向きますか?

テキストで表現されるSTのほうが、LLMが扱いやすい形式です。ラダー図は図として表示されますが、内部ではメーカー独自の形式で保存されており、生成と検証の仕組みは製品ごとに異なります。

自社の過去のPLCプログラムを学習させれば精度は上がりますか?

自社の命名規則やライブラリの使い方を反映させる効果は期待できます。ただし過去のプログラムの誤りや古い書き方も学習するため、品質の確認された標準プログラムを選んで使うことが前提です。

生成AIでPLCプログラマーは不要になりますか?

なりません。仕様の定義、生成コードのレビュー、試運転、トラブル対応は人が担います。生成AIは、定型的なコーディングとドキュメント作成の負担を減らす道具として位置づけるのが現実的です。

この記事に出てくる用語

用語集(日・英・中)をすべて見る

この特集について

製造業の生成AI、どこまで任せられるか

文書検索、手順書の生成、品質報告のドラフト。人が承認する範囲と任せてよい範囲の線引き 全91本

  1. 製造業の生成AI活用の全体像:業務別12ユースケースと導入の順番
  2. 製造業の社内文書RAG入門:手順書・図面・品質記録を検索する5層構成
  3. Siemens Industrial Copilotの全体像:5系統の提供状況と狙い
  4. 生成AIの情報漏えい対策:製造業が決めるべき入力禁止情報とログ管理の7項目
特集の記事をすべて見る →

この記事を書いた人

株式会社サオス

株式会社サオス 製造DX部

DELMIA Apriso を中核とした MES / 製造DX の導入・運用・人材育成と、製造業向けAIの調査・開発・教育を手がけるITコンサルティング企業。ISO 9001:2015 / ISO 27001:2022 認証取得。 日本・中国・米国で製造業のMES・データ基盤・AI導入を手がけた実務者が、欧米・中国の一次情報にあたって書いています。