いきさつ
三菱シーケンサとラズパイの通信について、三菱Qシリーズを使用した記事は検索したら出てくるのですが、最新のiQ-F,iQ-Rとラズパイを接続した記事は見当たらなかったのでUPしてみます。
環境
| **** | **** |
|---|---|
| Raspberry Pi | 4 Model B 8GB |
| Raspberry Pi OS | Debian GNU/Linax 13(trixie) |
| Python | 3.13.5 |
| pymcprotocol | 0.3.0 |
| PLC | FX5S-30MT/ES |
| GX Works3 | 1.117X |
PLCの設定
パラメータ→FX5SCPU→ユニットパラメータ→Ethernetポート

Pythonプログラム
plc_test.py
import pymcprotocol
# PLCに接続(IPアドレス、ポート番号、交信データコード(バイナリ)指定)
plc = pymcprotocol.Type3E()
plc.connect("192.168.0.11", 5015)
plc.setaccessopt(commtype="binary")
# D0の値を取得
data = plc.batchread_wordunits(headdevice="D0", readsize=1)
print(f"D0の値: {data}")
# D1に1234を書き込む
plc.batchwrite_wordunits(headdevice="D1", values=[1234])
print("D1に1234を書き込みました")
# 接続を閉じる
plc.close()
参考
終わりに
公式ではシーケンサのQ,L,QnA,iQ-L,iQ-Rに対応しているということで「iQ-F」は?
と思ったんですが、Qと同じType3E()で動きました。Type4E()でも動きました。
Type3E(plctype="iQ-R")では動きませんでした。
import pymcprotocol
#If you use Q series PLC
pymc3e = pymcprotocol.Type3E()
#if you use L series PLC,
pymc3e = pymcprotocol.Type3E(plctype="L")
#if you use QnA series PLC,
pymc3e = pymcprotocol.Type3E(plctype="QnA")
#if you use iQ-L series PLC,
pymc3e = pymcprotocol.Type3E(plctype="iQ-L")
#if you use iQ-R series PLC,
pymc3e = pymcprotocol.Type3E(plctype="iQ-R")
#If you use 4E type
pymc4e = pymcprotocol.Type4E()
もしラズパイのeth0にIPが設定されてなかったら(わたしがそうでした)、「ラズパイ NetworkManager」で調べましょう。「ラズパイ eth0」で検索したりAIに聞いたりすると、dhcpcdでなんとかしようとしてきます。2023年10月からNetworkManagerが標準となっているそうです。
終わり。
