我用Snap7库用Python编写了一个程序。我可以读和写不同的变量,没有任何问题。为了完成它,我需要随时检查与PLC的通信。我检查了我可以使用"get_connected()",但这是我想要的,只有当我建立起沟通,但这个get_ .在开始通信后删除连接时,不会更改该值。有人能帮我解决这个问题吗?
from tkinter import *
import snap7
IP='192.168.1.71'
Rack = 0
Slot = 1
PLC_Conectado = False
plc = snap7.client.Client()
tk = Tk()
def Conexion():
if not plc.get_connected():
try:
plc.connect(IP,Rack,Slot)
except:
print("Error")
print("Conexion:", plc.get_connected())
tk.after(5, Conexion)
Conexion()
tk.mainloop()我希望有任何变量来获得连接的状态。
发布于 2022-11-16 20:28:08
我能找到解决办法。使用此代码,当plc再次出现时,程序将重新建立连接。
import snap7
IP='192.168.1.71'
Rack = 0
Slot = 1
PLC_Conectado = False
plc = snap7.client.Client()
def ConexionPLC():
global PLC_Conectado, plc
try:
#plc = snap7.client.Client()
if not plc.get_connected() or plc.get_cpu_state() == 'S7CpuStatusUnknown' :
#try:
plc.connect(IP,Rack,Slot)
if plc.get_connected() and plc.get_cpu_state() != 'S7CpuStatusUnknown':
PLC_Conectado = True
else:
PLC_Conectado = False
except:
if PLC_Conectado:
plc.destroy()
plc = snap7.client.Client()
PLC_Conectado = Falsehttps://stackoverflow.com/questions/74463336
复制相似问题