一种数据适配器及数据适配方法

文档序号:27261054发布日期:2021-11-05 21:57阅读:294来源:国知局
一种数据适配器及数据适配方法

1.本发明涉及计算机技术领域,尤其涉及一种数据适配器及数据适配方法。


背景技术:

2.随着工业智能化升级的浪潮席卷全球,传统的制造业也发生了根本性改变。从数字制造到智能制造,是制造业发展的必然趋势。在智能制造领域重点的研究方向之一就是数字化车间,而数字化车间的研究核心就是设备间的互联互通。
3.目前国际上用于异构系统互联互通的标准主要有mt

connect和opc

ua两个标准。虽然mt

connect和opc

ua协议提供了异构系统间互联互通的能力,但是这两种协议都有着或多或少的缺陷:
4.mt

connect协议传输的数据量较大,对网络带宽是一个严峻考验,并且只能用于单向的读取设备状态实现监视功能,无法双向控制。
5.opc

ua协议模型定义语言过于复杂,应用起来很不方便。
6.无论是mt

connect还是opc

ua协议,都存在着相应的不足,无法满足高频数据采集的要求,然而,数控机床智能应用需要高频的信号作为其输入,例如振动分析、温度测量与补偿等。所以基于这两种协议的数据采集适配器也都继承了这种不足。
7.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

8.本发明的主要目的在于提供一种数据适配器及数据适配方法,旨在解决现有技术无法满足高频数据采集的需求的技术问题。
9.为实现上述目的,本发明提供了一种数据适配器,所述数据适配器包括:通讯模块及协议栈模块;
10.所述通讯模块,用于接收代理器发送的请求指令,并将所述请求指令转发至所述协议栈模块;
11.所述协议栈模块,用于在接收到所述请求指令时,解析所述请求指令,获得指令类型及请求参数;
12.所述协议栈模块,还用于根据所述指令类型确定目标函数,并根据所述请求参数调用所述目标函数,以使所述目标函数进行数据处理并返回函数响应消息;
13.所述协议栈模块,还用于根据所述函数响应消息生成请求响应消息,并将所述请求响应消息发送至所述通讯模块;
14.所述通讯模块,还用于将所述请求响应消息发送至所述代理器。
15.可选的,所述协议栈模块,还用于在接收到所述请求指令时,解析所述请求指令,获得指令类型及请求参数,并对所述指令类型及所述请求参数进行安全性校验;
16.所述协议栈模块,还用于在安全性校验通过时,根据所述指令类型确定目标函数,
并根据所述请求参数调用所述目标函数,以使所述目标函数进行数据处理并返回函数响应消息。
17.可选的,所述协议栈模块,还用于在安全性校验不通过时,获取安全性校验不通过的失败原因信息,根据所述失败原因信息生成校验失败信息,并将所述校验失败信息发送至所述通讯模块;
18.所述通讯模块,还用于在接收到所述校验失败信息时,将所述校验失败信息发送至所述代理器。
19.可选的,所述协议栈模块,还用于获取有效模型文件,根据所述有效模型文件对所述指令类型及所述请求参数进行合法性检测及有效性检测;
20.所述协议栈模块,还用于在合法性检测通过且有效性检测通过时,判定安全性校验通过。
21.可选的,所述协议栈模块,还用于在合法性检测未通过或有效性检测未通过时,判定安全性校验不通过。
22.可选的,所述通讯模块,还用于接收代理器发送的登录请求,并根据所述登录请求确定所述代理器是否为首次连接;
23.所述通讯模块,还用于在所述代理器不为首次连接时,获取所述登录请求对应的身份信息,将所述身份信息发送至所述代理器进行身份验证,并在身份验证通过时,对所述代理器进行版本号校对;
24.所述通讯模块,还用于在版本号校对完成时,为所述代理器分配指令发送权限,允许所述代理器发送请求指令,并向所述代理器发送授权消息。
25.可选的,所述通讯模块,还用于在所述代理器为首次连接时,根据所述登录请求生成注册信息,将所述注册信息发送至所述代理器进行注册,接收并存储所述代理器反馈的身份信息。
26.可选的,所述数据适配器还包括驱动模块;
27.所述通讯模块,还用于在版本号校对完成时,向所述驱动模块发送数据初始化指令;
28.所述驱动模块,用于在接收到数据初始化指令时,获取数控设备的设备数据,根据所述设备数据进行模型数据初始化,并在初始化完成时向所述通讯模块反馈初始化完成消息;
29.所述通讯模块,还用于在接收到初始化完成消息时,为所述代理器分配指令发送权限,允许所述代理器发送请求指令,并向所述代理器发送授权消息。
30.可选的,所述驱动模块,还用于获取有效模型文件,根据所述有效模型文件确定若干个采样通道,并启动各采样通道对应的计时器;
31.所述驱动模块,还用于在检测到有计时器计时结束时,根据计时结束的计时器对应的采样通道进行数据采样,获得采样数据,并将所述采样数据发送至所述协议栈模块;
32.所述协议栈模块,还用于在接收到采样数据时,通过预设采样发布接口发布所述采样数据。
33.此外,为实现上述目的,本发明还提出数据适配方法,所述数据适配方法应用于如上所述的数据适配器,所述数据适配器包括:通讯模块及协议栈模块;
34.所述数据适配方法包括以下步骤:
35.所述通讯模块接收代理器发送的请求指令,并将所述请求指令转发至所述协议栈模块;
36.所述协议栈模块在接收到所述请求指令时,解析所述请求指令,获得指令类型及请求参数;
37.所述协议栈模块根据所述指令类型确定目标函数,并根据所述请求参数调用所述目标函数,以使所述目标函数进行数据处理并返回函数响应消息;
38.所述协议栈模块根据所述函数响应消息生成请求响应消息,并将所述请求响应消息发送至所述通讯模块;
39.所述通讯模块将所述请求响应消息发送至所述代理器。
40.本发明数据适配器包括:通讯模块及协议栈模块;通讯模块,用于接收代理器发送的请求指令,并将请求指令转发至协议栈模块;协议栈模块,用于在接收到请求指令时,解析请求指令,获得指令类型及请求参数;协议栈模块,还用于根据指令类型确定目标函数,并根据请求参数调用目标函数,以使目标函数进行数据处理并返回函数响应消息;协议栈模块,还用于根据函数响应消息生成请求响应消息,并将请求响应消息发送至通讯模块;通讯模块,还用于将请求响应消息发送至代理器。由于在返回消息时会将函数响应消息封装成占用空间较小的请求响应消息,数据传输仅占用较少带宽,可满足高频数据采集的需求。
附图说明
41.图1是本发明数据适配器第一实施例的结构框图;
42.图2是本发明数据适配器第二实施例的结构框图;
43.图3是本发明数据适配方法第一实施例的流程示意图;
44.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
45.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
46.参照图1,图1为本发明数据适配器第一实施例的结构框图,所述数据适配器包括:通讯模块10及协议栈模块20。
47.需要说明的是,所述数据适配器是基于nc

