我是靠谱客的博主 眼睛大唇膏,最近开发中收集的这篇文章主要介绍python三菱modbus解密_学习笔记python-modbus rtu的实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求:通过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的实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部