[发明专利]一种分布式试验数据实时交换方法有效

专利信息
申请号: 201711479201.4 申请日: 2017-12-29
公开(公告)号: CN108173948B 公开(公告)日: 2020-12-04
发明(设计)人: 张磊;洪昌建 申请(专利权)人: 中国船舶重工集团公司第七一九研究所
主分类号: H04L29/08 分类号: H04L29/08
代理公司: 武汉东喻专利代理事务所(普通合伙) 42224 代理人: 李佑宏
地址: 430205 湖北省*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种分布式试验数据实时交换方法,涉及数据的发起方、接收方以及处理方,包括如下步骤:创建系统模型文件、请求本地模型文件、更新本地模型数据结构、发起数据更新、刷新更新队列、接收数据更新、转发数据更新及接收数据。本发明分布式试验数据实时交换方法,吸收了OPC和DDS的部分技术特征,提供了一种轻量级的统一软硬件接口、通用的数据交换流程和一致的数据管理架构,使得各种参试、配试设备(包括物理设备和软件系统)能够非常轻便的集成和自由的进行数据交换,系统接口简洁,配置部署方便,能够较好的适应灵活多变的试验现场需求。
搜索关键词: 一种 分布式 试验 数据 实时 交换 方法
【主权项】:
1.一种分布式试验数据实时交换方法,涉及发起数据交换请求,发送最新的数据的发起方、接收数据交换请求,用接收到的数据更新本地数据,并触发本地事件的接收方以及处理方,其特征在于,包括如下步骤:

(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)遍历待更新的参数列表,根据参数类型将其分成四个不同消息类型的列表;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶重工集团公司第七一九研究所,未经中国船舶重工集团公司第七一九研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201711479201.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

tel code back_top