link协议开发的适配器,因此,也可以称为nc

link适配器,同理,代理器可以称为nc

link代理器,客户端的应用系统可以称为nc

link应用系统。
48.所述通讯模块10,用于接收代理器发送的请求指令,并将所述请求指令转发至所述协议栈模块。
49.需要说明的是,通讯模块是用于与外界设备进行通讯的功能模块,其主要作用为:连接的维持;数据的发送与接收;通信信息的加密与解密;设备的登录;设备的注册。通讯模块同时支持两种通信方式,分别为:请求/响应方式及订阅/发布方式,其中,请求/响应方式适用于代理器向数据适配器请求数据或修改数据,适配器在查询或修改数据之后向代理器返回消息;订阅/发布方式适用于数据适配器主动向代理器发布数据,即数据适配器主动将数据发布至消息队列中,订阅过该消息队列的代理器即可获取该数据。协议栈模块主要是
用于进行数据转换及数据处理的功能模块,其主要作用为:封装各种数据格式的源数据为nc

link协议数据单元;解析协议数据单元为具体设备能识别的数据格式。
50.需要说明的是,数据适配器是数控设备或数控系统与代理器(agent)之间通信的桥梁,代理器必须通过数据适配器才能与数控设备或数控系统进行通信,在复杂的工业应用场景,客户端无法直接与数据适配器通信,而是需要连接代理器,通过代理器才可与数据适配器进行通信。请求指令可以是客户端连接代理器,通过代理器发送至数据适配器的指令。当然,对于功能单一,需求极其简单的场景,也可以令客户端直接与数据适配器进行通信,而无需通过代理器。
51.在实际使用中,数据适配器与外界通信均是通过通讯模块,通讯模块在接收到代理器发送的请求指令时,会将请求指令转发至协议栈模块进行后续处理。
52.可以理解的是,若请求指令是经过加密的指令,则通讯模块还可以通过预设的解密方法对请求指令进行加密,在解密之后,再将解密过的请求指令转发至协议栈模块。
53.需要说明的是,与数据适配器相连之后,代理器即可通过数据适配器获取或修改数控设备的数据,若在连接时不对代理器身份进行验证,会使得任意与数据适配器相连的设备均可随意修改或获取数控设备的相关数据,因此,为了保证数控设备的安全,数据适配器仅接收登录的代理器发送的请求指令。
54.在实际使用中,在代理器尝试与数据适配器进行连接时,代理器会向数据适配器发送登录请求,数据适配器的通讯模块在接收到登录请求时,可根据登录请求判断该代理器与数据适配器是否首次连接,在并非首次连接时,会获取该登录请求对应的身份信息,并将身份信息发送至代理器进行身份验证,并在验证通过之后,与代理器进行版本号校对,在版本号校对完成时,为代理器分配指令发送权限,允许代理器发送请求指令,并向所述代理器发送授权消息;在为首次连接时,根据登录请求获取对应的数据生成注册信息,并将注册信息发送至代理器进行注册,然后接收代理器根据接收到的注册信息进行注册生成并反馈的身份信息,将接收到的身份信息进行保存。
55.需要说明的是,根据登录请求判断代理器与数据适配器是否首次连接可以是根据登录请求中的代理器的设备信息查找对应的连接记录,在查找到成功连接的连接记录时,判定并非首次连接;在无法查找到成功连接的连接记录时,判定为首次连接。与代理器进行版本号校对可以是将数据适配器中使用的模型文件与代理器中使用的模型文件进行版本号校对,使两者使用的模型文件的版本号一致。注册信息可以包括数据适配器的标识信息、非对称加密算法(如sm2算法)、时间戳等信息,所述标识信息可以是全局唯一标识符(guid,globally unique identifier)。
56.所述协议栈模块20,用于在接收到所述请求指令时,解析所述请求指令,获得指令类型及请求参数。
57.可以理解的是,协议栈模块在接收到请求指令时,可以解析请求指令,将请求指令中的数据转化为nc

link协议数据单元,读取nc

link协议数据单元中的数据,从而获得指令类型及请求参数。
58.所述协议栈模块20,还用于根据所述指令类型确定目标函数,并根据所述请求参数调用所述目标函数,以使所述目标函数进行数据处理并返回函数响应消息。
59.需要说明的是,协议栈模块中预先设置有多个业务处理函数,根据指令类型确定
目标函数可以是根据指令类型在预设业务处理函数表中查找对应的业务处理函数,并将查找到的业务处理函数作为目标函数。其中,预设业务处理函数表中可以包括有各个业务处理函数的函数信息与指令类型的映射关系,该映射关系可以由数据适配器的开发人员预先进行设置,函数信息可以包括函数名、函数调用路径、函数参数介绍等信息。根据请求参数调用目标函数可以是将请求参数作为函数调用参数传入目标函数。
60.可以理解的是,根据请求参数调用目标函数,则目标函数会根据传入的请求参数运行函数内部逻辑执行数据查询或数据修改等操作,并在执行完毕时根据逻辑执行的结果生成函数响应消息并返回。
61.在具体实现中,通讯模块接收到的请求指令可能已经被恶意篡改,若在接收到请求指令时直接根据请求指令中的数据进行目标函数的调用,可能会使得数据适配器被攻击,严重甚至会令数据适配器无法正常提供服务,为了保证请求指令中的数据并非被恶意篡改的数据,提高数据适配器的安全性,协议栈模块在解析请求指令,获得指令类型及请求参数之后,还可以对指令类型及请求参数进行安全性校验,在安全性校验通过时才根据指令类型确定目标函数,在根据请求参数调用目标函数,以使目标函数进行数据处理并返回函数响应消息;在安全性校验不通过时,不再执行后续调用函数步骤,而是获取安全性校验不通过的失败原因信息,根据所述失败原因信息生成校验失败信息,并将所述校验失败信息发送至通讯模块,再由通讯模块将校验失败信息发送至代理器。
62.在实际使用中,对指令类型及请求参数进行安全性校验可以是读取请求指令中的安全校验码,然后将指令类型及请求参数输入预设安全码生成算法中生成安全验证码,将安全校验码与安全验证码进行比较,若两者一致,则判定安全性校验通过;若两者不一致,则判定安全性校验不通过。
63.在实际使用中,对指令类型及请求参数进行安全性校验还可以是获取有效模型文件,通过有效模型文件对指令类型及请求参数进行合法性检测及有效性检测,在合法性检测及有效性检测均通过时,判定安全性校验通过,在合法性检测未通过或有效性检测未通过时,判定安全性校验不通过。其中,有效模型文件可以是数据适配器当前正在使用的模型文件。通过有效模型文件对指令类型及请求参数进行合法性检测可以是检测指令类型及请求参数的数据格式是否符合有效模型文件的数据格式要求,在符合时,判定合法性检测通过,在不符合时,判定合法性检测未通过。通过有效模型文件对指令类型及请求参数进行有效性检测可以是判断指令类型及请求参数是否处于有效模型文件指定的有效范围区间中,若处于,则判定有效性检测通过,若不处于,则判定有效性检测未通过。
64.在具体实现中,协议栈模块中可以预先设置有如下函数:
65.一、版本号校对请求函数
66.接口名称:probe/version/dev_uuid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
67.用途:版本号校对请求接口用于guid为dev_uuid的nc

