ふたつぼし inside

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

ユーザ用ツール

サイト用ツール


howto:open_plc:index.html

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
howto:open_plc:index.html [2023/01/31 13:02]
Staff_Ujiie [ハードウェアについて]
howto:open_plc:index.html [2024/04/21 09:44] (現在)
Staff_Ujiie [PLCの国際基準 IEC61131-3]
行 1: 行 1:
 ====== OpenPLCの使い方 ====== ====== OpenPLCの使い方 ======
  
-展示スペースでの自動運転のためのプログラム作成と運転のためにOpenPLCを使い始めました。無人での照明やモーター駆動、センサ検知等の自動運転を可能にしてくれているので、貢献度はかなりのものです。+[[activities:products:plc|展示スペースでの自動運転]]のためのプログラム作成と運転のためにOpenPLCを使い始めました。無人での照明やモーター駆動、センサ検知等の自動運転を可能にしてくれているので、貢献度はかなりのものです。
 使う用途が限られていることと、ラダープログラムがそれほど難しくないので、最初ちょっと覚えればすぐ使い始められ、使いながら必要に応じてレベルアップすればよいだけなので気が楽です。 使う用途が限られていることと、ラダープログラムがそれほど難しくないので、最初ちょっと覚えればすぐ使い始められ、使いながら必要に応じてレベルアップすればよいだけなので気が楽です。
 日本語の情報があまり多くないのと、私自身初めての分野なので、基本的なところから使い方を整理していきます。 日本語の情報があまり多くないのと、私自身初めての分野なので、基本的なところから使い方を整理していきます。
 \\  \\ 
 ===== ソフトウェアの紹介 ===== ===== ソフトウェアの紹介 =====
