ふたつぼし inside

制作・活動内容、機材の使い方、作り方などなど

ユーザ用ツール

サイト用ツール


howto:open_plc:index.html

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
howto:open_plc:index.html [2023/11/03 16:29]
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/TCPサポートのもの)を利用します。+  * **OpenPLC**とは、個人(Thiago Ralvesさんというやさしそうなおじさんです。ブラジルの方のようですね)が作成した、オープンソースで無償で使えるPLCソフトウェア(パソコンでプログラムを作成するエディタと、制御機器に組み込んでプログラムを実行するランタイムのセット)になります。\\ 運転中のPLCの状態監視・制御をするSCADAの機能は含まれていませんので、使いたい場合は他のSCADAソフト(Modbus/TCPサポートのもの)を利用します。
  
   * PLCの国際基準 IEC61131-3に準拠しており、5種類のPLCプログラミング言語に対応しています。IEC61131-3の普及を目的としたPLCOpenという国際団体の標準エディターがOpenPLCエディターのベースとなっているようです。   * PLCの国際基準 IEC61131-3に準拠しており、5種類のPLCプログラミング言語に対応しています。IEC61131-3の普及を目的としたPLCOpenという国際団体の標準エディターがOpenPLCエディターのベースとなっているようです。
  
-  * IEC61131-3準拠のため、PLCプログラミングの仕様の詳細はそちらを参照するということで、プログラミングの仕方についての詳細なマニュアルはありません。その代わりユーザーからの困り事相談や色々なやりとりは、[[https://openplcproject.com/|サイト]]内のフォーラムへの投稿を通して行われるスタイルになっています。作者や他の会員が各投稿への回答サポートを行っています。\\ 公式ドキュメントで解決できない困ったことが出てきたら、フォーラムの過去の投稿に関連するものが無いか検索してみるのが基本です。その上でフォーラム内で質問(会員登録要)もできます。 +  * ランタイムをインストールしてPLCとして動かせるハードウェアは幅広く、以下が公式サポートされています([[https://autonomylogic.com/docs/openplc-overview/|OpenPLCサイト(2024/04)]]より)。Raspberry Pi、一部の市販PLC(Raspberry Pi拡張)製品、Arduino、マイコン、パソコンなどでも使えます。Arduino IDEで開発できるArduino純正以外の製品も対応できるようです。
- +
-  * 基本、英語のソフトになります。[[https://openplcproject.com/|サイト]]も英語です。 +
- +
-  * ランタイムをインストールしてPLCとして動かせるハードウェアは幅広く、以下が公式サポートされています([[https://openplcproject.com/docs/openplc-overview/|OpenPLCサイト(2022/05)]]より)。Raspberry Pi、一部の市販PLC(Raspberry Pi拡張)製品、Arduino、マイコン、パソコンなどでも使えます。+
     * 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/05)[[https://openplcproject.com/|OpenPLCサイト]]が大幅リニューアルされ、ソフトもバージョンアップされました。まだ工事中のページも多いです。先日[[https://youtu.be/cNg-tXZynJE|Youtubeチャンネル]]もできました。 
  
-  * ソフトはバグ対応や機能アップの改修が随時続けられており、同じレビジョンでも日単位で更新されています。\\ エディターのメニューでプログラムの更新をしてアップデートしたらエラーが出たので、OpenPLCのフォーラム内で同様の内容のエラー報告を探して見つけたところ、[[https://autonomylogic.com/download|OpenPLCプロジェクトのホームページ]]からダウンロードしたインストーラで再インストールするよう指示されていました。半月ほど戻った日付のリリース版になりましたがそれでエラー解消しました。\\ エディター内の更新プログラムは、とにかくその時点の最新版に置換えようです。それで不具合が出たら、公式ページ最新版(安定版?)に更新してみるといと思います。(2023/11/03)+  * 基本、英語のソフトになります。[[https://autonomylogic.com/|サイト]]も英語です。 
 + 
 +  * 2022/05に[[https://autonomylogic.com/|OpenPLCサイト]]が大幅リニューアルされ、ソフトもバージョンアップされました。[[https://youtu.be/cNg-tXZynJE|Youtubeチャンネル]]も出来ました。サイトのLearning/Basicsのページはこの動画ページにリンクされています。 
 + 
 +  * このソフトの使い方を学ぶには、まず第一に公式サイトのドキュメントの説明をよく読むことです。不具合が出たと思って慌てても、よくよく見たら説明に書いてあったということが往々にしてあります。 
 + 
 +  * 次にYouTubeの動画も、そこでしかわからないだろう内容がありますので見ておいたほうが良いです。動画の説明内容を見ていて、頭のいい人だなと思います。 
 + 
 +  * 後はサイト内の[[https://openplc.discussion.community/|フォーラム]]で、個別トピックの投稿を追っていくことで理解が深まります。\\ ユーザーからの困り事相談や色々なやりとりに直接サポート窓口はなく、フォーラムへの投稿を通して行われるスタイルになっています。作者や他の会員が各投稿への回答サポートを行っています。\\ 公式ドキュメントで解決できない困ったことが出てきたら、フォーラムの過去の投稿に関連するものが無いかまず検索してみるのが基本です。その上でフォーラム内で直接質問(会員登録要)もできます。 
 + 
 +  * IEC61131-3に準拠しているため、PLCプログラミングの仕様の詳細はそちらを参照するということで、プログラミングの仕方についてもマニュアルはありません(Learningのページに今後作るようですが)。 
 + 
 +  * ソフトはバグ対応や機能アップの改修が随時続けられており、同じレビジョンでも日単位で頻繁に更新されています。すでに使っているエディターを最新状態にするは、最新版のチェックメニューがあり、そこから更新が出来るようになっています。\\ \\ 以前にそ機能で更新をしてアップデートしたらエラーが出たので、OpenPLCのフォーラム内で同様の内容のエラー報告を探して見つけたところ、[[https://autonomylogic.com/download|OpenPLCプロジェクトのホームページ]]からダウンロードしたインストーラで再インストールするよう指示されていました。半月ほど戻った日付のリリース版になりましたがそれでエラー解消しました。\\ \\ 簡単に更新きるのは便利ですもしそれで不具合が出たら、前のバーションには戻れないので、公式ページに掲載されているメジャーリリース版に入れ直してください。 
 + 
 +  * エディターを最新版に更新のは、メニューからチェック更新が出来るようになってますが、 一方ランタイムの方は、自分で更新作業をするこになります。新しいプログラムのインストールのプロセスで、古いものは削除して入れ替えてくれます([[https://openplc.discussion.community/post/updating-the-runtime-12504526|参考]]) 
 +(2024/04/20)
 \\  \\ 
 ===== ハードウェアについて ===== ===== ハードウェアについて =====
行 46: 行 56:
  
   * 出来合いのPLC製品ということでは、Arduino公式にArduino-proというシリーズがあり、その中の[[https://www.arduino.cc/pro/portenta-machine-control/|Portenta Machine Control]]、[[https://www.arduino.cc/pro/hardware-arduino-opta/|Opta]]といったPLC製品は、公式の[[https://www.arduino.cc/pro/software-plc-ide/|Arduino PLC IDE]]というPLCプログラミングソフトも提供されており、選択肢としてもいいのではないでしょうか。\\ これらの機種について、Open PLCは、Machine Controlをサポート機種に載せていましたが、ここで[[https://openplc.discussion.community/post/arduino-opta-on-openplc-editor-12653922|Optaも使えることになった(2023/06/14)]]そうです。   * 出来合いのPLC製品ということでは、Arduino公式にArduino-proというシリーズがあり、その中の[[https://www.arduino.cc/pro/portenta-machine-control/|Portenta Machine Control]]、[[https://www.arduino.cc/pro/hardware-arduino-opta/|Opta]]といったPLC製品は、公式の[[https://www.arduino.cc/pro/software-plc-ide/|Arduino PLC IDE]]というPLCプログラミングソフトも提供されており、選択肢としてもいいのではないでしょうか。\\ これらの機種について、Open PLCは、Machine Controlをサポート機種に載せていましたが、ここで[[https://openplc.discussion.community/post/arduino-opta-on-openplc-editor-12653922|Optaも使えることになった(2023/06/14)]]そうです。
-\\  
-===== PLCの国際基準 IEC61131-3 ===== 
-  * 生産設備のオートメーション等に多く使われてきたPLC(プログラマブル・ロジック・コントローラー)のプログラムを共通化することで、異なるメーカーのPLCでも同じプログラムが再利用できるような効率的な環境を目指す国際基準です。PLCプログラムの仕様を詳しく規定しています。 
- 
-  * メーカー独自仕様のPLCが広く普及していた日本も今後基準への対応が進むと思いますので、新たに始める際はこの基準を勉強すべきでしょう。 
  
 +  * Arduino公式が、産業用というか従来の製品に比べ大きめのPLC製品を出してきて、この分野に手を広げている印象がある一方で、OpenPLCは、PLCを小さなマイコンボードで使えるようにしようと、対象的に進んできている印象があります。マイコンチップもどんどん高性能で小さく安くなっており、それをPLCとして使える手段が加わることによって、できることの可能性が大きく広がってきています。(2024/4/20)
 \\  \\ 
-===== PLCラダープログラムの作り方 ===== 
-実際にPLCプログラムを作成するための、ラダーダイアグラム(ラダー図)でのプログラム作成について説明します。\\ 実際に私がやってみた内容が大半ですので、もっといい方法もあったりすると思います。\\  
-  * OpenPLCは、国際基準 IEC61131-3準拠なので、基本はその仕様のもとで動くラダープログラムになりますが、中にはOpenPLC固有の部分や、使うハードウェアの制約を受けている部分もあります。 
  
-  * 初心者もわかりやすくかつリファレンスも使える参考があれば都合がよいのですが、市販の参考書でこれというもの見つけられませんでした。私自身は、上述の[[activities:products:plc#きっかけ|「インフェース」誌別冊PLCの本]]と[[https://openplcproject.com/|OpenPLCのサイト]]の情報参考にしています。+===== マイコンボード(Arduino純正/互換機)への対応ついて ===== 
 +前項に書いたよに、OpenPLCArduinoを始めたとした小さなマドで利用をしやすくする大き変更いくつか行ってきまた。短期間で状況もかなり変わってきていますので、少し整理してみます。
  
-  * {{ :howto:open_plc:pa074786_w600.jpg?direct&200|}}製造ラインの自動化のめに使いいのあれば「シケン制御プログラムの極意」(熊倉英樹著日刊工業新聞社)という本が基本考え方から具体的な法まで丁寧に説明されいてよかっだしそれ以外の分野で使う場合は、該当しな部分も多いです +  * 私がOpenPLCを雑誌記事で知っ2020年あArdunoボドは、OpenPLCのシ上ではslaveデバイスとして、ラズベリーパイやパソコンなどhostデバイスに接続してHostの手足とし、接続する機器の数を増やしり、利用るエリアを広げりする役割限られてました
-\\ +
  
-==== ラダダイアグラムプログラ基本 ==== +  * 一口にArduinoボドといっても、Arduino IDEでプログラムを作ってマイコに書き込むArduino仕組みが、互換機や他の様々なマイコンボドでも利用されるようなっています。\\ OpenPLCでは、Arduino純製品+αを公式対象機器していまが、自分で設定すれば対象外のボードでも使うこが出来ます(Arduino IDEが使える製品な比較的容易とのこと
-初心者でもある私が、初めて人向けにラダダイアグラムて簡単に説明します。正は言切れせんが、最初に疑問を抱きがちな点の理解の助けになればと思います。 +
-こちへ[[howto:open_plc:basic|「ラダープログラミングことはじめ」]] +
-\\ +
  
-==== ケース別のプログラム手法<入力> ==== +  * 2021/10/16に、従来slaveしてしか使えかったマイコンボード、単体の独立しPLCしても使えるように[[https://openplc.discussion.community/post/openplc-native-support-for-arduino-boards-in-beta-11984879|大幅な変更]]が加えられました。更にslaveとして利用する場合でも、単体で行う動作は保持して、HOSTからの指示と両方を組み合わせて使うこともできるようになりました。\\ \\ 更にエディターでマイコンボードにプログラムを書き込む際に、ピンごとの機能割当て(デジタルIN/OUT、アナログIN/OUT)を初期値ら変更しり、HOSTの通信手段(Modbus)を有線/無線で設定するパネルが新設されました。
-動作の起点となる情報取り込んで利用する仕組みを作りきの手法で。 +
-  * [[howto:open_plc:sys_time|システムの日時情報を利用する]]:時刻に合わせてさせ+
  
-  * [[howto:open_plc:time_period|自動運転時間帯を設定する]]:日中のみの稼働か時間を区切りたいとき+  * さらに、先日(2024/4/13)に行われた新たな[[https://openplc.discussion.community/post/new-feature-arduino-sketch-on-plc-programs-13249303|機能追加]]は、Arduino IDEでプログラミングする際スケッチ(コードやライブラリ)をそのままOpenPLCエディター内に取り込んで、一つのマイコンにArduinoプログラムとPLCプログラムの両方を書き込むことができるというものです。\\ \\ ポイントは、両方のプログラムで一つの変数共通に設定できるというところです。Arduinoプログラムで取得したセンサーの値を、PLCプログラムでそのまま使って制御に利用するというようなことが、簡単にできるようになります。\\ \\ これまで、掲示板を見ていても、OpenPLCでサーボモーターを動かすにはどうすればよいか等、PLCでやらなくともよいだろうという内容相談が寄せられていたり、PLCに接続するこのセンサーを動かすOpenPLCのライブラリはないのか等、個別機器への対応を求められたりもしていました。\\ この辺のニーズには、自分でライブラリを書いてシステムに組込む方法説明や、Python Sub Moduleいう自作Pythonプログラムを取込む仕組みの対応がされてきましたが、いずれにせよ誰にでもできるものではなくハードルが高いものでした。\\ \\ それに対し、今回のArduinoスケッチの取込み機能は、作者によれば、Arduino言語(C++)にあまりなじみの無い人が、世に多く出回っているArduinoのプログラム資産コピーして、PLCと組み合わせることで、これまで出来なかったことが容易に出来るようになることが一番いいところだとのことです。ArduinoのプログラムをPLCの言語に書き直さなくてよくな、ハードルが大きく下がります。\\ \\ 出ばかりなのでこれから課題等ろいろ出てくるか思いますが、画期的な機能追加なので、注目していたいと思います。 
 +(2024/04/20) 
 +===== PLCの国際基準 IEC61131-3 ===== 
 +  * 生産設備のオートメーション等に多く使われてきたPLC(プログラマブル・ロジック・コントローラー)のプログラムを共通化することで、異なるメーカーのPLCでも同じプログラムが再利用できるような効率的な環境を目指す国際基準です。PLCプログラムの仕様を詳しく規定しています。
  
-  * ちらちら不定期にON/OFFるセンサ(焦電センサ)デジタル信号から運転開のためのON信号作成る:自動ドアの人検知 +  * メーカー独自仕様のPLCが広く普及していた日本も今後基準への対応が進む思いますので、新たに始める際はこ基準勉強べきしょう。
- +
-  * 非接触スイッチ動作させるものに留意する点:+
  
 \\  \\ 
- +※このペジの分量が増えたので[[howto:open_plc:howto_make_LD|ラダープログラムの作り方]]項目は別ペーに分けました。 
-==== ケス別プログラム手法<出力> ==== +私が理解している内容書いているので、もしかしたら誤解や理解不足等あるかもしれません。元情報へのリンクをつけていますので、活用の際はご自分で確認・検証をお願いします。
-接続する機器を自動運転するアウトプットに関する手法す。 +
-  *  [[digitally_analogout|アナログ出力をデジタルに使う]]:アナログ出力チャンネルをデジタル的なON/OFF制御に使いたいとき +
- +
-  * 複数の機器をリレ運転させる。 +
- +
-\\  +
- +
-==== ケース別のプログラム手法<そ他> ==== +
-上記入出力の間をつなぐロックの組み立て方など +
- +
-\\  +
-各手法でリンクが無いものは今後中身の記事作成して追加しています(作成予定項目です +
-\\  +
howto/open_plc/index.html.1698996544.txt.gz · 最終更新: 2023/11/03 16:29 by Staff_Ujiie