PLCで信号機を再現する(続編)
概要
プログラマブルロジックコントローラ(PLC)とLEDを組み合わせて信号機の挙動を再現してみました。未経験なので、ラダー図を入力して動かしてみること自体が目的です。ラダー図はAIに書いてもらいました。
背景
前回の記事で、パワーリレーとタイマーリレーを組み合わせた回路を組んで信号機の挙動を再現してみました。これを今度はPLCで実装してみます。
ラダー図とはPLCのプログラミングに利用される記法で、左右に電源母線が引かれ、その間にリレーやコイルなどの回路を配置する構成になっています。特定の入力状態に対して出力を定義する、というルールベースのプログラミング言語となっています。
主役のPLCには三菱電機のシーケンサFX3Sを使います。小規模向けPLCとして安価に入手可能で、電源・CPU・I/Oが一体となった30点規模のエントリーモデルです。バッテリーで駆動したかったのでDC24Vの直流電源モデルです。ちなみに「PLC」は一般用語で、「シーケンサ」は三菱電機の商品名だそうです。GX Works内ではPLCを指して「PC」と称していて、ややこしいです。
必要資材
私が購入した時点ではFX3Sが¥27k、GX Works3のサイトライセンスが¥60kでした。
| 品名 | 数量 | 備考 |
|---|---|---|
| スイッチング電源 | 1 | DC24V20A |
| FX3S-30MR/DS | 1 | DC24V電源、DC入力16点、出力14点 |
| DINレール | 1 | 300mmアルミ |
| LED(赤) | 1 | 24Vφ6mm |
| LED(黄) | 1 | 24Vφ6mm |
| LED(緑) | 1 | 24Vφ6mm |
| プッシュスイッチ | 1 | φ8mm |
| コード(6色) | 1m | 18AWG |
| U字端子 | 9 | SV1.25-3 |
作業手順
1. ラダー図を書く
FX3S用のラダー図は、GX Works2というソフトウェア上で書きます。GX Worksシリーズは有償の開発ソフトで、PLCとは別にライセンスを購入する必要があります。ライセンスのバリエーションは詳しく分かりませんが、私が購入したGX Works3のライセンスにはGX Works2の利用権も付いていました。
GX Works2は2008年発売で、Windows Vistaの時代です。UIデザインがだいぶ古くて癖があります。メニュー階層も深いので自在に使えるようになるには、相当な時間がかかりそうです。
GX Works2をインストールして起動すると空の画面が開くので、メニューバーから プロジェクト>新規作成 を選択します。PLCの種類、機種を指定して「シンプルプロジェクト」「ラダー」を選択して OK を押します。
信号機のラダー図は、基本的には前回記事のリレー回路のシーケンス図と同じような内容です。縦横が変わっていますが、電源母線の間をリレーで接続します。デバイス名はXnが入力端子、Ynが出力端子、Tnがタイマー、Mnが内部リレーを示します。
ところで今回の簡単なラダー図ですが、Gemini 3が書いてくれたものを元にしています。与えたプロンプトは以下の通り。
信号機のように赤青黄のLEDを一定時間ずつ順に点灯させるラダー図を書いてください。PLCは三菱電機FXシリーズです。
すると、以下のラダー図を書いてくれました。
X0 X1 M0
|--[ ]----[/]----+---( )---| [運転自己保持]
| |
| M0 |
|--[ ]-----------+
M0 T2 T0
|--[ ]----[/]--------(T0 K50) [青タイマ]
T0 T1
|--[ ]---------------(T1 K20) [黄タイマ]
T1 T2
|--[ ]---------------(T2 K50) [赤タイマ]
M0 T0 Y0
|--[ ]----[/]--------( )---| [青出力]
T0 T1 Y1
|--[ ]----[/]--------( )---| [黄出力]
T1 T2 Y2
|--[ ]----[/]--------( )---| [赤出力]
ラダー図のようなGUIプログラムはAIには苦手だと思い込んでいましたが、この程度の内容なら軽々と実装できるようです。すごい時代になりましたね。
2. シミュレートする
入力したラダー図が正常に動作することをシミュレータで確認します。シミュレーション実行前にメニューバーの 変換/コンパイル>変換/コンパイル を実行してエラーが起きないことを確認する必要があります。エラーがなければ、デバッグ>シミュレーション開始/停止 でシミュレーションを開始できます。
シミュレーション実行中に開始スイッチを押すには、入力リレーを選択して、右クリック>デバッグ>現在値変更 を選択し、ON / OFF ボタンをクリックして状態を切り替えます。
動作に問題がなければPLCにプログラムを送信します。
3. プログラムを送信する
FX3SはUSB接続できるので、miniBケーブルでPCと接続します。PLCはUSB電力だけでは動作せず、別途給電する必要があります。接続後、デバイス一覧に「不明のデバイス」が表示されて認識できない場合は、GX Works2のインストールフォルダの Easysocket/USBDrivers/ にあるUSBドライバをインストールする必要があるようです。
また初回は左のナビゲーションの接続先一覧からConnection1をダブルクリックし、パソコン側I/F>シリアルUSB から パソコン側I/F シリアル詳細設定 を開き、RS-232CからUSBに切り替えておく必要があります。
準備が整ったら、メニューバーの オンライン>PC書込 を選択してオンラインデータ操作ダイアログを開き、「書込」が選択されていることを確認して、MAINプログラムにチェックを入れ、「実行」ボタンをクリックします。これでPLCにプログラムが書き込まれます。
4. 回路を組み立てる
PLCとLED、スイッチを結線します。リレー回路に比べて大幅に結線数が少なくて済みます。
FX3Sは、ソース入力、シンク入力のどちらにも対応していて、S/S端子の電圧で制御します。今回はシンク入力(スイッチ入力でグラウンドレベルに落とす)を採用したので、S/S端子には+24Vを印加しています。国内のセンサー類はシンク型が多く、欧米のセンサーにはソース型が多いそうです。今回は単なるスイッチ入力なので、どちらでも動きます。
出力端子は、端子台のラベルの太線枠で区切られた出力端子が共通グランドを持ちます。Y2-Y4はCOM2が共通グランドになっているので、この回路図のように省略できます。大きな電流を流す場合には、この共通グランドに集中するため許容容量には注意が必要になります。
5. 動作を確認する
結線に問題なければ、プッシュスイッチを押します。PLCの動作が開始し、想定通りのタイミングでLEDが切り替わっていくところを確認します。ラダー図で設定したタイマ値通りにLEDが点灯することも確認します。
まとめ
リレー6個と大量の配線を使って作った回路が、PLCなら1コンポーネントとソフトウェアだけで実現できました。ラダー図を書き起こすには多少の知識が必要ですが、今ならAI支援が受けられます。リレー間の結線作業が不要なので、大幅に時間短縮でき、誤りや不良の混入可能性も格段に小さくなります。机上シミュレーションもできるので、実機でやり直すことなく動作させられます。リレー回路が急速に廃れたのもむべなるかな、といったところでしょうか。