-  * **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は動かせるわけですが、PLC製品として売っている以外の汎用のコンピュータの場合、出力の電流・電圧が小さく、いろいろな機器を接続するにはそのためのハードウェアが必要になります。 
-  * {{ :activities:products:p2273499_w600.jpg?direct&200|UniPi technology}}私が展示物の自動運転で使っているのは、[[https://www.unipi.technology/|Unipi Technology]]社の[[https://www.unipi.technology/products/unipi-1-1-1-1-lite-19?categoryId=1&categorySlug=unipi-1-1|UniPi 1.1]](UniPi Industrial Platform)という**RaspberryPiのPLC用拡張基板**の製品です。その上に手持ちのRaspberryPiを載せて、電源と一緒にケースに入れて使っています。 
-\\ \\  
-  * {{ :activities:products:p6114140_w600.jpg?direct&200|CQ出版社}}もともとPLCに興味をもつきっかけになったのは、インターフェース誌の「**ラズパイでPLC**」という連載なのですが、その記事をまとめた書籍が発行されていて、そちらを参考にさせていただいています。この本には、記事中に出てくる実験基板の引換券がついていて、後は部品とRaspberryPiと電源を用意してはんだ付けすればPLCとして使えます([[https://akizukidenshi.com/catalog/|秋月電子通商]]で部品のセット(gK-15645,gK-15925)も基板(gP-15646,gP-15926)も販売しています)。私もこの基板を一式作ってみました。書籍に回路図や解説もあって手軽に試せるのでおすすめです。\\ ([[activities:products:plc|参考:PLCによる展示物の自動運転]]) 
  
-  * 接続部分回路自体はそれほど難しいものではいので、慣れてきたら自作するのもよさそうです。 +  * 基本、英語ソフトにります。[[https://autonomylogic.com/|サイ]]英語です。
-\\  +
-===== PLCの国際基準 IEC61131-3 ===== +
-  * 生産設備のオーメーション等に多く使われてきたPLC(プログラマブル・ロジック・コントローラー)のプログラムを共通化することで、異なるメーカーのPLCで同じプログラムが再利用きるような効率的な環境を目指す国際基準です。PLCプログラムの仕様を詳しく規定しています。+
  
-  * 独自仕様のPLCが広く普及てい日本今後基準への対応が進むと思いすので、新に始める際はこの基準を勉強べきでしょう+  * 2022/05に[[https://autonomylogic.com/|OpenPLCサイト]]が大幅リニュアルされ、ソフトもバジョンアップされました。[[https://youtu.be/cNg-tXZynJE|Youtubeチャンネル]]出来。サイトのLearning/Basicsのページはこの動画ページにリンクされています。
  
-\\  +  * こソフトの使いを学ぶまず第一に公式サトのドキュメントの説明をよく読むことです。不具合出たと思って慌てても、よくよく見ら説明に書あったということが往々てあります。
-===== PLCラダープログラム作り方 ===== +
-実際PLCプログラムを作成するためのラダーダアグラム(ラダー図)でプログラム作成について説明します。\\ 実際に私って内容が大半ですので、もっとい方法もあったりするます。\\  +
-  * OpenPLCは、国際基準 IEC61131-3準拠なので、基本はその仕様のもで動くラダープログラムになります、中はOpenPLC固有の部分や、使うハードウェアの制約を受けいる部分もあります。+
  
-  * 初心者にもわかりかつリファレンスにも使える参考書があれば都合ですが、市販参考書でこれとうものは見つけられませんでした。私自身は上述[[activities:products:plc#きっかけ|「インターフェース」誌別冊のPLCの本]][[https://openplcproject.com/|OpenPLCのサイト]]の情報などを参考にしています。+  * YouTubeの動画、そこでしかわからないだろう内容があので見おいたほういです。動画説明内容を見ていい人だないます。
  
-  * {{ :howto:open_plc:pa074786_w600.jpg?direct&200|}}製造イン自動化のために使たいのあれば「シケンス制御プログラムの極意」(熊倉英樹著、日刊工業新聞社)とう本基本考え方から具体的な手法まで丁寧に説明されててよかったです。ただしれ以外分野使う場合には、該当しない部分多いです。 +  * 後はサイト内の[[https://openplc.discussion.community/|フォーム]]で、個別トピック投稿を追ってくこと理解が深まります。\\ ユーザーからの困り事相談や色々なやりとりに直接サポート窓口はなくフォーラム投稿を通して行われるスタイルになってます。作者や他の会員各投稿へ回答サポートを行っていす。\\ 公式ドキュメント解決できなったことが出てきたら、フォーラムの過去の投稿に関連するものが無いかまず検索してみるのが基本です。そのフォーラム内で直接質問(会員登録要)もできます。
-\\ +
  
-==== ラダーダイアグラムでのプログラミングの基本 ==== +  * IEC61131-3に準拠しているため、PLCプログラミングの仕様の詳細はそちらを参照するということで、プログミンの仕方についてもマニュアルありません(Learningページ今後作るようでが)
-初心者もある私が初めての人向けにダーダイアラムについて簡単に説明します。正確と言い切れませんが、最初に疑問を抱きがちな点理解の助けなればと思います。 +
-[[howto:open_plc:basic|こちらへ「ラダープログラミングことはじめ」]]。 +
-\\ +
  
-==== ケス別のプログラム手法<入力> ==== +  * ソフトはバグ対応や機能アップの改修が随時続けられており、同じレビジョンでも日単位で頻繁に更新されています。すでに使っているエディタを最新状態にするは、最新版のチェックメニューがあり、そこから更新が出来るようになっています。\\ \\ 以前にその機能で更新をしてアッデートしたらエラーが出たので、OpenPLCのフォーラム内で同様内容のエラー探して見つけたところ、[[https://autonomylogic.com/download|OpenPLCプロジェクトのホームページ]]からダウンロードしたインストーラ再インストールするよう指示されていました。半月ほど戻った日付のリリース版になましがそれでエラーが解消しました。\\ \\ 簡単に更新では便利ですもしそれで不具合が出たら、前のバーョンには戻れないで、公式ページに掲載されていメジャーリリース版入れ直しください
-動作起点となる情報を取り込ん利用する仕組みを作りたいときの手法です。 +
-  * [[howto:open_plc:sys_time|ステム日時情報を利用す]]:時刻合わせ何かせたとき+
  
-  * [[howto:open_plc:time_period|自動運転の時間帯設定する]]:日中稼働か時間区切りたいと+  * エディターを最新版に更新するのは、メニューからチェックと更新が出来るようになっていますが、 一方ランタイムの方は、自分で更新作業をすることになります。新しいプログラムのインストールのプロセスで、古いものは削除して入れ替えてくれます([[https://openplc.discussion.community/post/updating-the-runtime-12504526|参考]]) 
 +(2024/04/20)。 
 +\\  
 +===== ハードウェアについて ===== 
 +前項のように色々なハードウェアでOpenPLCは動かせるわけですが、PLC製品として売っている以外の汎用のコンピュータの場合、出力の電流・電圧が小さく、いろいろな機器を接続するにはそのためのハードウェアが必要になります。 
 +  * {{ :activities:products:p2273499_w600.jpg?direct&200|UniPi technology}}私が展示物の自動運転で使っているのは、[[https://www.unipi.technology/|Unipi Technology]]社の[[https://www.unipi.technology/products/unipi-1-1-1-1-lite-19?categoryId=1&categorySlug=unipi-1-1|UniPi 1.1]](UniPi Industrial Platform)という**RaspberryPiのPLC用拡張基板**の製品です。その上に手持ちRaspberryPi載せて、電源と一緒にケースに入れて使っていま。\\ ([[activities:products:plc|参考:PLCによ展示物の自動運転]])\\ \\  
 +  * {{ :activities:products:p6114140_w600.jpg?direct&200|CQ出版社}}もともとPLCに興味を持つきっかけになったは、インターフェース誌「**ラズパイでPLC**」いう連載なのですが、その記事まとめ書籍が発行されてて、そちらを参考にさせていただいています。\\ この本には、記事中に出てくる実験基板の引換券がついていて、後は部品RaspberryPiと電源を用意してはんだ付けすればPLCとして使えます([[https://akizukidenshi.com/catalog/|秋月電子通商]]で部品のセット(gK-15645,gK-15925)も基板(gP-15646,gP-15926)も販売しています)。私もこの基板を一式作ってみました(ケースに電源とコネクタ類を入れて[[activities:products:plc-2_1|PLC2号機]]としました)。書籍に回路図や解説があって、手軽に試して学べるのでおすすめです。\\ 
  
-  * ちらちらと不定期にON/OFFするセンサ(焦電センサ)デジタル信号から運転開始のためのON信号をする:自動ドア人検知+  * 接続部分回路自体はそれほど難しいもではないので、慣れてきら自作するのもよさそうです。
  
-  * 非接触スイッチ動作せるものに留意す点:+  * 出来合いの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)]]そうです。
  
 +  * Arduino公式が、産業用というか従来の製品に比べ大きめのPLC製品を出してきて、この分野に手を広げている印象がある一方で、OpenPLCは、PLCを小さなマイコンボードで使えるようにしようと、対象的に進んできている印象があります。マイコンチップもどんどん高性能で小さく安くなっており、それをPLCとして使える手段が加わることによって、できることの可能性が大きく広がってきています。(2024/4/20)
 \\  \\ 
  
-==== ス別プログラム手法<出力> ==== +===== マイコンボド(Arduino純正/互換機)へ対応について ===== 
-接続する機器を自動運転するアウトプット関する手法です。 +前項書いたよに、OpenPLCはArduinoを始めたとした小さなマイコボードでの利用しやすくする大き変更をくつか行ってきまし。短期間で状況もかなり変わってていますので、少し整理してみます。
-  *  [[digitally_analogout|アナログ出力をデジタルに使]]:アナログ出力チャネルデジタル的ON/OFF制御に使いたいと+
  
-  * 複数の機器をリレー運転させる。+  * 私がOpenPLCを雑誌記事で知った2020年あたりでは、Ardunoボードは、OpenPLCシステム上ではslaveデバイスとして、ラズベリーパイやパソコンなどのhostデバイスに接続して、Hostの手足として、接続する機器の数増やしたり、利用するエアを広げたりす役割に限られていました
  
-\\ +  * 一口にArduinoボードといっても、Arduino IDEでプログラムを作ってマイコンに書き込むArduinoの仕組みが、その互換機や他の様々なマイコンボードでも利用されるようになっています。\\ OpenPLCでは、Arduino純正製品+αを公式対象機器としていますが、自分で設定すれば対象外のボードでも使うことが出来ます(Arduino IDEが使える製品なら比較的容易とのこと)。
  
-==== ケス別のプログラム手法<その他> ==== +  * 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)を有線/無線で設定するパネルが新設されました
-上記の入出力の間つなぐロジック組み立方など+
  
-\\  +  * さらに、先日(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プログラムの仕様を詳しく規定しています。
  
 +  * メーカー独自仕様のPLCが広く普及していた日本も今後基準への対応が進むと思いますので、新たに始める際はこの基準を勉強すべきでしょう。
 +
 +\\ 
 +※このページの分量が増えたので、[[howto:open_plc:howto_make_LD|ラダープログラムの作り方]]の項目は別ページに分けました。
 +※私が理解している内容で書いているので、もしかしたら誤解や理解不足等あるかもしれません。元情報へのリンクをつけていますので、活用の際はご自分で確認・検証をお願いします。
howto/open_plc/index.html.1675137756.txt.gz · 最終更新: 2023/01/31 13:02 by Staff_Ujiie