标签: minimalmodbus

RTU Modbus Slave 的 Python 脚本

我正在为系统开发一个自动化测试用例,需要一个自动化的 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
Run Code Online (Sandbox Code Playgroud)

我在这里面临的问题是这段代码只打印一系列串行位,我不知道如何从这些串行位中解码 modbus 数据包...

输出: b'\x1e\x03\x00\x19\x00\x01W\xa2\x1e\x10\x00\x0f\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\ x02\xe6f\x1e\x03\x00\t\x00\x01Vg\x1e\x10\x00\x11\x00\x01\x02\x03 (\t\x1e\x03\x00\n' b'\x00\x02\ xe6f\x1e\x03\x00\t\x00\x01Vg\x1e\x10\x00\x12\x00\x01\x02\x01,)_\x1e\x03\x00\n' b'\x00\x02\xe6f\ x1e\x03\x00\t\x00\x01Vg\x1e\x03\x00\n' b'\x00\x02\xe6f\x1e\x03\x00\t\x00\x01Vg\x1e\x03\x00\n'

python modbus raspberry-pi minimalmodbus pymodbus

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

minimalmodbus ×1

modbus ×1

pymodbus ×1

python ×1

raspberry-pi ×1