首页 理论教育BACnet对象-BACnet标准与楼宇自控系统技术

BACnet对象-BACnet标准与楼宇自控系统技术

【摘要】:其中,对象标志符用来惟一标识对象;BACnet设备可以通过广播自身包含的某个对象的对象名称,与包含相关对象的设备建立联系。因此进行BACnet对象的定义,解决楼宇自控设备的互相识别、访问是实现楼宇自控设备互操作的关键。BACnet设备使用相关的对象进行描述,每一对象都有一组属性,设备的特征可以通过属性值表现出来。

1.BACnet的标准对象

BACnet采用面向对象技术,提供一种表示楼宇自控设备的标准。在BACnet体系中,网络设备通过读取、修改封装在应用层APDU中的对象数据结构,实现互操作。BACnet目前定义了23个对象,如图3-16所示,各个对象的说明见表3-1,每个对象都必须有3个属性:对象标志符(Object Identifier)、对象名称(Object Name)和对象类型(Object Type)。其中,对象标志符用来惟一标识对象;BACnet设备可以通过广播自身包含的某个对象的对象名称,与包含相关对象的设备建立联系。BACnet协议要求每个设备都要包含“设备对象”,通过对其属性的读取可以让网络获得设备的全部信息。

978-7-111-38144-0-Chapter03-16.jpg

图3-16 BACnet标准中的23个对象

表3-1 BACnet对象应用举例

978-7-111-38144-0-Chapter03-17.jpg

2.定义BACnet对象的目的

由于在全球范围内由不同厂家开发的BAS多种多样,即面对多种多样的楼宇自控设备,用统一的方法去表示和标识它们,通过楼宇自控网络成为能够互相识别和访问的实体,只有实现了在楼宇自控网络中能够互相准确辨识和访问,才能实现互通信,才能够在互通信的基础上实现互操作。因此进行BACnet对象的定义,解决楼宇自控设备的互相识别、访问是实现楼宇自控设备互操作的关键

定义了BACnet标准对象以后,就可以用BACnet标准对象的组合来实际模拟代替和表示楼宇自控设备或描述BAS。

3.BACnet对象与楼宇自控设备的对应关系

由于定义了标准BACnet对象,就可以进一步地用标准BACnet对象进行组合来实现对具体楼宇自控设备的代替、描述和表示。例如,一个压差开关就可以由一个DEV(设备)对象和一个DI对象组合而成;一个智能温度传感器就可以简单地用一个DEV对象和一个AI对象组合进行表示,用标准BACnet对象组合模拟描述如图3-17所示。

设定某一楼宇自控设备有3个数字量输入和2个模拟量输入,2个模拟控制输出和1个闭环控制逻辑,如果不考虑其他的BAS功能(如自动报警、联动关系、日程计划等功能),可用图3-18所示的8个标准BACnet对象实例组合进行表示。

978-7-111-38144-0-Chapter03-18.jpg

图3-17 用标准BACnet对象组合模拟器件

978-7-111-38144-0-Chapter03-19.jpg

图3-18 用标准BACnet对象组合一个设备

BACnet标准在利用标准对象组合模拟楼宇自控设备的方式,不必考虑使用BACnet标准对象的顺序,但规定一个BACnet自控网络节点有且仅有一个DEV对象实例。在BACnet标准中,按规则采用BACnet对象表示的设备叫做“BACnet设备”,BACnet楼宇网络自控系统就是由若干个这样的“BACnet设备”组成的系统。

BACnet设备使用相关的对象进行描述,每一对象都有一组属性,设备的特征可以通过属性值表现出来。对象还提供服务,这些服务是与设备通信有关的命令和响应。一个BACnet设备由一组对象表示,尽管BACnet定义了23个对象,但一般情况下一个具体的BACnet设备仅由数个对象进行描述就已经足够了,在中文描述的情况下用一组对象表示一个BACnet设备,如图3-19所示。

978-7-111-38144-0-Chapter03-20.jpg

图3-19 用一组对象表示一个BACnet设备

4.BACnet标准对象定义中的属性

面向对象的程序设计语言中的对象通常由“属性”和“方法”两部分构成,属性描述对象的状态,方法则表示对属性的访问和操作。但是在BACnet标准中,BACnet对象只由属性组成,不包含访问和操作属性的方法,访问和操作属性的方法被定义为应用层服务(Application Service)这种互操作模式。

