现场总线课程设计-基于modbus协议使用QT实现主从站控制通信

本文详述了一次使用QT和MODBUS协议进行主从站控制通信的课程设计。设计中,作者实现了MODBUS库,支持读写线圈和保持寄存器等功能码,并通过串口调试助手模拟通信过程。通过实操,作者加深了对MODBUS协议的理解,包括帧结构、功能码应用场景和CRC校验。在程序设计部分,作者使用QT创建了主站和从站程序,实现了定时读取、控制线圈和显示从站启动次数等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【平台:QT】
【协议:modbus(注:由于要求,需要自己来实现modbus库,而非直接调用已有的库)】
【由于复制粘贴,时间原因可能格式有误,如需要具体工程文件以及报告文件请私信博主或移步
【闲鱼】https://m.tb.cn/h.T6JisBK?tk=jTYF3AMxZUT CZ0001

1、 大作业任务:
(1)使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析)
(2)使用串口调试助手,手工发出MODBUS主、从站该发出的数据,并观察对方发出的数据
(3)实现MODBUS主、从站功能,描述实现过程(语言不限于使用VC,PYTHON,QT,JAVA,C#等,任何一个都可以,希望互相不要重复)
需实现的功能码有:
–01,读线圈
–05,写线圈
–03,读保持寄存器(例程中已初步实现)
(4)实现主站的启停按钮对从站1的运行指示灯的启停控制。主站读取从站的启动运行次数并在主站显示。

2、体验操作(步骤及感受)
2.1使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析)
① 安装打开虚拟串口软件Configure Virtual Serial Port Driver,配置设置虚拟串口com1和com2,将com1、com2虚拟出来并连接在一起
在这里插入图片描述

检验:在PC设备管理器中,可看到已有com1,com2串口,并显示连接一起
在这里插入图片描述

② 打开主从站模拟工具,点击setup->read/write(主机)/slave(从机)definition配置主从端的相关配置,主要有主从站ID,功能码,起始寄存器地址,访问寄存器数量,轮询时间这些参数。
01 读线圈状态
02 读离散输入状态
03 读保持寄存器
04 读输入寄存器
05 写单个线圈
06 写单个保持寄存器
15 写多个线圈
16 写多个保持寄存器
在这里插入图片描述

主站功能码:

01 读线圈状态
02 读离散输入状态
03 读保持寄存器
04 读输入寄存器
05 写单个线圈
06 写单个保持寄存器
15 写多个线圈
16 写多个保持寄存器
从站设置相应寄存器地址在这里插入图片描述

现设置从站为03holding register,则主站设为03 read holding register。
③ 将主从站模拟工具都connect到模拟串口,主站连接到com1,从站连接到com2,

在这里插入图片描述

④ 改变从站的寄存器值,可看到主站相应的位置也读到了值的改变
在这里插入图片描述

打开communication traffic,查看总线上主从站通讯过程过程
在这里插入图片描述

Tx:122-01 03 00 00 00 0A C5 CD
Rx:123-01 03 14 00 00 00 90 00 00 00 21 00 00 00 0B 00 00 00 00 00 00 00 00 C1 9B
分析:TX:01:从机地址 03:功能码,指定holding register
00 00:寄存器地址 00 0A:读取数据个数 10个
C5 CD:CRC校验码
RX:01:从机地址 03:功能码,指定holding register
14:返回字节数(16进制)20字节
00 00:0 00 90:144(0x90)
00 00:0 00 21:33(0x21)
00 00:0 00 0B:11(0x0B)
00 00:0 00 00:0
00 00:0 00 00:0
C1 9B:CRC校验码
⑤当在主站发送

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大T_S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值