pymodbus连接有时不响应?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (73)

我使用“pymodbus”lib来连接PLC设备。该设备通过TCP使用Modbus RTU,设备将返回环境的温度和湿度。

地图地址列表

  • 0001:温度
  • 0002:湿度

我执行了一次以获得价值并且它可以成功。但我正在使用while循环有时会得到错误。我不知道为什么。

码:

from time import sleep
from pymodbus.client.sync import ModbusTcpClient
from pymodbus.framer.rtu_framer import ModbusRtuFramer

from pymodbus.register_read_message import ReadHoldingRegistersResponse

client = ModbusTcpClient(host='192.168.1.1', port=5000, framer=ModbusRtuFramer)    
client.connect()
while True:
    rr = client.read_holding_registers(0, 2, unit=1)

    if isinstance(rr, ReadHoldingRegistersResponse):
        temp = rr.registers
        print(temp)
    else:
        print('error')
    sleep(1)
client.close()

输出:

> ...
> [189, 444]
> [189, 443]
> [189]
> error
> error
> ...

我们可以看到,有时结果是正常获得的,有时结果是不完整的,有时结果不可用。

我该怎么做才能解决这个问题,我想监控这个设备。谢谢。

提问于
用户回答回答于

是的,我在pymodbus代码中一直看到这个。我怀疑在执行连续读取时实现有问题。我做的很简单,是在稍微延迟后重试失败的读取。而这通常会让它再次运作。或者,尝试关闭并重新连接客户端并重新尝试读取。还要尝试增加睡眠时间。让我知道事情的后续!

热门问答

直播间IM消息可以下载到自己服务器备份吗?

人生的旅途辣鸡前端
推荐
目前仅私有群(Private)、公开群(Public)和聊天室(ChatRoom)具备消息漫游能力(默认7天)。核实下您那边的群组类型看是否支持https://cloud.tencent.com/document/product/269/1502#.E6.B6.88.E6.81....... 展开详请

腾讯云容器加速地址是错的?

推荐已采纳

我刚才测试了一下,这个加速器地址可以用额,你这边是怎么测试出是关闭状态的啊?

加速器地址是不能直接用浏览器访问的,阿里云提供的直接访问也是空

webIM添加组员报错?

无聊至极互联网重度用户
推荐已采纳

付费超过组数限制,核实下是否超过限制

https://cloud.tencent.com/document/product/269/11673#.E5.8A.9F.E8.83.BD.E5.AF.B9.E6.AF.94

Tencent iot-sdk-embedded-c在Windows下编译出错:无法解析外部符号?

无聊至极互联网重度用户
推荐已采纳

腾讯云IM调用 add_group_member提示该群不能邀请成员?

推荐已采纳
是什么类型的群?根据相应类型的邀请他人入群的控制项,对照文档看下是否允许邀请他人入群。 参考文档:https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E6.88.90.E5.91.98.E6.93.8D.E4...... 展开详请

智能钛机器学习平台的模型怎么从外部调用?

腾讯智能钛AI开发者

腾讯云 · 智能钛产品团队 (已认证)

腾讯智能钛产品团队官方运营账号。分享产品最新动态,第一时间解答用户疑问。
推荐

所属标签

扫码关注云+社区

领取腾讯云代金券