このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
howto:open_plc:index.html [2023/11/03 16:27] Staff_Ujiie [ソフトウェアの紹介] |
howto:open_plc:index.html [2024/04/21 09:44] (現在) Staff_Ujiie [PLCの国際基準 IEC61131-3] |
||
---|---|---|---|
行 6: | 行 6: | ||
\\ | \\ | ||
===== ソフトウェアの紹介 ===== | ===== ソフトウェアの紹介 ===== | ||
- | * **OpenPLC**とは、個人の方が作成した、オープンソースで無償で使えるPLCソフトウェア(パソコンでプログラムを作成するエディタと機器に組み込んでプログラムを実行するランタイムのセット)になります。\\ 運転中のPLCの状態監視・制御をするSCADAの機能は含まれていませんので、使いたい場合は他のSCADAソフト(Modbus/ | + | * **OpenPLC**とは、個人(Thiago Ralvesさんというやさしそうなおじさんです。ブラジルの方のようですね)が作成した、オープンソースで無償で使えるPLCソフトウェア(パソコンでプログラムを作成するエディタと、制御機器に組み込んでプログラムを実行するランタイムのセット)になります。\\ 運転中のPLCの状態監視・制御をするSCADAの機能は含まれていませんので、使いたい場合は他のSCADAソフト(Modbus/ |
* PLCの国際基準 IEC61131-3に準拠しており、5種類のPLCプログラミング言語に対応しています。IEC61131-3の普及を目的としたPLCOpenという国際団体の標準エディターがOpenPLCエディターのベースとなっているようです。 | * PLCの国際基準 IEC61131-3に準拠しており、5種類のPLCプログラミング言語に対応しています。IEC61131-3の普及を目的としたPLCOpenという国際団体の標準エディターがOpenPLCエディターのベースとなっているようです。 | ||
- | | + | * ランタイムをインストールしてPLCとして動かせるハードウェアは幅広く、以下が公式サポートされています([[https:// |
- | + | ||
- | * 基本、英語のソフトになります。[[https:// | + | |
- | + | ||
- | | + | |
* Arduino Uno / Nano / Leonardo / Micro | * Arduino Uno / Nano / Leonardo / Micro | ||
* Arduino Mega / Due | * Arduino Mega / Due | ||
行 34: | 行 30: | ||
* Linux (generic target as a soft-PLC) | * Linux (generic target as a soft-PLC) | ||
- | * 最近(2022/ | ||
- | * ソフトはバグ対応や機能アップの改修が随時続けられており、同じレビジョンでも日単位で更新されています。\\ エディター内のメニューでプログラムの更新をしてアップデートしたらエラーが出たので、OpenPLCのフォーラム内で同様の内容のエラー報告を探して見つけたところ、[[https:// | + | * 基本、英語のソフトになります。[[https:// |
- | \\ | + | |
- | ===== ハードウェアについて ===== | + | |
- | 前項のように色々なハードウェアでOpenPLCは動かせるわけですが、PLC製品として売っている以外の汎用のコンピュータの場合、出力の電流・電圧が小さく、いろいろな機器を接続するにはそのためのハードウェアが必要になります。 | + | |
- | * {{ : | + | |
- | * {{ : | + | |
- | * 接続部分の回路自体はそれほど難しいものではないので、慣れてきたら自作するのもよさそうです。 | + | * 2022/ |
- | * 出来合いのPLC製品ということでは、Arduino公式にArduino-proというシリーズがあり、その中の[[https:// | + | * このソフトの使い方を学ぶには、まず第一に公式サイトのドキュメントの説明をよく読むことです。不具合が出たと思って慌てても、よくよく見たら説明に書いてあったということが往々にしてあります。 |
- | \\ | + | |
- | ===== PLCの国際基準 IEC61131-3 ===== | + | |
- | * 生産設備のオートメーション等に多く使われてきたPLC(プログラマブル・ロジック・コントローラー)のプログラムを共通化することで、異なるメーカーのPLCでも同じプログラムが再利用できるような効率的な環境を目指す国際基準です。PLCプログラムの仕様を詳しく規定しています。 | + | |
- | * メーカー独自仕様のPLCが広く普及していた日本も今後基準への対応が進むと思いますので、新たに始める際はこの基準を勉強すべきでしょう。 | + | * 次にYouTubeの動画も、そこでしかわからないだろう内容がありますので見ておいたほうが良いです。動画の説明内容を見ていて、頭のいい人だなと思います。 |
- | \\ | + | * 後はサイト内の[[https:// |
- | ===== PLCラダープログラムの作り方 ===== | + | |
- | 実際にPLCプログラムを作成するための、ラダーダイアグラム(ラダー図)でのプログラム作成について説明します。\\ 実際に私がやってみた内容が大半ですので、もっといい方法もあったりすると思います。\\ | + | |
- | * OpenPLCは、国際基準 IEC61131-3準拠なので、基本はその仕様のもとで動くラダープログラムになりますが、中にはOpenPLC固有の部分や、使うハードウェアの制約を受けている部分もあります。 | + | |
- | * 初心者にもわかりやすくてかつリファレンスにも使える参考書があれば都合がよいのですが、市販の参考書でこれというものは見つけられませんでした。私自身は、上述の[[activities: | + | * IEC61131-3に準拠しているため、PLCプログラミングの仕様の詳細はそちらを参照するということで、プログラミングの仕方についてもマニュアルはありません(Learningのページに今後作るようですが)。 |
- | * {{ : | + | * ソフトはバグ対応や機能アップの改修が随時続けられており、同じレビジョンでも日単位で頻繁に更新されています。すでに使っているエディターを最新状態にするのは、最新版のチェックメニューがあり、そこから更新が出来るようになっています。\\ \\ 以前にその機能で更新をしてアップデートしたらエラーが出たので、OpenPLCのフォーラム内で同様の内容のエラー報告を探して見つけたところ、[[https:// |
- | \\ | + | |
- | ==== ラダーダイアグラムでのプログラミングの基本 ==== | + | * エディターを最新版に更新するのは、メニューからチェックと更新が出来るようになっていますが、 |
- | 初心者でもある私が、初めての人向けにラダーダイアグラムについて簡単に説明します。正確とは言い切れませんが、最初に疑問を抱きがちな点の理解の助けになればと思います。 | + | (2024/ |
- | こちらへ[[howto:open_plc: | + | |
\\ | \\ | ||
+ | ===== ハードウェアについて ===== | ||
+ | 前項のように色々なハードウェアでOpenPLCは動かせるわけですが、PLC製品として売っている以外の汎用のコンピュータの場合、出力の電流・電圧が小さく、いろいろな機器を接続するにはそのためのハードウェアが必要になります。 | ||
+ | * {{ : | ||
+ | * {{ : | ||
- | ==== ケース別のプログラム手法<入力> ==== | + | * 接続部分の回路自体はそれほど難しいものではないので、慣れてきたら自作するのもよさそうです。 |
- | 動作の起点となる情報を取り込んで利用する仕組みを作りたいときの手法です。 | + | |
- | * [[howto: | + | |
- | * [[howto:open_plc:time_period|自動運転の時間帯を設定する]]:日中のみの稼働とか時間を区切りたいとき | + | * 出来合いのPLC製品ということでは、Arduino公式にArduino-proというシリーズがあり、その中の[[https:// |
- | * ちらちらと不定期にON/ | + | * Arduino公式が、産業用というか従来の製品に比べ大きめのPLC製品を出してきて、この分野に手を広げている印象がある一方で、OpenPLCは、PLCを小さなマイコンボードで使えるようにしようと、対象的に進んできている印象があります。マイコンチップもどんどん高性能で小さく安くなっており、それをPLCとして使える手段が加わることによって、できることの可能性が大きく広がってきています。(2024/ |
+ | \\ | ||
- | * 非接触スイッチで動作させるものに留意する点: | + | ===== マイコンボード(Arduino純正/互換機)への対応について ===== |
+ | 前項に書いたように、OpenPLCはArduinoを始めたとした小さなマイコンボードでの利用をしやすくする大きな変更をいくつか行ってきました。短期間で状況もかなり変わってきていますので、少し整理してみます。 | ||
- | \\ | + | * 私がOpenPLCを雑誌記事で知った2020年あたりでは、Ardunoボードは、OpenPLCのシステム上ではslaveデバイスとして、ラズベリーパイやパソコンなどのhostデバイスに接続して、Hostの手足として、接続する機器の数を増やしたり、利用するエリアを広げたりする役割に限られていました。 |
- | ==== ケース別のプログラム手法<出力> ==== | + | * 一口にArduinoボードといっても、Arduino IDEでプログラムを作ってマイコンに書き込むArduinoの仕組みが、その互換機や他の様々なマイコンボードでも利用されるようになっています。\\ OpenPLCでは、Arduino純正製品+αを公式対象機器としていますが、自分で設定すれば対象外のボードでも使うことが出来ます(Arduino IDEが使える製品なら比較的容易とのこと)。 |
- | 接続する機器を自動運転するアウトプットに関する手法です。 | + | |
- | * [[digitally_analogout|アナログ出力をデジタルに使う]]:アナログ出力チャンネルをデジタル的なON/ | + | |
- | * 複数の機器をリレー運転させる。 | + | * 2021/ |
- | \\ | + | * さらに、先日(2024/ |
+ | (2024/ | ||
+ | ===== PLCの国際基準 IEC61131-3 ===== | ||
+ | * 生産設備のオートメーション等に多く使われてきたPLC(プログラマブル・ロジック・コントローラー)のプログラムを共通化することで、異なるメーカーのPLCでも同じプログラムが再利用できるような効率的な環境を目指す国際基準です。PLCプログラムの仕様を詳しく規定しています。 | ||
- | ==== ケース別のプログラム手法<その他> ==== | + | * メーカー独自仕様のPLCが広く普及していた日本も今後基準への対応が進むと思いますので、新たに始める際はこの基準を勉強すべきでしょう。 |
- | 上記の入出力の間をつなぐロジックの組み立て方など。 | + | |
\\ | \\ | ||
- | ※各手法でリンクが無いものは今後中身の記事を作成して追加していきます(作成予定の項目です)。 | + | ※このページの分量が増えたので、[[howto: |
- | \\ | + | ※私が理解している内容で書いているので、もしかしたら誤解や理解不足等あるかもしれません。元情報へのリンクをつけていますので、活用の際はご自分で確認・検証をお願いします。 |