我想通过modbus协议在树莓pi(从机)和pc(主机)之间建立通信。目前,我正在使用
modbus-tk
(python)设置通信协议。
问题是主设备无法从从设备读取寄存器我能知道我的代码有什么问题吗我很困惑。
我从Slave得到的错误是:
Handle request failed: Invalid CRC in request or Request length is invalid
我从师父那里得到的错误是:
ModbusInvalidResponseError
注:目的是使用主机从从机上读取数据。
这是奴隶的代码:
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import serial
import time
modbusServ = modbus_rtu.RtuServer(serial.Serial('/dev/ttyUSB0'),baudrate= 19200,
bytesize=8, parity='N', stopbits=1, xonxoff=0)
print("start")
modbusServ.start()
slave_1 = modbus_tk.modbus.Slave(1)
slave_1.add_block ( "1", modbus_tk.defines.HOLDING_REGISTERS, 1, 5)
aa= (1,2,3,4,5) # data in the register
while True:
sla
本文介绍了如何使用Python的modbus-tk库在树莓派(从机)和PC(主机)之间通过Modbus RTU协议进行通信。作者遇到的问题是主机无法从从机读取寄存器,从机返回'Invalid CRC in request or Request length is invalid'错误,而主机收到'ModbusInvalidResponseError'。提供了从机和主机的代码示例,但需要进一步排查CRC错误和响应有效性。
最低0.47元/天 解锁文章

1996

被折叠的 条评论
为什么被折叠?



