【製造業向け】Claude CodeでPLCプログラムや制御コード作成を自動化する手順
【製造業向け】Claude CodeでPLCプログラムや制御コード作成を自動化する手順
本記事では、動画で解説された内容をもとに、生成AIツール「Claude Code」を使って、製造業におけるPLCプログラムや制御コードの作成を自動化する手順を分かりやすく整理します。現場エンジニアやシステムインテグレーターの方が、設計・プログラミング工数を削減しつつ品質を担保するための実践的な手順としてまとめています。
1. Claude Codeとは?製造業・PLC開発での位置づけ
Claude Codeは、Anthropic社が提供する生成AIをベースにしたコード支援ツールです。Chat形式での会話に加え、ソースコードやドキュメントをプロジェクトとして読み込ませながら、以下のような支援を行えます。
- 既存PLCプログラムの解析・リファクタリング
- ラダー図やST(Structured Text)などの制御コード生成
- 仕様書・I/Oリストからの制御ロジック自動生成
- テストパターンやシミュレーションコードの生成
- 日本語での質問に対するコードレベルの回答
ChatGPTなどの汎用的なチャットAIとの違いは、「コード編集に特化したインターフェース」と「大容量コンテキスト」そして「ファイル単位での読み込み・差分編集」がしやすい点です。製造業で扱うPLCプログラムは、I/O点数が多く、シーケンスパターンも複雑になりがちですが、Claude Codeを使うことで、これらをまとめて読み込ませたうえで、仕様変更や追加機能の実装をAIに手伝わせることができます。
2. Claude Codeを使う前に準備すべき開発環境とファイル
Claude CodeでPLCプログラムや制御コードを自動化する前に、最低限準備しておくべき情報やファイルを整理しておきましょう。
2-1. PLCプログラムの形式を整理する
製造現場で使われるPLCは、メーカーや機種ごとにプログラム形式が異なります。
- Mitsubishi(GX Works / GX Developer / MELSOFT)
- OMRON(CX-Programmer / Sysmac Studio)
- Keyence(KV STUDIO)
- Siemens(STEP7 / TIA Portal)
- Rockwell、Yokogawa、Panasonic など
Claude Codeは、これらの専用プロジェクトファイルを直接編集するわけではなく、テキストとしてエクスポートされた形式(ST言語、ラダーをテキスト化したリスト、CSVのI/O表、コメント付きの命令リストなど)を入力として扱います。そのため、以下を用意しておくと自動化しやすくなります。
- テキスト形式またはCSV形式のI/Oリスト
- 既存ラダーの命令リスト(可能ならテキスト出力)
- Structured Text(ST)形式でのプログラム断片
- シーケンス仕様書(工程フロー / ステップチャート / タイミングチャート)
2-2. 仕様書や制御要件をテキスト化する
AIに制御コードを生成させるには、「何をしたいか」を構造化して伝えることが重要です。動画内でも、以下のような形で仕様を整理してからClaude Codeに入力するワークフローが紹介されていました。
- 設備全体の概要(どのような設備か、目的は何か)
- ユニット・ステーションごとの役割
- シーケンス動作(例:原点復帰 → 待機 → ワーク供給 → 加工 → 排出)
- 各工程で使用するI/O信号、タイマ、カウンタ
- 安全系ロジック(非常停止、インターロック、フェールセーフ条件)
ExcelやWordに書かれている仕様も、重要部分だけをテキストに抜き出してClaudeに渡すことで、より精度の高い制御コードが生成されます。
3. Claude CodeでPLCプログラムを自動生成する基本フロー
ここでは、実際にClaude Codeを使ってPLCプログラムや制御コードを自動生成する際の基本的な流れを説明します。具体的なツール画面は動画を参考にしつつ、文章ベースで手順を再構成しています。
3-1. プロジェクトフォルダを用意して読み込ませる
- ローカルPC上に専用フォルダを作成(例:
plc_project/)。 - 以下のような構成で、関連ファイルをまとめておく。
io_list.csv:I/Oリストspec_sequence.md:シーケンス仕様書(Markdownやテキスト)plc_base.st:既存のSTコードやテンプレートsafety_logic.txt:安全系の条件やインターロック一覧
- Claude Codeの画面で、このフォルダをプロジェクトとして読み込ませる。
プロジェクトとして読み込むことで、AIが全ファイルをまたいだ文脈を理解し、「この信号はどの工程で使われているか」「このフラグはどのタイミングでリセットすべきか」といった判断をしやすくなります。
3-2. 日本語でプロンプトを作成する
Claude Codeは日本語でも、かなり高い精度で指示を理解します。特にPLCプログラム生成においては、以下のポイントを押さえたプロンプトが効果的です。
- PLCメーカー・機種、開発環境、使用言語(ST / ラダーなど)を明示する
- 制御対象の概要(搬送機、ロボットセル、加工機など)を書く
- 参照してほしいファイル名を明示する
- 出力フォーマット(関数単位、POU単位、コメントの付け方)を指定する
例となるプロンプトを示します。
あなたは三菱電機のPLCプログラムに詳しい制御エンジニアです。
・開発環境:GX Works3
・使用言語:Structured Text (ST)
・対象設備:ワーク搬送+加工+排出の自動機
プロジェクト内の以下のファイルを参照してください。
- io_list.csv:I/Oリスト
- spec_sequence.md:シーケンス仕様
- safety_logic.txt:安全系ロジック
やりたいこと:
1. 原点復帰シーケンス
2. 自動運転のメインシーケンス
3. アラーム監視
上記3つを、それぞれPOUとしてSTコードで作成してください。
・各I/Oの役割が分かるように、日本語コメントを入れてください。
・タイマはTON命令を使用してください。
・インターロック条件は、safety_logic.txtの内容を優先してください。
このように具体的に指示することで、Claude CodeはI/Oリストと仕様を突き合わせながら、ある程度完成度の高いベースコードを生成してくれます。
4. 既存PLCコードの解析・リファクタリングに活用する
新規の自動生成だけでなく、既存のPLCプログラムをClaude Codeで解析させる使い方も非常に有効です。
4-1. ブラックボックス化したラダーを読み解く
製造現場では、「ベテランが組んだラダーだが、仕様書がなくて誰も全体を把握していない」という状況がよくあります。このようなブラックボックス化したPLCプログラムも、テキスト形式でエクスポートしてClaude Codeに読み込ませれば、次のような支援を得られます。
- ネットワークごとの処理内容の要約
- フラグやデバイスの役割の推定
- ステップシーケンスとしての流れの再構成
- 冗長なロジックやバグの可能性のある箇所の指摘
例えば、以下のようなプロンプトが有効です。
添付したラダー命令リスト(mitsubishi_ladder_list.txt)を解析してください。
やりたいこと:
1. ネットワークごとの処理内容を日本語で要約する
2. Mデバイス・Dデバイスごとに役割を一覧化する
3. 似たような処理が重複している箇所があれば指摘する
最終的に、後から保守しやすいように、
- コメント修正案
- ステップ番号の再設計案
も提案してください。
こうすることで、人が理解するのに数日かかる規模のラダーでも、短時間で全体像を掴むことができます。
4-2. STへの変換や共通関数化を支援させる
動画の中では、ラダーで書かれたロジックをStructured Textへ変換し、再利用性を高めるアプローチについても触れられていました。Claude Codeは、「特定のラダー部分をST関数に落とし込む」といったタスクが得意です。
プロンプト例:
ladder_to_convert.txt に記載のラダー命令を、Structured Textの関数に変換してください。
条件:
・三菱PLC、GX Works3相当のST構文を使用
・関数名は `Calc_CycleTime` とする
・入力:開始トリガ、終了トリガ
・出力:サイクルタイム(Dデバイス)
・ラダーに存在するタイマやフラグの動作は維持する
変換後のSTコードと、簡単な動作説明を書いてください。
このように指示することで、既存資産を活かしつつ、将来の設備にも流用しやすい形に整理できます。
5. 制御コード自動化の精度を上げるためのプロンプト設計
単に「PLCプログラムを作って」と指示するだけでは、実務で使えるレベルには届きません。自動生成の精度を高めるために、次の3つのポイントを押さえたプロンプト設計を意識してください。
5-1. 「前提条件」と「制約条件」を最初にまとめる
制御コードは、設備条件や安全要件によって大きく変わります。そこで、プロンプトの冒頭で以下を明示します。
- 使用PLCメーカー・言語・開発環境
- 安全カテゴリ(PLd、PLeなど)や、特別な安全要件
- 非常停止時・電源断復帰時の取り扱い
- ユーザーインターフェース(タッチパネル、ボタン類)の仕様
これにより、AIが「どのような前提でロジックを組むべきか」を誤解しにくくなります。
5-2. 「サンプル入出力」や「期待する振る舞い」を書く
生成AIは、具体的な例が与えられるほど精度が上がります。シンプルなテストケースをいくつか書いておくと、より実務に近いコードが生成されます。
例:
- 自動モードON、非常停止OFF、ドアクローズのときのみ起動ボタン受付
- 起動ボタンON → コンベア起動、3秒後にクランプ動作
- ワーク検出OFFになったら、クランプ解除後にコンベア停止
このような振る舞い例を記述し、「上記を満たすようにロジックを組んでください」と指示すれば、AIは例を満たすような条件分岐やタイマ設定を行おうとします。
5-3. 日本語コメントと命名規則を指定する
製造業の現場では、保守性や他社への引き継ぎの観点から、「コメントや変数名のルール」が重視されます。Claude Codeでコードを生成する際も、最初に命名規則を指定しておくと後工程が楽になります。
例:
- ビットデバイス:
b_機能名_条件(例:b_auto_start_request) - ワードデバイス:
w_値の意味(例:w_cycle_time_ms) - 関数・FB名:
F_xxxx、FB_xxxx - コメントは日本語、1ネットワーク1行以上
このように明示しておくと、生成されたコードもプロジェクト全体のルールに沿ったものになり、読みやすさが大きく向上します。
6. テスト・シミュレーションの自動化にもClaude Codeを活用
PLCプログラムの品質を高めるには、テストやシミュレーションも重要です。Claude Codeは、以下のような形でテスト設計にも貢献します。
6-1. テストパターン・チェックリストの自動生成
仕様書と生成したコードを読み込ませたうえで、「必要なテスト項目をすべて洗い出してほしい」と依頼する使い方が有効です。
spec_sequence.md と plc_auto_main.st を参照し、
・通常運転
・異常系(センサ不良、シリンダ動作不良など)
・安全系(非常停止、扉オープンなど)
の観点から、テスト観点とテストケース一覧を作成してください。
出力形式:
- No
- 観点
- 前提条件
- 操作
- 期待結果
これにより、抜け漏れの少ないテスト仕様書の叩き台を短時間で作成できます。
6-2. シミュレーション用の擬似I/Oコード生成
実機がまだ完成していない段階でも、擬似I/Oを用意してシミュレーションを行うことがあります。Claude Codeに対して「センサON/OFFを一定パターンで切り替えるシミュレーション用コードを生成してほしい」と指示すれば、テスト環境構築の工数も削減できます。
例:
plc_auto_main.st をベースに、
I/Oをシミュレーションするための擬似入力生成コードを作成してください。
条件:
・センサ入力をタイマでON/OFFさせる
・異常パターンとして、センサがONしないケースも用意する
・実機I/Oとは別の変数名を使用する
7. 製造業でClaude Codeを導入する際の注意点
Claude Codeは非常に強力なツールですが、製造業の実務に導入する際にはいくつか注意点もあります。
7-1. セキュリティ・機密情報の取り扱い
設備仕様書やPLCプログラムには、顧客情報や機密技術が多く含まれます。以下の点を必ず確認してください。
- 利用しているClaude Code環境のデータ保存ポリシー
- オンプレミス版や企業向けプランの有無
- 社内情報セキュリティポリシーとの整合
- 顧客とのNDA(秘密保持契約)での取り決め
必要に応じて、機微な数値や固有名詞をマスキングしたうえでAIに渡すなどの工夫も検討してください。
7-2. 最終責任は必ず人間が負う
AIが生成した制御コードは、あくまで「たたき台」です。特に安全系ロジックやインターロックは、人間のエンジニアが必ずレビューし、動作確認を行ったうえで採用してください。
- フェールセーフが正しく設計されているか
- 想定外の入力組み合わせで誤動作しないか
- 設備停止後の復帰動作が安全か
これらは自動生成に頼らず、従来通りの安全設計プロセスを踏む必要があります。
7-3. 社内ルール・標準ライブラリとの整合
多くの製造業企業には、「社内標準FB」「共通ライブラリ」「命名規則」などが存在します。Claude Codeを使ってコードを生成する際も、これらの社内ルールをプロンプトに明記し、既存ライブラリを参照させるようにしてください。
例:
common_lib/ フォルダ内のFBを優先的に使用してPLCロジックを組んでください。
新規FBを作る場合も、common_libにある命名規則とインタフェース設計に合わせてください。
8. まとめ:Claude CodeでPLCプログラム開発を効率化しよう
本記事では、「Claude CodeでPLCプログラムや制御コード作成を自動化する手順」を、製造業の現場目線で整理しました。要点をまとめると以下の通りです。
- テキスト化したI/Oリストや仕様書をプロジェクトとして読み込ませる
- PLCメーカー・言語・開発環境を明示し、日本語で具体的にプロンプトを書く
- 新規コード生成だけでなく、既存ラダーの解析・リファクタリングにも活用できる
- テストケースやシミュレーションコードの自動生成で、検証工数も削減できる
- 機密情報や安全設計については、人間が最終責任を持ってレビューする
Claude Codeをうまく活用すれば、PLCエンジニアの生産性は大きく向上し、仕様変更や追加設備への対応スピードも高まります。まずは小さな設備やサブ機能から試し、自社の標準プロンプトやテンプレートを整備していくことで、徐々にAI活用の効果を実感できるはずです。
動画では、実際の画面操作や具体的なプロンプト例も紹介されていますので、あわせてチェックしてみてください。