python Modbus客户端脚本读取传感器值

gijlo24d  于 2023-01-01  发布在  Python
关注(0)|答案(1)|浏览(188)

我在IP地址为www.example.com的LAN上安装了Modbus服务器192.168.0.111,ModbusMap是下面的片段,我正在尝试读取黄色突出显示的传感器:

有人能给予我如何运行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更改为print(result),这将返回,没有异常

Exception Response(129, 1, IllegalFunction)
qgelzfjb

qgelzfjb1#

在此问题的聊天中...引用了此overstackoverflow问题。完整答案:

from pymodbus.client import ModbusTcpClient
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder

client = ModbusTcpClient('192.168.0.111')
result = client.read_input_registers(500,2,units=1)
print(result.registers)
decoder = BinaryPayloadDecoder.fromRegisters(result.registers, byteorder=Endian.Big)
print(decoder.decode_32bit_float())
client.close()

相关问题