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が読み込めないです。