pymodbus( + v3.8.3):启用modbus函数代码(例如0x03,0x04,0x06 ...等)

问题描述 投票:0回答:0

这是我先前发表的一个后续问题。 我正在使用Modbus RTU协议创建Python代码来查询从属模块。该设备是PZEM-004T版本3(最新),用于监视AC电压电压和任何电气设备消耗的电流。 Ningbo -Peacefair制造此全球分布式设备。 我正在使用pymodbus v3.8.3。 Pymodbus文档和通过(例如)VS代码可用的弹出帮助将提到特定的代码线对应于特定的Modbus功能代码。例如:

client.read_coils == modbus函数“读取线圈” ==功能代码

0x01

  • client.read_holding_registers== modbus函数“读取holding 寄存器”,==功能代码0x03。
  • 从属设备的数据表说[编辑以更清晰的目的]:
  • 应用程序层使用Modbus-RTU协议进行通信。目前,它仅支持函数代码,例如 •0x03(读取寄存器), •0x04(读取输入寄存器), •0x06(写单寄存器), •
  • 0x41(校准;
用于制造商使用), •

0x42(重置位于测量值重新注射位的内存

,这些位置位于内存位置0x0005(LSB;总计16位)和0x0006(HSB; 16位;总计)

所以,到目前为止,我已经能够发现0x04和0x06的pymodbus master to-slave命令(以及其他),但是.....0x41

0x42
modbus-functions并没有明显的pymodbus等效 modbus和pymodbus(通常是python),我可能正在寻找错误的位置,或者是错误的关键字等。

有人可以将我指向正确的方向吗?这些信息是否列出了以供快速参考? pymodbus没有与这些功能代码进行通信的方法。 (它们是特定于制造商的吗?) 您可以通过继承ModbusPDU

,请参见pymodbus codebase中的

examples/custom_msg.py

来实现自己的消息。
python server client pymodbus
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.