基于Qt5的MODBUS协议编程与实现_第1页
基于Qt5的MODBUS协议编程与实现_第2页
基于Qt5的MODBUS协议编程与实现_第3页
基于Qt5的MODBUS协议编程与实现_第4页
基于Qt5的MODBUS协议编程与实现_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于Qt5的MODBUS协议编程与实现 戴振民Summary对于嵌入式软件系统的开发而言,上位机软件的编写尤为重要,很多嵌入式工程师都广泛关注上位机软件编写的研发领域。本文主要介绍的就是一种上位机软件的编程方法,提供了最新Qt5库编写的MODBUS协议的方案。【Key】串口语言 状态及编程 MODBUS开发出一款适合上位机控制的应用软件,在智能电子线路的研制过程中非常必要,对于一般的嵌入式应用软件的开发而言,总是会遇到各种上位机软件编写的难题,上位机软件编写的核心任务之一就是串口通信语言的编写。利用一些比较传统的上位机软件开发工具,例如VB6等软件,都基本上只能适用于比较老旧的Windows

2、操作系统,而C+又因为过于复杂而不便于被嵌入式工程师所利用,本文介绍的这种Qt5串口的编程方案,掌握起来比较轻松,功能也非常强大。1 Qt5串口如何进行通信Qt5串口可以实现跨平台的开发,是一个贯通C+和GUI的开发框架,可以调用模块化的C+类的数据库,实现和Visual C+软件可以调用的MFC库一样的功能,相比较其他软件接口而言Qt的编程更加简便快捷,实现了跨平台的功能,具备强大的扩展性,可以广泛用于嵌入式软件的开发之用。利用Qt进行编程的优势在于信号的使用机制可以利用开发工具中带的Qt Creater进行编写,Qt最新的版本目前叫做Qt5,其中用于串口通信的模块主要是类似于Q Seria

3、l Port和类似于Q SerialPort Info的平台。1.1 串口的列举通过静态的方法利用Q Serial Port Info可以实现所有端口的列举,通过获取端口的有用信息,可以常见的方法例如通过is BUSY的方法判断出端口在运行中所处的状态,如果是忙碌的状态,则可以通过Port Name的方法获取端口的名字,可以利用Q Serial Port info的方法对对象输入所要调用的Q Serial Port所关联的对象的Set Port进行Set Port Name的方法,或者也可以采用参数的方法进行调用,例如将Q Serial Port info的对象看成是一个参数,利用set Po

4、rt的方法进行调用,将他们设置成一个设备的串口。1.2 串口的设置方法在上位机中进行串口通信的步骤就是选择串口的参数,嵌入式设备开发的必备一步就是进行参数的设置。在Qt5中,可以使用Q Serial Port对象来进行抽象的端口设置,进行端口的封装和相关操作。在构成了一个QSerial Port对象之后,可以通过Set Port Name或者采用Set Port的方法进行参数设置,在打开了该端口之后,Q Serial Port就可以对进入设备的信息进行检测,进行初始化设置,或者也可以使用其他的例如set Flow Control的方法对流控模式、波的频率和数据的帧格式进行重新设计,例如串口的波

5、特率可以为19200,数据帧可以为8N1。1.3 串口数妮的读写方法数据的收发是串口通信的核心,利用强大的Q Serial Port软件对对象文件进行设置,可以让简单的读写指令实现串口的设计目标,可以利用read line和read all指令对端口的情况进行调用,如果利用一次数据就读写完整了数据,余下的数据会存放在Q Serial Port软件里面,作为其中的缓存数据,新的数据会储存在缓存的尾部,利用例如set read和buffer size的方法对缓冲区域的大小进行设置。串口数据适合读取的时机关系密切的,时机的选择问题通常涉及到两个路径,一个是循环不断的串口路径,另一个是可能接受的一些数

6、据,但是去掉其中的一些任务,并不会对其他任务指令造成阻塞,一般采用的是GUI的应用,或者选择其他的Qt的强大信号机制。进行连接的是Q Serial Port和ready read进行数据的接受,通过数据的端口对槽函数进行读取。如果串口可以进行数据接收,槽函数就可以实现数据调用,可以利用的数据端口在函数调用的过程中涉及到数据的列队问题,可以方便对之后的数据包进行读取操作,作为设置代码的一种手段。1.4 串口的关闭串口的操作需要使用close函數进行,关闭端口,停止I/O操作。2 MODBUS协议的实现方法想要实现端口的可靠通信问题,还需要具备的是可靠的串口通信协议,MODBUS就是一种协议,在工

7、业领域已经获得了广泛的应用,下文介绍的一些方法就是MODBUS协议在工业产业生产中已经获得过广泛的推广,该协议在Qt串口的运行过程中也可能发挥更大的作用。2.1 MOUBUS的简介MOUBUS协议是一种简单的利用电子控制原理工作的通信软件,是一种通信语言,通过MOUBUS协议可以实现控制器之间的沟通与互动,控制神经网络和设备之间实现通信的顺畅,并且其已经成为了工业的一种标准,利用该设备,不同的厂商之间的设备可以实现兼容互通,构成一种互联的工业网络,为了实现监控的集中和可控制,还会尝试机器识别的方法实现控制器之间的消息互通,通过各种结构实现网络通信,如果通过一种机制可以和另外一种机制实现设备之间

8、的沟通互联,一种设备将会能够回应其他设备的请求,设备可以学会侦测错误记录并进行及时更正。可以通过一种控制器对另外一种设备的访问,将侦测出来的错误记录通过路径记载的形式储存起来,在制定了相应的网络格局之后实现公共格式的共享。MODBUS的消息帧可以分成RTU消息帧和常见的ASCII消息帧,通过RTU消息帧可以实现CRC冗余循环的效验,通过LRC纵向冗余的效验功能,可以实现ASCII消息帧的效验。对MODBUS的关键内容进行效验在于解码其消息帧,考虑到串口通信中可能出现各种信息传输的错误问题,可靠的消息帧的检测可以采用机器编码的方式进行,根据消息帧的数据结构可以实现同一设计模式下的数据功能转换。数

9、据程序的包装转换可以通过起始状态的消息更新进行,当收到一部分数据之后,就会对应的进入下一个工作状态,接收到的信息因而不会出现错误的可能,如果仅仅是简单的数据丢失,则不必再等待另一个数据帧的传输。3 结语本文介绍了数据包的开发方案和实现方法,本文阐明了Qt5串口如何进行编程,根据状态机的数据如何进行解码等一些软件功能的实现方法,根据实践检验,该种测试方案编程容易,工作起来也非常稳定。Reference1龙灏.SQLite数据库在Qt5开发环境中的应用J.电子世界,2017(24):61+63.2谢学刚.基于Qt5.0的机器人上位机系统的设计D.东北农业大学,2016.3谢学刚,董桂菊,于猛,郭凯敏,郭志强,朱铁欣.基于Qt5.0的机器人姿态检测与控制系统的设计J.农机化研究,2016,38(04):90-93+98.4范贵生,虞慧群,陈丽琼,刘冬梅,分布式嵌入式系统的自适应能耗管理和分析J.软件学报,2014,25(02):419-438.5任慰,以实时操作系统为中心的嵌入式系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论