link适配器向nc

link代理器或nc

link应用系统发布当前的nc

link模型文件版本号。
68.用法:nc

link适配器将该接口名作为mqtt发布主题。mqtt代理器或者mqtt应用系统将该接口名作为mqtt订阅主题。当nc

link适配器重启或者修改了nc

link模型文件时,通过该接口向nc

link适配器发布新的nc

link模型文件版本号。nc

link代理器缓存nc

link适配器的模型文件版本号,能感知到模型文件版本号的变化。nc

link应用系统可以缓存nc

link适配器的模型文件版本号,可以实现感知模型文件版本号发生变化的功能。
69.实现:版本号校对请求函数读取当前模型版本号、该适配器的guid,并从消息标识符单元获取本次请求响应对应的消息标识符。根据以上信息,生成版本号校对请求协议数据单元,发送给通讯模块作为payload。nc

link适配器通讯模块发布mqtt topic:“probe/version/dev_uuid”,payload为版本号校对请求的协议数据单元。
70.二、版本号校对响应函数
71.接口名称:probe/version/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
72.用途:当nc

link代理器或者nc

link应用系统收到nc

link适配器的版本号校对请求nc

link request pdu后,可以通过接口probe/version/response/dev_uuid向nc

link适配器返回响应,表示接收到版本号。当nc

link代理器或者nc

link应用系统在收到版本号校对请求并处理完成后,也可以不通过该接口向nc

link适配器发布对应的nc

link response pdu协议数据单元。也就是说,nc

link适配器在发布版本号校对请求后,不应该期盼nc

link代理器或者nc

link应用系统肯定返回对应的版本号校对响应协议数据单元。
73.用法:nc

link适配器可以将该接口名作为订阅主题,也可以不订阅该主题。nc

link代理器或者nc

link应用系统可以将该接口名作为发布主题,也可以不作为发布主题。nc

link代理器或者nc

link应用系统,在收到nc

link适配器的版本号校对请求nc

link request pdu后,可以通过该接口发布版本号校对响应协议数据单元nc

link response pdu,告知nc

link适配器已经收到了当前的版本号。nc

link适配器可以处理或者忽略该nc

link response pdu。
74.实现:代理器可以不用返回消息。
75.三、模型侦测请求函数
76.接口名称:probe/query/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
77.用途:模型侦测请求接口用于nc

link应用系统或nc

link代理器向nc

link适配器的请求当前的模型文件,以获得nc

link适配器当前的数据和服务能力。
78.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。当nc

link适配器通过版本号校对请求接口执行了版本号校对请求功能后,如果nc

link代理或nc

link应用系统当前没有缓存该nc

link适配器的模型文件,或者收到的版本号与当前缓存的模型文件的版本号不一致,那么nc

link代理器或者nc

link应用系统通过模型侦测请求接口,发布模型文件获取请求。
79.实现:通讯模块订阅mqtt topic:“probe/query/request/dev_uuid/ex_cid。”,接收到模型侦测请求协议数据单元。通讯模块调用模型侦测请求函数,将侦测请求协议数据单元,ex_cid作为参数传入。模型侦测请求函数解析模型侦测请求协议数据单元,将ex_cid和解析出的消息标识符、guid作为参数传入模型侦测响应函数。
80.四、模型侦测响应函数
81.接口名称:probe/query/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
82.用途:当nc

link适配器在probe/query/request/dev_uuid收到请求者(nc

link代理器或者nc

link应用系统)发布的模型侦测请求协议数据单元nc

link request pdu,并处理完成后,在模型侦测响应接口probe/query/response/dev_uuid发布模型侦测响应协议数据单元nc

link response pdu,以告知请求者nc

link适配器当前的数据和服务能力。
83.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。当nc

link适配器在接口probe/query/request/dev_uuid上接收到模型侦测请求后,通过该接口发布模型侦测响应协议数据单元。
84.实现:模型侦测响应函数读取当前模型文件,使用消息标识符,code,reason或prboe,其中probe字段中含有模型文件,生成版本号校对请求协议数据单元,发送给通讯模块作为payload。适配器通讯模块发布mqtt topic:“probe/query/response/dev_uuid/ex_cid”,payload为版本号校对请求的协议数据单元。
85.五、模型设置请求函数
86.接口名称:probe/set/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
87.用途:nc

link应用系统通过该接口设置/更新nc

link适配器的模型文件。nc

link应用系统保证模型文件的有效性与合法性。
88.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。nc

link应用系统保证模型文件的有效性与合法性。nc

link适配器在接收到新的模型文件时,应该进行合法性检查,可以拒绝设置请求也可以接收设置请求。
89.实现:适配器通讯模块订阅mqtt topic:“probe/set/request/dev_uuid/ex_cid”。接收到模型设置请求协议数据单元后,通讯模块调用模型设置请求函数,将模型设置请求协议数据单元、ex_cid作为参数传入。模型设置请求函数解析模型设置请求协议数据单元,获得新的模型文件,同时对模型文件进行合法性检查。如果不合法,则返回失败以及失败原因,如果成功,则接收该模型文件。接收或拒绝模型文件后,该函数调用模型设置响应函数,将ex_cid、code、reason以及模型文件作为参数传入模型设置响应函数。
90.六、模型设置响应接口
91.接口名称:probe/set/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
92.用途:当nc