BACnet标准对BACnet对象定义的表示方法中,每个BACnet对象定义都包括“属性名称”,“属性数据类型”和O、W、R之一的属性“说明标志”。其中:

1)O表示属性在对象定义中是可选择的,应根据实际情况进行选用;

2)R表示属性在对象定义中是必选的,并且是BACnet服务可读的;

3)W表示属性在对象定义中是必选的,并且是BACnet服务可读、可写的。

在BACnet标准中,BACnet标准对象的属性如下:

1)Object-Identifier(对象标识符)属性;

2)Object-Name(对象名称)属性;

3)Object-Type(对象类型)属性;

4)Present-Value(当前值)属性;

5)Description(描述)属性;

6)Device-Type(设备类型)属性;

7)Status-Flags(状态标志位)属性;

8)Event-State(事件状态)属性;

9)Reliability(可靠性)属性;

10)Out-Of-Service(脱离服务)属性;

11)Update-Interval(更新间隔)属性;

12)Unit(单位)属性;

13)Min-Pres-Value(最小值)属性;

14)Max-Pres-Value(最大值)属性;

15)Resolution(分辨率)属性;

16)COV-increase(COV增量)属性;

17)Time_Delay(时间延迟)属性;

18)Notification-Class(通告类)属性;

19)High-Limit(高限值)属性;

20)Low-Limit(低限值)属性;

21)Deadband(限值宽度)属性;

22)Limit-Enable(限值使能)属性;

23)Event-Enable(事件使能)属性;

24)Acked-Transitions(状态变迁确认)属性;

25)Notify-Type(通告类型)属性。

5.BACnet对象的特点和作用

不管是标准BACnet对象,还是非标准BACnet对象,为了使对象成为“BACnet网络上可以标识寻址和可访问的”的实体要素,就要在对象中定义用于“可见标识”的属性项。注意这里标准对象和非标准对象的区别。标准对象是BACnet定义的最常用对象,是表示具体楼宇自控设备的基本元素,而实际具体的楼宇自控设备可以“映射”为不同的BACnet标准对象实例的组合。BACnet标准规定所有对象定义均必须至少包含如下3个可见性的标识属性项:

1)Object-Identifier(对象标识符):面向通信寻址的标识属性项;

2)Object-Name(对象名称):面向人的可读性标识属性项;

3)Object-Type(对象类型):面向互操作过程的标识属性项。

对象是楼宇自控设备的模型化和抽象化的描述,BACnet对象为不同属性(Property)组成的集合,BACnet对象是BACnet协议中最为核心的内容,实质上就是一个由数据项组成的数据结构。对象的属性是楼宇自控设备互操作过程中所表现的外部特性的反映。

对于BACnet对象的特点和作用,一位学者给予了很精彩的叙述:

1)BACnet对象主要用于描述楼宇自控设备互操作过程中所表现的外部互操作特性,不涉及楼宇自控设备的内部配置、内部结构和内部运行过程。

BACnet对象表示楼宇自控设备状态、功能参数,还包含控制楼宇自控设备状态和功能的控制参数,这些参数集合就构成了对象的属性,这样的参数集合可以实现在BACnet网络环境中的互通信和可访问。BACnet对象是描述楼宇自控设备“网络互通信和可访问”的信息模型,“网络互通信和可访问”是实现互操作的基础。

2)BACnet对象是有关状态、功能和控制参数的集合,通过读、写两种方式实现对访问对象的操作。BACnet应用层服务基本上是基于“读/写”操作的内容。BACnet对象定义和使用,实现了网络互通信和可访问,使复杂的互操作行为简化为“读”和“写”两种基本的操作。

3)BACnet对象很好地将互通信和互操作结合起来。互操作语义和过程分别由对象和应用层服务定义后,使用测控网络来实现BACnet对象的互通信过程。具体实现通信的测控网络内容非常丰富,并且能够不断地融入使用最新的通信网络和控制网络技术。

4)BACnet对象使BACnet标准具有良好的扩展机制。BACnet对象提供的扩展机制不仅是通信网络的扩展,而且本身也具有良好的扩展特性。由于BACnet对象实质上只是由多个数据项组成的数据结构,因此既可以很容易地按照对象的基本定义构造各种对象类型,也可以很容易地在已有标准BACnet对象中加入新的属性,从而在“继承”的基础上形成新的对象类型。