はじめに
製造現場のDX、スマートファクトリー……。
そんなキラキラした言葉の裏側で、私たちはいつも「データ取得」という泥臭い壁にぶつかります。
「SCADA(監視制御システム)を自作して、モダンなWeb技術で現場を可視化したい!」
そう思っても、高価な産業用PCや、複雑なライセンス、そして「現場の生データ」をどう安定して持ってくるかという課題が立ちはだかります。
「お金がないなら、知恵とコードで解決すればいい」
そんな思いから、私はSimpleEdgeGatewayというリポジトリをGithubに作成しました。
私がやりたいこと
PLCSimからSCADAへ。データが旅をするための道を作る
以前、私はPLCSim(PLCシミュレータ)を自作しました。
これは「データの源泉」です。
そして最終的には、ReactやPythonを駆使した「自作SCADA」という「データの海」に辿り着きたい。
今回作るのは、その間を繋ぐ**「データのパイプライン(中継基地)」**です。
- PLCSim(源泉):生の数字を吐き出す
- SimpleEdgeGateway(中継):←今回ココ! 数字を意味のある情報に変換・蓄積し、APIで提供する
- Self-made SCADA(海):美しく可視化し、現場の意思決定を支える
システム構成図
本プロジェクトの全体像です。
SQLiteを中心に、各機能が自律的に動きながらデータをSCADAへと繋いでいきます。
SimpleEdgeGatewayのこだわり
ただの中継プログラムではありません。
現場で「使われている」ものを目指して、以下の設計を固めました。
- SQLite-centric: プロセス間連携のハブにSQLiteを据える。設定変更もデータ蓄積も、すべてDBを通すことで堅牢かつ柔軟に。
- Single Binary: 現場に「Pythonを入れてください」とは言えない。PyInstallerで1つの実行ファイルにまとめ、WindowsでもLinuxでも置くだけで動くポータビリティを。
- SCADA-Friendly: Zabbix APIのようなJSON-RPCやREST APIを搭載。未来の自分がSCADAを実装する時に「最高に使いやすい!」と思えるインターフェースを。
・・・仕事でzabbixを使っているので、いつかはzabbixのようなアプリを作ってみたいという憧れがありました。。。
現在の状況
「コードを書く前に、徹底的に考える」
まずはGitHubに、アーキテクチャ設計、DB設計、収集ロジック、ロードマップをすべてドキュメント化して公開してみました。
全部やり切れるか、、、不安ではありますが。。。
ドキュメントのステータスは Design Freeze(設計凍結)。
つまり、もう迷いはありません。あとは作るだけです。
決意表明
正直、一人でこれだけのスタックをカバーするのは無謀かもしれません。
でも、現場のエンジニアが「自分で作ったシステムで、現場が変わった」と言える世界を、私は見てみたい。
このプロジェクトを通じて、以下の3つの自信をつけたいと思っています。
- お金をかけなくても、オープンソースとエンジニアリングで高度な監視基盤は作れる。
- SQLiteはエッジサーバーにとって最強の武器である。
- 自作SCADAへの道は、ここから始まる。
進捗は振り返り出来るタイミングで順次QiitaとGitHubに残していきたいと思っています。
もし同じように「現場を自分の手で良くしたい」と思っている方がいれば、ぜひ繋がってください!
やるぞ!