[发明专利]一种分布式试验数据实时交换方法有效
申请号: | 201711479201.4 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108173948B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 张磊;洪昌建 | 申请(专利权)人: | 中国船舶重工集团公司第七一九研究所 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 武汉东喻专利代理事务所(普通合伙) 42224 | 代理人: | 李佑宏 |
地址: | 430205 湖北省*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种分布式试验数据实时交换方法,涉及数据的发起方、接收方以及处理方,包括如下步骤:创建系统模型文件、请求本地模型文件、更新本地模型数据结构、发起数据更新、刷新更新队列、接收数据更新、转发数据更新及接收数据。本发明分布式试验数据实时交换方法,吸收了OPC和DDS的部分技术特征,提供了一种轻量级的统一软硬件接口、通用的数据交换流程和一致的数据管理架构,使得各种参试、配试设备(包括物理设备和软件系统)能够非常轻便的集成和自由的进行数据交换,系统接口简洁,配置部署方便,能够较好的适应灵活多变的试验现场需求。 | ||
搜索关键词: | 一种 分布式 试验 数据 实时 交换 方法 | ||
(S1)创建系统模型文件:将试验设备抽象为模型,若干模型的模型属性和参数是属性组成整个数据交换系统模型文件;
(S2)请求本地模型文件:所述发起方在发起数据交换请求之前,先获取本地模型文件,从而获知自身的配置约束、访问参数的范围以及访问参数的特性;
(S3)更新本地模型数据结构:所述发起方解析本地模型文件,初始化本地模型管理结构,包括参数缓存、更新队列、事件触发器及桥接器;
(S4)发起数据更新:所述发起方读取参试、配试设备的数据,将其转换成试验参数,放入参数缓存,并添加该参数标识到更新队列;
(S5)刷新更新队列:所述发起方对更新队列中的数据,重新进行组织和编码,编码完成后通过网络发送出去;
(S6)接收数据更新:所述处理方接收所述发起方的数据,进行解码,生成参数,并将参数放入系统全局参数缓存中;
(S7)转发数据更新:所述处理方对已更新的数据,根据系统模型文件中每个模型声明的参数,重新对数据进行组包编码,最后向所述接收方发送;
(S8)接收数据:所述接收方接收所述处理方转发的数据,更新本地缓存,完成数据交换过程,若所述接收方定义了相关事件,则触发相应事件。
2.根据权利要求1所述的一种分布式试验数据实时交换方法,其特征在于,步骤(S1)中所述模型属性包括模型版本、模型名称、模型标识、模型全局标识、模型作者、模型描述、模型生成工具以及模型更新周期。3.根据权利要求1或2所述的一种分布式试验数据实时交换方法,其特征在于,所述模型属性和参数属性均存储于服务器端,便于数据交换客户端启动时从服务器拉取本地模型文件,且步骤(S2)包括如下具体步骤:(S21)所述客户端读取设备属性,根据属性生成所述模型标识,并生成模型请求数据包;
(S22)服务器端收到所述请求数据包后,进行数据的正确性和完整性检查之,读取已载入内存的系统模型文件,从模型文件中摘取与请求模型标识相同的模型XML段落,贴入请求包的数据区,修改相关标识信息后,打上服务器端的时间戳,将数据包发还给所述客户端;
(S23)所述客户端接收回应,检查数据包中的模型标识与本地标识是否匹配,若匹配,则转步骤(S3),否则转步骤(S21);
(S24)所述客户端接收服务端的时间戳数据,计算所述客户端与服务器端的时间漂移量,根据试验的时间精度要求,若超出漂移量,则调整所述客户端的系统时钟。
4.根据权利要求3所述的一种分布式试验数据实时交换方法,其特征在于,(S3)包括如下具体步骤:(S31)解析所述模型属性信息的XML片段,生成模型数据,并将模型标识和网络连接句柄绑定;
(S32)解析所述模型参数信息的XML片段,生成模型参数数组;
(S33)根据模型参数数组的位置和模型参数的索引,生成映射表;
(S34)根据所述模型参数的数据类型,创建四个更新队列;
(S35)将预定义事件和所述模型参数索引绑定,每个参数支持一个绑定事件,在数据更新时触发事件函数。
5.根据权利要求1所述的一种分布式试验数据实时交换方法,其特征在于,(S4)包括如下具体步骤:(S41)检查所述客户端状态,确保步骤(S3)已正确完成,若步骤(S3)未正确完成,则返回更新失败;
(S42)根据索引,查找本地模型参数数组中的参数,若找到该参数,则转(S43),否则返回更新失败;
(S43)检查所述参数类型是否为Output,若是,转(S44),否则返回更新失败;
(S44)更新参数的值,并将参数的本地索引加入更新队列。
6.根据权利要求1所述的一种分布式试验数据实时交换方法,其特征在于,(S5)包括如下具体步骤:(S51)依次检查Bool类型、Int类型、Real类型、Buf类型数据更新队列,若队列中有索引,则根据协议格式填充数据交换数据包的数据区;
(S52)更新数据包的包头描述,形成完整的网络数据包;
(S53)调用模型绑定的网络传输句柄,发送数据,若数据发送成功,清空各更新队列,若数据发送失败,则返回错误。
7.根据权利要求1所述的一种分布式试验数据实时交换方法,其特征在于,(S6)包括如下具体步骤:(S61)从网络缓存中读取数据,读取数据量小于等于0,退出接收过程;
(S62)将数据拷贝到系统数据缓冲区;
(S63)从缓冲区中查找数据包的域识别符,若没有找到该识别符,说明该数据包非法,重置缓冲区,并退出接收过程;
(S64)读取包长度字段,获取数据包的长度,若包长度大于当前已接收的数据量,转(S61)继续接收数据;
(S65)解析消息类型字段,根据不同消息类型转不同的数据解析函数;
(S66)从缓冲区中移除已解析的数据包,转(S63)。
8.根据权利要求1或6所述的一种分布式试验数据实时交换方法,其特征在于,(S7)包括如下具体步骤:(S71)根据消息类型和(S51)数据区的编码规则,从缓冲区中依次解析参数,得到参数索引、参数所属模型和更新值;
(S72)根据参数索引在服务器端二维链表中查找参数是否存在,若不存在,转(S71)解析下一段数据区;否则转(S73);
(S73)根据索引,遍历该索引所链接的多个模型,更新每个模型的参数值;
(S74)遍历模型过程中,若该模型的本索引参数类型为INPUT,说明该模型需要本参数作为输入,则以模型标识和参数索引为内容,创建或更新更新队列;
(S75)遍历更新队列,队列的每个节点为模型标识及其所有的待更新参数。
9.根据权利要求8所述的一种分布式试验数据实时交换方法,其特征在于,(S75)中所述遍历更新队列包括如下具体步骤:(S751)根据模型标识,从服务器端的客户端队列中,查找模型标识对应的网络传输句柄,若找到句柄转(S752),否则转(S75)遍历下一个节点;
(S752)遍历待更新的参数列表,根据参数类型将其分成四个不同消息类型的列表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶重工集团公司第七一九研究所,未经中国船舶重工集团公司第七一九研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711479201.4/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置