一种基于QT的跨平台数据通信方法及系统与流程

文档序号:11253810阅读:1182来源:国知局
一种基于QT的跨平台数据通信方法及系统与流程

本发明涉及工业自动化控制领域,尤其涉及一种基于qt的跨平台数据通信方法及系统。



背景技术:

在现代科技的发展推动下,工业技术逐渐向着现代化、自动化、智能化的方向不断发展。目前,工业自动化技术已经成为很多工业领域的主要生产技术,极大的提高了生产效率,提高了产品质量。而在使用工业自动化技术进行生产时,最重要的环节就是要做好自动化控制。

但是,随着工业的发展壮大,控制设备的增多,出现不能够同时满足在中标麒麟操作系统和windows操作系统下对工业控制现场各种设备实现实时数据获取及处理需求,进而导致重复工作和网络的多种冲突的问题。



技术实现要素:

本发明提供的基于qt的跨平台数据通信方法及系统,能够通过将以太网络底层的数据传输功能和上层应用程序分开独立设计,进而使其不依赖于操作系统及硬件环境,达到统一完整地管理网络状况的效果,进而避免重复工作和网络的多种冲突,具有很好地灵活性、扩展性和低耦合性。

第一方面,本发明提供一种基于qt的跨平台数据通信方法,包括:

接收上位机、或下位机的通信数据或文件传输数据;

对所述通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,以使通信数据或文件传输数据能在具有不同操作系统的上位机与下位机之间进行传输;

将数据包发送队列下发至下位机、或上传至上位机。

可选地,所述对所述通信数据或文件传输信息进行分类处理、优先级处理或分包处理并形成数据包发送队列包括:

对所述通信数据或文件传输数据进行分类处理或分包处理;

调用用于支持文件、内存、命令或发送/接收的网络操作动态库中的相关函数并打通路径;

调用用于提供远程登陆、获取/网络地址或指定状态的网络通讯动态库中的相关函数并将经分类处理或分包处理后的通信数据或文件传输数据按优先级放入数据包发送队列内对应的队列中;

按优先级算法查询数据包发送队列内的各个队列,将各个队列的数据发送至目的地址。

可选地,所述将数据包发送队列下发至下位机、或上传至上位机包括:

获取数据包发送队列内的各个队列所指定发送的网络通信接口;

根据网络通信接口将各个队列下发至下位机、或上传至上位机。

可选地,在所述对所述通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列之后,所述方法还包括:

获取时间信息并将时间信息加入数据包发送队列。

可选地,所述获取时间信息并将时间信息加入数据包发送队列包括:

将所述通信数据和文件传输数据打包形成第一数据包并发送至历史站,由历史站将时间信息加入第一数据包并形成第二数据包,然后全网同步第二数据包;

将第二数据包加入数据包发送队列中。

可选地,在将数据包发送队列上传至上位机之后,所述方法还包括:

根据数据包发送队列进行解析处理并获取对应的通信数据或文件传输数据;

根据对应的通信数据或文件传输数据生成对应消息并通知上层应用软件。

可选地,在将数据包发送队列上传至上位机之后,所述方法还包括:

接收网络数据并得出数据类型;

根据数据类型将数据发送至目的地址。

第二方面,本发明提供一种基于qt的跨平台数据通信系统,包括:

接收模块,用于获取上位机、或下位机的通信数据或文件传输数据;

数据通信组件,用于对所述通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,以使通信数据或文件传输数据能在具有不同操作系统的上位机与下位机之间进行传输;

网络通信组件,用于将数据包发送队列下发至下位机、或上传至上位机。

可选地,所述数据通信组件包括:

网络操作动态库,用于支持文件、内存、命令或发送/接收;

第一调用单元,用于调用网络操作动态库中的相关函数并打通路径;

网络通讯动态库,用于提供远程登陆、获取/网络地址或指定状态;

第二调用单元,用于调用网络通讯动态库中的相关函数并将通信数据或文件传输数据按优先级放入数据包发送队列内对应的队列中;

发送单元,用于按优先级算法查询数据包发送队列内的各个队列,将各个队列的数据发送至目的地址。

可选地,所述网络通信组件包括:

获取单元,用于获取数据包发送队列内的各个队列所指定发送的网络通信接口;

传输单元,用于根据网络通信接口将各个队列下发至下位机、或上传至上位机。

可选地,所述系统还包括:

数据包发送模块,用于将所述通信数据和文件传输数据打包形成第一数据包并发送至历史站;

同步模块,用于接收第二数据包并同步第二数据包;

处理模块,用于将第二数据包加入数据包发送队列中。

可选地,所述系统还包括:

解析处理模块,用于根据数据包发送队列进行解析处理并获取对应的通信数据或文件传输数据;