link适配器在probe/set/request/dev_uuid收到请求者(nc

link代理器或者nc

link应用系统)发布的模型设置请求协议数据单元nc

link request pdu,并处理完成后,在模型设置响应接口probe/set/response/dev_uuid发布模型设置响应协议数据单元nc

link response pdu,向请求者返回模型设置请求的处理结果。
93.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。当nc

link适配器在接口probe/set/request/dev_uuid上接收到模型侦测请求后,通过该接口发布模型设置响应协议数据单元。
94.实现:模型设置响应函数根据code进行操作。若code为ok,则将新传入的模型文件更新至本地。更新时,将其他通信操作暂停。更新完成后,调用版本号校对请求函数,向设置
模型文件的nc

link应用系统发送版本号校对请求信息。若更新失败,则将code改为ng。若code为ng,则无需设置模型文件。模型设置响应函数将消息标识符,code,reason作为内容,生成模型设置响应协议数据单元,发送给nc

link通讯模块。适配器通讯模块发布mqtt topic:“probe/set/response/dev_uuid/ex_cid”,payload为模型设置响应协议数据单元。
95.七、数据查询请求函数
96.接口名称:数据查询请求接口名称:query/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
97.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器进行数据查询。如果nc

link代理器实现了历史数据服务,那么也可以用于nc

link应用系统向nc

link代理器查询指定适配器的历史数据。
98.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。如果nc

link代理器提供历史数据服务,那么nc

link代理器将该接口名作为mqtt订阅主题。数据查询指令交互应采用“请求/响应”模式。
99.实现:适配器通讯模块订阅mqtt topic:“query/request/dev_uuid/ex_cid”。接收到数据查询请求协议数据单元后,通讯模块调用数据查询请求函数,将数据查询请求协议数据单元、ex_cid作为参数传入。数据查询请求函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据查询请求。如果不合法,则返回失败以及失败原因。如果成功,则接收该查询指令。接收或拒绝查询指令,该函数调用数据查询响应函数,将ex_cid、code、reason以及数据查询指令作为参数传入数据查询响应函数。
100.八、数据查询响应接口
101.接口名称:query/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
102.用途:当nc

link适配器在接口query/request/dev_uuid/ex_cid收到用于nc

link代理器或者nc

link应用系统发布的数据查询请求后。通过该接口向nc

link代理器或者nc

link应用系统返回查询结果响应。如果nc

link代理器实现了历史数据服务,那么该接口也可以用于nc

link代理器向nc

link应用系统返回查询结果响应。
103.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。如果nc

link代理器提供历史数据服务,那么nc

link代理器将该接口名作为mqtt发布主题。数据查询指令交互应采用“请求/响应”模式。
104.实现:数据查询响应函数根据模型code进行操作。若code为ok,则执行数据查询指令,查阅装备模型,获取指定数据项的值,放入values字段当中,如果执行过程中失败,则将code改为ng,且停止执行。若code为ng,则无需进行查询。数据查询响应函数将消息标识符,code,reason,values作为内容,生成数据查询响应协议数据单元,发送给nc

link通讯模块。适配器通讯模块发布mqtt topic:“query/response/dev_uuid/ex_cid”,payload为数据查询响应协议数据单元。
105.九、数据设置请求接口
106.接口名称:set/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
107.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器设置指定数控装备模型文件中指定数据项的值。
108.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。如果nc

link代理器提供历史数据服务,那么nc

link代理器将该接口名作为mqtt订阅主题。数据设置指令交互应采用“请求/响应”模式。当nc

link适配器在该请求接口接收到数据设置请求协议数据单元nc

link request pdu以后,应该解析该协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据设置请求。无论是接受还是拒绝,nc

link适配器通过set/response/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。
109.实现:适配器通讯模块订阅mqtt topic:“set/request/dev_uuid/ex_cid”。接收到数据设置请求协议数据单元后,通讯模块调用数据设置请求函数,将数据设置请求协议数据单元、ex_cid作为参数传入。数据设置请求函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据查询请求。如果不合法,则返回失败以及失败原因。如果成功,则接收该查询指令。接收或拒绝设置指令后,该函数调用数据设置响应函数,将ex_cid、code、reason以及数据设置指令作为参数传入数据设置响应函数。
110.十、数据设置响应函数
111.接口名称:set/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
112.用途:当nc

link适配器在接口set/request/dev_uuid/ex_cid收到用于nc

link代理器或者nc

link应用系统发布的数据设置请求后。通过该接口向nc

link代理器或者nc

link应用系统返回设置结果响应。
113.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。数据设置指令交互应采用“请求/响应”模式。
114.实现:数据查询响应函数根据模型code进行操作。若code为ok,则执行数据设置指令,设置装备模型中,指定数据项的值。设定时更新该模型文件指定项。如果执行过程中失败,则将code改为ng。若code为ng,则无需进行设置。数据设置响应函数将消息标识符,guid,result作为内容生成数据查询响应协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt topic:“set/response/dev_uuid/ex_cid”,payload为数据设置响应协议数据单元。
115.十一、数据采样函数
116.接口名称:sample/dev_uuid/sample_channel_id。其中dev_uuid是具体nc

link适配器的guid,sample_channel_id是nc

link适配器中模型文件给出的合法的采样通道标识符。
117.用途:数据采样指令用于获取数控装备端的采样数据,适配器每个周期都会向nc

link代理器或nc

link应用系统发布采样数据。
118.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。数据采样指令的交互采用“订阅/发布”模式。实施
者可以自主在数控装备模型文件中可定义多个采样通道,每个采样通道中可以有多个数据采样点,每个采样数据点对应数控装备终端中的一个数据源。实施者可以自主在数控装备模型文件中定义发布周期。
119.实现:适配器启动时读取数控装备模型中的采样通道,针对每一个通道,调用数据采样函,或者动态采样注册时调用数据采样函数。函数输入为:sampleinterval,uploadinterval,id,ids。数据采样函数设置两个计时器,一个是采样间隔计时器,使用sampleinterval作为周期长度,一个上传间隔计时器,使用uploadinterval作为周期长度,激活采样通道,计时器开始计时,每当采样间隔计时器走完,采样通道模型获取数控模型中指定项数据;每当上传间隔计时器走完,数据采样函数将,采样通道id号sample_channel_id、读取的数据data、开始采样的时间作为内容生成数据采样协议单元,通过sample/dev_uuid/sample_channel_id接口发布采样数据。采样数据通过查看当前数控模型文件获得。适配器通讯模块发布mqtt topic:“sample/dev_uuid/sample_channel_id”,payload为数据采样协议数据单元。
120.十二、心跳探测请求接口
121.接口名称:heartbeat/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
122.用途:nc

