我正在为一个系统开发自动化测试用例,需要一个自动化的Modbus输入设备。
我在这里的用例是实现一个基于Raspberry PI的RTU Modbus从站,并连接到一个Modbus主站。
我希望这个基于Raspberry-PI的从系统在主系统请求寄存器值时填充并向主系统发送响应。
我不熟悉这个协议和环境,我找不到任何有Modbus从客户机的python脚本或库。
我在下面看到了这个串行python代码,我可以成功地解码来自主机的modbus请求,
import serial
import time
receiver = serial.Serial(
port='/dev/ttyUSB0',
baudrate = 115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
while 1:
x = receiver.readline()
print x
我面临的问题是,这段代码只打印一系列串行位,我不知道如何从这些位解码Modbus数据包…
输出:
B'\x1e \x03 \x00 \x19 \x00 \x01w \xa2 \x1e \x10 \x00 \x00 \x01 \x02 \x03+\xb7 \x1e \x03 \x00 \n'
b'\x00\x02\xe6f\x1e\x03\x00\t\x00\x01vg\x1e\x10\x00\x10\x00\x01\x02\x01,(\xbd\x1e\x03\x00\n'
B'\x00\x0