python - 使用 Pymodbus 顺序读取多个从站
问题描述
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,count=1,unit=200)
Clientnames[i].close()
####################################### slave_jump
result = Clientnames[i].read_holding_registers(address=0x0003,count=1,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,count=1,unit=201)
Clientnames[i].close()
####################################### slave_jump
i+=1
result.registers=[]
print(Devices)
print(S_Slave)
return (Devices,S_Slave)
我想知道这其中的原因。如果有更好的方法,我想使用
解决方案
推荐阅读
- javascript - 如果真布尔值多于假布尔值,或者真布尔值与假布尔值相同,则返回真
- ios - DVTAssertions:(null) deviceType from UDID was NULL when -platform调用
- php - PHP列表数组并获取值
- python-3.x - Python validate_email 包没有产生正确的结果
- javascript - 如何在 mongoose virtuals 中使用 anync await?
- asp.net-mvc - 在 asp.net core 3.1 异步编程中使用带有 bootstrap 4 的徽章
- azure - 如何在 Azure 规模集上安装 SSL 证书?
- reactjs - React 组件应该在获取新数据之前挂载之前的状态
- javascript - 在页面渲染后添加事件 React
- angular - 在 AMP(加速移动页面)中转换 Angular 网页