PLCによる展示物の自動運転
Raspberry Piを使ったPLC(プログラマブル・ロジック・コントローラ)を利用して、展示スペース内の自動運転に挑戦します。
現在も照明はタイマーでON/OFFしてますが、常時不在となる展示スペース内でさらに動くものの展示ができるようにしたいです。
きっかけ
もともと雑誌のInterface誌の連載を見ていて、展示スペースでモーターを使った展示物を自動で動かす仕組みを作れるのではと思ったのがきっかけです。記事をまとめた書籍(基板提供付き、CQ出版社)も出版されたので、それを買っていろいろ調べ始めました。
PLC(プログラマブル・ロジック・コントローラ)について
あらかじめ作成したプログラムに従って、接続された機器を自動運転するもの。
ホームオートメーション、IOT機器の制御、建物管理、工場の生産機械のオートメーション等に使用されています。
国内では、三菱製の「シーケンサ」に代表される自動化関連機器の豊富なラインアップがあります。
1つのPLCにたくさんの機器を接続してそれらを自由に制御するシステムが組めます。機器の入れ替えや制御方法の見直しなどが容易にできるのが特徴。生産ラインなら製造機械の入れ替え、ライン構成の変更等にも柔軟に対応できます。
制御用のプログラム作成に使用される言語(ラダー言語等)も、習得のハードルが低いとのことです。
Interface誌連載のラズパイPLCシステム
オートメーションの分野で使われてきたPLCにおいて、オープンソースのソフトが出てきて、手軽に自作で手を出せる環境が揃ってきたとのことです。
記事中では、ラズベリーパイをコントローラとして利用できるオープンソースのOpenPLCを使ってPLCシステムを作り、様々な利用方法の実験を紹介しています。
別冊の書籍版は記事中で使われている専用基板提供のおまけ付きで、部品を入手してはんだ付けすれば同様の実験が始められます(部品セットも別途市販(秋月電子通商 DC24VアイソレートI/O基板パーツセット、ArduinoアナログI/O拡張基板パーツセット)されています)。最近の半導体不足でラズベリーパイの入手が一番のネックかもしれません。
この基板に接続する周辺部品については用途や必要に応じて買い足してゆくことになります。基礎知識がないだけに品物を探すことが結構大変で疲れました。
書籍で出てくるような機械式リレーは、C接点リレーが大抵生産終了で入手できず、選択肢がありません。また、リレーユニットとソケットの対応や規格がよくわからず、どれを選べばよいか悩みました。
OpenPLC
OpenPLCは、個人がオープンソースで開発した、無償で利用できるPLCソフトです。
使い方
プログラムを作るエディタ/ハードウェアに組み込む実行環境のランタイム/監視用ソフトのSCADAの2つに分かれており、手順に従ってしばらく動かしてみているとすぐ慣れると思います。難しいかどうかは、むしろこのソフトがどうという以前に、PLCというシステムの理解に左右されると思います。
Web上では、PLC関連というと三菱のシーケンサのプログラム関連の記事が多く出てきますが、それらよりもこちらの方がわかりやすい感じがします。
Unipi1.1/Liteがサポートされています(UniPiのサイトではOpenPLCの詳しい情報は載せていないため、使い方はOpenPLCのサイトを参照します。以前はUniPi1.1用のインストラクションがあったのですが、サイトリニューアルで無くなったので、今後は
"Linuxへのインストール"を参照することになります。
参考:OpenPLCの使い方
市販製品の活用
離れた場所にある展示スペースに設置することを考えると、自動運転を始めたらあまり止められなくなるので、設置(本番)用と手元での実験用と2台のPLC機器があるのが良さそうだと思えてきました。書籍の基板は手元用にして、もう1台の調達を考えます。
同じものをもう1台でも良いのですが、Raspberry Piをベースにした似たような市販製品(拡張ボード)が幾つか出ていることがわかったので、その中で良さそうなもの(UniPi1.1)を選びました。市販製品だと手作りよりは信頼性が高いので(作りが良いとは限りませんが)、安心感につながります。
Raspberry piも趣味の範疇から抜け出して、産業用をうたったパッケージ(電源や放熱の信頼性を確保した製品だと思います)も出ていますね。
Unipi製品
-
家庭(スマートホーム)から建物管理、工場での製造までのオートメーションのためのPLC、IOTゲートウェイ、センサ、システム等の開発・製造を行っているチェコの会社のようです。
制御ソフトウェアとして、オリジナルのMarvis、オープンソースのNodeRED等多くのソフトウェアが対応しており、一部の製品はOpenPLCにも対応しています。
Raspberry Piを取り付けるUnipi1.1/lite以外には、Raspberry Piがあらかじめケース内部に入っているものや、制御部も全部オリジナルのものなど様々な製品ラインアップがあります。
UniPi1.1
特徴
使い方
購入したボードにRaspberry Pi(2~4B)を取り付けるだけです。電源(5V 1.5A/2A~)は、Raspberry Pi側に給電することも、分けておくこともできます。
デジタル入力用に、センサー等の電源として+12Vをボードから給電できます。
リレー(250VAC@5A/24VDC@5A)も搭載済ですので、後は必要な機器を配線するだけです。
ソフトウェアはRaspberry Piにインストールします。
Raspberry Piの設定
UniPi1.1に乗せたRaspberry PiにOpenPLCを設定します。
最新版のOSをインストールし、OpenPLCのランタイムをインストールします。OpenPLCのページでは、UniPi1.1はUniPi Industrial Platformという呼び名が使われています。
書籍記事を参考に、Raspberry PiとWifiでつないでPLCプログラムを送り込めるように、Wifiルータの設定をします。
その後、他の機器からWifiのSSIDが見えなくなる現象が起きました。書籍中にもこの話があったので、システム起動時にWifi機能をOFF/ONするような設定を行うことで対応しました。
Raspberry Piのシャットダウンが適正にされていないときに起きる不具合のようですが、単体で動かしているときは、運用上避けられないと思います。パワースイッチが欲しくなります(ちなみにBeagle Bone Blackでは基板上にパワースイッチが付いていて、ワンタッチでシャットダウンプロセスを開始できます)。
ラダープログラム
PLCをプログラムする言語は幾つかありますが、過去からよく使われてきたのはラダー図になります。今回はラダー図を学んでプログラムを作ります。
はしご状に引いた線の途中にいろいろな役割をさせるブロックを配置した図がプログラムになります。PLCを動かすと、その図を左から右へ、上から下へと実行し、一通りこなしたら、最初からまた延々と繰り返し実行し続けます。
基本のブロックはスイッチとコイル(リレーの一部分)で、実際の入出力と対応させることで周辺機器から信号を受け取ったり、機器を操作したりします。いろいろな処理ができるように、内部処理用のスイッチやコイル、各種機能用の専用ブロックも用意されています。これらをつないで組み合わせて、目的の自動処理を実現するラダー図を作ってゆくことになります。
(つづく)
:ラダープログラムの勉強、UniPi1.1によるPLCシステムの実際、展示スペースでの自動運転の状況等々…現在進行中