如何使用Python-snap7与西门子PLC进行Python通信?

问题描述 投票:0回答:4

我尝试用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文件夹中。我为每个文件夹在环境变量中创建了一个路径以尝试工作。

我遵循了本教程:https://www.youtube.com/watch?v=BKnK4AT_WKs

python plc siemens snap7
4个回答
0
投票

这不是Windows相关的问题,在错误消息中你可以看到问题:

    Snap7Exception: TCP : Connection timed out.        

验证您与计算机的物理连接,然后验证客户端 IP。


0
投票

验证:

  • 如果 PLC 实际上 ping 通
  • 如果您的 PC 上启用了 Snap7 服务器
  • 根据您的 PLC,机架和插槽是否正确。

snap7附带的手册很详尽,请参考一下


0
投票

在tia门户中验证: 属性>保护和安全>连接机制>并选中“允许使用PUT/GET访问..”


0
投票

通过以下行更新您的代码检查,我对此有经验。

plc = snap7.client.Client()
plc.connect(plc_ip_address, rack, slot, 102)
© www.soinside.com 2019 - 2024. All rights reserved.