link应用系统向nc

link适配器发送心跳探测请求的nc

link协议数据单元,从而获得nc

link适配器发送的nc

link response pdu来判断nc

link适配器是否在线。nc

link适配器通过接收心跳探测请求来判断nc

link应用系统是否在线。
123.用法:终端标识符为dev_uuid的nc

link适配器将该接口名heartbeat/request/dev_uuid/#作为mqtt订阅主题。终端标识符为ex_cid的nc

link应用系统将接口名heartbeat/request/dev_uuid/ex_cid作为mqtt发布主题。心跳探测指令交互应采用“请求/响应”模式。
124.实现:适配器通讯模块订阅mqtt topic:“heartbeat/request/dev_uuid/ex_cid”。接收到心跳探测请求协议数据单元后,通讯模块调用心跳探测请求函数,将心跳探测请求协议数据单元、ex_cid作为参数传入。心跳探测请求函数,调用心跳探测响应函数。
125.十三、心跳探测响应函数
126.接口名称:heartbeat/response/dev_uuid。其中dev_uuid是具体nc

link适配器的guid。
127.用途:用于nc

link适配器向nc

link应用系统发送心跳探测响应的nc

link协议数据单元。nc

link适配器通过送达心跳探测响应协议数据单元,向nc

link应用系统或nc

link代理器表明在线。
128.用法:终端标识符为dev_uuid的nc

link适配器将该接口名heartbeat/response/dev_uuid作为mqtt发布主题。终端标识符为ex_cid的nc

link应用系统将接口名heartbeat/response/dev_uuid作为mqtt订阅主题。心跳探测指令交互应采用“请求/响应”模式。当nc

link适配器接收到心跳探测请求协议数据单元nc

link request pdu以后,nc

link适配器通过heartbeat/response/dev_uuid接口向请求者给出响
129.实现:心跳探测响应函调用适配器通讯模块,且不传入任何参数,通讯模块发布mqtt topic:“heartbeat/response/dev_uuid”,payload为空。
130.十四、动态采样注册请求接口
131.接口名称:register/sample/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
132.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器注册动态采样。动态采样使得nc

link应用系统或nc

link代理器在不更新数控装备模型文件的情况下,具有增加采样通道的能力。适配器依据动态采样注册请求,动态分配采样通道资源,启动采样任务。
133.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。动态采样注册指令交互应采用“请求/响应”模式。
134.实现:适配器通讯模块订阅mqtt topic:register/sample/request/dev_uuid/ex_cid。接收到动态采样注册请求协议数据单元后,通讯模块调用动态采样注册请求函数,将动态采样注册请求协议数据单元、ex_cid作为参数传入。动态采样注册请求函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据查询请求。如果不合法,则返回失败以及失败原因。如果成功,则接收该注册指令,并生成动态采样通道对象的标识号id。接收或拒绝注册指令后,该函数调用动态采样注册响应函数,将ex_cid、sampleinterval、uploadinterval、ids、id、code、reason作为参数传入动态采样注册响应函数。
135.十五、动态采样注册响应函数
136.接口名称:reigster/sample/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
137.用途:用于nc

link适配器向nc

link应用系统发送动态采样注册响应的nc

link协议数据单元。nc

link适配器通过该接口向nc

link代理器或者nc

link应用系统返回动态采样注册结果。
138.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。动态采样注册指令交互应采用“请求/响应”模式。
139.实现:动态采样注册响应函数根据模型code进行操作。若code为ok,则执行动态采样注册指令,调用数据采样函数,将sampleinterval,uploadinterval,id,ids作为参数传入。如果执行过程中失败,则将code改为ng。若code为ng,则无需进行注册。动态采样注册响应函数将消息标识符,guid,id,code,reson作为内容生成动态采样注册响应协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:reigster/sample/response/dev_uuid/ex_cid,payload为动态采样注册响应协议数据单元。动态采样注册响应函数收到动态采样注销指令后,停止调用数据采样函数,释放资源。
140.十六、动态采样注销请求接口
141.接口名称:unregister/sample/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
142.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器注销动态采样。用于注销已注册的动态采样通道,注销之后,采样任务会终止,注销的动态采样通道资源会被回收。
143.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link
应用系统将该接口名作为mqtt发布主题。动态采样注销指令交互应采用“请求/响应”模式。
144.实现:适配器通讯模块订阅mqtt topic:unregister/sample/request/dev_uuid/ex_cid。接收到动态采样注销请求协议数据单元后,通讯模块调用动态采样注销请求函数,将动态采样注销请求协议数据单元、ex_cid作为参数传入。动态采样注册请求函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据查询请求。如果不合法,则返回失败以及失败原因。如果成功,则接收该注销指令。接收或拒绝注册指令后,该函数调用动态采样注销响应函数,将id、code、reason作为参数传入动态采样注销响应函数。
145.十七、动态采样注销响应函数
146.接口名称:unreigster/sample/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
147.用途:用于nc

link适配器向nc

link应用系统发送动态采样注销响应的nc

link协议数据单元。nc

link适配器通过该接口向nc

link代理器或者nc

link应用系统返回动态采样注销结果。
148.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。动态采样注销指令交互应采用“请求/响应”模式。
149.实现:动态采样注销响应函数根据模型code进行操作。若code为ok,则执行动态采样注销指令,向动态采样注册响应函数发送取消指令,停止调用数据采样函数。如果执行过程中失败,则将code改为ng。若code为ng,则无需进行注销。动态采样注销响应函数将消息标识符,guid,id,code,reson作为内容生成动态采样注销响应协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:unreigster/sample/response/dev_uuid/ex_cid,payload为动态采样注销响应协议数据单元。
150.十八、方法调用函数
151.接口名称:method/call/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
152.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器下达调用方法指令。方法可以提供文件管理功能,可以提供常见的控制功能模块(如循环启动、复位、停止等),也可以由用户自定义控制功能模块。
153.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。方法指令交互应采用“请求/响应”模式。当nc

link应用系统或nc

link代理器发送该方法调用协议数据单元后,订阅方法进度接口和方法结果接口。当nc

link适配器在该接口接收到方法调用协议数据单元nc

link request pdu以后,应该解析该协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝方法调用。nc

link适配器如果接受,则根据数据单元中的方法标识号调用对应方法,并且通过method/status/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud,。当方法执行完毕后通过method/result/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。nc

link适配器如果拒绝,通过method/result/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。
154.实现:适配器通讯模块订阅mqtt topic:method/call/dev_uuid/ex_cid。接收到方法调用请求协议数据单元后,通讯模块调用方法调用函数,将方法调用请求协议数据单元、ex_cid作为参数传入。方法调用函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝方法调用请求。如果不合法,则返回失败以及失败原因。如果成功,则接收该方法调用指令。接收或拒绝方法调用指令后,该函数会调用方法结果接口函数,将id、code、reason作为参数传入方法结果函数。
155.十九、方法进度接口
156.接口名称:method/status/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识。
157.用途:用于nc

link适配器向nc

link代理器或者nc

link应用系统发送方法执行进度。nc

link适配器通过发送方法执行进度,告知nc

link应用系统当前的方法是否仍在正常执行。
158.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。方法进度指令交互应采用“订阅/发布”模式。当nc

link适配器在该接口接收到方法调用协议数据单元nc

link request pdu并接受后,。nc

link适配器定期通过method/status/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link request pud。具体间隔周期可以采用10ms。当nc

link应用系统在发送方法调用协议数据单元后,需一直订阅方法进度接口。当nc

link应用系统通过方法结果接口接收到方法结果协议数据单元后,结束对方法进度接口的调用。
159.实现:方法进度接口函数主要是用在文件传输服务上。方法进度接口函数会将实时已经传输的文件大小来除以文件传输总大小来计算出传输进度百分比,如果此时正在传输则方法进度接口的协议数据单元status元素应设为executing,正在等待传输则设为waiting,暂停传输则设为stopped。方法进度接口函数将消息标识符,guid,id,status,progress作为内容生成方法进度协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:method/status/dev_uuid/ex_cid,payload为方法进度协议数据单元。
160.二十、方法结果接口
161.接口名称:method/result/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识。
162.用途:用于nc

link适配器向nc

link代理器或者nc

link应用系统发送方法执行结果。nc

link适配器通过发送方法执行结果,告知nc

link应用系统当前的方法是否执行成功。
163.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。方法结果指令交互应采用“请求/响应”模式。当nc

link适配器在收到方法调用协议数据单元nc

link request pdu后,nc

link适配器如果接受,则当方法执行完毕后通过该接口向请求者给出响应协议数据单元nc

link response pud。nc

link适配器如果拒绝,通过method/result/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。当nc

link应用系统或nc

link代理器发送方法调用协议数据单元后,订阅方法结果接口。
164.实现:方法结果函数用在文件服务上。适配器通讯模块会订阅method/call/dev_uuid/ex_cid,接收到方法请求协议数据单元后,会解析payload,按照模型文件检查其中的信息的合法性,若不合法则code为ng然后生成出错的原因,合法则code为ok。若合法则将其中的args(参数列表)如文件服务的协议、地址、文件路径、目标地址等参数传入文件服务函数,文件服务函数会根据其中的信息连接ftp服务器,按照其中的要求进行文件的上传或者下载。方法结果接口函数将消息标识符,guid,id,code,reason作为内容生成方法结果协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:method/result/dev_uuid/ex_cid,payload为方法结果协议数据单元。
165.二十一、方法控制请求接口
166.接口名称:method/control/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识。
167.用途:用于nc

link代理器或nc

link应用系统向nc

link适配器发送方法控制请求指令。nc

link代理器或nc

link应用系统通过发送方法控制指令,可以临时改变方法的执行。
168.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。方法控制指令交互应采用“请求/响应”模式。当nc

link适配器在收到方法控制请求协议数据单元nc

link request pdu后,应该解析该协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝方法控制请求。无论是接受还是拒绝,nc

link适配器通过method/control/response/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。
169.实现:适配器通讯模块订阅mqtt topic:method/control/request/dev_uuid/ex_cid。接收到方法控制请求协议数据单元后,通讯模块调用方法控制请求函数,将方法控制请求协议数据单元、ex_cid作为参数传入。方法控制请求函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝方法调用请求。如果不合法,则返回失败以及失败原因。如果成功,则接收该方法控制请求指令。接收或拒绝方法控制请求指令后,该函数会调用方法控制响应接口函数,将id、code、reason作为参数传入方法控制响应函数。
170.二十二、方法控制响应接口
171.接口名称:method/control/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识。
172.用途:当nc

link适配器在接口method/control/request/dev_uuid/ex_cid收到nc

link代理器或者nc

link应用系统发布的方法控制请求后。通过该接口向nc

link代理器或者nc

link应用系统返回方法控制请求结果。
173.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。方法控制指令交互应采用“请求/响应”模式。当nc

link适配器接收到方法控制请求协议数据单元nc

link request pdu,且完成或拒绝方法控制指令后,nc

link适配器通过method/control/request/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。
174.实现:方法控制响应函数根据模型code进行操作。若code为ok,则执行方法控制指令,将方法控制请求数据单元中的action发送给文件服务,若action为stop则暂停文件传输,若action为resume则恢复文件传输,若action为cancel则取消文件传输。如果执行过程中失败,则将code改为ng。若code为ng,则无需进行方法控制。方法控制响应函数将消息标识符,guid,id,code,reason作为内容生成方法控制响应协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:method/control/response/dev_uuid/ex_cid,payload为方法控制响应协议数据单元。
175.二十三、事件注册请求接口
176.接口名称:register/event/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
177.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器注册事件。事件使得nc

link应用系统或nc

link代理器在不更新数控装备模型文件的情况下,具有获知指定数控装备数据变化的能力。通过使用事件,适配器可以在数据发生特定变化时及时通知nc

link代理器或nc

link应用系统。适配器依据事件注册请求,动态分配事件通道资源,启动事件任务。
178.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。事件注册指令交互应采用“请求/响应”模式。当nc

link适配器在该请求接口接收到事件注册请求协议数据单元nc

link request pdu以后,应该解析该协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据设置请求。无论是接受还是拒绝,nc

link适配器通过register/event/response/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。pdu中包含请求的数据项和事件过滤器的配置,适配器依据此配置,动态分配事件通道资源,启动事件任务。
179.实现:适配器通讯模块订阅mqtt topic:register/event/request/dev_uuid/ex_cid。接收到事件注册请求协议数据单元后,通讯模块调用事件注册请求函数,将事件注册请求协议数据单元、ex_cid作为参数传入。事件注册请求函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝事件注册请求。如果不合法,则返回失败以及失败原因和事件id。如果成功,则接收该事件注册请求指令。接收或拒绝事件注册请求指令后,该函数会调用事件注册响应接口函数,将id、code、reason作为参数传入事件注册响应函数。
180.二十四、事件注册响应接口
181.接口名称:reigster/event/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
182.用途:用于nc

