基于Modbus-TCP协议的航行器导航数据分发软件设计毕业论文
2020-02-19 07:57:13
摘 要
随着互联网信息化程度的日渐完善以及工业现场总线控制技术的蓬勃发展,现场总线控制系统通过以太网和信息技术结合已经成为信息一体化领域的研究热点之一。Modbus协议是目前工业领域中较流行的现场总线技术之一,是实现数据分发软件数据交互的桥梁,基于QT框架开发软件非常便捷,故采用Modbus协议并且选用QT平台来设计水下航行器数据分发软件。
首先分析目前水下航行器软件分发系统的现状,根据设计要求来选择应采用的技术,主要有通信方式、软件平台以及数据库三方面,根据所采用的技术搭建软件的总体架构。
然后根据数据分发软件的工作流程进行整体设计,构建并合理规划程序开发中使用的类,对传输过程的数据依据数据的不同要求进行处理,再调用数据库来完成服务器端数据的存储以及可视化工作,设计通信异常处理程序来处理通信过程中的异常情况。
最后进行软件测试,验证数据通信是否正常稳定,数据库的存储功能和可视化功能是否准确。
关键词:无人水下航行器;Modbus;QT;数据库
ABSTRCT
With the gradual improvement of the degree of Internet informatization and the vigorous development of industrial fieldbus control technology, fieldbus control system through the combination of Ethernet and information technology has become one of the research hotspots in the field of information integration. Modbus protocol is one of the most popular field bus technologies in the industrial field. It is a bridge to realize the data exchange of data distribution software. It is very convenient to develop software based on the QT framework. Therefore, Modbus protocol and the QT platform are adopted to design the data distribution software for underwater vehicle.
Firstly, the current status of software distribution system of underwater vehicle is analyzed. According to the design requirements, the technology to be adopted is selected, including communication mode, software platform and database. According to the technology adopted, the overall structure of the software is built.
Then, according to the workflow of the data distribution software, the overall design is carried out, the classes used in the development of the program are constructed and rationally planned, the data in the transmission process are processed according to the different requirements of the data, and then the database is called to complete the storage and visualization of the server-side data, and the source of the communication exception processing program is designed. Handle abnormal situations in communication process.
Finally, the software test is carried out to verify whether the data communication is normal and stable, and whether the storage and visualization functions of the database are accurate.
Key words: unmanned underwater vehicle; Modbus; QT; database
目录
第1章 绪论 1
1.1论文的研究背景 1
1.2论文的研究现状 2
1.3论文主要研究内容 3
第2章 软件结构设计 4
2.1 设计要求 4
2.2通信方式选取 4
2.2.1现场总线技术 4
2.2.2 Modbus通信协议 5
2.3软件平台的选择 7
2.4数据库的选择 7
2.5 软件的总体架构 8
2.4 本章小结 8
第3章 软件设计与实现 9
3.1 软件工作流程 9
3.2通信相关的类 10
3.3数据处理 12
3.4数据库的使用 15
3.5 通信异常处理 17
3.6软件测试 17
3.6.1 数据通信功能测试 17
3.4.2 数据存储及可视化功能测试 20
3.7 本章小结 21
第4章总结与展望 22
4.1 总结 22
4.2 展望 22
参考文献 23
致谢 24
第1章 绪论
1.1论文的研究背景
水下航行器属于可以自动化地执行控制任务的系统,该系统主要工作于水下来完成某种特殊的任务,主要控制方式是遥控或者运行预定程序,通过运用水下航行器可以完成深海地形探测、海洋资源开发以及军事上的海洋作战等任务[1],这就需要无人水下航行器有一个运行稳定、实时性良好的通信系统,因此此次设计主要研究无人水下航行器管理数据分发的通信软件,从而提升通信系统数据传输的性能。近些年来,移动互联网技术的崛起和信息通讯技术的发展,对自动化领域产生了重大而深远的变革,而在这次变革当中最核心的技术是现场总控制技术。工业控制领域拥有许多现场总线控制技术,其中Modbus现场总线控制技术已成为工业领域通信协议的标准,它是Modicon公司在1979年而发表的,主要用来解决可编程逻辑控制器(PLC)通信的问题,目前存在两个版本,一种应用用于串口,另一种应用于以太网以及其它支持互联网通信协议的网络版本。目前Modbus协议在工业自动化中应用非常广泛,主要是因为Modbus协议标准的开放性比较强、支持各种设备接口、可在多种介质上传输。因此采用Modbus协议来设计航行器的数据分发软件更符合发展的方向并且满足无人水下航行器通信系统稳定性和实时性的要求。
Modbus通信协议有支持串口工作和以太网等多个不同的模式,其中最常用的模式是Modbus RTU,Modbus ASCII和Modbus TCP三种。Modbus TCP协议的通信数据传输效率非常高,主要原因是其应用层协议允许在一个 TCP/IP 帧中传输多个寄存器,另外 TCP/IP 协议本身的变化也只增加了几个字节的报文头。与其它工业以太网系统相比,Modbus TCP的市场应用已明显占优,并且在考虑初始成本和合理利用现有的资源上具有明显优势。以太网引入到控制系统这项举措为控制系统的持续发展提供了极大的可能性,在技术升级上也简便了很多,用户也不需要再投入更多的时间,这是大部分目前的现场总线控制技术都无法做到的。现有的机器人技术、智能制造技术都发展的十分迅速,同时也对通信网络的带宽和性能提出了更高的需求[2],而工业以太网技术都可以较好的满足这些需求。同时由于以太网通信具有通信速率快、开源性较强、应用范围广、易于安装和兼容性好等特点,故采用Modbus通信协议中的Modbus TCP协议来设计数据分发软件系统,通过此协议,服务器和客户端之间以互联网作为传输介质进行通信。
1.2论文的研究现状
无人水下航行器(UUV)由于具有体积较小、工作噪声低、自主化程度高和负载能力强等诸多优点,在军事领域中主要用于情报收集、监视、侦查工作等,同时也在民用领域中也发挥着巨大的作用,比如执行水下目标的探测以及水温、压力、海流测量等任务。无人水下航行器的研究开始的时间比较早,主要是在20世纪40年代,被广泛应用于执行海底探测以及打捞沉船等水下工作。然而对于水下航行器而言,通讯系统的用途就显得格外重要。随着无人航行器发展至今,水下通信技术也变得多样化,主要有短波通信、长波通信、水声通信等等。对于通信技术的应用各国也不尽相同,美国先进无人搜索系统主要应用水声信号将数据实时传输给母舰,法国的Alister3000使用了光纤通信、水声通信和无线电通信等多项技术,俄罗斯的MT-88也是通过水声通信来实时显示航行器的运动,通过水声通信也可以及时修改航行器程序。在过程控制与自动化领域,传统的现场设备与仪器仪表大多使用4-20mA的模拟信号来通信,存在着布线复杂以及信号的传输易受干扰等缺点,如今现场总线控制技术凭借其系统的开放性与结构的高度分散性已成为发展热点之一[3]。故本设计想通过运用现场总线技术来解决通信问题。
近来,由于现场总线技术和工业以太网技术的崛起,工业自动化的网络通信技术逐步向工业以太网统一。同时,由于一些通信接口芯片的研发以及价格上的优势,工业以太网技术得到了长足的发展,传统的工业技术主要偏重于测控,现在逐渐向信息的管理与集成发展。通过工业设备联网,人与设备、设备与设备之间就可以进行基于互联网的信息交互,工作人员可以通过使用互联网来远程监控设备运行状态。Modbus TCP凭借其优异的性能在工业以太网技术中发展迅速,在工业自动化领域也具有很高的应用价值。因此通过将现场总线技术与互联网相结合来设计无人水下航行器的通信系统具有一定的现实意义。
Modbus的主从通信机制可以较好的适应现代设备的对于通信需求,与互联网的客户机/服务器通信机理相对应[4]。Modbus通过和TCP/IP技术结合,借助TCP来安全稳定的传输Modbus数据,从而在工业自动化领域得到了广泛的应用。本次毕业设计期望研究基于工业以太网标准的Modbus TCP通信协议,然后设计出相应的无人航行器数据分发软件,用于管理航行器的导航信息,包括经纬,航向,潜深及姿态等信息,将这些导航信息实时,准确地分发给指定的下级设备。本设计中采用一个服务器多个客户端的工作机制。要求服务器能够按照指定协议接收客户端传来的数据并存入数据库,客户端能够实时接收导航信息,完成数据的转发,服务器和客户端能一对多方式工作。
1.3论文主要研究内容
本次设计的主要研究内容是水下航行器导航数据分发软件的设计和实现,并对传输过程中可能出现的通信失误进行适当处理以及传输的数据进行存储。以无人水下航行器数据分发软件为应用的对象,利用QT Creator软件开发相应的应用程序,在QT平台中采用Modbus TCP协议作为通信方案。水下航行器的数据分发软件包括服务器端和相对应的客户端(航行器),整个系统的数据传输基于标准的通信接口和数据格式,水下航行器的自身位姿态、状态等信息由传感器采集获得,并基于Modbus TCP协议定时的地将设定数据通过构建Modbus应用数据单元以报文形式发送给服务器,服务器响应航行器的请求完成数据的接受和显示,然后存储在数据库中。服务器也可实时采集设定的命令数据,经过处理后基于Modbus TCP协议发送给航行器,从而达到预期对航行器下发指令的效果。设计中只包含服务器和客户端的软件,不包含硬件系统,故采用编程模拟传感器产生数据的过程,重点研究数据的传输与存储以及通信失误的处理。课题的主要内容总结如下:
(1)在QT平台中设计基于Modbus TCP通信协议的数据分发软件来操作数据的生成、处理、分发过程,并且可以基于IP地址、设备通信端口的一对多连接机制,通过建立服务器和客户端的指定设备地址连接来实现一个服务器对多个客户端的管理。软件设计包括服务器端和客户端,从而确保数据传输、参数修改、模式切换的便捷性。
(2)在数据发送和接收以及服务器与客户端连接过程中可能出现的错误做出合理的提示,从而帮助用户更快的发现纠正常见错误。
(3)建立本地数据库来管理服务器接收的数据,同时利用QT的丰富的API函数实现数据的可视化,以表格形式来管理存储的数据。
第2章 软件结构设计
2.1 设计要求
本次设计主要研究无人水下航行器数据分发软件的设计,通过应用Modbus TCP通信方式,采用以太网作为物理接口来设计数据分发软件。此航行器的导航数据分发软件系统包括一个服务器和多个客户端,整个软件系统采用QT平台搭建,借助QT Modbus的一些常用类来搭建数据收发流程,客户端通过模拟航行器生成导航数据,包括经纬度、潜深及姿态信息,并且通过客户端软件指定服务器IP地址、通信端口和通信地址,然后向服务器端发送用来启动事物的报文。服务器端通过配置IP地址、通信端口和通信地址来响应客户端的数据,同时服务器也可向指定客户端发送数据从而实现数据的双向传输,数据的存储采用一种轻型的文件型数据库SQLite,由于QT对此数据库的支持,数据库的操作变得更加简便。数据的可视化采用SQL的表格模型来实现,以表格的形式展示数据库中存放的导航数据。
总结起来,软件的主要功能有实现服务器和多客户端之间的双向数据传输功能、使用数据库SQLite完成数据的存储功能以及应用QT平台的表格模型实现数据的可视化功能。
2.2通信方式选取
2.2.1现场总线技术
计算机技术、通信技术以及互联网技术的发展使得现场总线控制技术逐渐成熟。现场总线控制技术集合了目前的先进电子技术、仪表技术、网络技术和计算机技术。现场总线主要被用于连接工业现场的设备,而现场总线控制系统是把现场总线控制技术作为主体的自动控制系统,为了推进控制与管理一体化,现场总线技术在各个设备之间通过使用公开并且规范化的通信协议来进行通信,从而完成数据的传输和信息的交互[5]。现场总线控制系统从真正意义上实现了现场设备的智能化以及控制技术的分散化。
采用了现场总线控制技术可以将控制系统结构变得简单,从而节省了系统开发成本并且易于维护。目前很多市场上有很多不同厂商、品牌的现场设备可供设计者选择,从而诞生了很多个性化设计,现场总线技术也因此得到了充分的发展。经过了近些年的发展,现场总线技术的国际化标准仍然无法确定,因此现场总线发展演变也较多,大概有几十种:PROFIBUS总线、EtherCAT总线、Lightbus总线、Interbus总线、CANopen总线、Ethernet总线、Modbus总线和CAN总线等等。
2.2.2 Modbus通信协议
Modbus是MODICON公司为了解决特定问题而推出的一种通信协议,从协议的功能出发可以认为这是一种现场总线。采用Modbus接口的硬件设备可以很方便的进行集合组态。通过定义数据帧格式的方式,用来表示控制器访问另一设备的过程以及如何作出应答信号、检查和报告错误。
从OSI模型上看Modbus属于应用层协议,提供了客户机/服务器通信服务[6]。自从工业串行链路的通用标准发布以来,越来越多的自动化控制设备通过Modbus来实现通信功能。Modbus从功能层面来看可以认为是请求/应答型协议,同时其多样的功能码的应用极大的提高了通信的灵活性。
图2.1Modbus通信栈
Modbus协议的通信实现由一个个底层的协议数据单元(PDU)组成,即PDU=功能码 数据域。Modbus协议可以应用在不同类型的总线或网络上,通过引用一些附加域可以构成ADU,即ADU=附加域 PDU,通用Modbus帧结构如图2.2。
图2. 2 通用Modbus帧
可以使用Modbus事务处理机制通过客户机来产生Modbus应用数据单元[7]。客户机发送的功能码向指示服务器将要按照何种方式工作。在客户端向服务器发送的报文数据里包括了其它信息,其中包含了许多指令操作,服务器通过解析这些信息来完成功能码要求的多种操作。报文数据里还会包括离散数据和读写寄存器的地址、数据的数量以及实际的数据字节个数。
在正常接收到的Modbus 应用数据单元中,如果没有出现和请求Modbus功能相关的差错,那么服务器到客户端的响应数据域应该包括请求数据[8]。如果在数据传输过程中出现了与请求Modbus功能有关的错误,那么域里将会包括异常码,服务器应用可以通过解析这个域来弄清楚后续的操作。
Modbus通信协议有Modbus RTU、Modbus ASCII和Modbus TCP三种工作模式,相比Modbus的RTU协议,MODBUS ASCII协议拥有开始和结束标记,采用ASCII码来进行数据传输,所以ASCII协议的程序中对数据包的处理能更加方便,但是它也会使用特殊字符作为了数据传输开始和结束的标志,数据包中相邻字节之间的传输时间可以大于1秒钟,因此在传输效率上会比Modbus的RTU协议要低。Modbus RTU的数据结构更加紧凑,通信效率也非常高,因此应用比较广泛。只有通信应用中数据量非常小的情况下才会考虑使用Modbus ASCII通信协议,工业控制现场上采用Modbus RTU协议的情况会比较多。Modbus TCP协议简单的来说可以看成是在Modbus RTU协议上加一个MBAP报文头,由于网络连接一般比较可靠,Modbus RTU协议中使用的CRC校验码在Modbus TCP协议中不再需要。通过简单分析Modbus通信协议的基本结构和多种模式可以看出Modbus TCP协议更加适合这次水下航行器软件系统通信方案的设计,可以大大提高传输的稳定性和布局的便捷性。
通过对比其它现场总线技术和Modbus TCP协议可以看出Modbus TCP的通信机制和数据传输方式更加适合此次航行器导航数据分发软件设计,因此选择其作为此数据分发软件的传输协议。
2.3软件平台的选择
QT最早是由奇趣科技开发的 C 跨平台应用程序和UI开发框架。相比 MFC,QT封装得更好,能较好地跨平台运行。QT编写的程序对平台的要求很低,源代码经过简单的处理后便可在任何支持的平台上编译运行。根据不同的平台,QT可以表现出特有的图形界面风格。QT支持的操作系统有Windows、Linux、Android、IOS 等。近些年,QT也逐渐发展起来,不但拥有了完备的C 图形库,而且还逐渐增加了数据库、OpenGL库、多媒体库、网路、WebKit库等功能,进程间通信和多线程模块也被加入核心库的功能之中,在现在以及未来的大规模复杂跨平台应用程序开发上,QT也具有自己的核心竞争力。作为跨平台应用程序开发框架,越来越多的应用程序开发采用QT来开发,而网络程序又是软件开发的主要内容之一,故利用QT来设计基于Modbus TCP协议的航行器数据分发软件。通过调用QT封装好的Modbus类来处理服务器和客户端连接、数据交互问题,极大的缩短了开发时间。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: