问题描述
2 个从站(设备)正在工作。我使用从属单元 #2 和 #5。 #5 中的 MPR_46S,#2 中的温度计。从地址不是按顺序读取的,所以我需要读取一个我命名为“从跳转”的空从地址
NSlave=[2,5]
Clientnames=["client0","client1","client2","client3",]
def Find_Device(NSlave,Clientnames):
i=0
print("searching devices")
Devices=[]
S_Slave=[]
for i in range(len(NSlave)):
Clientnames[i].connect()
# check MPR_46S
result = Clientnames[i].read_holding_registers(address=0xEC00,count=1,unit=NSlave[i])
if not result.isError():
if result.registers==[41223]:
Devices.append("MPR_46S")
S_Slave.append(NSlave[i])
print("device found,Energy-Meter( MPR_46S) ")
else:
print("unsuccessful,meter")
else:
print('Errory >>>> {}',format(result) )
Clientnames[i].close()
####################################### slave_jump
Clientnames[i].connect()
result = Clientnames[i].read_holding_registers(address=0x0003,unit=200)
Clientnames[i].close()
####################################### slave_jump
result = Clientnames[i].read_holding_registers(address=0x0003,unit=NSlave[i])
Clientnames[i].connect()
print(Clientnames[i].connect())
# check Term
if not result.isError():
if result.registers == [1]:
Devices.append("Term")
S_Slave.append(NSlave[i])
print("device found,term")
else:
print("unsuccessful,term")
else:
print('Errory >>>> {}',format(result))
Clientnames[i].close()
####################################### slave_jump
Clientnames[i].connect()
result = Clientnames[i].read_holding_registers(address=0x0003,unit=201)
Clientnames[i].close()
####################################### slave_jump
i+=1
result.registers=[]
print(Devices)
print(S_Slave)
return (Devices,S_Slave)
我想知道这是什么原因。如果有更好的方法我想用
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)