今回はラズベリーパイ(raspberry pi)でソフトウェアPLC「CODESYS」とNPNトランジスタを使って簡単なシーケンス制御を組んでみました。
実際の工場で使われるPLC(シーケンサ)のように24Vリレーを動作させていきます。
シーケンス制御とリレーの基礎
シーケンス制御でリレーが何処に使われるというと主には「出力」です。リレーを使うことによりポンプ・モータ・アクチュエータなど動かすことができます。
下記はオムロンのミニパワーリレーですが、同類のリレーが世界中の工場で出力として動作しています。良く使われている電圧はDC24Vです。
リレーの動作・使い方は簡単!
リレーを動かすことは簡単で指定の端子に24Vを入れるだけです。実際に24Vの安定化電源を使ってリレーを動かした記事は下記になります。
またUSB5Vから昇圧させた24V電源でもリレー動作させた記事もあります。
今回はラズベリーパイの環境でシーケンス制御による24Vリレーを動作させていきます。
ラズベリーパイのGPIOで5V/12V/24Vを駆動する方法
シーケンス制御に移る前に一つ問題を解決させておきます。下図のようにラズベリーパイのGPIOは基本3.3Vです。5V/12V/24Vは直接駆動できず、24Vリレーも直接は動作できません。
そのため今回は下記イメージのようにトランジスタを使って24Vをドライブさせます。
今回使うトランジスタはNPNトランジスタの2SC1815です。オムロンのミニリレーの電流は36.3mA程度でしたので2SC1815のスペック(電流増幅率・定格電圧)で十分に対応可能です。
過去には実際にトランジスタの電流増幅率を測定した記事もありますのでよろしければご覧ください
レベルシフトICで5V/12V/24V変換・リレー駆動させない理由
書く必要も無いかもしれませんが、以前の下記記事のように電圧レベルシフトIC(バッファ)で対応しない理由を記載しておきます。
前回使ったTC74HC4050P含めて基本汎用のレベルシフトICはドライブできる電流が少ないです。また電圧が24Vまで対応していません
※…と思ったらICメーカ回答としてTC74HCは最大35mA流せるので「電流は」ギリギリ行けたかもしれません。メーカ回答リンク先はこちらから
手の込んだICを使えば動作可能かもしれませんがレベルシフトICの電圧変換は基本信号変換用でリレー・モータなどの電圧駆動には使わないケースの方が多々だと思います
そのため、今回はトランジスタでリレー駆動させます
今回のシーケンス制御でリレー動作させる回路図
NPNでトランジスタ駆動させるため、今回の回路図は下記となります。シーケンス制御のラダーについては後に記載しますが、簡単なリセット付き自己保持回路です。
少し入力回路・出力回路を色を付けると下記イメージです。GPIO17が出力、GPIO22,GPIO27を入力としています。
トランジスタを駆動する回路は、結構適当に作っています。(マージン・最悪条件など全く考えていないので参考レベルでお願いします)
※電流増幅率が約300ぐらいあるため、リレーの電流36.3mAを満たすためにベースに約121uA流せばいいはず。⇒R1=(3.3V-Vbe[約1.0V])/121uA=約19kΩ以下ならば大体OK?と言ったレベルで計算しています。
今回のシーケンス制御の配線
今回のシーケンス制御の配線の全体像は下記となっています。基本回路図通りです。
大きな分類としては「ラズベリーパイ」「入出力回路」「24V電源」の構成です。(細かいジャンパー・ケーブルなどは省略)
※今回は特別にリレーONOFF判断するためにLEDを追加しています。
24V電源に関しては下記記事で使ったものを流用しています
リレー以外の入出力回路はブレッドボード上で配線しています
ここまでくれば後はラダー回路作成してラズベリーパイを設定するだけです。
シーケンス制御のソフトをダウンロード・インストールする
今回使うソフト「CODESYS」のダウンロード・インストール方法に関しては記事「PLC(シーケンサ)・ラダーがフリーで使える!おススメ入門ソフト」に記載しましたのでリンク先から参照をお願いします
シーケンス制御をラズベリーパイで使う方法
「CODESYS」のラズベリーパイで使う方法に関しては記事「ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた」に記載しましたのでリンク先から参照をお願いします
今回のシーケンス制御で使うラダープログラム
今回のプログラム内容は記事「入門編!簡単なPLC・ラダーのプログラムの例を作って動かしてみた」の最後で動かしたプログラム(ラッチ(自己保持)回路 リセット付き)を使います。
そのためシーケンス制御のラダー回路については前記事と同じプログラムになりますのでリンク先から参照をお願いします
今回のシーケンス制御の実例・動作
今回のシーケンス制御の動作としては下記となります。
プログラム動作開始時(SW1を押していない状態)ではリレー動作していませんOFF状態です。
・入力_SW1を押すと出力_24VリレーがONします(ラッチしてONし続けます)
・入力_SW2(リセットSW)を押すと出力_24VリレーがOFFします
今回の動画は下記です。動画だと「LEDのON・OFF」「24VリレーのON・OFF音」がありシーケンス制御の動作が分かりやすいと思います
まとめ・感想
如何でしたでしょうか。工場で使われるPLC(シーケンサ)のように24Vリレーを動作できました。
「自宅でシーケンス制御・ラダー回路の勉強・デバッグをしてみたい!」という人には今回のように簡単にシーケンス制御が体験できます。
よろしければ皆様もぜひトライしてみてください
次の記事ではPythonでPLC(シーケンサ)と通信してデータを読み出す方法を紹介しています。よろしければご覧ください
コメント
初心者向けに良い記事ですね。
1点だけ、この回路では、リレーはD2タイプを使用しないと、OFF時のサージ電圧でトランジスタが破損する恐れがあります。追記して頂いた方がよいかもです。
PLCのトランジスタ出力に繋ぐリレーでは、例えばMY4ならMY4N-D2(表示ランプ+サージ防止ダイオード付き)が割と標準採用されます。最近はPLCのトランジスタ出力回路側にサージ防止ダイオードがついているものも多いです。