初心者が簡単にシーケンス制御・ラダーを始める・勉強できるための資料をまとめてみました。
無料でラダープログラムを書けてシミュレーション・デバッグ動作できる方法を一から紹介します。
シーケンス制御とラダーの始め方 ラズパイとCODESYSで入門
筆者も少し前に「未経験だけどシーケンス制御を勉強してみたい…」「少しだけラダー動作を試したい…」と考えていました。
その際に色々試しましたが、最後には無料でシーケンス制御とラダーを勉強・実践できた旨を紹介します。
やはり実体験から申し上げますとシーケンス制御・ラダーを学ぶ上で一番効率が良い方法は「実際にプログラムを書いて動かしてみる」でした。
資料をまとめてSlideshareで公開しましたので、よろしければご覧ください
上記資料の最後でも各デモ内容の記事リンク先を張り付けましたが、ブログ記事としても紹介しときます。
ラダーのシミュレーション
「ラダープログラムを一度書いてみたい!」と考えている方は下記記事を参考にお願いします。
CODESYS上ならば無料で何時間でもラダーのシミュレーションが可能です。プログラム書いた後に自由にテストできます。
上記記事では非常に簡単なプログラムしか実施してませんが、a接点・b接点・タイマーなど組み合わせれば下記のような任意の時間でON/OFFを繰り返すものも可能です。
ラダーの自己保持回路を動かす
「実際にシーケンス制御を動かして勉強してみたい!」という方は下記記事を参考にお願いします。
本格的なPLC(シーケンサ)を購入しなくとも、ラズベリーパイ(raspberry pi)と電子工作セットがあれば簡単に実質無料で試すことができます。
またスライドでも説明しましたが最新のRaspberry Pi 4 model Bにも対応しています。
CODESYSをラズベリーパイで動かす設定方法は下記を参考にしてください
自己保持回路を動かしたい下記記事を参考にしてもらえれば大丈夫だと思います
下記動画のようにシーケンス制御の自己保持回路を動作させることができます
PLCをIOT化?遠隔操作・遠隔監視してみる
シーケンス制御・ラダーとは少し話がずれるのですが、CODESYSの機能として面白い機能がありましたので試してみました
スマホからPLC(シーケンサ)を操作・監視(リレーを遠隔操作、ON/OFFの回数を可視化)させてIOTっぽいことさせています。
下記動画のようにスマホから自作した操作画面(GOT)でPLC(シーケンサ)を遠隔操作しています。
※GOT…Graphic Operation Terminal(グラフィック オペレーション ターミナル)
産業ネットワーク(PROFINET)を使ってみる
これもシーケンス制御・ラダーとは少し違うのですが、CODESYSの素晴らしい箇所なので紹介しました。
しかもラズパイだと無料で「Ethercat」「Ethernet/IP」「PROFINET」などの産業ネットワークをテストできます。
ラズベリーパイ2台でPROFINET通信+PLC出力する動画は先に撮りました。下記動画です。
簡単に紹介すると下記感じです。
5秒辺り…マスター側のラズパイのプログラム開始(既にスレーブ側のラズパイは起動済)
5秒直後…PROFINETのマスターが起動→Y001を出力(TRUE)→左下動画の「黄色LED」がON
8秒辺り…PROFINETのマスター・スレーブが接続。→Y002を出力(TRUE)→左下動画の「赤色LED」がON
28秒辺り…マスター側のステータスを確認。Connections(接続数)が「1」になってスレーブのラズパイと接続できていること確認
43秒辺り…フレーム・リアルタイム(RT)フレームが飛んでいることを確認
FA設備技術勉強会 in Aichi で発表させていただきました
今回のシーケンス制御・ラダーの資料を2019年11月9日開催の「FA設備技術勉強会 in Aichi」で発表させていただきました。
(connpassでのリンク先はこちらから)
自分の席から撮ったため上記写真では人数少なそうに見えますが、本当は50名近く集まる大盛況ぶり。
休日の昼間にわざわざFAの勉強会に来る方々…はい、つまり最前線のプロ(ガチ勢)技術者ですね。間違いありませんでした。
懇親会含めて多くの人と意見交流させていただきましたが、発表者・参加者含めて全員がスゲー人達でした。
人すごい pic.twitter.com/IYAk5kFX2Z
— full@桜 八重 (@fulhause) November 9, 2019
シーケンス制御・ラダーを最前線で使っている現場のプロたちから貴重なコメントをもらえました。
ほとんどのコメントが自分がソフトウェアPLC「CODESYS」を使っていた時に感じた疑問点・困っていた箇所でした。
というか質問者・質問内容のレベルが高すぎでした(笑)! 内心めっちゃ焦っていました。
筆者の拙い説明を10分聞いただけで、見事に「ラズパイ+CODESYS」を使う上で重要なポイントを質問されて正直脱帽でした。
謝辞
FA業界というと他業界と比べると技術がクローズになりがちですが、このような技術交流できる貴重な場を開催していただいたことに深く感謝申し上げます。
@fulhause様含めた開催者・参加者・運営者の皆様には重ねてお礼申し上げます。
FA業界の最前線のプロ(ガチ勢)技術者からいただいた意見・コメント
今回資料に対して本当に貴重な意見をもらいましたので、可能な限りこの場で回答させていただきます。(勉強会で回答したもの含めて)
(記事として書きやすいように質問・回答内容を多少修正させてもらっています。ご了承ください)
念のために書いときますが、この記事・ブログ全体通して100%趣味でやっている内容ですのであくまで筆者の個人的な見解ということでお願いします。
「工場によくあるPLC(シーケンサ)」と「ラズパイ+CODESYS」の違う箇所は?
大きな違いとしては「ハードウェアPLC、ソフトウェアPLCとしての違い」「出力方式の違い」だと考えています。
工場のPLC(シーケンサ)
例えば日本の工場で使われている多くPLC(シーケンサ)は専用の「ハードウェアPLC」、かつ「高電圧・大電流が流せるリレー出力」をとっています。
そのためメリットとして「大電流が流せる」「交流(AC)出力可能」「PLCの制御周期が速く・安定する」だと考えています。
工場で使う分にはそこまでデメリットは無いと思いますが、個人で使う分には環境構築・コストのハードルがあると思います
ラズベリーパイ+ソフトウェア「CODESYS」
ラズベリーパイ(raspberry pi)+ソフトウェアPLC「CODESYS」の特徴としては「汎用ハードウェアのラズパイOS上のソフトとして動く」「トランジスタの3.3V出力」です。
そのためメリットとしてはUSB5Vで動作可能、かつ高額なPLC・ソフトが不要のため「環境構築が簡単」「コストが安い」。
デメリットとしては「ラズパイが3.3V出力」のため直接大電流・高電圧は動かせない、「OS上の他タスクが制御周期にも影響」の可能性があるだと考えています
デメリットの対策
デメリットの「3.3V出力しかできない」を解消するためには下記記事のようにフォトカプラやトランジスタを噛ませると良いと思います。
実際にラズベリーパイで24Vを駆動した記事となっています。
また「OS上の他タスクが制御周期にも影響」に関しては、遅く動かすこと前提で制御周期(スキャンタイム)をわざと遅らしておくと良いかもしれません。
(そもそもラズパイ+CODESYSの環境で制御周期の速度・安定性を求める人は少ないと思いますが…)
下記記事で紹介したようにCODESYSでは制御周期の方法は変更でき、「サイクリック」で制御周期を任意の時間で指定できます。
※「サイクリック」…PLCの制御周期(スキャンタイム)の時間を任意に設定する
三菱とCODESYSのプログラミングで違うところは?
日本内のPLCメーカ内でもソフト仕様が違ってきますので、細かい箇所まで挙げればきりがありませんが代表的な所を数点紹介させてもらいました。
基本的なラダープログラミングは同じですが、タイマー・カウンタなどの書き方が三菱のラダーソフト(GX Works)と違います。
下記例のように三菱のラダーソフトでは出力コイルに「T4 K10」とプログラムすることで指定の時間タイマーとして動かせます
CODESYSでは同様に出力コイルに「T4 K10」と入力するだけではエラーになります。
CODESYSでもしっかりと変数定義すればラダープログラムのみでタイマー動作させることはできると思います。
それよりはCODESYSでは簡単にファンクションブロックを組み込めれますので、タイマーなど使う場合はこちらの方が簡単です。
最初に記載しましたがPLCメーカでのプログラミングの違いはどうしても出てきます。
但し、基本的なラダープログラミングの概念・基礎はCODESYSでも学ぶことはできますので入門用に使っても筆者としては問題ないと思います
ラズパイ+CODESYSの連続運転_2時間までの対処方法は
ラズパイ+CODESYSでテストする分には2時間あれば十分だと思います。(2時間後再接続すれば再度動作可能のため)
実際に確認しましたが2時間経ってもアラーム出て止まるだけでした。再接続すれば使えました。
個人のテストでは非常に稀だと思いますが、もし24時間などで動作させたい場合は正規ライセンスを購入すれば良いかと思います。
マルチコア対応版で75€ぐらい、シングルコア対応版で50€ぐらいでした。(引用リンク先はこちらから)
(ちなみにラズパイでなく、本格的なPC上で動かそうとするとライセンスは約400€していました。)
※フリーで使う分にはマルチコア・シングルコアどちらでも対応していますのでマルチコア版をインストールすれば良いかと思います
ラズパイに他のタスクをさせてもCODESYSは動くのか?
CODESYSはソフトウェアPLC、つまり汎用PC上で動いているソフトの一つのようなものですので可能です。
(PCで何個も一緒にソフトを動かすことができることをイメージしてもらえれば良いと思います)
下記記事では実際にラズベリーパイ1台で「Pythonの画像認識プログラム」と「CODESYS」を一緒に平行で走らせています。
(Ethercatではなく)なぜPROFINETで通信したのか
ラズパイとCODESYSで産業ネットワークが無料でテストできるのですが、流行りのEthercatはマスターのみという制限もあります。
Ethercatのスレーブのデバイスがあれば接続テストできるのですが、筆者が持っていないため、他のマスター・スレーブ対応しているPROFINETを採用しました。
三菱のようにプログラム動作中にラダー編集(RUN中書込)は可能か
はい、確認しましたがCODESYSでもプログラム動作中にラダー編集(RUN中書込)は可能でした。(FA勉強会のその場で答えれず申し訳ない…)
CODESYSでは「ログイン」「ログアウト」の概念があるためオンライン変更が可能です。
一度プログラム動作させた後に「ログアウト」→「ラダー編集」→「(再)ビルド」→「(再)ログイン」すれば可能でした。(転送するプログラムも変更箇所のみで済みます)
CODESYSでラズパイのSPI,I2C,カメラなどのIFは使えるのか
調べた結果、ラズベリーパイの各IFに関してですがサポートしているICは使えるようです。(FA勉強会のその場ではあまり使えないという回答して申し訳ない…)
汎用品で購入も簡単なラズパイのカメラ、I2Cの加速度センサ(MPU6050)…含めて多くのデバイスが使用可能ということです。
但し、個人的に筆者の方でも確認しましたがカメラ動作はラダーでなくST言語で対応できました。
他サンプルコードも確認しましたがI2CなどでもIF関連はST言語(ラダーではなくC言語みたいなもの)で記述されていました。
ST言語については下記記事で一度紹介しています。参考ください
まとめ
色々と説明させてもらいましたがラズベリーパイ(raspberry pi)+CODESYSは無料で使えるのでシーケンス制御・ラダーの勉強用におススメです。
ぜひ皆さまも使ってみてください。
コメント
Raspberry piを2個wifi接続でロボットのリオリジナルモコンを作ろうと。考えております。
2つのRaspberry piのそれぞれのGPIOの設定の方法を教えて頂ければたすかります。