通知模块,用于根据对应的通信数据或文件传输数据生成对应消息并通知上层应用软件。

本发明实施例提供的基于qt的跨平台数据通信方法及系统主要是通过接收上位机通信数据或文件传输数据,并将通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,使其不依赖于下位机与上位机之间的操作系统及硬件环境,也将通信数据或文件传输数据下发至下位机并由下位机执行对应操作,因此,实现对下位机的组态同步、进程控制、文件维护等工作。或者,接收下位机的通信数据或文件传输数据,经过上述处理后上传至上位机的接收队列中并对下位机实现实时的状态监控工作。

本发明实施例中所述方法主要是利用将以太网络底层的数据传输功能和上层应用程序分开独立设计,进而使其不依赖于操作系统及硬件环境,达到统一完整地管理网络状况的效果,进而避免重复工作和网络的多种冲突,具有很好地灵活性、扩展性和低耦合性。

附图说明

图1为本发明一实施例基于qt的跨平台数据通信方法的流程图;

图2为本发明另一实施例基于qt的跨平台数据通信方法的流程图;

图3为本发明一实施例发送通知包结构示意图;

图4为本发明另一实施例基于qt的跨平台数据通信方法的流程图;

图5为本发明一实施例基于qt的跨平台数据通信装置的结构示意图;

图6为本发明另一实施例基于qt的跨平台数据通信装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种基于qt的跨平台数据通信方法,如图1所示,所述方法包括:

s1、接收上位机、或下位机的通信数据或文件传输数据;

s2、对所述通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,以使通信数据或文件传输数据能在具有不同操作系统的上位机与下位机之间进行传输;

s3、将数据包发送队列下发至下位机、或上传至上位机。

本发明实施例提供基于qt的跨平台数据通信方法,其中,qt:跨平台c++图形用户界面应用程序;

跨平台:不依赖于操作系统及硬件环境,一个操作系统下开发的应用,放到另一个操作系统环境下依然可以正常运行;

历史站:长期保留历史数据的服务器,并兼具直接发出操控命令的功能;

上位机:是指可以直接发出操控命令的计算机;

下位机:直接控制设备获取设备状况的计算机。

本实施例所述方法主要是通过接收上位机通信数据或文件传输数据,并将通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,使其不依赖于下位机与上位机之间的操作系统及硬件环境,也将通信数据或文件传输数据下发至下位机并由下位机执行对应操作,因此,实现对下位机的组态同步、进程控制、文件维护等工作。

或者,接收下位机的通信数据或文件传输数据,并将通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,以使通信数据或文件传输数据按照数据格式、优先级以及数据传输负荷进行拆分,然后上传至上位机的接收队列中,并由上位机对应处理后,以消息方式通知上层应用软件;其中,所述通信数据或文件传输数据为上层应用软件所需的所有通讯数据和文件传输数据,进而对下位机实现实时的状态监控工作。

本实施例中所述方法主要是利用将以太网络底层的数据传输功能和上层应用程序分开独立设计,进而使其不依赖于操作系统及硬件环境,达到统一完整地管理网络状况的效果,进而避免重复工作和网络的多种冲突,具有很好地灵活性、扩展性和低耦合性。

可选地,如图2-4所示,所述对所述通信数据或文件传输信息进行分类处理、优先级处理或分包处理并形成数据包发送队列包括:

对所述通信数据或文件传输数据进行分类处理或分包处理;

调用用于支持文件、内存、命令或发送/接收的网络操作动态库中的相关函数并打通路径;

调用用于提供远程登陆、获取/网络地址或指定状态的网络通讯动态库中的相关函数并将经分类处理或分包处理后的通信数据或文件传输数据按优先级放入数据包发送队列内对应的队列中;

按优先级算法查询数据包发送队列内的各个队列,将各个队列的数据发送至目的地址。

具体的,本实施例所述上位机对所述通信数据或文件传输信息进行分类处理、优先级处理或分包处理并形成数据包发送队列中首先当应用程序中有通信数据或文件传输信息发送至目的地址时,则对通信数据或文件传输信息根据数据的类型、大小进行分类处理或分包处理;例如,当所述文件传输信息的数据量大于一设定值,则将所述文件传输信息分为至少两个较小的数据包,进而提高了所述跨平台数据通信的效率。然后调用所述网络操作动态库中的相关函数并打通路径;调用所述网络通讯动态库中的相关函数并将经分类处理或分包处理后的通信数据或文件传输数据按优先级放入数据包发送队列内对应的队列中;最后按优先级算法查询数据包发送队列内的各个队列,将各个队列的数据发送至目的地址。其中,所述数据包发送队列按优先级由高至低依次为:即时发送队列,命令发送队列,快速内存队列,中速内存队列,慢速内存队列和文件队列,其中,各个队列中可包括多个数据包、或文件,进而在提高了数据通信的效率基础上,提供一种在单机应用程序间通信使用及不同机器应用程序间通信使用的数据通信方法。

