Python#Snap7でSiemensのPLCと通信しよう

Snap7ライブラリを使ってS7-1500/S7-1200と通信します。

↓は色々Link先でもっと詳しい資料が見えます。

Welcome to python-snap7’s documentation!

python-snap7 0.8 Package

python-snap7 Documentation – Read the Docs

Snap7 Homepage

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

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする