真似すべきなのは AI の賢さではなく「検証と承認を工程として挟む構造」です。最初の一歩は、自分の設計フローで「AI が出した案をそのまま実機へ入れていないか」を1枚の図に書き出すこと。GX Works のプロジェクトなら、AI にラダーやコメントを提案させた後に通す関門を2つ決めます——シミュレーション(GX Works3 のシミュレータや机上トレース)と、自分の目による差分確認です。次の段階として、ファナックのデモが「解析手順やルールをあらかじめ登録しておく」としていたのと同じ考え方を自分の環境に持ち込みます。たとえば「アラーム番号→過去の原因と対策」「軸ごとの加減速パラメータの許容範囲」を表にして AI に読ませる資料として固定すれば、毎回ゼロから説明する手間が消えます。コスト感は、この一歩だけなら無料です。手元の Claude や Gemini の無料枠と Excel で始められ、API 従量課金も要りません。注意点は2つ。1つ目は、MCP サーバの提供は「今後」とされている予定の話なので、客先に「ファナック機は AI で設定変更できます」と言わないこと。2つ目は、承認者を自分1人にしないこと。デモが人間の最終承認を安全構造の一部に数えているのは、承認が形式化した瞬間に多重防御が1層に落ちるからです。客先立ち会いの変更なら、承認者と記録の残し方まで事前に決めておきます。
KEYENCE KV-8000 と KV STUDIO を対象に、既設プログラムの取得からオンライン監視、プログラム修正・転送までの基本操作を整理した連載第2章が公開された。筆者は個人的な備忘録と前置きしており、実設備では運転状態や変更内容を確認し現場の安全基準に従って作業する必要があるとしている。接続は USB と Ethernet の2通りで、USB 接続では PLC の IP アドレスを指定する必要がなく、Ethernet 接続では IP アドレスを指定する。既設設備では現在のネットワーク設定を確認し、IP アドレスなどを不用意に変更しないよう注意している。手順は、PLC 読出機能で既設プログラムを取得して変更前のバックアップとして保存し、モニタモードで入力デバイスや内部リレーの ON、データレジスタの値、ラダーの条件成立を確認し、デバイスの使用箇所が分からないときはクロスリファレンスで検索して該当ラダーへ戻る、という流れだ。
概要の続きを読む+
注目は転送の章で、転送対象には「プログラム」「ユニット設定情報」「イーサ/シリアル機能設定情報」「CPUシステム設定」などがあり、変更内容に応じて選択する。記事は、今回の操作では「全解除」を実行しても「プログラム」のチェックが残っていたため転送前に選択状態を確認したと書いている。また転送画面の「PLC内のプログラム(変数をクリア)」は通常のプログラム保守では不用意に選択しないようにしており、このチェックを外しただけで全ての変数値が必ず維持されるわけではないとも明記している。実際の保守作業で確認した4パターンは、ユニットエディタの設定変更=ユニット設定情報を PROGRAM モードで転送成功、KV-XLE02 の PLC リンク設定変更=イーサ/シリアル機能設定情報を RUN モードで転送成功、既存の毎スキャンモジュール修正=プログラムを RUN モードで転送成功、毎スキャンモジュールの追加=RUN モードでは転送できず PROGRAM モードで転送成功、というもの。いずれも今回の KV-8000 環境で確認した結果であり、EtherNet/IP の設定追加は同じ方法で対応できる可能性があるが未確認とされている。
この記事の価値は「RUN モードで転送できた/できなかった」を変更内容ごとに表にしている点です。明日やるべき最初の一歩は、自分が触る機種について同じ表を作り始めること。列は「変更内容/転送対象/転送モード/結果/確認日」の5つで、Excel か Google スプレッドシート1枚で足ります。記事が RUN で通った例(既存の毎スキャンモジュールの修正、PLC リンク設定の変更)と通らなかった例(毎スキャンモジュールの追加)を分けているように、自分の表も「成功」ではなく「どのモードで通ったか」を残すのが肝です。次の段階は、この表を客先の変更作業前チェックに組み込むこと。作業票に「転送対象の選択状態を目視確認した」「変数クリアのチェックを外した」の2行を足すだけで、今回の記事が引っかかった「全解除しても残るチェック」を手順で潰せます。さらに進めるなら、取得したプログラムの保存ルールを記事の例に倣って日付+before/after のフォルダに統一し、復旧に必要な設定情報まで取得できているかを確認項目にします。コストはゼロ、所要は1機種あたり30分程度です。注意点として、記事自身が「今回の環境で確認した範囲」「RUN モードで転送できることと設備の動作に影響がないことは別」と書いているとおり、表は自分で検証した行だけを信じる前提にしてください。他人の表をそのまま客先で使うのが一番危ない使い方です。
設定圧まで遅いなら供給圧力や吸着位置を疑え、到達後に持ち上げた瞬間だけ圧力が落ちるなら袋のしわ、スポンジ摩耗、荷姿変化が候補で、逆にリフト後も圧力を保てるならそこで初めて本搬送へ進める、という組み立てだ。2本目(日本時間11月1日14:10)は同じ発想をラインへ広げる。カメラがワークを見つけた、真空圧も到達した、AMR も目的地へ着いた——自律化ではこの三つを一つの READY にすると途中状態が見えなくなる、という問題提起で、FANUC が教示を減らす AI ビジョンと AMR 搭載向け DC コントローラを発表し、SMC が凹凸のある包装品向け真空グリッパを公開したことで認識・移動・把持を組み合わせやすくなる一方、PLC 側の受渡し条件は増えると述べている。推奨される状態分割は「搬送要求・ワークID→AMR到着→ドッキング→対象認識→姿勢確定→吸着→真空保持→低速持上げ→相手機READY→解放確認→受渡し完了」。認識後に台車が動けば座標は無効、真空が一度到達しても持上げ後に低下すれば搬送禁止、相手機が停止したらワークを保持したまま安全位置で待つ、通信復帰後もどちらがワークを持っているか照合してから再開する、という条件が挙げられている。異常処理も認識不能は再撮像、真空未到達は再吸着、保持低下は退避、ID不一致は隔離と分け、全部を「ロボット異常」にまとめないよう促している。
情報源
X / @shin_debug_ai (2026/11/01) / 出典を読む ↗
X / @shin_debug_ai (2026/11/01) / 出典を読む ↗
タッチパネルと PLC をレジスタで繋いでいる装置には、ほぼ同じ落とし穴があります。最初の一歩は、自分の装置で「同じボタンを2回連続で押したらどうなるか」を実機で試すこと。1回目しか効かないなら、この記事の通し番号がそのまま効きます。実装は、既存の「指令コード」ワードの隣に「指令通し番号」ワードを1本増やし、PLC 側は前回値との不一致でワンショットを立てるだけ。三菱系なら D レジスタ1点と比較命令、キーエンス系でも同様に数行で済みます。次の段階は受け付け確認です。PLC から「処理済み番号」を返すワードを1本用意し、画面側は値が返るまで次の指令を送らない。画面側にスクリプトを書けない機種でも、「指令中」ランプを処理済み番号の一致で消す形にすれば、オペレーターの連打そのものを減らせます。さらに進めるなら、記事と同じく電源投入時の扱いを決めてください——起動直後に残っていた指令を実行しない、という1行を入れるだけで「朝の電源投入で勝手に動いた」事故の芽を潰せます。コストは追加部品ゼロ、工数は1装置あたり半日程度。注意点は2つ。1つ目は、まとめ書きができない通信(1ワードずつ書く構成)では種類と階が食い違う瞬間が生まれるため、通し番号を最後に書く順序を固定することが要ること。2つ目は、この仕組みは取りこぼし対策であって安全対策ではない点です。非常停止やインターロックは、記事自身が練習用と断っているとおり、別系統のハード回路で持つ前提を崩さないでください。
TOPIC 05制御設計
生成AIが書いたGAS/VBAは「例外で止まらずに間違える」——模擬環境で当てた5つのレビュー観点
生成AIに書かせた GAS はたいてい一度で動くが、困るのは例外で止まらずに間違えるコードだ——という問題意識から、AI が書きそうな形の GAS を1本用意し、レビューの観点を1つずつ当てて何が見つかるかを並べた記事が公開された。題材は「期限が今日までで状態が『済』でない行を担当者にメールし、E列に『通知済』と書く」処理で、筆者は題材コードも表のデータも架空で、動かしたのは Node.js 上の小さな模擬環境であり実際の Google の環境では動かしていないと明記している。流す前に正しい結果を人が決めてから実行したところ、AI 風のコードは期限が空の行にもメールを送り、E列の「通知済」が送った行の1つ上に付き、同じ朝に2回動かすと同じ3通をもう一度送った。
概要の続きを読む+
原因として挙がった観点は5つ。観点1は、getValues() が空のセルを空文字で返し、JavaScript では空文字と日付の比較が true になるため期限が空の行が条件を通ってしまう一方、「未定」のような文字は比較が false になって黙って飛ばされること。観点2は、配列の添字とシートの行番号が1つずれていて、印が見出し行や期限前の行に付き、送りすぎと送り漏れが同時に起きるのに例外は1つも出ないこと。観点3は、同じ日に2回動いたときの二重送信と、トリガーを作る関数を2回呼ぶとトリガーが2つになる問題で、記事はトリガーが1人1スクリプトに20個まで作れて上限に当たるまで何も言われないと書いている。観点4は外へ出る所と数で、宛先の1日あたりの上限が無料のアカウントで100、Google Workspace で1,500、1回の実行は6分までであること(Quotas for Google Services を2026年11月1日に確認)、トリガー実行時の例外は画面に出ず「Summary of failures for Apps Script」という件名のメールでトリガーを作った人に届くことが挙げられている。観点5は権限で、GmailApp はリファレンス上どのメソッドも広い Gmail の権限を求めるのに対し、送るだけなら MailApp で足りる、という対比だ。記事の最後には13項目のチェックリストが置かれ、GAS 固有の4項目を除けば VBA のマクロにも当てはまるとされている。
「エラーが出ないまま間違える」は、AI に書かせたラダーやスクリプトで一番こわい失敗の形で、制御設計にそのまま刺さります。最初の一歩は、記事の観点1と観点2だけを自分のレビュー手順に移すこと。具体的には、AI が書いたコードやラダーを受け取ったら、流す前に「期待する結果」を紙に書いてから実行する——どの行が対象で、何通送られ、どのセル(どのデバイス)に何が入るか、を人が先に決めます。これを後回しにすると、コードの出力を見てから「たぶん合っている」と判断してしまい、コードと同じ見落としをする、というのが記事の指摘です。次の段階は、試験データに「空」「文字」「見出しだけ」「境目の日付」を必ず混ぜること。制御側に読み替えるなら、空のレシピ値、未設定の型番、0 と最大値、符号付きの境界です。ここまでは Google アカウントと Excel だけで、追加費用ゼロ・30分で始められます。さらに進めるなら、外へ出る所を数える習慣を持ち込みます。GAS ならメール送信や削除、制御なら出力 ON と転送、どちらも「本番へ向く前に自分だけへ向ける切り替え」をコードの先頭に置く、という形です。注意点は3つ。1つ目は、この記事の検証範囲が模擬環境であり実機の画面やトリガーでは確認されていないと筆者自身が書いていること——鵜呑みにせず自分の環境で再現してください。2つ目は、チェックリストを増やしすぎないこと。3つ目は、AI にコードを貼って相談するときにアドレスや ID、キーを架空の値へ置き換える項目が記事のリストにも入っている点で、客先情報を扱う自分の立場ではここが最優先です。
B
フィールド業務
4 TOPICS
TOPIC 06フィールド業務
AIエージェントが産業制御ソフトEPICSの未知の脆弱性4件を発見、調査からテストまで3時間49分
自律型 AI エージェントが、数十年の歴史を持つ広く使われているオープンソースのツールキット EPICS(Experimental Physics and Industrial Control System)から4件の脆弱性を発見したと報じられた。うち1件は、粒子加速器や核融合実験の制御に使われるシステム上で、リモートの攻撃者がコードを実行できる可能性のある重大な欠陥とされている。内訳は、CVE-2026-114595 が CVSS v3.1 で 9.8 と評価される深刻度「重大」の整数オーバーフローで、攻撃者が制御できる形でヒープ領域の範囲外に書き込みが行われリモートコード実行につながる可能性があるもの。
自分の使い方に直す話として読むなら、危ないのは「他人から送られてきた AI の共有リンクを、ログインしたまま開く」動作です。今日からできる一歩は、共有リンクを開くブラウザを分けること。業務で ChatGPT や Claude にログインしているブラウザプロファイルと、人から来たリンクを開くプロファイルを別にしておけば、同種の攻撃連鎖が再発しても、ログインセッションが乗る相手がいません。Chrome や Edge のプロファイル追加は無料で、設定は5分です。次の段階は、AI チャットに置く情報の線引きを見直すこと。この事例で持ち出されたのは、API 越しに取得できる利用者の非公開データでした。客先の図面番号、装置名、担当者名、パスワードを会話に残していれば、それが対象になります。自分の運用では「客先が特定できる固有名詞は入れない」を規則として先に決め、入れたくなったら架空の名前に置き換える——これは軸Aで取り上げた GAS レビューのチェックリストにも同じ項目があり、ここだけは手順にしておく価値があります。さらに進めるなら、社内や客先に AI 利用のルールがある場合、「共有リンクの送受信」を扱う行が入っているかを確認してください。コストはゼロです。注意点は、この脆弱性は OpenAI が修正済みと記事に書かれているため、今あわてて何かを止める必要はないこと。そして、対策として「HTML を表示する機能を全部切る」のような広い結論に飛ばないこと。記事が示しているのは、サンドボックスの外へ出る経路が1つあれば連鎖が成立するという構造の話です。
競技の話ですが、取り出せる型は「複数の AI に同じルールファイルを読ませ、排他が必要な作業は担当を1つに絞る」という運用設計で、これは1人で複数の AI セッションを回す自分の作業にもそのまま効きます。最初の一歩は、自分の作業フォルダに GOAL.md に相当する1枚を置くこと。中身は、今の目的1行と、守ること数行(客先名を書かない、確認していないことを断定しない、出力は全文で出す)だけで十分です。セッションを開くたびにこれを読ませれば、毎回同じ前置きを打つ手間が消えます。次の段階は、記事が5回の衝突で学んだ排他の考え方を取り込むこと。自分の場合、同じプロジェクトファイルを2つのセッションに同時に触らせない、転送や送信のような取り消せない操作は1つの窓口に限る、という2点に落ちます。さらに進めるなら、記事の振り返りにある「実行する担当と、次の手を決める担当を分ける」を真似て、調査・下書きをさせるセッションと、最終確認をさせるセッションを分ける運用を試してください。自己採点を避ける意味でも効きます。コスト感は要注意で、記事の集計は3人・1日で合計約25.3億トークン、推定約944ドルです。Pro や Max の定額プランで回す前提なら金額は変わりますが、「エージェントを並べれば勝てる」のではなく「渡す道具と手順で差がつく」と当事者が書いていることの方が示唆的です。注意点として、記事は下書きを Claude Code が作り人が加筆修正したと明記しています。AI どうしの連絡を人が読まなくなる運用は、記録が残る競技なら成り立ちますが、客先の設備を触る作業では成り立ちません。自分の業務に持ち込むのはルールファイルと排他の部分までに留めるのが無難です。