一种符合ISA100.11a标准的工业无线传感网终端实现方法

文档序号:10556121阅读:525来源:国知局
一种符合ISA100.11a标准的工业无线传感网终端实现方法
【专利摘要】本发明提供了一种符合ISA100.11a标准的工业无线传感网终端实现方法,从软件实现的角度将无线网络通信功能和终端采集控制功能分开,分别定义为通信模块和应用模块,并且在这两个模块之间设计了可扩展的API消息通信机制以将其组合起来。每个API消息都由通信模块根据终端装置与ISA100.11a网络沟通的需求而创建,并将其作为请求消息发送至应用模块,应用模块根据消息内容完成采集与控制任务后回复该消息对应的响应消息,通信模块再根据响应消息的内容进一步与ISA100.11a网络交互。本发明能够实现通信协议的通用性与具体用户应用的灵活性之间的结合。
【专利说明】
一种符合ISA1OO. 11 a标准的工业无线传感网终端实现方法
技术领域
[0001 ]本发明属于工业无线传感网技术领域,涉及一种符合ISA100.1 la标准的工业无线 传感网终端方法。
【背景技术】
[0002] 目前最常见的并且适用于工业现场的无线传感器网络标准分别有ISA100.11a、 ZigBee、Wireless HART和WIA-PA协议。相比于其他三种标准,ISAlOO.lla标准定义于工业 环境下无线系统的相关规程和实现技术,更适用于面向工业现场的采集与控制应用。该标 准定义的工业无线终端设备包括:传感器、控制器、无线手持设备等现场自动化设备。 ISAlOO.lla标准的目标,是将上述各种终端设备以无线的方式集成到ISAlOO.lla网络中, 使工业无线设备能够以低成本、低功耗以及适当的通信数据速率支持工业现场应用。
[0003] 然而,目前的主流无线终端实现方法都是建立在具体需求的基础上,将无线网络 通信功能和终端采集控制功能集成在一个软件模块中,因此具有相当的特殊性,只适用于 其所在场合,不具备通用性和可扩展性。此外,根据ISAlOO.lla标准的内容,其应用层包含 用户应用进程(User Application Process,UAP)和应用子层(Application Sub-Layer, ASL),标准规定了ASL向UAP提供各种服务接口,也规定了UAP内部由不同的对象作为具体应 用层功能的载体。但应用层的UAP之上的具体用户应用却并非标准的规定范围,即用户应用 如何使用UAP的各种对象功能需要开发者自行设计。

【发明内容】

