用Pymodbus Python写设备命令寄存器



我有一个设备连接到计算机的COM端口。与设备的通信通过modbus协议进行。我需要从这个设备上读取一些信息——事件日志。仪器文档不是很广泛,但它说:

文档据我所知,为了初始化日志读取过程,我需要将值1写入寄存器100。

同样在文档中有一个示例请求:

[17:13:20:034] Written data (COM10)                 
01 10 7e f4 00 01 02 00 01 ec e3    // reg. 100  // Entire log upload transfer control register, address 100 . In parameter 1.           
[17:13:20:050] Read data (COM10) 
01 10 7e f4 00 01 58 13  

我不知道如何正确理解这个例子,所以我不知道我做的每件事是否正确。我下面的代码不会抛出错误,但不会产生任何结果。读取过程没有初始化,没有任何工作。我做错了什么?如何在python中正确地实现上面示例中的查询?

from pymodbus.client.sync import ModbusSerialClient as ModbusClient

client = ModbusClient(method='rtu', port=port, stopbits=2, bytesize=8, parity='N', baudrate=19200)
client.connect()
client.write_register(address=100, value=1, unit=1)

问题解决。只需要使用'write_registerS'而不是'write_register'。

client.write_register(address=100, value=1, unit=1)
client.write_registers(address=100, value=1, unit=1)

最新更新