python语言编写的modbus协议_RTU Modbus从机的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
我面臨的問題是,這段代碼只打印一系列串行位,我不知道如何從這些位解碼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\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,)\u \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协议_RTU Modbus从机的python脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sprintf函数的格式化字符串_尚学堂
- 下一篇: sqlserver 字符串中添加单引号_