
工場の床には、何年も止まらずに動いてきたPLCやコントローラーが並んでいる。稼働のデータは出ているが、独自プロトコルと閉じた産業用ネットワークの内側にあり、外からは手が届かない。設備を丸ごと入れ替えれば解決するものの、費用も止める時間も大きい。Mukesh Sankhla氏は、既存の機械をそのまま残したまま外からデータを取り出す小型ゲートウェイ「Edge Link」を作り、組み立て手順とコード、筐体の3Dデータを公開した。
本体はDINレールに載る大きさで、機械の制御盤の中に収まる。ModbusやRS-485といった産業用の通信規格で古い制御装置と会話し、データの読み出しと制御指令の送出を両方こなす。取り出したデータはMQTTで流し、UNS(統一名前空間)と呼ぶ構造に整理する。工場側が既に使っているダッシュボードや分析基盤から、そのまま参照できる形になる。
設計の中心にあるのは、なぜArduino UNO Qを選んだかという判断だ。Arduino UNO QはLinuxが動くプロセッサーと、リアルタイム制御用のマイコンを1枚に載せている。Sankhla氏はこの構成を、マイコン側に機械との通信とGPIOを任せ、プロセッサー側で機械学習の推論を回すために使った。データをクラウドへ投げて返事を待つのではなく、機械のそばで判断させる。回線が切れても監視が止まらない。

検証のために、Sankhla氏は試験用のPLCまで自分で書いた。Siemens S7-300のデジタルツインをPythonで作り、LED電球の生産ラインを5工程分そっくり動かす。基板実装とリフロー、インサーキットテスト、筐体の圧入とはんだ付け、ディフューザーの設置、最終の光学検査とバーンインまでを順に流す。実機のPLCと同じく、コールドスタートのあと約10ms周期でスキャンを繰り返し、稼働率や電力、アラームまで吐き出す。実際の生産ラインを借りずに、通しで試せる環境を用意した形だ。
予知保全のモデルはEdge Impulseで学習させ、工程ごとに1つずつ計6つを基板上で並列に走らせる。第4工程のモデルは検証データで98.7%を出し、推論1ms、RAM 1.4KB、フラッシュ15.3KBに収まった。一方でライン全体を見るモデルは当初86.2%にとどまり、空気圧縮機の圧力低下と電源の電圧変動を取り違えた。窓幅や学習率を変えて96.0%まで上げたが、この2つの混同は残ると本人が書いている。
Sankhla氏は、UNO Qを単独のLinux機として使ったときは画面操作が重く、機能によっては期待どおりに動かなかったとも書く。OSと開発環境がまだ育っている途中で、UIの印象だけでハードウェアを判断するなという注釈付きだ。なおHackster上の公開はMITライセンスとされているが、GitHubリポジトリにライセンス本文のファイルは置かれていない。

