そうした状況を打破すべく作られているのがOpenPLCになります。オープンソース・ソフトウェアとして開発されており、対応デバイスの中にRaspberry Piも含まれています。今回はそんなOpenPLCを紹介します。
OpenPLCのインストール
OpenPLCのインストールはとても簡単です。ただしコンパイルでかなり時間がかかります。(筆者のラズパイ0環境では1時間以上かかりました)
必要があれば apt-get install git
でGitをインストールしておきます。
git clone https://github.com/thiagoralves/OpenPLC_v3.git cd OpenPLC_v3 ./install.sh rpi
OpenPLCはRaspberryPi(Raspbian)だけでなくUniPi NeuronやDockerコンテナの上でも起動する事ができます。./install.sh rpi
はどのプラットフォーム上で構築するかのオプションです。今回はRaspberryPiを用いるのでrpi
をオプションに選んでいます。
インストールが終わったら一度再起動します。そうするとWebサーバが立ち上がっていますので、 http://(Raspberry PiのIPアドレス):8080
でアクセスします。


管理画面のID、パスワードは両方ともopenplcとなっています。
セットアップ
まず最初にRaspberry Piのピン配置を設定します。これはHardwareメニューにて行います。


HardwareでRaspberry Piを選択して、設定を保存します。そうするとRaspberry Pi上でコンパイルが実行され、インストールが行われます。


なお、OpenPLCでのピン配置は以下のようになっています。名称が異なるので注意してください(via openplc | Getting Started – RPi)。
こちらはHello World的なプロジェクトを動かしたところです。


[youtube https://www.youtube.com/watch?v=BDUs7uxNyH4&w=560&h=314]
OpenPLC Editorについて
PLCの世界ではラダー言語と呼ばれる図を使って制御を図示します。テキストで書くこともできますが、WindowsとLinux用のGUIエディタが提供されています。それがOpenPLC Editorです。
こちらがWindows版の画面です。Windows用といっても実際にはCygwinを介してLinux版が立ち上がっているようです。

スイッチやLEDなどを定義して、それらを線で結びつけます。回路図と同様に設計を行います。

シミュレータも入っており、OpenPLC Editor上で動作チェックも可能です。

最終的にラダー言語のファイルをダウンロードします。このファイルはOpenPLCでアップロードして実行できます。

まとめ
条件がシンプルなプロジェクトであれば、OpenPLCを使ってRaspberry Piの回路を制御することもできるでしょう。さらに産業用機械であったり、Arduinoなども制御できるようになっています。研究用途から実際の工場などでも活躍できそうです。
]]>