IEEE1888-物联网领域的绿色节能标准(五)

来源:互联网 发布:杭州网店美工培训 编辑:程序博客网 时间:2024/04/29 16:01

八、1888.2聚合异构网及可扩展性

1.    背景与简介

IEEE1888.2标准于2014年通过颁布,全称为:IEEE Standard for Ubiquitous Green Community Control Network: Heterogeneous Networks Convergence and Scalability。1888和1888.1都是讨论同种网络的事情,但实际上,一种网络,并不是独立存在的,必然要和已存在的和以后定义的其他类型的网络进行交互,这必然要求1888网络具有一定的聚合能力,一方面,需要将不同的网络聚合成一个1888网络,令一方面,还需要与其他网络进行数据交互。1888.2就是为满足这种需求而制订的。
【1888协议族下的几个子标准都是对1888协议的扩展,而它们之间因关注点不同,基本上没有业务交叉,因此,本文也就只关注1888与1888.x之间的关系。】
现实中有各种类型的网络,对数据的表达、存储方式各不相同,所采用的传输协议也可能是五花八门,在1888网络中,这一工作通常由网关来完成的,网关是局部组件,如果仅将数据的变换作为网关的内部特性,就不需要全局层面的协议,这是1888中的场景;如果将数据的变换做整体上的考虑,就会突破网关的限制,则需要标准层面的规定,这是1888.2中的场景。
强调一点,1888.2也是关注测点数据的问题(与1888相同),只不过这些数据可能来自于1888网络之外或1888内不同的应用域,这时,需要解决的问题至少包括:

  • 测点的识别(测点ID的映射)
  • 数据类型的定义与转换
  • 协议的解析
  • 实现上述功能而需要的远程配置

1888.2就是围绕这些问题展开的。

2.    网络架构

 
IEEE1888.2-2013体系结构

上图是1888.2的网络架构。对比1888的架构,它多了“RRS”和“IAR”两个组件。RRS的全名为Reconfigurable Resolution Server,IAR的全名为Intelligent Application Resolver。简单来讲,RRS是管理分发配置的地方,IAR是执行映射或转换的地方。
围绕RRS和IAR,标准中定义了4种主要的过程:
(a) RRS 将测点ID映射配置下发到相应网关
(b) RRS将转换规则更新到IAR
(c) (e) APP(B域)向IAR请求测点值,这些测点实际上是A域中的点,IRA经过一定处理后返回
(d) IAR向网关请求测点的值

3.    RRS和IAR

同1888.1中的MCU一样,RRS和IAR是1888.2的核心。在标准中,RRS负责管理和分发测点映射规则和协议转换规则。
在RRS中,配置有类似http://example.org/gwA/idMap、http://example.org/gwA/translationRule这样的“点”,它们分别定义了测点的属性和转换的规则,另外,网关和IAR也定义了同样的“点”,当它们都将此信息注册到Registry中时,彼此之间就可以知道对方,从而就可以从对方获取需要的信息。
以registry为中介,RRS可以将配置”Write”到相应组件,相应组件也可以将配置”Fetch”出来。
网关是网络的边界,对于来自网络之外的数据,网关都会做一定的转换;对网络内不同应用域之间的数据交换,还没有对应的功能组件,因此为使数据转换的概念更“泛化”,标准提出了IAR。
IAR可以同网关或其他组件结合,它接收转换规则,并注册转换结果点(这些点实际上是虚拟点,它们是其他真实点通过计算转换而来,为方便,本文称这类点为映射点)。其他组件对映射点的访问,变为对IAR的访问,IAR变成了“中转网关”,它还要将对它自身的访问变为对其他真正网关的访问,然后返回结果。

4.    通讯过程和通讯协议

1888.2规定的几种通讯过程,都是围绕RRS和IAR的,RRS和IAR的通讯行为与网关等组件并没有区别,因此1888.2没有扩展1888的通讯过程和通讯协议。

5.    基础数据类型的定义

要进行数据转换,需要先有一套标准的数据类型,大家都转换成标准的数据。1888.2将XML Schema Type 2(http://www.w3.org/TR/xmlschema-2/)作为标准的数据类型。标准中也规定了引入外部的数据类型,按XML的规则,可在其前面加namespace以限定。
总之,按XML标准规定的原则处理数据类型就可以了。

6.    idMap和translationRule参考实现

idMap和translationRule的具体实现与项目有关,标准正文没有给出规定,但在附录中,给出了实现参考,它们并不是标准要求部分,现实中,实现方式可能比它们更简单或更复杂。
idMap实际上是用来定义点属性的,附录中,采用CVS,例如,对MODBUS_RTU,如下:
MODBUS_RTU, point_id, rtu_port_name, modbus_device_id, modbus_register_number, modbus_datatype, readwrite_permission, multiply_by, polling_interval
其中modbus_datatype为数据类型,可另外定义其字节顺序。
对BACNET ,如下:
BACNET_IP, point_id, bacnetip_host, bacnetip_port, bacnetip_object_id,bacnetip_parameter_id, bacnet_datatype, readwrite_permission, multiply_by, polling_interval  

translationRule定义了数据转换规则,数据分离散值(枚举值)和连续值,转换就有两种:ENUM_VALUE_MAP和REAL_VALUE_MAP,格式仍采用CVS。
ENUM_VALUE_MAP,mapping_name,dst_value,src_value
REAL_VALUE_MAP,mapping_name,arithmetic_function
其中arithmetic_function可以是逆波兰式的算术表达式。

7.    对1888.2的总结

异构网络之间的数据转换,是构建网络系统必需面对的问题。1888.2考虑了与1888网络之外和1888网络内不同应用域之间的数据转换问题。在笔者看来,前者是主要场景,后者则是特定应用的特定要求,比如,将0定义为false,并不更科学,只是习惯而已。1888.2将网络内的转换通用化,与具体的应用无关,当大家都需要这种转转换时,这样处理就有积极意义了。
添加1888.2的1888网络,有了映射点,可以与实际的物理点有比较复杂的计算关系,这样上层的应用就更方便了。在实际应用中,往往在数据存储器的旁边有一个称为计算引擎的东西,它可以对当前值进行映射,也可以对历史值进行映射,还可以虚拟出更复杂的计算点,IAR大致相当于网关中的映射功能与简化版计算引擎的结合。

0 0
原创粉丝点击