我试图用python在Modbus TCP上读写数据。当我在下面的设置中使用ModbusPoll时,一切都可以工作。

我现在尝试用python读取数据,并为此使用了[医]绿脓杆菌库。我的代码如下所示:
from pymodbus.client.sync import ModbusTcpClient
from pymodbus.transaction import ModbusRtuFramer as ModbusFramer
client = ModbusTcpClient("192.168.0.7", port=502, framer=ModbusFramer)
success = client.connect()
read = client.read_holding_registers(address=4000)
read.registers但我总是会犯以下错误:
接收到ModbusIOException(InvalidMessageReceivedException('No响应,预期至少有2个字节(0接收到),1)
发布于 2022-08-12 10:06:32
读取保存寄存器需要一个单元来正确地读取消息。
read = client.read_holding_registers(address=4000, unit=1)发布于 2022-08-16 15:45:17
这就是帮我的忙。
检查设备的slave_ID (unit=slave_ID)。它不是议会1或0。例如,在我的例子中- 240。
result = client.read_holding_registers(address=0x0010, count = 2, **unit=240**)文件上说:
def write_register(self, address, value, **kwargs):
'''
:param address: The starting address to write to
:param value: The value to write to the specified address
**:param unit: The slave unit this request is targeting**
:returns: A deferred response handle
'''和:
def read_holding_registers(self, address, count=1, **kwargs):
'''
:param address: The starting address to read from
:param count: The number of registers to read
**:param unit: The slave unit this request is targeting**
:returns: A deferred response handle
'''查看文件"common.py“或在光标处于函数状态时按Ctrl+B。
https://stackoverflow.com/questions/73330328
复制相似问题