link适配器向nc

link应用系统发送事件注册响应的nc

link协议数据单元。nc

link适配器通过该接口向nc

link代理器或者nc

link应用系统返回事件注册结果。
183.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。事件注册指令交互应采用“请求/响应”模式。当nc

link适配器接收到事件注册请求协议数据单元nc

link request pdu以后,nc

link适
配器通过reigster/event/response/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。适配器若持续时间内未能收到终端标识符为ex_cid的nc

link应用系统的nc

link pdu,则会主动注销该事件通道。
184.实现:事件注册响应函数根据模型code进行操作。若code为ok,则执行事件注册指令,将事件注册请求数据单元中的filters过滤器组解析出来发送到过滤器函数,由过滤器函数来判断过滤器是否合法,若合法则创建事件,并分配独一的事件id,写入事件存储区,若不合法则不写入并且令code为ng。若code为ng,则无需进行事件注册。事件注册响应函数将消息标识符,guid,id,code,reason作为内容生成事件注册响应协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:reigster/event/response/dev_uuid/ex_cid,payload为事件注册响应协议数据单元。
185.二十五、事件注销请求接口
186.接口名称:unregister/event/request/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
187.用途:用于nc

link代理器或者nc

link应用系统向nc

link适配器注销事件。用于注销已注册的事件,注销之后,事件任务会终止,注销的事件资源会被回收。
188.用法:nc

link适配器将该接口名作为mqtt订阅主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt发布主题。事件注销指令交互应采用“请求/响应”模式。当nc

link适配器在该请求接口接收到事件注销请求协议数据单元nc

link request pdu以后,应该解析该协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝数据设置请求。无论是接受还是拒绝,nc

link适配器通过unregister/event/response/dev_uuid/ex_cid接口向请求者给出响应协议数据单元nc

link response pud。
189.实现:适配器通讯模块订阅mqtt topic:unregister/event/request/dev_uuid/ex_cid。接收到事件注销请求协议数据单元后,通讯模块调用事件注销请求函数,将事件注销请求协议数据单元、ex_cid作为参数传入。事件注销函数解析协议数据单元,并依据当前有效的模型文件检查请求的合法性和有效性。并根据检查结果决定是否接受或者拒绝事件注销请求。如果不合法,则返回失败以及失败原因和事件id。如果成功,则接收该事件注销请求指令。接收或拒绝事件注销请求指令后,该函数会调用事件注销响应接口函数,将id、code、reason作为参数传入事件注销响应函数。
190.二十六、事件注销响应接口
191.接口名称:unreigster/event/response/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识符。
192.用途:用于nc

link适配器向nc

link应用系统发送事件注销响应的nc

link协议数据单元。nc

link适配器通过该接口向nc

link代理器或者nc

link应用系统返回事件注销结果。
193.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。事件注销指令交互应采用“请求/响应”模式。当nc

link适配器接收到事件注销请求协议数据单元nc

link request pdu以后,nc

link适配器通过unreigster/event/response/dev_uuid/ex_cid接口向请求者给出响应协议数据
单元nc

link response pud。nc

link应用系统可以忽略此消息。
194.实现:事件注销响应函数根据模型code进行操作。若code为ok,则执行事件注销指令,将事件注销请求数据单元中的事件id解析出来与事件存储区中的现存事件进行比对,若有相同id的事件,则将该事件从事件存储区删除,否则不做操作,令code为ng。若code为ng,则无需进行事件注销。事件注销响应函数将消息标识符,guid,code,reason作为内容生成事件注销响应协议数据单元。并将数据单元发送至通讯模块。适配器通讯模块发布mqtt主题:unregister/event/response/dev_uuid/ex_cid,payload为事件注销响应协议数据单元。
195.二十七、事件数据接口
196.接口名称:event/dev_uuid/ex_cid。其中dev_uuid是具体nc

link适配器的guid,ex_cid是nc

link应用系统的终端标识。
197.用途:用于nc

link适配器向nc

link代理器或nc

link应用系统发送事件数据。nc

link适配器发送事件数据发送时表明事件被触发,nc

link代理器或nc

link应用系统可以及时获得数据改变的消息。
198.用法:nc

link适配器将该接口名作为mqtt发布主题,nc

link代理器或者nc

link应用系统将该接口名作为mqtt订阅主题。方法控制指令交互应采用“订阅/发布”模式。当nc

link适配器在接受事件注册请求后,应根据事件注册请求中的配置分配资源,当监听的数据项发生的变化满足过滤器要求后,通过event/dev_uuid/ex_cid接口向终端标识符为ex_cid的nc

link应用系统给出事件数据协议数据单元nc

link event pud。
199.实现:事件数据接口函数是一个单独的线程,适配器启动时此线程也启动,然后事件数据接口函数会一直遍历事件存储区,将事件存储区中的事件信息,id(事件id),guid,作为内容生成事件数据协议数据单元。并将数据单元发送至通讯模块。遍历事件存储区的时间周期为10ms。适配器通讯模块发布mqtt主题:event/dev_uuid/ex_cid,payload为事件数据协议数据单元。
200.所述协议栈模块20,还用于根据所述函数响应消息生成请求响应消息,并将所述请求响应消息发送至所述通讯模块。
201.在实际使用中,与外部的通信需要由通讯模块完成,因此,协议栈模块在接收到目标函数返回的函数响应消息之后,还可以读取函数响应消息中的数据,并将读取到的数据封装成占用空间极少的nc

link协议数据单元,从而生成请求响应消息,并将请求响应消息发送至通讯模块。
202.所述通讯模块30,还用于将所述请求响应消息发送至所述代理器。
203.可以理解的是,与外部的通信需要由通讯模块完成,则通讯模块在接收到请求响应消息时,可以将请求响应消息发送至代理器。
204.本实施例数据适配器包括:通讯模块及协议栈模块;通讯模块,用于接收代理器发送的请求指令,并将请求指令转发至协议栈模块;协议栈模块,用于在接收到请求指令时,解析请求指令,获得指令类型及请求参数;协议栈模块,还用于根据指令类型确定目标函数,并根据请求参数调用目标函数,以使目标函数进行数据处理并返回函数响应消息;协议栈模块,还用于根据函数响应消息生成请求响应消息,并将请求响应消息发送至通讯模块;通讯模块,还用于将请求响应消息发送至代理器。由于在返回消息时会将函数响应消息封
装成占用空间较小的请求响应消息,数据传输仅占用较少带宽,可满足高频数据采集的需求。
205.参考图2,图2为本发明一种数据适配器第二实施例的结构框图。
206.基于上述第一实施例,本实施例数据适配器还包括:驱动模块30。
207.需要说明的是,驱动模块中可以内置有通信协议库,通信协议库中包含有多种协议对应的适配方法,例如:opc、focas、modbustcp、opc

