我尝试用Python与CPU1212C PLC(使用PLCSIM)进行通信,但总是出现错误。
代码:
IP = '192.168.100.100'
RACK = 0
SLOT = 1
plc = snap7.client.Client()
plc.connect(IP, RACK, SLOT)
print(plc.get_cpu_state())
No handlers could be found for logger "snap7.common"
Traceback (most recent call last):
File "C:/Python27/Teste_Snap7.py", line 8, in plc.connect(IP, RACK, SLOT)
File "C:\Python27\lib\site-packages\snap7\client.py", line 25, in f check_error(code, context="client")
File "C:\Python27\lib\site-packages\snap7\common.py", line 65, in check_error raise Snap7Exception(error)
Snap7Exception: TCP : Connection timed out
这是Windows10的问题吗?
我使用的是Windows10 64位,Python 2.7.17,Snap7 1.1.0,Python-Snap7 0.10。
我将snap7.dll和snap7.lib文件复制并粘贴到System32、Python27、Python27/site-packages/snap7文件夹中。我为每个文件夹在环境变量中创建了一个路径以尝试工作。
这不是Windows相关的问题,在错误消息中你可以看到问题:
Snap7Exception: TCP : Connection timed out.
验证您与计算机的物理连接,然后验证客户端 IP。
验证:
snap7附带的手册很详尽,请参考一下
在tia门户中验证: 属性>保护和安全>连接机制>并选中“允许使用PUT/GET访问..”
通过以下行更新您的代码检查,我对此有经验。
plc = snap7.client.Client()
plc.connect(plc_ip_address, rack, slot, 102)