其中,所述分包处理包括:

判断数据包的大小是否超过一设定值,如果是,则执行下一步;如果否,则进行优先级处理;

检测以太网的网络负荷,判断所述以太网的网络负荷是否超过阈值,如果是,执行下一步;如果否,则进行优先级处理;

根据数据包的大小以太网的网络负荷确定分包数量,并按所述分包数量将数据包进行分包。进而有效的实现对以太网的负荷监测,保证所述数据通信效率。其中,本实施例中所述方法中以太网的网络负荷最高不超过20%,优选的,所述以太网的网络负荷小于10%。

本实施例中所述通信数据包括站间状态数据包、实时数据表数据包、历史数据数据包、命令包、请求包等所有需要网络传输的数据包;文件传输信息包括组态文件、配置文件、log文件等所有需要网络传输和同步的文件数据。所述数据通信方法将上述内存数据、实时数据、命令数据、操作指令、文件数据、状态数据、响应数据等多种类型数据包经过上述的分类处理、优先级处理或分包处理后形成的数据包发送队列,在windows操作系统或者中标麒麟操作系统的上位机与下位机之间、或上位机与上位机之间通过上述方法进行传递,避免了在windows操作系统或者中标麒麟操作系统的上位机与下位机之间、或上位机与上位机之间数据的不兼容性、不可互相传递的问题,进而提高了所述数据通信方法的灵活性、扩展性和低耦合性。

综上所述,本实施例中所述方法首先将通信数据或文件传输数据进行分类处理或分包处理后形成对应的数据包,然后通过对数据包进行优先级处理形成数据包发送队列,进而根据所述优先级算法实现对数据包发送队列的优先级控制,以使不同的优先级数据包发送时按照高优先级先发送原则进行处理,保证重要数据优先发送,进而提高处理效率。

可选地,所述将数据包发送队列下发至下位机、或上传至上位机包括:

获取数据包发送队列内的各个队列所指定发送的网络通信接口;

根据网络通信接口将各个队列下发至下位机、或上传至上位机。

具体的,本实施例所述方法当根据网络通信接口将各个队列下发至下位机时,所述下位机将数据包发送队列中的数据包接收到接收数据队列,并将接收数据队列中的数据包对应进行解析处理,提取出对应的命令并执行,例如,所述方法可通过进程控制命令包方式,对下位机的进程进行带参数启动、定时启动,定时停止、监视等操控;或者,所述方法还可通过站点控制命令包方式,对其它下位机进行启动在线、定时启动在线,定时停止在线等操控;还或者,所述方法还可实现点与点之间的通信,包括一对一、或一对多的点对点通讯,所述点与点之间的通信包括tcp传输方式和非连接的udp传输方式。tcp方式用于大数据块的复制和同步,udp用于少量数据的传输。例如,周期性数据用udp传输方式,事件性的数据用tcp传输方式。

或者,当所述将数据包发送队列下发至下位机时,所述上位机无法直接下发至下位机时,则通过远程控制器转发至下位机,其中,所述上位机发送至远程控制器,然后由远程控制器将对应的数据发送队列下发至对应下位机。

同时,本实施例中用于在不同操作系统平台(windows或中标麒麟)下,上位机与下位机、或上位机与上位机、或下位机与下位机之间各应用程序与传送数据时的网络通信接口,包括:同一台计算机上进程间发送通知接口、不同计算机之间进程通知发送接口、文件发送接口、内存同步发送接口、发送操作数据接口;例如,当给指定机器上的指定进程发送通知,发送通知包结构如图3所示。

本实施例所述方法中提供给其他应用程序的接口包括:消息、内存和动态库,由于本实施例所述方法运行在不同操作系统(windows或中标麒麟)下,但是两种不同的操作系统对消息的定义不同,所以本实施例采用qt的本地socket技术封装消息机制,实现进程间的消息通信,其对外接口形式采用类windows的消息方式。

可选地,在所述对所述通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列之后,所述方法还包括:

获取时间信息并将时间信息加入数据包发送队列。

具体的,本实施例所述方法通过将时间信息加入数据包发送队列中以达到校时数据的功能,其中,主要是由历史站周期发送给全网,其他被动接收时间信息数据并修改自身的时钟与历史站保持一致。

可选地,所述获取时间信息并将时间信息加入数据包发送队列包括:

将所述通信数据和文件传输数据打包形成第一数据包并发送至历史站,由历史站将时间信息加入第一数据包并形成第二数据包,然后全网同步第二数据包;

将第二数据包加入数据包发送队列中。