ua、mtconnect等多种协议。
208.在本实施例中:
209.所述通讯模块10,还用于在版本号校对完成时,向所述驱动模块发送数据初始化指令。
210.可以理解的是,在版本号校对完成时,则说明代理器及数据适配器使用的模型文件的版本号一致,则后续代理器可以向数据适配器发送相关的请求指令获取数控设备的数据,但是,若每次在接收到请求指令时再去实时获取数控设备的数据,则会非常耗时,响应较慢,因此,在版本号校对完成时通讯模块还可以向驱动模块发送数据初始化指令。
211.所述驱动模块30,用于在接收到数据初始化指令时,获取数控设备的设备数据,根据所述设备数据进行模型数据初始化,并在初始化完成时向所述通讯模块反馈初始化完成消息。
212.需要说明的是,各个不同的数控设备支持的协议可能并不相同,因此,在获取数控设备的设备数据之前,可以先确定数控设备支持的协议,并根据预设协议库中查找数控设备支持的协议的适配方法,根据查找到的适配方法与数控设备进行连接,在连接完成之后,获取数控设备的设备数据。
213.在实际使用中,驱动模块在接受到数据初始化指令时,可以获取数控设备的设备数据,并根据设备数据进行模型数据初始化,将数控设备的数据加载至模型文件中,并在初始化完成时向通讯模块反馈初始化完成消息。
214.可以理解的是,将数控设备的设备数据加载至模型文件中,则在后续接收到代理器发送的请求指令时,不必实时查询数控设备的设备数据,而是可以从模型文件中读取对应的设备数据,可以极大提高响应速度。
215.所述通讯模块10,还用于在接收到初始化完成消息时,为所述代理器分配指令发送权限,允许所述代理器发送请求指令,并向所述代理器发送授权消息。
216.可以理解的是,通讯模块在接收到初始化完成消息时,即可确定数据初始化已经完成,因此,可以为代理期分配指令发送权限,并允许代理器发送请求指令至数据适配器,然后向代理器发送授权消息通知,使代理器明确已经可以向数据适配器发送请求指令。
217.需要说明的是,在模型数据初始化完成之后,还可以周期性采集数控设备的数据,根据采集的数据对模型文件进行更新,从而保证数据适配器中的模型文件中存储的数据始终为最新数据,以便于代理器进行读取。
218.本实施例通过在版本号校对完成之后,直接读取数控设备的设备数据,并根据读取到的设备数据对数据适配器中的模型文件进行初始化,保证了代理器向数据适配器发送请求指令时,可快速获取到数控设备的相关数据,提高了数据适配器的响应速度。
219.在本实施例中:
220.所述驱动模块30,还用于获取有效模型文件,根据所述有效模型文件确定若干个
采样通道,并启动各采样通道对应的计时器。
221.需要说明的是,有效模型文件可以是数据适配器中当前正在使用的模型文件,有效模型文件中可能设置有若干个采样通道,各采样通道可以预先设置好需要进行采样的目标数据,各个采样通道均存在对应的计时器,在计时器计时结束时,计时结束的计时器对应的采样通道会被激活,激活的采样通道会自动对目标数据进行数据采样。其中,采样通道可以是由数据适配器的管理人员预先进行设置的。
222.所述驱动模块30,还用于在检测到有计时器计时结束时,根据计时结束的计时器对应的采样通道进行数据采样,获得采样数据,并将所述采样数据发送至所述协议栈模块。
223.可以理解的是,若检测到有计时器计时结束,则可以激活计时结束的计数器对应的采样通道,获取采样通道对应的目标数据,对目标数据进行数据采样,获得采样数据,然后将采样数据发送至协议栈模块。
224.所述协议栈模块20,还用于在接收到采样数据时,通过预设采样发布接口发布所述采样数据。
225.需要说明的是,预设采样发布接口可以是协议栈模块中预先设置的函数,通过该函数可以将采样数据封装为nc

link协议数据单元,在将封装后的采样数据发布在对应的消息队列中,消息队列的消费者可以直接读取发布在消息队列中的采样数据并进行后续处理。
226.本实施例通过获取有效模型文件,并根据有效模型文件确定若干个采样通道,获取各采样通道对应的计时器开始计时,并在检测到有计时器计时结束时,根据计时结束的计时器对应的采样通道进行数据采样,并将采样得到的采样数据通过预设采样发布接口进行发布,保证了各管理人员设置的采样通道可正常进行数据采样,便于后续处理。
227.本发明实施例提供了一种数据适配方法,参照图3,图3为本发明一种数据适配方法第一实施例的流程示意图。
228.本实施例中,所述数据适配方法包括以下步骤:
229.步骤s10:所述通讯模块接收代理器发送的请求指令,并将所述请求指令转发至所述协议栈模块;
230.步骤s20:所述协议栈模块在接收到所述请求指令时,解析所述请求指令,获得指令类型及请求参数;
231.步骤s30:所述协议栈模块根据所述指令类型确定目标函数,并根据所述请求参数调用所述目标函数,以使所述目标函数进行数据处理并返回函数响应消息;
232.步骤s40:所述协议栈模块根据所述函数响应消息生成请求响应消息,并将所述请求响应消息发送至所述通讯模块;
233.步骤s50:所述通讯模块将所述请求响应消息发送至所述代理器。
234.本实施例通过所述通讯模块接收代理器发送的请求指令,并将所述请求指令转发至所述协议栈模块;所述协议栈模块在接收到所述请求指令时,解析所述请求指令,获得指令类型及请求参数;所述协议栈模块根据所述指令类型确定目标函数,并根据所述请求参数调用所述目标函数,以使所述目标函数进行数据处理并返回函数响应消息;所述协议栈模块根据所述函数响应消息生成请求响应消息,并将所述请求响应消息发送至所述通讯模块;所述通讯模块将所述请求响应消息发送至所述代理器。由于在返回消息时会将函数响
应消息封装成占用空间较小的请求响应消息,数据传输仅占用较少带宽,可满足高频数据采集的需求。
235.应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
236.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
237.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据适配器,此处不再赘述。
238.此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
239.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
240.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
241.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1