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通信

 

届ける言葉を今は育ててる
最后更新于 2023-01-27