具体的,本实施例所述方法主要是将时间信息加入数据包发送队列,使得所述数据包发送队列能够实现校时,例如,如图4所示,当所述下位机由执行一操作后,形成对应的操作处理数据,将该数据进行打包形成无时间信息的第一数据包,并通过数据包发送模块将第一数据包发送至主历史站、和/或从历史站,然后经由主历史站在第一数据包中加入时间信息并形成具有时间信息的第二数据包,并将从历史站和下位机同时同步第二数据包,最后由下位机将第二数据包加入数据包发送队列中并上传至上位机,进而对上位机实现操作反馈。

其中,所述方法还可识别数据包类型,并根据包类型确定将数据包放至输入接口队列或输出接口队列,并且,所述数据包包括模拟量数据包、数字量操作队列;模拟量包类型为一种,数字量操作队列包括画面数字量操作包类型和非画面数字量操作包类型,非画面数字量操作包类型为人工置数数字量点。画面操作包需do清零处理,非画面操作包不能清零。并且,上述两种数据包由操作员所在的pc写入,但是具有时间信息的时间标签由主历史站打包数据时写入,

可选地,在将数据包发送队列上传至上位机之后,所述方法还包括:

根据数据包发送队列进行解析处理并获取对应的通信数据或文件传输数据;

根据对应的通信数据或文件传输数据生成对应消息并通知上层应用软件。

可选地,在将数据包发送队列上传至上位机之后,所述方法还包括:

接收网络数据并得出数据类型;

根据数据类型将数据发送至目的地址。

具体的,本实施例中所述方法当数据包发送队列上传至上位机之后、或远程控制器发送数据包发送队列至上位机之后还包括接收网络数据并判断所述网络数据的类型,如果是ao,do等数据,则将网络数据放到接口输入队列;如果是命令,即刻通知目标应用程序;如果是给应用程序的内存数据,则将数据放到接收内存队列,并马上通知上层应用程序来接收处理。

本发明实施例还提供一种基于qt的跨平台数据通信系统,如图5所示,所述系统包括:

接收模块,用于获取上位机、或下位机的通信数据或文件传输数据;

数据通信组件,用于对所述通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,以使通信数据或文件传输数据能在具有不同操作系统的上位机与下位机之间进行传输;

网络通信组件,用于将数据包发送队列下发至下位机、或上传至上位机。

本发明实施例提供的基于qt的跨平台数据通信系统主要是通过接收模块接收上位机通信数据或文件传输数据,并由数据通信组件将通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,使其不依赖于下位机与上位机之间的操作系统及硬件环境,最后由网络通信组件将通信数据或文件传输数据下发至下位机并由下位机执行对应操作,因此,实现对下位机的组态同步、进程控制、文件维护等工作。

或者,接收下位机的通信数据或文件传输数据,并将通信数据或文件传输数据进行分类处理、优先级处理或分包处理并形成数据包发送队列,以使通信数据或文件传输数据按照数据格式、优先级以及数据传输负荷进行拆分,然后上传至上位机的接收队列中,并由上位机对应处理后,以消息方式通知上层应用软件;其中,所述通信数据或文件传输数据为上层应用软件所需的所有通讯数据和文件传输数据,进而对下位机实现实时的状态监控工作。

本实施例中所述系统主要是利用将以太网络底层的数据传输功能和上层应用程序分开独立设计,进而使其不依赖于操作系统及硬件环境,达到统一完整地管理网络状况的效果,进而避免重复工作和网络的多种冲突,具有很好地灵活性、扩展性和低耦合性。

可选地,如图6所示,所述数据通信组件包括:

网络操作动态库,用于支持文件、内存、命令或发送/接收;

第一调用单元,用于调用网络操作动态库中的相关函数并打通路径;

网络通讯动态库,用于提供远程登陆、获取/网络地址或指定状态;

第二调用单元,用于调用网络通讯动态库中的相关函数并将通信数据或文件传输数据按优先级放入数据包发送队列内对应的队列中;

发送单元,用于按优先级算法查询数据包发送队列内的各个队列,将各个队列的数据发送至目的地址。

可选地,所述网络通信组件包括:

获取单元,用于获取数据包发送队列内的各个队列所指定发送的网络通信接口;

传输单元,用于根据网络通信接口将各个队列下发至下位机、或上传至上位机。

可选地,所述系统还包括:

数据包发送模块,用于将所述通信数据和文件传输数据打包形成第一数据包并发送至历史站;

同步模块,用于接收第二数据包并同步第二数据包;

处理模块,用于将第二数据包加入数据包发送队列中。

可选地,所述系统还包括:

解析处理模块,用于根据数据包发送队列进行解析处理并获取对应的通信数据或文件传输数据;

通知模块,用于根据对应的通信数据或文件传输数据生成对应消息并通知上层应用软件。

本实施例的系统,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1