CN108173948B - 一种分布式试验数据实时交换方法 - Google Patents
一种分布式试验数据实时交换方法 Download PDFInfo
- Publication number
- CN108173948B CN108173948B CN201711479201.4A CN201711479201A CN108173948B CN 108173948 B CN108173948 B CN 108173948B CN 201711479201 A CN201711479201 A CN 201711479201A CN 108173948 B CN108173948 B CN 108173948B
- Authority
- CN
- China
- Prior art keywords
- data
- model
- parameter
- update
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分布式试验数据实时交换方法,涉及数据的发起方、接收方以及处理方,包括如下步骤:创建系统模型文件、请求本地模型文件、更新本地模型数据结构、发起数据更新、刷新更新队列、接收数据更新、转发数据更新及接收数据。本发明分布式试验数据实时交换方法,吸收了OPC和DDS的部分技术特征,提供了一种轻量级的统一软硬件接口、通用的数据交换流程和一致的数据管理架构,使得各种参试、配试设备(包括物理设备和软件系统)能够非常轻便的集成和自由的进行数据交换,系统接口简洁,配置部署方便,能够较好的适应灵活多变的试验现场需求。
Description
技术领域
本发明属于计算机应用技术领域,更具体地,涉及一种分布式试验数据实时交换方法。
背景技术
分布式试验数据是指分布在局域或广域环境下,用于试验的物理设备、软件生产或消费的信息。物理设备包括传感器、执行器、控制器、其他智能设备、工业控制系统等,软件包括仿真软件、模拟软件、人机交互软件等。试验数据实时交换是实现试验过程自动化的基础,也是核心。试验数据的采集、传输、监控、处理、反馈、发布等诸多过程均需要统一的数据交换策略、协议和方法的支撑,从而实现机器和信息化系统的无缝连接和垂直集成。随着物联网的发展趋势,万物互联的思想已逐渐深入人心。在传统制造领域,智慧工厂、智能车间均是机器与信息系统垂直集成的典型代表。欲实现机器和信息系统无缝的数据交换,必须满足三个最基本的条件:统一的软硬件接口、通用的数据交换标准、一致的数据管理。目前,已有很多的技术实现了其中部分的条件。
OPC(OLE for Process Control)技术是为了解决应用软件与各种硬件设备通信而产生的一项工业控制技术规范和标准。各厂商和开发人员只需要使用同一的OPC接口,就可以进行不同设备和软件之间的自由通讯。OPC技术的出现大大提高了工业控制领域的发展速度,为统一管理和监控整个工厂成为可能,使工业控制领域朝着标准化、便捷化方向发展。DDS(Data Distribution Service)是针对实时分布式仿真系统制定的高实时性要求的数据分发服务规范。DDS采用以数据为中心的订阅发布的通信结构,为实时性要求比较高的仿真系统提供了低延迟、高吞吐量和实时性能的控制级别,目前已大量应用到国防、电信、航空、工业自动化等关系国计民生的重要领域中。
在分布式试验领域,试验数据以上行为主,下行为辅,对控制反馈的要求不高。部分参试设备作为试验对象,其研究、测试、分析的属性会使其系统特征经常变更,而采用OPC作为统一接口会很笨重,降低参试设备变更效率。DDS作为一种重量级的系统总线,其规划、组装、配置、调试过程十分复杂,无法灵活应对多变的试验工况以及经常拆装的试验现场。
发明内容
针对现有技术方法的以上缺陷或改进需求,本发明提供了一种分布式试验数据实时交换方法。该方法吸收了OPC和DDS的部分技术特征,提供了一种轻量级的统一软硬件接口、通用的数据交换流程和一致的数据管理架构,使得各种参试、配试设备(包括物理设备和软件系统)能够非常轻便的集成和自由的进行数据交换。
为了实现上述目的,本发明提供一种分布式试验数据实时交换方法,该方法涉及到三方用户:发起方,即发起数据交换请求,发送最新的数据;接收方,即接收数据交换请求,用接收到的数据更新本地数据,并触发本地事件;处理方,即中间角色。接收发起方的请求,对数据进行解码,并根据规则,向接收方发送重新编码的数据。
本发明提供的一种分布式试验数据实时交换方法包括如下步骤:
(1)创建系统模型文件。所有的参数、配试设备都被抽象成模型。若干模型组成整个数据交换系统。因此,系统模型文件是进行数据交换的基础。模型文件定义了每个模型的标识、版本、描述以及模型的一组参数。
(2)请求本地模型文件。数据交换发起方在发起数据交换请求之前,必须先获取属于自身的模型文件,从而获知自身的配置约束、访问参数的范围以及访问参数的特性。
(3)更新本地模型数据结构。在获取到模型文件之后,发起方解析该文件,初始化本地模型管理结构,包括参数缓存、更新队列、事件触发器、桥接器等等。
(4)发起数据更新。数据交换发起方读取参试、配试设备的数据,将其转换成试验参数,放入参数缓存,并添加该参数标识到更新队列。
(5)刷新更新队列。数据交换发起方对更新队列中的数据,重新进行组织和编码,编码完成后通过网络发送出去。
(6)接收数据更新。数据交换处理方接收数据交换发起方的数据,进行解码,生成参数,并将参数放入系统全局参数缓存中。
(7)转发数据更新。数据交换处理方对已更新的数据,根据系统模型文件中每个模型声明的参数,重新对数据进行组包编码,最后向接收方发送。
(8)接收数据。接收方接收处理方转发的数据,更新本地缓存,完成数据交换过程。若接收方定义了相关事件,则触发相应事件。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
(1)本发明分布式试验数据实时交换方法,吸收了OPC和DDS的部分技术特征,提供了一种轻量级的统一软硬件接口、通用的数据交换流程和一致的数据管理架构,使得各种参试、配试设备(包括物理设备和软件系统)能够非常轻便的集成和自由的进行数据交换,系统接口简洁,配置部署方便,能够较好的适应灵活多变的试验现场需求。
(2)本发明分布式试验数据实时交换方法,对各种类型的设备进行了统一的抽象和处理,实现了高效、简洁的内核架构,能够方便的对外扩展、适配以及和第三方系统集成。
(3)本发明分布式试验数据实时交换方法,以变量为数据交换的基本单元,取消了用户(发送方和接收方)对数据进行编解码的过程,简洁高效。同时也方便了系统对数据进行操作和维护,进而提高了数据交换效率。
(4)本发明分布式试验数据实时交换方法,以试验参数为核心,并提供多种参数类型支持,屏蔽中间网络传输细节,提高了数据交换的实时效率,降低了用户学习和使用成本。
附图说明
图1为本发明实施例一种分布式试验数据实时交换方法的流程图;
图2为本发明实施例一种分布式试验数据实时交换方法的系统模型文件结构图;
图3为本发明实施例一种分布式试验数据实时交换方法的Server端数据管理结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明采用C/S架构,其中数据交换的发起方和接收方是客户端(Client端),数据交换处理方是服务器端(Server端),Server端只面向Client端,实际数据交换对双方来说是透明的。由于方法兼顾局域和广域网络环境,因此采用TCP/IP协议进行数据包的网络传输。
图1为本发明实施例一种分布式试验数据实时交换方法的流程图。如图1所示,本发明实施的分布式试验数据实时交换包括如下步骤:
1.创建系统模型文件
所有的参试、配试设备都被抽象成模型。若干模型组成整个数据交换系统。系统模型文件定义了系统内的模型组成、模型属性、模型参数三方面的信息。
模型参数是模型的核心,模型参数分成两大类:输入型参数和输出型参数。模型含有输入型参数,说明模型能够充当接收方,接收其他模型对数据的更新;模型含有输出型参数,说明模型能够作为发起方,向其他模型更新数据。系统模型文件的结构如附图2所示。文件结构的各部件说明如表1所示。
表1系统模型各属性说明表
模型文件以可扩展描述语言XML进行描述。一个系统包含多个模型,每个模型包含多个参数。对参数采用以索引(类似于数组下标)为核心的扁平化管理。一个参数可以出现在多个模型中,可以有不同的参数名称、IO类型、分类和描述信息,但其索引和数据类型是全局统一的,运行时参数值也是相同的。
系统模型文件在Server端进行创建。
2请求本地模型文件
由于参试、配试设备分布在不同的地理位置,为了便于对设备进行统一配置和管理,将所有的模型配置信息(见表1)都集中在Server端。各参试、配试设备的数据交换Client端启动时,从Server端拉取本地模型文件。其过程如下:
2.1 Client端读取设备属性,根据属性生成模型标识。生成模型请求数据包。数据包的基本结构如表2所示。
表2数据交换数据包的基本格式
包头长度固定为20个字节。对于模型请求数据包,发送方标识即生成的模型标识,包类型为HAND_TYPE。
2.2 Server端收到该请求后,进行数据的正确性和完整性检查之后,读取已载入内存的系统模型文件,从模型文件中摘取与请求模型标识相同的模型XML段落。贴入请求包的数据区,修改相关标识信息后,打上Server端的时间戳,将数据包发还给Client端。
2.3 Client端接收回应,检查数据包中的模型id与本地id是否匹配,若匹配,则转步骤3;否则转步骤2.1。
2.4 Client端接收服务端的时间戳数据,计算Client端与Server端的时间漂移量,根据试验的时间精度要求,若超出漂移量,则调整Client端的系统时钟。
3更新本地模型数据结构
为解决网络传输造成的数据同步等待,系统采用预分配数据结构的形式保存更新数据。外部接口只需从系统内存中读取或写入数据,而由系统自动对内存中的数据进行更新和维护。其更新过程如下:
3.1解析模型属性信息XML片段,生成模型数据,并将模型标识和网络连接句柄绑定,便于后续更新操作。
3.2解析模型参数信息XML片段,生成模型参数数组。
3.3根据模型参数数组的位置和模型参数的索引,生成映射表,便于后续快速的根据模型参数索引,查找数组中的模型参数。
3.4创建更新队列,根据模型参数的数据类型,创建四个更新队列,用于记录数据更新。
3.5登记事件,将预定义事件和模型参数索引进行绑定,每个参数支持一个绑定事件。在数据更新时,会触发事件函数。
4发起参数更新
Client端只能对IO类型为Output的参数进行更新操作。更新时,需提供欲更新参数的索引以及更新值。更新过程如下:
4.1检查Client端状态,确保步骤3已正确完成。若步骤3未正确完成,返回更新失败。
4.2根据索引,查找本地模型参数数组中的参数,若找到该参数,转4.3,否则返回更新失败。
4.3检查参数类型是否为Output,若是,转4.4,否则返回更新失败。
4.4更新参数的值,并将参数的本地索引(参数在本地模型参数数组中的下标)加入更新队列。
5刷新更新队列
在适当(更新周期末尾)的时候,系统刷新更新队列,将本地已更新的数据上传到Server端。其过程如下:
5.1依次检查Bool类型、Int类型、Real类型、Buf类型数据更新队列,若队列中有索引,则根据下列协议格式填充表2数据交换数据包的数据区。
Bool类型(括号内是字节长度):
索引(4) | 更新Bool值(1) | 索引(4) | 更新Bool值(1) | ..... |
Int类型(括号内是字节长度):
索引(4) | 更新Int值(4) | 索引(4) | 更新Int值(4) | ..... |
Real类型(括号内是字节长度):
索引(4) | 更新Real值(8) | 索引(4) | 更新Real值(8) | ..... |
Buf类型(括号内是字节长度):
5.2更新数据包的包头描述,形成完整的网络数据包。
5.3调用模型绑定的网络传输句柄,发送数据,若数据发送成功,清空各更新队列,若数据发送失败,则返回错误。
6接收数据更新
Server端在固定网络端口上持续侦听数据,接收数据更新过程如下:
6.1从网络缓存中读取数据,读取数据量小于等于0,退出接收过程。
6.2将数据拷贝到系统数据缓冲区。
6.3从缓冲区中查找数据包的域识别符,若没有找到该识别符,说明该数据包非法,重置缓冲区,并退出接收过程。
6.4读取包长度字段,获取数据包的长度,若包长度大于当前已接收的数据量,转6.1继续接收数据。
6.5解析消息类型字段,根据不同消息类型(此处共有四种类型:Bool、Int、Real、Buf),转不同的数据解析函数。
6.6从缓冲区中移除已解析的数据包,转6.3。
7转发数据更新
Server端采用二维链表的形式,对系统中的所有参数(系统模型文件定义)进行管理,其数据结构如附图3所示。
数据管理以参数为核心,将参数的全局索引组织成第一维链表,通过索引即可访问唯一的参数,同时通过将索引进行哈希,提高索引访问的速度。
每一个参数的全局索引链接多个模型的同一参数,实现不同模型的同一参数均有独立的数据缓存空间,从而降低数据同步的等待开销,提高数据转发效率。由于模型使用参数数量的区别,不同的参数所链接的模型数量是不同的。
数据转发的过程如下:
7.1根据消息类型和5.1数据区的编码规则,从缓冲区中依次解析参数,得到参数索引、参数所属模型和更新值。
7.2根据参数索引在Server端二维链表中查找参数是否存在,若不存在,转7.1解析下一段数据区;否则转7.3.
7.3根据索引,遍历该索引所链接的多个模型,更新每个模型的参数值。
7.4遍历模型过程中,若该模型的本索引参数类型为INPUT,说明该模型需要本参数作为输入,则以模型标识和参数索引为内容,创建或更新更新队列。
7.5遍历更新队列,队列的每个节点为模型标识及其所有的待更新参数。图3为本发明实施例一种分布式试验数据实时交换方法的Server端数据管理结构图,如图3所示,遍历过程如下:
7.5.1根据模型标识,从Server端的Client队列中,查找模型标识对应的网络传输句柄,若找到句柄转7.5.2,否则转7.5遍历下一个节点。
7.5.2遍历待更新的参数列表,根据参数类型(BOOL、INT、REAL、BUF)将其分成四个不同消息类型的列表。
7.5.3若BOOL型列表不为空,则依据5.1BOOL型参数的协议规则,生成数据区。然后使用网络传输句柄,发送数据,最后清空BOOL型更新列表。
7.5.4若INT型列表不为空,则依据5.1INT型参数的协议规则,生成数据区。然后使用网络传输句柄,发送数据,最后清空INT型更新列表。
7.5.5若REAL型列表不为空,则依据5.1REAL型参数的协议规则,生成数据区。然后使用网络传输句柄,发送数据,最后清空REAL型更新列表。
7.5.6若BUF型列表不为空,则依据5.1BUF型参数的协议规则,生成数据区。然后使用网络传输句柄,发送数据,最后清空BUF型更新列表。
8接收参数
接收方接收处理方转发的数据,更新本地缓存,完成数据交换过程。若接收方定义了相关事件,则触发相应事件。其过程如下:
8.1从网络缓存中读取数据,读取数据量小于等于0,说明Server端异常,退出接收过程,并重新启动网络连接过程。
8.2将数据拷贝到Client端的全局数据缓冲区,若拷贝失败,则丢弃该数据包,转下一次接收过程8.1。
8.3从缓冲区中查找数据包的域识别符,若没有找到该识别符,说明该数据包非法,重置缓冲区,并退出接收过程。
8.4读取包长度字段,获取数据包的长度,若包长度大于当前已接收的数据量且小于全局数据缓冲区的最大长度,转8.1继续接收数据。若包长度大于全局数据缓冲区的最大长度,重置缓冲区,退出接收过程。
8.5解析消息类型字段,根据不同消息类型(Bool、Int、Real、Buf),转不同的数据解析函数8.7。
8.6从缓冲区中移除已解析的数据包,转8.3。
8.7对于特定类型的数据区,解析参数索引和参数更新值。
8.8同在Client端的本地模型数据结构中查找索引参数是否存在,若存在,更新参数值,同时将参数的更新状态置为TRUE,将参数更新的时间戳重置为数据包的时间戳。
8.9若参数绑定了事件触发器,则将数据更新前值和更新后值作为参数,调用相应的事件触发器函数。
本发明的有益效果是吸收了OPC和DDS的部分技术特征,提供了一种轻量级的统一软硬件接口、通用的数据交换流程和一致的数据管理架构。使得各种参试、配试设备(包括物理设备和软件系统)能够非常轻便的集成和自由的数据交换。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式试验数据实时交换方法,涉及发起数据交换请求,发送最新的数据的发起方、接收数据交换请求,用接收到的数据更新本地数据,并触发本地事件的接收方以及处理方,其特征在于,包括如下步骤:
(S1)创建系统模型文件:将试验设备抽象为模型,若干模型的模型属性和参数属性组成整个数据交换系统模型文件;
(S2)请求本地模型文件:所述发起方在发起数据交换请求之前,先获取本地模型文件,从而获知自身的配置约束、访问参数的范围以及访问参数的特性;
(S3)更新本地模型数据结构:所述发起方解析本地模型文件,初始化本地模型管理结构,包括参数缓存、更新队列、事件触发器及桥接器;
(S4)发起数据更新:所述发起方读取参试、配试设备的数据,将其转换成试验参数,放入参数缓存,并添加该参数标识到更新队列;
(S5)刷新更新队列:所述发起方对更新队列中的数据,重新进行组织和编码,编码完成后通过网络发送出去;
(S6)接收数据更新:所述处理方接收所述发起方的数据,进行解码,生成参数,并将参数放入系统全局参数缓存中;
(S7)转发数据更新:所述处理方对已更新的数据,根据系统模型文件中每个模型声明的参数,重新对数据进行组包编码,最后向所述接收方发送;
(S8)接收数据:所述接收方接收所述处理方转发的数据,更新本地缓存,完成数据交换过程,若所述接收方定义了相关事件,则触发相应事件。
2.根据权利要求1所述的一种分布式试验数据实时交换方法,其特征在于,步骤(S1)中所述模型属性包括模型版本、模型名称、模型标识、模型全局标识、模型作者、模型描述、模型生成工具以及模型更新周期。
3.根据权利要求1或2所述的一种分布式试验数据实时交换方法,其特征在于,所述模型属性和参数属性均存储于服务器端,便于数据交换客户端启动时从服务器拉取本地模型文件,且步骤(S2)包括如下具体步骤:
(S21)所述客户端读取设备属性,根据属性生成所述模型标识,并生成模型请求数据包;
(S22)服务器端收到所述请求数据包后,进行数据的正确性和完整性检查之,读取已载入内存的系统模型文件,从模型文件中摘取与请求模型标识相同的模型XML段落,贴入请求包的数据区,修改相关标识信息后,打上服务器端的时间戳,将数据包发还给所述客户端;
(S23)所述客户端接收回应,检查数据包中的模型标识与本地标识是否匹配,若匹配,则转步骤(S24),否则转步骤(S21);
(S24)所述客户端接收服务端的时间戳数据,计算所述客户端与服务器端的时间漂移量,根据试验的时间精度要求,若超出漂移量,则调整所述客户端的系统时钟。
4.根据权利要求3所述的一种分布式试验数据实时交换方法,其特征在于,(S3)包括如下具体步骤:
(S31)解析所述模型属性信息的XML片段,生成模型数据,并将模型标识和网络传输句柄绑定;
(S32)解析模型参数信息的XML片段,生成模型参数数组;
(S33)根据模型参数数组的位置和模型参数的索引,生成映射表;
(S34)根据所述模型参数的数据类型,创建四个更新队列;
(S35)将预定义事件和所述模型参数索引绑定,每个参数支持一个绑定事件,在数据更新时触发事件函数。
5.根据权利要求4所述的一种分布式试验数据实时交换方法,其特征在于,(S4)包括如下具体步骤:
(S41)检查所述客户端状态,确保步骤(S3)已正确完成,若步骤(S3)未正确完成,则返回更新失败;
(S42)根据索引,查找本地模型参数数组中的参数,若找到该参数,则转(S43),否则返回更新失败;
(S43)检查所述参数类型是否为Output,若是,转(S44),否则返回更新失败;
(S44)更新参数的值,并将参数的本地索引加入更新队列。
6.根据权利要求4所述的一种分布式试验数据实时交换方法,其特征在于,四个所述更新队列分别为Bool类型、Int类型、Real类型、Buf类型数据更新队列,(S5)包括如下具体步骤:
(S51)依次检查Bool类型、Int类型、Real类型、Buf类型数据更新队列,若队列中有索引,则根据协议格式填充数据交换数据包的数据区;
(S52)更新数据包的包头描述,形成完整的网络数据包;
(S53)调用模型绑定的网络传输句柄,发送数据,若数据发送成功,清空各更新队列,若数据发送失败,则返回错误。
7.根据权利要求1所述的一种分布式试验数据实时交换方法,其特征在于,(S6)包括如下具体步骤:
(S61)从网络缓存中读取数据,读取数据量小于等于0,退出接收过程;
(S62)将数据拷贝到系统数据缓冲区;
(S63)从缓冲区中查找数据包的域识别符,若没有找到该识别符,说明该数据包非法,重置缓冲区,并退出接收过程;
(S64)读取包长度字段,获取数据包的长度,若包长度大于当前已接收的数据量,转(S61)继续接收数据;
(S65)解析消息类型字段,根据不同消息类型转不同的数据解析函数;
(S66)从缓冲区中移除已解析的数据包,转(S63)。
8.根据权利要求7所述的一种分布式试验数据实时交换方法,其特征在于,(S7)包括如下具体步骤:
(S71)根据消息类型和(S51)数据区的协议格式,从缓冲区中依次解析参数,得到参数索引、参数所属模型和更新值;
(S72)根据参数索引在服务器端二维链表中查找参数是否存在,若不存在,转(S71)解析下一段数据区;否则转(S73);
(S73)根据索引,遍历该索引所链接的多个模型,更新每个模型的参数值;
(S74)遍历模型过程中,若该模型的本索引参数类型为INPUT,说明该模型需要本参数作为输入,则以模型标识和参数索引为内容,创建或更新更新队列;
(S75)遍历更新队列,队列的每个节点为模型标识及其所有的待更新参数。
9.根据权利要求8所述的一种分布式试验数据实时交换方法,其特征在于,(S75)中所述遍历更新队列包括如下具体步骤:
(S751)根据模型标识,从服务器端的客户端队列中,查找模型标识对应的网络传输句柄,若找到句柄转(S752),否则转(S75)遍历下一个节点;
(S752)遍历待更新的参数列表,根据参数类型将其分成四个不同消息类型的列表;
(S753)若Bool型列表不为空,则依据(S51)Bool参数的协议规则,生成数据区,然后使用网络传输句柄,发送数据,最后清空Bool型更新列表;
(S754)若Int型列表不为空,则依据(S51)Int型参数的协议规则,生成数据区,然后使用网络传输句柄,发送数据,最后清空Int型更新列表;
(S755)若Real型列表不为空,则依据(S51)Real型参数的协议规则,生成数据区,然后使用网络传输句柄,发送数据,最后清空REAL型更新列表;
(S756)若Buf型列表不为空,则依据(S51)Buf型参数的协议规则,生成数据区,然后使用网络传输句柄,发送数据,最后清空Buf型更新列表。
10.根据权利要求3所述的一种分布式试验数据实时交换方法,其特征在于,(S8)包括如下具体步骤:
(S81)从网络缓存中读取数据,读取数据量小于等于0,说明服务器端异常,退出接收过程,并重新启动网络连接过程;
(S82)将数据拷贝到客户端的全局数据缓冲区,若拷贝失败,则丢弃该数据包,转下一次接收过程(S81);
(S83)从缓冲区中查找数据包的域识别符,若没有找到该识别符,说明该数据包非法,重置缓冲区,并退出接收过程;
(S84)读取包长度字段,获取数据包的长度,若包长度大于当前已接收的数据量且小于全局数据缓冲区的最大长度,转(S81)继续接收数据,若包长度大于全局数据缓冲区的最大长度,重置缓冲区,退出接收过程,若包长度小于或等于当前已接收的数据量,执行(S85);
(S85)解析消息类型字段,根据不同消息类型(Bool、Int、Real、Buf),转不同的数据解析函数(S87);
(S87)对于特定类型的数据区,解析参数索引和参数更新值;
(S88)同在客户端的本地模型数据结构中查找索引参数是否存在,若存在,更新参数值,同时将参数的更新状态置为TRUE,将参数更新的时间戳重置为数据包的时间戳;
(S89)若参数绑定了事件触发器,则将数据更新前值和更新后值作为参数,调用相应的事件触发器函数;
(S86)从缓冲区中移除已解析的数据包,转(S83)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479201.4A CN108173948B (zh) | 2017-12-29 | 2017-12-29 | 一种分布式试验数据实时交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479201.4A CN108173948B (zh) | 2017-12-29 | 2017-12-29 | 一种分布式试验数据实时交换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173948A CN108173948A (zh) | 2018-06-15 |
CN108173948B true CN108173948B (zh) | 2020-12-04 |
Family
ID=62516361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711479201.4A Active CN108173948B (zh) | 2017-12-29 | 2017-12-29 | 一种分布式试验数据实时交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173948B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547529B (zh) * | 2018-10-16 | 2021-08-06 | 中国船舶重工集团公司第七一九研究所 | 一种基于dds的分布式工业数据分发方法 |
CN111491018B (zh) * | 2020-04-07 | 2022-06-10 | 中国建设银行股份有限公司 | 模型下载方法及系统 |
CN112910910B (zh) * | 2021-02-08 | 2022-07-19 | 深圳融安网络科技有限公司 | Opcda协议报文处理方法、装置、设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661408A (zh) * | 2009-09-14 | 2010-03-03 | 四川川大智胜软件股份有限公司 | 一种分布式实时数据复制同步方法 |
CN103475678A (zh) * | 2012-06-06 | 2013-12-25 | 百度在线网络技术(北京)有限公司 | 一种用于提供分布式设备间应用数据更新的方法和设备 |
CN103595730A (zh) * | 2013-11-28 | 2014-02-19 | 中国科学院信息工程研究所 | 一种密文云存储方法和系统 |
CN104272694A (zh) * | 2011-11-02 | 2015-01-07 | 韦斯技术有限公司 | 用于提供针对重新导向的usb设备或本地设备的基于私有的连线阶段的存取的系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148288A1 (en) * | 2002-07-27 | 2004-07-29 | Brad Haeberle | Method and system for obtaining operational data and service information for a building site |
-
2017
- 2017-12-29 CN CN201711479201.4A patent/CN108173948B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661408A (zh) * | 2009-09-14 | 2010-03-03 | 四川川大智胜软件股份有限公司 | 一种分布式实时数据复制同步方法 |
CN104272694A (zh) * | 2011-11-02 | 2015-01-07 | 韦斯技术有限公司 | 用于提供针对重新导向的usb设备或本地设备的基于私有的连线阶段的存取的系统及方法 |
CN103475678A (zh) * | 2012-06-06 | 2013-12-25 | 百度在线网络技术(北京)有限公司 | 一种用于提供分布式设备间应用数据更新的方法和设备 |
CN103595730A (zh) * | 2013-11-28 | 2014-02-19 | 中国科学院信息工程研究所 | 一种密文云存储方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108173948A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200183932A1 (en) | Optimizing write operations in object schema-based application programming interfaces (apis) | |
US10691682B2 (en) | Storing and processing JSON documents in a SQL database table | |
US10116725B2 (en) | Processing data retrieval requests in a graph projection of an application programming interfaces (API) | |
US9990187B1 (en) | Analytic execution for automatic decision making | |
US10965530B2 (en) | Multi-stage network discovery | |
RU2430409C2 (ru) | Методология измерения покрытия в структурном состоянии взаимного соединения | |
CN108173948B (zh) | 一种分布式试验数据实时交换方法 | |
US20150293962A1 (en) | Methods for In-Place Access of Serialized Data | |
WO2020238597A1 (zh) | 基于Hadoop的数据更新方法、装置、系统及介质 | |
US8086660B2 (en) | Distributed data model | |
CN103338135A (zh) | 一种集群存储容量的实时监控方法 | |
US20230120592A1 (en) | Query Generation and Processing System | |
Hoeller et al. | Efficient XML usage within wireless sensor networks | |
US9373093B2 (en) | Gateway service manager for business object applications | |
Izsó et al. | IncQuery-D: incremental graph search in the cloud. | |
CN108509453B (zh) | 一种信息处理方法及装置 | |
CN102231164B (zh) | 一种面向多学科虚拟实验平台的xml增量传输与交互方法 | |
CN111552494B (zh) | 一种容器组的管理方法、设备、系统及介质 | |
CN111131373B (zh) | 呼吸机数据同步系统、方法、装置及存储介质 | |
US8301726B2 (en) | Method and system for bit streaming for data centric applications | |
GB2507621A (en) | Distributed transaction system using TCP/IP communication | |
CN113934767A (zh) | 一种数据处理的方法及装置、计算机设备和存储介质 | |
Ogboada et al. | A model for optimizing the runtime of GraphQL queries | |
Fjällid | A comparative study of databases for storing sensor data | |
US20230122781A1 (en) | Low-Latency Buffer Storage Of Static Datasets For Query Operation Optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |