【发布时间】:2023-01-01 04:35:56
【问题描述】:
我在 LAN 上设置了一个 Modbus 服务器,IP 地址为 192.168.0.111,Modbus 地图是下面的这个片段,我正在尝试读取突出显示为黄色的传感器:
有人可以告诉我如何运行 Modbus 客户端脚本并读取传感器值吗?
from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.0.111')
result = client.read_coils(30500,1)
print(result.bits[0])
client.close()
这将出错:
print(result.bits[0])
AttributeError: 'ExceptionResponse' object has no attribute 'bits'
稍微试验一下并将打印更改为print(result),这将无一例外地返回
Exception Response(129, 1, IllegalFunction)
【问题讨论】:
-
第一个地址数字可能表示 Modbus 功能代码。试试
client.read_holding_registers(500, 2, unit=1)。 -
感谢您的评论...同样的事情 -
AttributeError: 'ExceptionResponse' object has no attribute 'bits' -
它是这些独立电表之一:egauge.net/commercial-energy-monitor
-
我注意到的一件事是当我使用时:
result = client.read_input_registers(500, 2, unit=1) print(result)这不会从设备返回ExceptionResponse...这只会打印ReadInputRegistersResponse (2) -
但是我还是绕不开
print(result.bits[0]) AttributeError: 'ReadInputRegistersResponse' object has no attribute 'bits'