[0004] 为了克服现有技术的不足,本发明提供一种符合ISAlOO.lla标准的工业无线传感 网终端实现方法,从软件实现的角度将无线网络通信功能和终端采集控制功能分开,实现 通信协议的通用性与具体用户应用的灵活性之间的结合。
[0005] 本发明所采用的具体技术方案包括以下步骤:
[0006] 步骤1,定义通信模块和应用模块;所述的通信模块负责执行无线网络通信功能, 硬件平台满足ISAlOO.lla标准物理层需求;所述的应用模块负责终端采集控制功能,能够 搭载传感器和控制器;
[0007] 所述通信模块运行ISA100.1 la协议栈,按照ISA100.1 la标准包括物理层、数据链 路层、网络层、传输层和应用层;应用层之中的用户应用进程UAP实现至少两种ISAlOO.lla 标准规定的对象,分别是集中器对象(Concentrator 0bject,CO)和接口对象(Interface Object,10); CO负责将应用模块采集获得的各个传感器数据集中起来,然后使用 ISAlOO.lla标准的发布订阅服务(Publish/Subscribe)发送给ISAlOO.lla网关;10使用 ISAlOO.lla标准的客户端服务器服务(Client/Server),将ISAlOO.lla网关下发的控制指 令送给应用模块的传感器和控制器。
[0008] 步骤2,定义API消息作为应用模块和通信模块之间的交互规则;通信模块向应用 模块发送API请求消息,应用模块针对每个处理后的API请求消息,向通信模块回复其响应 消息;
[0009]所述 API 消息的数据结构包括 Head、ID、Direct ion、API、Length、Pay load 和CRC;所 述的Head为API消息的第一个字节,表示数据帧的开头;ID为每个实例化的API消息的唯一 标识符,由通信模块创建请求消息时分配;Direct i on为API消息的方向,区分消息为请求消 息或响应消息;API为标识API消息的具体类型,即每种API的字节代号;Length为负载数据 的字节长度,即Payload的长度;Payload为API消息的负载数据,即消息所携带的具体数据; CRC为API消息的CRC校验值,确保数据帧内容正确。
[0010] 所述的API包括满足CO和IO功能的至少5种API,分别为Get Initial Info、 Notify Jo in、Noti fyAddContract、APDURequest和AF1DUIndi cate;所述的Get Initial Info 表 示通信模块通知应用模块初始化;Notify Join表示通信模块告知应用模块当前通信模块在 ISA100.1 la网络中的入网状态;NotifyAddContract表示通信模块告知应用模块用于 ISAlOO.lla网络通信的无线网络资源已经准备好;AroURequest表示通信模块告知应用模 块遍历获取所有传感器的读数,作为响应消息送回给通信模块;APDUIndicate表示通信模 块通知应用模块使相关的控制器作出控制动作。
[0011 ]步骤3,通信模块初始化之后向应用模块发送GetInitialInfo请求消息,通知应用 模块进行初始化,应用模块收到该消息后进行初始化并回复Get Initial Info响应消息,通 信模块获取响应消息后执行ISA100.1 la协议栈并代表终端设备开始入网;
[0012] 所述应用模块回复Get Initial Inf 〇响应消息时在Pay load中填写终端所携带的传 感器和控制器的属性参数。
[0013] 步骤4,通信模块完成ISAlOO.lla终端入网,入网后向应用模块发送Notify Join请 求消息,请求消息Pay load内容为0或者1,为0表示通信模块当前处于未入网的掉线状态,为 1表示通信模块已经正常入网;应用模块根据请求消息Payload内容做出不同处理,内容为0 则应用模块停止对传感器和控制器的访问以待下一次消息通知,内容为1则应用模块开始 初始化传感器和控制器以准备使用;应用模块处理完成后,向通信模块回复Notify Join响 应消息;通信模块收到Notify Join响应消息后,若终端确实已经入网,则进入步骤5;若终端 未入网,则继续代表终端设备向I SAl 00.11 a网络申请入网;
[0014] 步骤5,通信模块申请Contract资源,周期性Contract用于终端向ISAlOO · Ila网络 中传输所采集的数据,非周期性Contract用于终端向控制器发送来自ISAlOO.lla网络的控 制指令;申请完成后由通信模块向应用模块发送NotifyAddContract请求消息,消息 Pay load内容为ISA100.1 la标准规定的Contract属性参数,应用模块收到请求消息后记录 所有Contract的属性参数信息;应用模块向通信模块回复NotifyAddContract响应消息,消 息的Payload至少包括所涉及的Contract属性参数中的ContractID,即每个Contract在整 个无线网络中的唯一标识符,将其作为NotifyAddContract响应消息的Payload内容通知通 信模块相关的Contract确实有效而无需重新申请;
[0015] Contract准备完毕后,进行采集功能或控制功能;执行采集功能进入步骤6,执行 控制功能进入步骤7;
[00?6] 步骤6,通信模块的CO向应用模块发送APDUReque s t请求消息,消息的Pay I oad至少 包括所使用的周期性Contract的ContractID,以指明所需要的传感器数据将使用该 Contract完成Publish/Subscribe传输;应用模块收到请求消息后将各个传感器的数据集 中起来,再以ISA100.1Ia协议标准规定的Publish/Subscribe服务要求的方式和所记录的 Contract属性参数结合为应用层协议数据单元(APDU),作为Pay load随着APDURequest响应 消息回复给通信模块的CO;最后由CO使用Publish/Subscribe服务向ISA100.1 la网关传输 包含传感器数据和Contract属性参数的数据集,网关根据Contract的内容识别终端的传感 器数据的合法性;
[0017]步骤7,通信模块的IO向应用模块发送APDUIndicate请求消息,消息的Pay load内 容除控制指令数据以外包括所使用的非周期性Contract的ContractID,以指明所要使用的 控制器将使用该Contract完成Client/Server传输;应用模块收到请求消息后,根据控制指 令的内容使用具体的控制器完成控制功能,然后以ISA100.1 la协议标准规定的Client/ Server服务要求的方式将控制结果和所记录的Contract属性参数结合为应用层协议数据 单元(APDU),作为Payload随着APDUIndicate响应消息回复给通信模块的10;最后由IO使用 Client/Server服务向ISA100.1 la网关反馈包含控制结果和Contract属性参数的数据集, 网关根据Contract的内容识别终端的控制结果数据的合法性以判定控制是否成功。
[0018] 本发明的有益效果是:将无线终端方法中涉及无线组网通信的部分与涉及具体采 集控制执行的部分分开,分别定义为通信模块和应用模块,并且在这两个模块之间设计了 可扩展的API消息通信机制以将其组合起来,以兼顾终端方法在通信协议方面的通用性与 采集控制方面的灵活性。通用性方面,从ISA100.1 la协议的角度来看,通信模块即符合标准 的终端设备通信协议栈,应用模块为通信协议栈之上的具体用户应用,总体结构遵循 ISA100.1 la协议标准。灵活性方面,API消息定义可以根据需求扩展或缩减,使得所述终端 方法在满足最基本的采集与控制的基础之上可以根据需要进一步拓展其功能。此外,通信 与应用双模块分开的设计还可以尽量减少采集控制在执行时对维持终端设备在线的正常 通信所产生的影响和干扰。
【附图说明】
[0019] 图1是所述符合ISA100.1 la标准的工业无线传感网终端方法软件结构图。
[0020] 图2是一个实例化API在网络及终端方法中使用的一般性时序图。
[0021] 图3是终端方法集中器对象(CO)使用API完成采集数据上传的时序图。
[0022]图4是终端方法接口对象(10)使用API完成控制行为的时序图。
[0023] 图5是参考ISAlOO.lla标准的发布订阅服务(Publish/Subscribe)时序图。
[0024] 图6是参考ISAlOO.lla标准的客户端服务器服务(Client/Server)时序图。
[0025]图7是周期性Contract的建立及用于发布订阅服务的示意图。
[0026]图8是非周期性Contract的建立及用于客户端服务器服务的示意图。
【具体实施方式】
[0027] 本发明所采用的具体技术方案包括以下步骤:
[0028] 步骤1,定义通信模块负责执行无线网络通信功能,定义应用模块负责终端采集控 制功能。这两个模块各自是独立的软件实体,对实现的硬件平台没有具体的要求,既可以是 单片机式的嵌入式软件,也可以是嵌入式PC上运行的软件。对硬件平台的唯二要求在于,通 信模块的硬件平台必须具备满足ISAlOO.lla标准物理层需求的无线射频设备的条件,以及 应用模块必须具备可以搭载采集控制设备的条件。
[0029] 所述通信模块主要运行ISA100.1Ia协议栈,可以按照ISA100.1 Ia标准的规定完全 实现从物理层到应用层的所有必要内容,具体为:物理层、数据链路层、网络层、传输层、应 用层。应用层之中的用户应用进程(UAP)需要实现至少两种ISA100.1 la标准规定的对象,分 别是集中器对象(CO)和接口对象(IO)XO负责将应用模块采集获得的多种传感器数据或其 他数据集中起来,然后使用ISAlOO.lla标准的发布订阅服务(Publish/Subscribe)将集中 器准备好的数据发送给ISAlOO.lla网关。IO则使用ISAlOO.lla标准的客户端服务器服务 (Client/Server),将ISA100.1 la网关下发的控制指令进一步送给应用模块的具体控制设 备。
[0030] 所述应用模块主要使用采集与控制设备,概念上可以看作是UAP中负责具体功能 的CO与10的延伸。在应用模块中进一步定义采集功能子模块、控制功能子模块和API解析子 模块。采集功能子模块负责管理终端所有的传感器,控制功能子模块负责管理所有的控制 器,API解析子模块负责应用模块和通信模块之间的交互。API的进一步实现在后续步骤展 开。
[0031] 步骤2,定义API消息作为终端方法内部的应用模块和通信模块之间的交互规则, 为实现ISAlOO.lla终端对多个传感器与控制器的灵活使用提供途径。API消息的定义可以 根据实际需求扩展或缩减,但作为终端必须满足CO与10这两种对象的基本功能。每个具体 的API消息都将由通信模块的应用层UAP发送,在应用模块的API解析子模块接收,最后由应 用模块对每个处理后的API向通信模块回复其响应消息。
[0032]所述通信模块和应用模块之间使用API进行消息交互的数据帧格式及说明如下:
[0034] HeacUAPI消息数据帧的第一个字节,表示数据帧的开头;
[0035] ID:每个实例化的API消息的唯一标识符,由通信模块创建请求消息时分配;
[0036] Direction:API消息的方向,可区分消息具体为请求消息还是响应消息,请求消息 由通信模块的应用层UAP发送,响应消息则是应用模块的API解析子模块根据请求消息的内 容向通信模块回送;
[0037] API:标识API消息的具体类型,即每种API的字节代号,可根据实际需求定义,本发 明定义了至少满足⑶和10功能的5种API,分别称为Get Initial Info、NotifyJo in、 Not if yAddContract、APDURequest和APDUIndi cate,这些API实际所使用的字节代号可以任 意选择不同数值以区别;
[0038] Length:负载数据的字节长度,即Pay load的长度;
[0039] Payload: API消息数据帧的负载,即消息所携带的具体数据;
[0040] CRC: API消息数据帧的CRC校验值,可确保数据帧内容正确。
[0041 ]结合ISAlOO.lla标准的相关规定,本发明定义5种API实现终端方法的⑶与10功 能:
[0042] GetInitial Info,通信模块通知应用模块初始化;
[0043] Notify Join,通信模块告知应用模块当前通信模块在ISAlOO.lla网络中的入网状 态;
[0044] NotifyAddContract,通信模块告知应用模块用于ISA100.1 la网络通信的无线网 络资源已经准备好,所谓Contract是ISA100.1 la标准之中规定的一种由系统管理器分配的 代表每一个实例化的单向无线网络通信所需要使用的资源,周期性Contract-般用于终端 使用Publish/Subscribe服务发布传感器数据,非周期性Contract-般用于终端使用 Client/Server服务处理控制指令;
[0045] APDURequest,通信模块告知应用模块遍历获取所有传感器的读数,整理完毕后作 为响应内容送回给通信模块;
[0046] APDUIndicate,通信模块通知应用模块使相关的控制器作出控制动作。
[0047]步骤3,终端方法在本步骤开始运行,通信模块初始化之后向应用模块发送 GetInitialInfo请求消息以通知应用模块进行初始化,应用模块收到该消息后进行初始化 并回复GetInitialInfo响应消息,通信模块获取响应消息后执行ISA100.1 la协议栈并代表 终端设备开始入网。GetInitial Info请求和响应消息的Payload-般都可以为空,如果想要 令终端申请入网时能够上报终端所携带的传感器和控制器的属性参数,则可以令应用模块 回复Get Initial Info响应消息时在Pay load中填写相关参数,具体内容可视实地的终端设 备所搭载的传感器和控制器的种类数量而定。
[0048] 步骤4,通信模块完成ISA100.1 la终端入网,入网后向应用模块发送Notify Join请 求消息,消息Payload内容为0或者1,为0表示通信模块当前处于未入网的掉线状态,为1表 示通信模块已经正常入网。应用模块根据请求消息Payload内容做出不同处理,内容为0则 应用模块停止对传感器和控制器的访问以待下一次消息通知,内容为1则应用模块开始初 始化传感器和控制器以准备使用。应用模块处理完成后,向通信模块回复Notify Join响应 消息,响应消息的Pay load内容为空即可。通信模块收到NotifyJoin响应消息后,若终端确 实已经入网,则开始向ISA100.1 la网络申请采集和控制功能所必需的Contract资源,若终 端未入网,则继续代表终端设备向ISAlOO. I Ia网络申请入网。
[0049] 步骤5,通信模块申请Contract资源,周期性Contract用于终端向ISAlOO · Ila网络 中传输所采集的数据,非周期性Contract用于终端向控制器发送来自ISA100.1 la网络的控 制指令。申请完成后由通信模块向应用模块发送NotifyAddContract请求消息,消息 Pay load内容为ISA100.1 la标准规定的Contract属性参数,应用模块收到请求消息后记录 所有Contract的属性参数信息。接着,应用模块向通信模块回复NotifyAddContract响应消 息,消息的Pay load至少要包括所涉及的Contract属性参数中的Contract ID,ISAlOO · Ila标 准规定了 ContractID在整个无线网络中是每个Contract的唯一标识符,将其作为 NotifyAddContract响应消息的Pay load内容可以通知通信模块相关的Contract确实有效 而无需重新申请。
[0050] 需要注意本步骤中控制功能所用的非周期性Contract在ISA100.1 la网络中必须 是成对的,这与采集功能所用的周期性Contract不同。因为ISA100.1 la协议规定采集功能 的Publish/Subscribe服务的周期性Contract只涉及终端的CO单方面向ISAlOO. Ila网关传 输数据,控制功能的非周期性Contract则涉及Client/Server服务执行时网关和终端的IO 之间的双向传输。但实际上,对于通信模块与应用模块之间的API消息交互而言,只需要记 录成对Contract的其中一个由终端指向网关的实例即可,本步骤NotifyAddContract消息 的Pay load内容也只涉及这个指向网关的Contract,因为网关指向终端的另一个Contract 只负责ISAlOO. I Ia网络范围内的指令传输,通信模块在收到来自网关的控制指令后,指向 终端的Contract即完成了其功能,API消息实质上与指向终端的Contract无关。
[0051] Contract准备完毕后,就可以进行具体的采集功能和控制功能。执行采集功能进 入步骤6,执行控制功能进入步骤7。
[0052 ]步骤6,采集功能由通信模块的⑶向应用模块发送APDUReque st请求消息,消息的 Pay load至少要包括所使用的周期性Contract的ContractID,以指明所需要的传感器数据 将使用该Contract完成Publish/Subscribe传输。应用模块收到请求消息后,采集功能子模 块会将各个传感器的数据依次集中起来,再以ISA100.1 la协议标准规定的Publish/ Subscribe服务要求的方式和所记录的Contract属性参数结合为应用层协议数据单元 (APDU),作为Payload随着APDURequest响应消息回复给通信模块的⑶。最后由⑶使用 Publish/Subscribe服务向ISAlOO. Ila网关传输包含传感器数据和Contract属性参数的数 据集,网关会根据Contract的内容识别终端的传感器数据的合法性。
[0053]由于采集功能使用的是周期性的Contract,所以本步骤的终端传感器数据传输会 不断自动循环执行来及时上报最新的传感器读数,除非终端在ISA100.1 la网络中的通信状 态发生变化导致离线或重新入网的情况。
[0054]步骤7,控制功能由通信模块的10向应用模块发送APDUIndicate请求消息,消息的 Pay load内容除控制指令数据以外必须包括所使用的非周期性Contract的ContractID,以 指明所要使用的控制器将使用该Contract完成Client/Server传输,APDUIndicate请求消 息的Payload所包含的控制指令数据需要视终端所搭载的具体控制器信息而定。应用模块 收到请求消息后,控制功能子模块会根据控制指令的内容使用具体的控制器完成控制功 能,然后以ISA100.1 la协议标准规定的Client/Server服务要求的方式将控制结果和所记 录的Contract属性参数结合为应用层协议数据单元(APDU),作为Payload随着 APDUIndi cate响应消息回复给通信模块的10。最后由10使用Cl ient/Server服务向 ISA100.1 la网关反馈包含控制结果和Contract属性参数的数据集,网关会根据Contract的 内容识别终端的控制结果数据的合法性以判定控制是否成功。
[0055]由于控制功能使用的是非周期性的Contract,所以本步骤的终端控制一般是根据 用户的需求随时激活执行的,ISA100.1 la协议标准规定了使用Client/Server服务向终端 传递数据时必须申请新的或激活已存在的非周期性Contract资源。
[0056] 下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施 例。
[0057] 传统的无线传感网终端设备为了体积等成本方面的考虑,往往使用单芯片的结 构,但其采集控制性能和可扩展性必然受到限制。ISA100.1 la标准是一种面向工业现场的 无线传感网协议,因此更强调综合性能是否可以满足复杂环境中的需要。根据ISA100.1 la 协议栈的特点,其应用层采取了一定的面向对象的设计思想,协议未规定的用户应用只需 要和应用层UAP之中可扩展的对象进行交互,故而本发明可以将具体的用户应用与协议栈 网络通信分离开来。本发明所涉及的用户应用至少包括终端的采集功能和控制功能,具体 实施方式包括以下几个步骤。
[0058]步骤1,首先在软件结构设计上定义为通信模块和应用模块两大部分,通信模块负 责基本的ISA100.1 la协议栈网络通信,应用模块则专注于面向工业现场环境的可扩展采集 控制功能,如图1所示。
[0059] 通信模块和应用模块不应该过分拘泥于某种类型的硬件平台,因此这两种模块在 概念上是两个可以互相通信交互的软件实体,如此则它们既可以分别部署于各自的单片机 上,也可以根据需要各自部署于嵌入式操作系统上。通信模块和应用模块这两个软件模块 之间的交互方式在物理上也无要求,可以是网口直连的Socket通信,也可以是串口直连的 串口通信,本发明只强调软件模块之间交互规则的确定,因此采用自定义API的方式并规定 了其交互流程。但需要强调的是,最终所选用的硬件平台一定要满足两点:一是通信模块所 部署的硬件平台需要具备ISA100.1 la物理层所要求的基于IEEE 802.15.4标准的无线射频 通信设备,并且通信模块的物理层需要实现对所选无线射频通信设备的驱动;二是应用模 块所部署的硬件平台应可以挂载多种传感器和控制器,使应用模块可以访问这些传感器和 控制器。
[0060] 图1中的通信模块的主要任务是运行ISA100.1 la协议栈以便使终端能够加入 ISA100.1 la无线传感网络。协议栈从上到下包括:应用层、传输层、网络层、数据链路层和物 理层,各个层在ISA100.1 Ia标准中均有详细规定,只需按照标准内容将各个层的必要内容 实现即可。特殊之处只在于物理层需要根据硬件平台具体使用的无线射频通信设备的型号 来实现对应的驱动。
[0061 ] UAP中的各种标准对象可以按照ISA100 .1 Ia标准的定义来实现,对本发明而言至 少需要实现集中器对象(CO)和接口对象(10),这是因为CO和IO需要分别外接采集和控制的 具体用户应用功能,但用户应用部分则是ISAlOO.lla标准不作规定的。因此,从ISAlOO.lla 标准的概念角度可以将所述应用模块看作是UAP的CO与10的延伸,这部分延伸是 ISAlOO.lla标准未规定的。
[0062]本步骤的重点在于细化应用模块的内部定义,应按图1所示定义采集功能子模块、 控制功能子模块和API解析子模块。采集功能子模块是CO的延伸,可以搭载多个传感器,并 负责将这些传感器的数据集中起来作为预备上传的终端设备采集数据。控制功能子模块是 10的延伸,可以搭载多个控制器,并负责将网关传来的控制指令发送到指定的控制器中从 而完成控制执行。API解析子模块则负责应用模块与通信模块之间的通信,通信方式为自定 义的API控制消息交互,API的具体细节在后续步骤完成。
[0063]步骤2,定义API消息作为终端方法内部的应用模块和通信模块之间的交互规则, 为实现ISAlOO.lla终端对多个传感器与控制器的灵活使用提供途径,定义的内容包括API 消息的数据帧结构的定义和API消息种类的定义。API消息种类的定义可以根据需求进行扩 展,但至少要满足⑶和10所必备的采集与控制功能,本发明定义了 GetInitial Info、 NotifyJoin、NotifyAddContract、APDURequest和APDUIndicate这5种API〇
[0064] API消息的数据帧结构定义如下:
[0066] HeacUAPI消息数据帧的第一个字节,表示数据帧的开头;
[0067] ID:每个实例化的API消息的唯一标识符,由通信模块创建请求消息时分配;
[0068] Direction:API消息的方向,可区分消息具体为请求消息还是响应消息,请求消息 由通信模块的应用层UAP发送,响应消息则是应用模块的API解析子模块根据请求消息的内 容向通信模块回送;
[0069] API:标识API消息的具体类型,即每种API的字节代号,可根据实际需求定义,本发 明定义了上述满足CO和IO功能的5种API,即GetInitialInfo、NotifyJoin、 Not if yAddContract、APDURequest和APDUIndi cate,各API种类的字节代号可以任意取值以 互相区别即可;
[0070] Length:负载数据的字节长度,即Pay load的长度;
[007? ] Payload:API消息数据帧的负载,即消息所携带的具体数据;
[0072] CRC = API消息数据帧的CRC校验值,可确保数据帧内容正确。
[0073] API消息种类定义如下,本发明利用这5种API实现符合ISA100.1 la标准的终端采 集与控制功能:
[0074] GetInitial Info,通信模块通知应用模块初始化;
[0075] Notify Join,通信模块告知应用模块当前通信模块在ISA100.1 la网络中的入网状 态;
[0076] NotifyAddContract,通信模块告知应用模块用于ISA100.1 la网络通信的 Contract无线网络资源已经准备好,一般而言只需告知涉及具体采集与控制操作的周期性 和非周期性Contract即可;
[0077] APDURequest,通信模块告知应用模块遍历获取所有传感器的读数,整理完毕后作 为响应内容送回给通信模块;
[0078] APDUIndicate,通信模块通知应用模块使相关的控制器作出控制动作。
[0079] 图2为实例化的API消息在终端方法中运作的时序图,每个具体的API消息都将由 通信模块的应用层UAP发送,在应用模块的API解析子模块接收,如果是使用传感器或控制 器的API消息则还要在解析消息之后将消息内容送给采集功能子模块或者控制功能子模 块,最后由应用模块将每个处理后的API消息向通信模块回复。注意图中的API范围不涉及 采集功能子模块和控制功能子模块,一般的API消息可直接由API解析子模块完成响应消息 的准备,只有涉及采集控制功能时才会由API解析子模块将API消息的内容而不是API消息 实例发送给具体的传感器或控制器。
[0080] 步骤3,基于步骤1的终端方法软件实体结构定义和步骤2的API消息交互规则定 义,本步骤开始正式展开终端方法的实际运行流程的实现。本步骤主要完成初始化任务,通 信模块优先初始化之后向应用模块发送GetInitialInfo请求消息以通知应用模块进行初 始化,应用模块收到该消息后进行初始化并回复GetInitialInfo响应消息,通信模块获取 响应消息后执行ISA100.1 Ia协议栈并代表终端设备开始入网。
[0081] 图3展示了终端CO基于API完成传感器采集数据上传的时序图,图4展示了终端10 基于API完成控制器控制任务的时序图,图中第一步的API消息都是使用GetInitialInfo消 息进行初始化工作且基本完全相同。因此,在实现过程中也可以将图3和图4的第一步API消 息调用合而为一,由通信模块的其他部分统一完成GetInitial Info消息的使用及初始化工 作。
[0082] GetInitial Inf 〇消息的Pay load内容可以灵活掌握,请求响应的内容皆为空也不 影响初始化任务的完成,因为初始化工作本身相对简单不需要太多的参数进行补充。但为 了终端方法的实用性更强,一般还是需要借助GetInitialInf0消息完成一些额外工作,主 要集中在初始化后向ISA100.1 la网络中告知终端设备的详细功能信息,如传感器信息和控 制器信息,否则只能采用人为将所有终端的功能信息以配置文件的形式输入网关的非自动 化方法。具体的,可以在GetInitial Inf 〇响应消息的Pay load内容中填充传感器或控制器的 参数,如传感器在终端的编号、传感器数据名称和类型、控制器在终端的编号、控制器信号 类型等,具体内容由实地的终端所搭载的采集控制设备而定。当初始化任务完成后终端开 始入网,若具备详细功能信息,则可将这些信息随着终端入网请求发送给ISA100.1 la网络, 并在网关收到请求信息后记录之,如果允许终端入网,那么ISA100.1 la网络就会知晓该终 端具备何种采集和控制功能。
[0083] 步骤4,通信模块完成ISA100.1 la终端入网,入网后向应用模块发送Notify Join请 求消息,消息Payload内容为0或者1,为0表示通信模块当前处于未入网的掉线状态,为1表 示通信模块已经正常入网。如果应用模块收到的请求消息Payload内容为1,则开始对传感 器和控制器进行初始化以备使用,同时回复No t i f y Jo i η响应消息,响应消息的Pay I oad内容 为空即可。图3中第二步的API消息为终端CO使用Notify Join消息并启动传感器初始化的工 作,图4中第二步的API消息为终端IO使用NotifyJoin消息并启动控制器初始化的工作。本 步骤中,⑶和IO分别使用Notify Join请求消息的活动也可以在实现的过程中适当合并,虽 然概念上CO负责传感器而IO负责控制器,但实际上NotifyJoin请求消息的Pay load内容并 不因 CO或IO而有所不同,因此完全可以由通信模块的其他部分统一完成Notify Join请求消 息,应用模块只需将所有传感器控制器初始化即可。
[0084] 需要注意Notif yjoin请求消息的Payload内容为0的情况,这种情况不会在终端初 次初始化入网时出现,而是往往出现在终端离线后重新入网的过程中。根据ISA100.1 la协 议标准,所有无线终端会由系统管理器维护其在线状态,具体的维护方式可以采用终端与 网关之间的定时心跳包交互。如果维持终端在线的交互出现问题,那么终端的ISAlOO . I Ia 协议栈会重新提交入网请求。为了在终端离线期间减少终端的功耗,也为了方便终端重新 入网后顺利进行后续步骤,可以在通信模块的协议栈确定离线且重新入网时,向应用模块 发送Pay load内容为0的NotifyJoin请求消息,应用模块收到这种消息后将停止对传感器和 控制器的使用,直到下一次收到Payload内容为1的NotifyJoin请求消息后继续正常步骤流 程。
[0085] 步骤5,通信模块申请Contract资源,周期性Contract用于终端向ISAlOO · Ila网络 中传输所采集的数据,非周期性Contract用于终端向控制器发送来自ISA100.1 la网络的控 制指令。
[0086] 本步骤所申请的Contract资源都是直接涉及传感器和控制器的,ISA100.1 la协议 标准规定周期性Contract资源是CO可以使用网关提供的发布订阅(Publish/Subscribe)月艮 务上传数据的前提,也规定了非周期性Contract资源是IO可以使用网关提供的客户端服务 器(Client/Server)服务向终端传达控制指令的前提。为了描述清楚本步骤所申请的 Contract资源的特殊之处,应首先讨论Publ ish/Subscribe服务和Client/Server服务的特 点。
[0087] 图5描述了参考154100.11&标准的?11131丨811/3油8(^讣6服务建立过程,总体上分为 订阅(Subscribe)和发布(Publish)两个阶段:先由网关的用户应用根据其所需要得到的采 集数据类型等内容向网关发起Subscribe服务请求,网关允许后即表示网关的用户应用可 以"订阅"所需的采集数据;随后,网关可以根据"订阅"的内容建立对应的Publish服务,并 在服务建立后通知相关的终端以告知它们可以开始向网关持续性"发布"采集数据,网关此 后将通过Publish服务接收来自终端发送的数据,图5中的定时循环即体现了 Publish服务 不断发布数据的效果。网关根据"订阅"与"发布"之间的对应关系,将符合条件的Publish月艮 务上传的发布数据送给需要这些数据的Subscribe服务的订阅者。
[0088] 图6描述了参考ISA100.1 la标准的Client/Server服务建立过程,总体上分为请求 和响应两个阶段:首先是网关的用户应用提出控制需求,网关将其转化为ISA100.1 la网络 中的控制指令,终端收到控制指令后交给具体的控制设备作出控制动作;随后,终端的控制 动作完成,将相关响应信息回复给网关,网关再将响应送给网关的用户应用以告知控制结 果。Client/Server服务相对于Publish/Subscribe服务而言属于一次性服务,不需要 Publish/Subscribe服务的持续性。此外,理论上Client/Server服务的方向性可以是任意 的,既可以是网关向终端提出控制要求,也可以是终端向网关主动反映情况。
[0089 ] 本步骤所申请的C O n t r a C t资源是IS A10 0.11 a标准规定的网络传输所必需的单方 向通信资源,双向通信一般需要两个方向相反的成对的Contract。周期性Contract是长期 存在的,可以使用这种Contract传输相对稳定的固定数据通信。非周期性Contract是一次 性的,可以使用这种Contract完成特定的即时数据通信。所有Contract资源都由系统管理 器分配,但发出申请的网络角色可以是该Contract相关的其他网络角色,例如网关和终端 之间的Contract就可以由网关或者该终端发起申请。
[0090]根据以上内容的讨论,周期性的Contract最适合CO用来长期上传其所收集的传感 器数据,此类使用Publ ish/Subscribe服务向网关长期发送信息的周期性Contract的方向 由终端指向网关,一般由终端向系统管理器申请,如图7所示。非周期性的Contract最适合 10用来传送一次性的控制指令,此类使用Client/Server服务与网关之间进行一次性控制 通信的非周期性Contract是两个单向成对的,即一个Contract的方向由网关指向终端,另 一个则由终端指向网关,可以由终端或网关向系统管理器申请,如图8所示。
[0091 ]本步骤的C 〇 n t r a c t资源申请完成后由通信模块向应用模块发送 Not if yAddContract请求消息,消息Pay load内容为ISA100 · I Ia标准规定的Contract属性参 数,应用模块收到请求消息后记录所有Contract的属性参数信息。接着,应用模块向通信模 块回复Not if yAddContract响应消息,消息的Pay load至少要包括所涉及的Contract属性参 数中的Contract ID,ISA100 · Ila标准规定了 ContractID在整个无线网络中是每个Contract 的唯一标识符,将其作为Not if yAddContract响应消息的Pay load内容可以通知通信模块相 关的Contract确实有效而无需重新申请。虽然控制功能所涉及的非周期性Contract是成对 的,但Not i f yAddContract请求消息的Pay I oad只需要填写其中一个方向为终端指向网关的 Contract的属性参数信息即可,因为另一个方向为网关指向终端的Contract将用于网关将 控制指令送给终端通信模块的任务,并且此指向终端的Contract会随着通信模块收到来自 网关的控制指令后完成其任务,也就是说本步骤中的Not if yAddContract请求响应消息与 指向终端的非周期性Contract没有关系。
[0092] 在完成本步骤的NotifyAddContract消息交互后,应用模块即可开始使用传感器 或控制器,如开始轮询各个传感器管脚输入口或者激活正在待机的控制器以准备接受动 作,图3第三步的API消息为CO通知应用模块相关的周期性Contract信息并开始启动传感 器,图4第三步的API消息为IO通知应用模块相关的非周期性Contract信息并激活控制器。 通信模块随后可以选择告知ISA100.1 la网络CO与IO的准备情况,也可以根据实际情况选择 不告知,因为Contract资源是采集与控制实现的最关键要素 ,一般而言Contract的成功建 立即代表采集与控制功能的即时可用,除非传感器或控制器出现硬件方面的设备问题。
[0093] Contract准备完毕后,就可以进行具体的采集功能和控制功能。执行采集功能进 入步骤6,执行控制功能进入步骤7。
[0094]步骤6,采集功能由通信模块的⑶向应用模块发送APDURequest请求消息,消息的 Pay load至少要包括所使用的周期性Contract的ContractID,以指明所需要的传感器数据 将使用该Contract完成Publish/Subscribe传输。应用模块收到请求消息后,采集功能子模 块会将各个传感器的数据依次集中起来,再以ISA100.1 la协议标准规定的Publish/ Subscri be服务要求的方式和所记录的Con tract属性参数结合,作为Pay load随着 APDURequest响应消息回复给通信模块的⑶。最后由⑶使用Publish/Subscribe服务向 ISA100.1 la网关传输包含传感器数据和Contract属性参数的数据集,网关会根据Contract 的内容识别终端的传感器数据的合法性。
[0095]由于采集功能使用的是周期性的Contract,所以本步骤的终端传感器数据传输会 不断自动循环执行来及时上报最新的传感器读数,除非终端在ISA100.1 la网络中的通信状 态发生变化导致离线或重新入网的情况。
[0096]图3第四步的API消息为CO向应用模块请求传感器采集数据集合,应用层响应请求 并发回封装采样数据的APDU。图中的定时循环即表现了终端借助Publish服务使用周期性 Con tract不断上传数据的情况。还需要注意的是,图中应用模块开始读取传感器的时间会 早于收到APDURequest请求消息的时间,因为所述终端方法的通信模块和应用模块各自是 独立的软件模块,为了更及时的反映传感器最新采样数据,可以令应用模块提前获取传感 器读数并暂时存于缓存中,待收到APDURequest请求消息时可以马上将最新传感器数据反 馈。
[0097]步骤7,控制功能由通信模块的10向应用模块发送APDUIndicate请求消息,消息的 Pay load内容除控制指令数据以外必须包括所使用的非周期性Contract的ContractID,以 指明所要使用的控制器将使用该Contract完成Client/Server传输,APDUIndicate请求消 息的Payload所包含的控制指令数据需要视终端所搭载的具体控制器信息而定。注意请求 消息的Pay I oad内容所涉及的非周期性Con trac t的方向一定是由终端指向网关,由网关指 向终端的Contract在此时已经随着网关所发送的控制指令的到达而结束其任务。应用模块 收到请求消息后,控制功能子模块会根据控制指令的内容使用具体的控制器完成控制功 能,然后以ISA100.1 la协议标准规定的Client/Server服务要求的方式将控制结果和所记 录的Contract属性参数结合为应用层协议数据单元(APDU),作为Payload随着 APDUIndi cate响应消息回复给通信模块的10。最后由10使用Cl ient/Server服务向 ISA100.1 la网关反馈包含控制结果和Contract属性参数的数据集,网关会根据Contract的 内容识别终端的控制结果数据的合法性以判定控制是否成功。
[0098]由于控制功能使用的是非周期性的Contract,所以本步骤的终端控制一般是根据 用户的需求随时激活执行的,ISA100.1 la协议标准规定了使用Client/Server服务向终端 传递数据时必须申请新的或激活已存在的非周期性Contract资源。
[0099]图4第四步的API消息为IO向应用模块发送控制指令请求,应用模块完成控制活动 后返回封装控制结果的APDU。图中的按需启动表现了每次控制指令的完成都必须由 Client/Server服务激活非周期性Contract的情况,可以与图6的Client/Server服务时序 图互相印证。
【主权项】
1.一种符合ISA100.1Ia标准的工业无线传感网终端实现方法,其特征在于包括下述步 骤: 步骤1,定义通信模块和应用模块;所述的通信模块负责执行无线网络通信功能,硬件 平台满足ISA100.1 la标准物理层需求;所述的应用模块负责终端采集控制功能,能够搭载 传感器和控制器; 步骤2,定义API消息作为应用模块和通信模块之间的交互规则;通信模块向应用模块 发送API请求消息,应用模块针对每个处理后的API请求消息,向通信模块回复其响应消息; 步骤3,通信模块初始化之后向应用模块发送GetInitialInfo请求消息,通知应用模块 进行初始化,应用模块收到该消息后进行初始化并回复GetInitialInfo响应消息,通信模 块获取响应消息后执行ISA100.1 la协议栈并代表终端设备开始入网; 步骤4,通信模块完成ISA100.1 la终端入网,入网后向应用模块发送Notify Join请求消 息,请求消息Payload内容为0或者1,为0表示通信模块当前处于未入网的掉线状态,为1表 示通信模块已经正常入网;应用模块根据请求消息Payload内容做出不同处理,内容为0则 应用模块停止对传感器和控制器的访问以待下一次消息通知,内容为1则应用模块开始初 始化传感器和控制器以准备使用;应用模块处理完成后,向通信模块回复Notify Join响应 消息;通信模块收到Notify Join响应消息后,若终端确实已经入网,则进入步骤5;若终端未 入网,则继续代表终端设备向I SAl 00.11 a网络申请入网; 步骤5,通信模块申请Contract资源,周期性Contract用于终端向ISA100 · Ila网络中传 输所采集的数据,非周期性Contract用于终端向控制器发送来自ISA100.1 la网络的控制指 令;申请完成后由通信模块向应用模块发送NotifyAddContract请求消息,消息Pay load内 容为ISAlOO . Ila标准规定的Contract属性参数,应用模块收到请求消息后记录所有 Contract的属性参数信息;应用模块向通信模块回复NotifyAddContract响应消息,消息的 Pay load至少包括所涉及的Contract属性参数中的Contract ID,即每个Contract在整个无 线网络中的唯一标识符,将其作为NotifyAddContract响应消息的Pay load内容通知通信模 块相关的Contract确实有效而无需重新申请; Contract准备完毕后,进行采集功能或控制功能;执行采集功能进入步骤6,执行控制 功能进入步骤7; 步骤6,通信模块的CO向应用模块发送APDURequest请求消息,消息的Payload至少包括 所使用的周期性Contract的ContractID,以指明所需要的传感器数据将使用该Contract完 成Publish/Subscribe传输;应用模块收到请求消息后将各个传感器的数据集中起来,再以 ISA100.1 la协议标准规定的Publish/Subscribe服务要求的方式和所记录的Contract属性 参数结合为应用层协议数据单元AF 1DtL作为Payload随着APDURequest响应消息回复给通信 模块的CO;最后由CO使用Publish/Subscribe服务向ISA100.1 la网关传输包含传感器数据 和Contract属性参数的数据集,网关根据Contract的内容识别终端的传感器数据的合法 性; 步骤7,通信模块的IO向应用模块发送APDUIndi cate请求消息,消息的Pay load内容除 控制指令数据以外包括所使用的非周期性Contract的ContractID,以指明所要使用的控制 器将使用该Contract完成Client/Server传输;应用模块收到请求消息后,根据控制指令的 内容使用具体的控制器完成控制功能,然后以ISA100.1 la协议标准规定的Client/Server 服务要求的方式将控制结果和所记录的Contract属性参数结合为应用层协议数据单元 APDU,作为Pay load随着APDUIndicate响应消息回复给通信模块的10;最后由IO使用 Client/Server服务向ISA100.1 la网关反馈包含控制结果和Contract属性参数的数据集, 网关根据Contract的内容识别终端的控制结果数据的合法性以判定控制是否成功。2. 根据权利要求1所述的符合ISA100.1 la标准的工业无线传感网终端实现方法,其特 征在于:所述通信模块运行ISA100.1 Ia协议栈,按照ISA100.1 Ia标准包括物理层、数据链路 层、网络层、传输层和应用层;应用层之中的用户应用进程UAP实现至少两种ISA100.1 la标 准规定的对象,分别是集中器对象CO和接口对象IO; CO负责将应用模块采集获得的各个传 感器数据集中起来,然后使用ISAlOO.lla标准的发布订阅服务发送给ISAlOO.lla网关;10 使用ISAlOO.lla标准的客户端服务器服务,将ISAlOO.lla网关下发的控制指令送给应用模 块的传感器和控制器。3. 根据权利要求1所述的符合ISAlOO.lla标准的工业无线传感网终端实现方法,其特 征在于:所述API消息的数据结构包括Head、ID、Direct ion、API、Length、Pay load和CRC;所 述的Head为API消息的第一个字节,表示数据帧的开头;ID为每个实例化的API消息的唯一 标识符,由通信模块创建请求消息时分配;Direct i on为API消息的方向,区分消息为请求消 息或响应消息;API为标识API消息的具体类型,即每种API的字节代号;Length为负载数据 的字节长度,即Payload的长度;Payload为API消息的负载数据,即消息所携带的具体数据; CRC为API消息的CRC校验值,确保数据帧内容正确。4. 根据权利要求1所述的符合ISAlOO.lla标准的工业无线传感网终端实现方法,其特 征在于:所述的API包括满足CO和10功能的至少5种API,分别为Get Initial Info、 Notify Jo in、Noti fyAddContract、APDURequest和AF1DUIndi cate;所述的Get Initial Info 表 示通信模块通知应用模块初始化;Notify Join表示通信模块告知应用模块当前通信模块在 ISAlOO.lla网络中的入网状态;NotifyAddContract表示通信模块告知应用模块用于 ISAlOO.lla网络通信的无线网络资源已经准备好;AroURequest表示通信模块告知应用模 块遍历获取所有传感器的读数,作为响应消息送回给通信模块;APDUIndicate表示通信模 块通知应用模块使相关的控制器作出控制动作。5. 根据权利要求1所述的符合ISAlOO.lla标准的工业无线传感网终端实现方法,其特 征在于:所述应用模块回复GetInitial Inf 〇响应消息时在Pay load中填写终端所携带的传 感器和控制器的属性参数。
【文档编号】H04W40/22GK105916184SQ201610394586
【公开日】2016年8月31日
【申请日】2016年6月6日
【发明人】王鼎衡, 杨海科, 张建奇, 成斐鸣
【申请人】西安航天自动化股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1