实验目的
实现485接口系列雷达Modbus协议在Python上实现读取的功能。
测试环境
Window 10、Python 3.8.6
Python 库需求
- serial 串口库(自带)
- time 定时库(自带)
- modbus_tk Modbus库(需要安装)
库安装说明
确保已经完整安装Python(并安装PIP)
打开CMD窗口输入以下指令
pip install modbus_tk
安装成功界面
例程:
# -*- coding: utf_8 -*-
import serial
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import time #添加定时器
def mod(PORT="com21"):
red = []
alarm = ""
try:
# 设定串口为从站
master = modbus_rtu.RtuMaster(serial.Serial(port=PORT,
baudrate=115200, bytesize=8, parity='N', stopbits=1))
master.set_timeout(5.0)
master.set_verbose(True)
# 读保持寄存器
red = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 2) # 这里可以修改需要读取的功能码
print(red)
alarm = "正常"
return list(red), alarm
except Exception as exc:
print(str(exc))
alarm = (str(exc))
return red, alarm ##如果异常就返回[],故障信息
if __name__ == "__main__":
while 1:
mod()
time.sleep(0.05) #500ms
注:
COM口需要选择转接板对应的口