シーケンス制御とラダーの始め方 ラズパイとCODESYSで入門

PLC(シーケンサ)

初心者が簡単にシーケンス制御・ラダーを始める・勉強できるための資料をまとめてみました。

無料でラダープログラムを書けてシミュレーション・デバッグ動作できる方法を一から紹介します。

 

シーケンス制御とラダーの始め方 ラズパイとCODESYSで入門

筆者も少し前に「未経験だけどシーケンス制御を勉強してみたい…」「少しだけラダー動作を試したい…」と考えていました。

その際に色々試しましたが、最後には無料でシーケンス制御とラダーを勉強・実践できた旨を紹介します。

 

やはり実体験から申し上げますとシーケンス制御・ラダーを学ぶ上で一番効率が良い方法は「実際にプログラムを書いて動かしてみる」でした。

資料をまとめてSlideshareで公開しましたので、よろしければご覧ください

 

上記資料の最後でも各デモ内容の記事リンク先を張り付けましたが、ブログ記事としても紹介しときます。

 

ラダーのシミュレーション

「ラダープログラムを一度書いてみたい!」と考えている方は下記記事を参考にお願いします。

CODESYS上ならば無料で何時間でもラダーのシミュレーションが可能です。プログラム書いた後に自由にテストできます。

PLC(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト
ラズベリーパイをPLC(シーケンサ)として使う準備編で「PLC(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト」を紹介します フリーでラダーのプログラムを実際に動かす手順を紹介しています。「自分でPLC(シーケンサ)...

 

上記記事では非常に簡単なプログラムしか実施してませんが、a接点・b接点・タイマーなど組み合わせれば下記のような任意の時間でON/OFFを繰り返すものも可能です。

ラダーのシミュレーションでON/OFFするプログラムを作ってみた

 

ラダーの自己保持回路を動かす

「実際にシーケンス制御を動かして勉強してみたい!」という方は下記記事を参考にお願いします。

本格的なPLC(シーケンサ)を購入しなくとも、ラズベリーパイ(raspberry pi)電子工作セットがあれば簡単に実質無料で試すことができます。

 

またスライドでも説明しましたが最新のRaspberry Pi 4 model Bにも対応しています。

 

CODESYSをラズベリーパイで動かす設定方法は下記を参考にしてください

ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた
ラズベリーパイをPLC(シーケンサ)として使う実践編で「ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた」を紹介します ラズベリーパイでラダーのプログラムを実際に動かす手順を紹介しています。「自分でPLC(シーケンサ)...

 

自己保持回路を動かしたい下記記事を参考にしてもらえれば大丈夫だと思います

入門編!簡単なPLC・ラダーのプログラムの例を作って動かしてみた
ラズベリーパイをPLC(シーケンサ)として使う実践編で「入門編!簡単なPLC・ラダーのプログラムの例を作って動かしてみた」を紹介します ラズベリーパイでラダーのプログラムを実際に数例動かして紹介しています。「自分でPLC(シー...

 

下記動画のようにシーケンス制御の自己保持回路を動作させることができます

シーケンス制御で自己保持回路を作ってみた I tried to make a self-holding circuit by sequence control

 

PLCをIOT化?遠隔操作・遠隔監視してみる

シーケンス制御・ラダーとは少し話がずれるのですが、CODESYSの機能として面白い機能がありましたので試してみました

 

スマホからPLC(シーケンサ)を操作・監視(リレーを遠隔操作、ON/OFFの回数を可視化)させてIOTっぽいことさせています。

PLC(シーケンサ)を無線化!遠隔操作・監視した事例を試してみた
PLC(シーケンサ)をパソコン・スマートフォンから(有線・無線の両方で)遠隔操作・監視してみました。汎用的なラズベリーパイ(raspberry pi)をPLC化していますので誰でも同様に試すことができます。 PLC(シーケンサ)の...

 

下記動画のようにスマホから自作した操作画面(GOT)でPLC(シーケンサ)を遠隔操作しています。

※GOT…Graphic Operation Terminal(グラフィック オペレーション ターミナル)

スマートフォンから無線でPLC(シーケンサ)を遠隔操作してみた I remotely operated PLC from the smartphone wirelessly

 

産業ネットワーク(PROFINET)を使ってみる

これもシーケンス制御・ラダーとは少し違うのですが、CODESYSの素晴らしい箇所なので紹介しました。

しかもラズパイだと無料で「Ethercat」「Ethernet/IP」「PROFINET」などの産業ネットワークをテストできます。

PROFINETとPLCを接続!マスターとスレーブをラズパイで作ってみた
Raspberry piで「PROFINET」のマスター・スレーブを作ってみました。 産業用Ethernet・フィールドバスの高価な機器を購入しなくても、接続テスト程度ならばラズパイで無料で簡単に試せる内容を紹介します。 P...

 

ラズベリーパイ2台でPROFINET通信+PLC出力する動画は先に撮りました。下記動画です。

 

簡単に紹介すると下記感じです。

5秒辺り…マスター側のラズパイのプログラム開始(既にスレーブ側のラズパイは起動済)

5秒直後…PROFINETのマスターが起動→Y001を出力(TRUE)→左下動画の「黄色LED」がON

8秒辺り…PROFINETのマスター・スレーブが接続。→Y002を出力(TRUE)→左下動画の「赤色LED」がON

28秒辺り…マスター側のステータスを確認。Connections(接続数)が「1」になってスレーブのラズパイと接続できていること確認

43秒辺り…フレーム・リアルタイム(RT)フレームが飛んでいることを確認

Raspberry PIでPROFINET通信してPLC出力してみた

 

 

FA設備技術勉強会 in Aichi で発表させていただきました

今回のシーケンス制御・ラダーの資料を2019年11月9日開催の「FA設備技術勉強会 in Aichi」で発表させていただきました。

(connpassでのリンク先はこちらから)

 

自分の席から撮ったため上記写真では人数少なそうに見えますが、本当は50名近く集まる大盛況ぶり。

休日の昼間にわざわざFAの勉強会に来る方々…はい、つまり最前線のプロ(ガチ勢)技術者ですね。間違いありませんでした。

懇親会含めて多くの人と意見交流させていただきましたが、発表者・参加者含めて全員がスゲー人達でした。

 

シーケンス制御・ラダーを最前線で使っている現場のプロたちから貴重なコメントをもらえました。

ほとんどのコメントが自分がソフトウェア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を駆動した記事となっています。

フォトカプラの使い方 ラズベリーパイで絶縁して24Vを動かしてみた
ラズベリーパイ(raspberry pi)で絶縁して安全に24VリレーをON/OFFしたく、フォトカプラで回路を作ってみました。LTspiceのシミュレーション・実際に動作確認したのを記事にしています。 raspberry piは...

 

また「OS上の他タスクが制御周期にも影響」に関しては、遅く動かすこと前提で制御周期(スキャンタイム)をわざと遅らしておくと良いかもしれません。

(そもそもラズパイ+CODESYSの環境で制御周期の速度・安定性を求める人は少ないと思いますが…)

 

下記記事で紹介したようにCODESYSでは制御周期の方法は変更でき、「サイクリック」で制御周期を任意の時間で指定できます。

※「サイクリック」…PLCの制御周期(スキャンタイム)の時間を任意に設定する

マルチコア化でPLC(シーケンサ)のスキャンタイムの短縮が難しい
CODESYSとラズベリーパイ(raspberry pi)でマルチコア対応のパッケージが出てきましたので動作確認しました。今までのマルチコア非対応のと比較してスキャンタイムがどれだけ短縮できるかを試して失敗したのを記事にしています。 ...

 

三菱と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」を一緒に平行で走らせています。

AIと画像認識の事例!Pythonでプログラミングして試してみた
AIで画像認識させて特定の物を検出した場合には外部機器を制御するようにPythonでプログラミングしました。 実際に動く物を検出しますので「人・動物の検知」「工場ラインの管理」等に応用できます。 リアルタイムで動体をAI+画...

 

(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言語については下記記事で一度紹介しています。参考ください

ソフトウェアPLC「CODESYS」の使い方まとめ
実質フリー(無料)で使えるのソフトウェアPLC「CODESYS」の使い方をまとめました。 「CODESYS」はラズベリーパイでデバッグできるため「自分でPLC(シーケンサ)を色々触ってみたい!」という方におすすめな記事となっています。...

 

まとめ

色々と説明させてもらいましたがラズベリーパイ(raspberry pi)+CODESYSは無料で使えるのでシーケンス制御・ラダーの勉強用におススメです。

ぜひ皆さまも使ってみてください。

コメント