Snap7官方文档(英文)
PLC侧(TIA Portal V16):
PLC组态完成后
在PLC属性-常规-防护与安全-连接机制中勾选允许来自远程对象的PUT/GET通信访问
在连接机制上方访问级别中选择完全访问权限
新建DB块并在DB块的属性中取消勾选优化块的访问
Ubuntu侧(Python 3.6 ):
安装Python版Snap7库:
[highlight lanaguage="语言"]
pip install python-snap7
[/highlight]
读写DB1:
[highlight lanaguage="语言"]
import snap7 client = snap7.client.Client() #创建连接 client.connect('192.168.0.135', 0, 0) #连接PLC(IP地址,Rack机架号 一般为0,Slot槽号 0或1都有可能) db1 = client.db_read(1, 20, 1) # 读取数据块db1,起始字节20,读取长度1个字节 print(db1) # 打印得到的数据(Hex格式) client.db_write(1, 0, b'\x11') # 写入数据块db1,起始字节,Hex格式数据 db1 = client.db_read(1, 20, 3) # 读取数据块db1,起始字节20,读取长度 print(db1) # 打印得到的数据(Hex格式) client.disconnect() #断开连接并销毁(这步一定要有)
[/highlight]
若程序运行报错:can't find snap7 library 说明snap7的库安装配置不正确
若程序运行报错:TCP :Unreachable peer 说明配置正确但PLC地址错误(检查IP地址或改一下槽号)
参考:Python通过snap7库与西门子S7-1200建立S7通信
Comments NOTHING