概述
需求:通过modbus协议,从各类传感器获取数据,实时显示测得的数据。
1)需要先安装python依赖包pyserial和pymodbus_tk。
安装方法:cmd里直接运行 pip install pyserial。
pip install pyserial
(由于我的系统是win7 32位,安装python时不知为何装不上pip,最后是手动离线安装的,直接运行pip出错,需要输入python -m pip install pyserial)。
安装pymodbus_tk时也出错
image.png
无奈只好也离线安装,安装包下载地址https://github.com/ljean/modbus-tk。下载好后,cmd cd进入安装包目录,运行下面指令即可完成安装。
python setup.py install
2)模拟串口数据,需要两个工具:
Configure Virtual Serial Port Driver可以创建虚拟串口;
image.png
Modbus Slave,用于模拟slave,产生数据,发送串口com1,接收串口com2。
image.png
3)连接串口
master = modbus_rtu.RtuMaster(serial.Serial(port="com2",baudrate=9600, bytesize=8, parity='N', stopbits=1))
'''
port ——端口号
baudrate——波特率
bytesize——数据位
parity——校验位
stopbits——停止位
'''
master.set_timeout(5.0)
master.set_verbose(True)
4)读取数据
def getdata():
Hold_value = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9) # 参数可修改
#1——从机地址
#cst.READ_HOLDING_REGISTERS——功能码,读保持寄存器
#0——寄存器起始地址
#9——寄存器数量
lb2.configure(text=Hold_value[0]+Hold_value[1]/100)# 在标签lb2显示值
app.after(1000,getdata) # 每隔1s调用函数 getdata自身获取数据
注意,Hold_value是一个元组,图示数据输出值为(12,44,0,0,0,0,0,0,0,)
地址0的值为Hold_value[0]
5)显示界面,用标签显示即可
image.png
最后
以上就是眼睛大唇膏为你收集整理的python三菱modbus解密_学习笔记python-modbus rtu的实现的全部内容,希望文章能够帮你解决python三菱modbus解密_学习笔记python-modbus rtu的实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复