howto:open_plc:index.html
文書の過去の版を表示しています。
目次
OpenPLCの使い方
展示スペースでの自動運転のためのプログラム作成と運転のためにOpenPLCを使い始めました。無人での照明やモーター駆動、センサ検知等の自動運転を可能にしてくれているので、貢献度はかなりのものです。
使う用途が限られていることと、ラダープログラムがそれほど難しくないので、最初ちょっと覚えればすぐ使い始められ、使いながら必要に応じてレベルアップすればよいだけなので気が楽です。
日本語の情報があまり多くないのと、私自身初めての分野なので、基本的なところから使い方を整理していきます。
ソフトウェアの紹介
- OpenPLCとは、個人の方が作成した、オープンソースで無償で使えるPLCソフトウェア(パソコンでプログラムを作成するエディタと機器に組み込んでプログラムを実行するランタイムのセット)になります。
運転中のPLCの状態監視・制御をするSCADAの機能は含まれていませんので、使いたい場合は他のSCADAソフト(Modbus/TCPサポートのもの)を利用します。
- PLCの国際基準 IEC61131-3に準拠しており、5種類のPLCプログラミング言語に対応しています。IEC61131-3の普及を目的としたPLCOpenという国際団体の標準エディターがOpenPLCエディターのベースとなっているようです。
- IEC61131-3準拠のため、PLCプログラミングの仕様の詳細はそちらを参照するということで、プログラミングの仕方についての詳細なマニュアルはありません。その代わりユーザーからの困り事相談や色々なやりとりは、サイト内のフォーラムへの投稿を通して行われるスタイルになっています。作者や他の会員が各投稿への回答サポートを行っています。
公式ドキュメントで解決できない困ったことが出てきたら、フォーラムの過去の投稿に関連するものが無いか検索してみるのが基本です。その上でフォーラム内で質問(会員登録要)もできます。
- 基本、英語のソフトになります。サイトも英語です。
- ランタイムをインストールしてPLCとして動かせるハードウェアは幅広く、以下が公式サポートされています(OpenPLCサイト(2022/05)より)。Raspberry Pi、一部の市販PLC(Raspberry Pi拡張)製品、Arduino、マイコン、パソコンなどでも使えます。
- Arduino Uno / Nano / Leonardo / Micro
- Arduino Mega / Due
- Arduino Nano Every / IoT / BLE
- Arduino RB2040 Connect
- Arduino Mkr / Zero / WiFi
- Arduino Pro (Machine Control and EDGE)
- Controllino Maxi / Automation / Mega / Mini
- Productivity Open P1AM
- ESP8266 (nodemcu)
- ESP32
- Raspberry Pi 2 / 3 / 4
- PiXtend
- UniPi Industrial Platform (UniPi 1.1)
- Neuron PLC
- FreeWave Zumlink
- FreeWave ZumIQ
- Windows (generic target as a soft-PLC)
- Linux (generic target as a soft-PLC)
- 最近(2022/05)OpenPLCサイトが大幅リニューアルされ、ソフトもバージョンアップされました。まだ工事中のページも多いです。先日Youtubeチャンネルもできました。
PLCの国際基準 IEC61131-3
- 生産設備のオートメーション等に多く使われてきたPLC(プログラマブル・ロジック・コントローラー)のプログラムを共通化することで、異なるメーカーのPLCでも同じプログラムが再利用できるような効率的な環境を目指す国際基準です。PLCプログラムの仕様を詳しく規定しています。
- メーカー独自仕様のPLCが広く普及していた日本も今後基準への対応が進むと思いますので、新たに始める際はこの基準を勉強すべきでしょう。
PLCラダープログラムの作り方
実際にPLCプログラムを作成するための、ラダーダイアグラム(ラダー図)でのプログラム作成について説明します。
実際に私がやってみた内容が大半ですので、もっといい方法もあったりすると思います。
- OpenPLCは、国際基準 IEC61131-3準拠なので、基本はその仕様のもとで動くラダープログラムになりますが、中にはOpenPLC固有の部分や、使うハードウェアの制約を受けている部分もあります。
- 初心者にもわかりやすくてかつリファレンスにも使える参考書があれば都合がよいのですが、市販の参考書でこれというものは見つけられませんでした。私自身は、「インターフェース」誌別冊のPLCの本とOpenPLCのサイトの情報などを参考にしています。
ラダーダイアグラムでのプログラミングの基本
初心者でもある私が、初めての人向けにラダーダイアグラムについて簡単に説明します。正確とは言い切れませんが、最初に疑問を抱きがちな点の理解の助けになればと思います。
こちらへ「ラダープログラミングことはじめ」。
ケース別のプログラム手法<入力>
動作の起点となる情報を取り込んで利用する仕組みを作りたいときの手法です。
- システムの日時情報を利用する:時刻に合わせて何かさせたいとき
- 自動運転の時間帯を設定する:日中のみの稼働とか時間を区切りたいとき
- ちらちらと不定期にON/OFFするセンサ(焦電センサ)のデジタル信号から運転開始のためのON信号を作成する:自動ドアの人検知
- 非接触スイッチで動作させるものに留意する点:
ケース別のプログラム手法<出力>
ケース別のプログラム手法<その他>
上記の入出力の間をつなぐロジックの組み立て方など。
※各手法でリンクが無いものは今後中身の記事を作成して追加していきます(作成予定の項目です)。
howto/open_plc/index.html.1665981328.txt.gz · 最終更新: by Staff_Ujiie

