Snap7ライブラリを使ってS7-1500/S7-1200と通信します。
↓は色々Link先でもっと詳しい資料が見えます。
Welcome to python-snap7’s documentation!
python-snap7 Documentation – Read the Docs
Install Snap7
ちなみに私はPython3を使っています。
pip install snap7
実装
import snap7
from snap7.util import *
import struct
plc = snap7.client.Client()
plc.connect("192.168.21.3",0,1)
db=plc.db_read(7,0,12)
d=struct.iter_unpack("!f",db[:12])
print( "3 x Real Vars:", [f for f, in d] )
#Get CPU INFO
x=plc.get_cpu_info()
print (x.ModuleTypeName)
print ("""CPU Information:
%s
Serial Number:
%s
AS Name:
%s
Copy Right:
%s
Module Name:
%s
"""
%(x.ModuleTypeName.decode("utf-8"),
x.SerialNumber.decode("utf-8"),
x.ASName.decode("utf-8"),
x.Copyright.decode("utf-8"),
x.ModuleName.decode("utf-8")
)
)
plc.disconnect()
ちょっとわかりにくいかもしれませんがまずsnap7のライブラリをImportしクライアントObjectを作って、ipアドレスとslot番号をtiaのプロジェクトに合わせします。
次はdb7なら12bytesのデータを読み込んでrealにunpackします。
最後はちょっとおまけですがcpuの名前などを読み込みます。
注意しないといけないのはsnap7を使うと最適化されたDB Memoryが読み込めないです。