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

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

【摘要】:下面简要介绍BACnet标准的各个部分,关于内容的深度分析和讨论放在后面的专门章节中。每一个BACnet设备必须至少包含一个标准对象。网络层的功能就是实现连接两个使用不同数据链路层协议的BACnet局域网。BACnet网络层向应用层提供的服务是不确认的无连接形式的数据单元传送服务。

下面简要介绍BACnet标准的各个部分,关于内容的深度分析和讨论放在后面的专门章节中。

1.“目的”部分

说明了制定和颁布该标准的目的是:由于BAS的通信网络架构内容较为庞杂,对于提高系统的开放性造成了很大的障碍,因此为BAS的控制网络或称之为楼宇自控网络,定义一些能被广为接收的数据通信服务和协议,定义一些数据通信的服务和协议,这些服务和协议用于采暖、通风、空调和制冷控制设备(HVAC&R)的监控计算机设备或智能控制器中,并可以应用于其他BAS的计算机控制设备之中。为楼宇自控网络的数据通信制定一个统一的标准化语言,从而在今后进行BAS和核心设备及组件的设计、开发中,有规范的语言和标准。

BACnet标准的内容并不是非常具体的规定条文细则,它是一个标准、规范,该标准很好地定义和界定了楼宇自控网络中智能化的监控设备或组件进行数据通信的主要原则、方法、实施的步骤。

2.“范围”部分

BACnet标准提供了一个完整的报文集合,用来在智能控制设备组件(嵌入微处理器或使用智能芯片的智能化控制装置或计算机)设备之间传送二进制编码、模拟量、文本数据和数字数据。

标准使用对象和属性描述的方法,即在无需了解设备的内部设计或配置细节,而能够识别和访问信息的方法。

3.“术语定义”部分

这部分内容主要有:使用了其他相关国际标准中的术语;BACnet标准中定义的术语;BAC-net标准中使用的缩写和简称。在BACnet标准中定义的术语当中,特别是定义了BACnet网络中的网桥、网关、路由器和半路由器、网络互联的概念、中继器网段和网络,实际上这部分的术语定义从计算机网络和Internet技术中相同的术语引申而来。

4.“BACnet协议的体系结构”部分

借鉴了计算机网络的七层级结构OSI模型,提出了简化的四层级BACnet简化体系结构,BACnet的简化体系结构在数据链路层和物理层支持IEEE 802.3以太网、ARCnet网络、MS/TP(主从/令牌传递)控制总线、RS-485控制总线、RS-232控制总线和LonWorks控制总线。同时,依据BACnet标准构建的网络支持多种网络传输介质:双绞线、光纤、同轴电缆、电力线;支持网络的拓扑结构可以灵活选择。

这部分内容还详细地定义描述了BACnet协议栈及数据组织方式;BACnet报文和分段及传输的方式。

5.“应用层”部分

在四层级的BACnet简化的体系结构中,应用层是最顶层,相当于计算机网络OSI模型的最顶层。建立应用层模型的目的是为了清楚地描述应用层与应用程序之间的交互(interaction)、应用层与协议栈中下面各层次的关系以及应用层与远程设备中应用层的对等交互。但需要说明的是,该模型并不是应用层的实现规范。

这一部分还定义了BACnet设备(BACnet Device),是指任何一种支持用BACnet协议进行数字通信的真实的或者虚拟的设备。每一个BACnet设备必须至少包含一个标准对象。每一个BAC-net设备都由一个NSAP(Network Service Access Point,网络服务执行点或网络服务接入点)惟一定位。在NSAP中,包含了一个网络编号和一个MAC地址

这里的NSAP是用来实现开放式系统互联网络层寻址的两种分级地址之一。

这一部分内容还包括:BACnet报文的分段;BACnet APDU的传输、应用层协议状态机;应用层协议时序图等。报文是网络中交换与传输的数据单元。报文包含了将要发送的完整的数据信息。报文也是网络传输的单位,传输过程中会不断封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头。APDU是应用层的协议数据单元。

6.“网络层”部分

BACnet网络层的目的是提供一种方法,使用这种方法,不用考虑网络所使用的BACnet数据链路层使用的技术,可以将报文从一个BACnet网络传递到另一个BACnet网络。

网络层提供将报文直接传递到一个远程的BACnet设备、广播到一个远程BACnet网络或者广播到所有的BACnet网络中的所有BACnet设备的能力。一个BACnet设备被一个网络号码和一个MAC地址惟一确定。网络层的功能就是实现连接两个使用不同数据链路层协议的BACnet局域网。并使用“BACnet路由器”连接这些不同的BACnet局域网。

BACnet网络层向应用层提供的服务是不确认的无连接形式的数据单元传送服务。与这种交互相关的原语是N-UNITDATA请求和指示。

定义了BACnet网络层协议数据单元NPDU的分组格式;NPDU的协议版本号、网络层协议控制信息、特殊域的内容、网络层报文类型、生产商专有网络层报文等。

网络层部分还包括:多播报文和广播报文、网络层协议报文、网络层协议运行规程、BACnet路由器和点到点半路由器。

其中BACnet路由器是连接两个或者多个BACnet网络形成BACnet互联网的设备;点到点半路由器则是将两个网络通过广域网(例如公共电话网络)进行连接的互联设备。点到点连接需要在两个半路由器之间建立连接从而形成一个完整的路由器。

7.“数据链路/物理层:ISO 8802-3(“以太网”)局域网”部分

该部分主要介绍和定义了数据链路/物理层;直接引用ISO 8802-3(“以太网”)局域网作为BACnet标准支持的楼宇自控网络之一;定义了逻辑链路控制原语及原语体系所需的参数;定义了MAC原语体系及所需的参数;定义了PTP网络和MS/TP网络的传输媒质,由于Lon网络、Ethernet、ARCnet网络都是借鉴引入的现有标准及网络系统,网络传输介质依然按原有的方式使用。

8.“数据链路/物理层:ARCnet局域网”部分

这一部分则定义和详细地解析性叙述了ISO 8802-2逻辑链路控制的应用;逻辑链路控制(LLC)原语体系及所需的参数;ARCnet局域网的MAC层得到从BACnet网络的逻辑链路控制服务映射;定义了MAC原语序列及所需的参数等。

9.“数据链路/物理层:主-从/令牌传递(MS/TP)局域网”部分

这一部分解析性地定义了数据链路/物理层的服务规范;对MS/TP标准、MS/TP数据帧的组织方式即MS/TP帧格式都做了解析定义;对MS/TP网络的主-从/令牌传递介质访问控制模式、循环冗余校验(CRC)做了解析定义;对MS/TP网络的覆盖范围、数据传输速率的范围、使用MS/TP中继器扩展网络覆盖范围做了解析定义;还解析定义了:建立MS/TP局域网和其他BAC-net局域网的接口;对来自MS/TP的报文的BACnet用户处理的应答等内容。

10.“数据链路/物理层:点到点(PTP)”部分

该部分主要解析定义了:数据链路/物理层的点到点(PTP)网络;服务规范;PTP网络中相关的通信协议及数据单元的组织方式即PTP帧格式;点到点网络的传输媒质访问控制协议。

11.“数据链路/物理层:LonWorks局域网”部分

该部分解析定义了ISO 8802-2逻辑链路控制的应用;LLC控制原语序列及相关的参数;逻辑链路控制子层服务到LonTalk应用层的映射;应用层原语序列和相关的参数及物理介质。

12.控制设备的对象模型

为了实现设备间的信息交换,BACnet标准定义了一种标准的信息描述方式。为实现这种描述方式,采用面向对象的方法。

所有对象均由对象标识符属性所引用。每个BACnet设备的对象均有一个惟一的对象标识符属性值。将一个对象的对象标识符与具有系统全局惟一性质的BACnet设备对象标识符结合使用,就提供了一种在整个控制网络中引用每个对象的机制。

13.“报警和事件服务”部分

不同种类的报告;报警事件的发生和公告方式以及相应的报警服务;对各类情况对应的不同服务、通告服务做了解析定义。

14.文件访问服务

该部分定义一组访问和操作在BACnet设备中的文件的服务。文件表示一个任意长度和意义的字节集合的网络可见形式。这只是一个抽象的概念,并不表示在服务器设备中用到了磁盘、磁带或其他的大容量存储设备。这些服务可以访问BACnet协议标准定义的特定文件,也可以访问生产商定义的文件。每一个能被文件访问服务访问的文件,在BACnet设备中都有一个对应的文件对象。这个文件对象标识特定的文件的名称。另外,文件对象还提供诸如文件总长度、文件创建日期和文件类型这样的访问“头信息”。文件访问服务给出了两种文件模型:连续字节流模型和编号记录的连续序列模型。

文件访问服务提供基本读和写操作。在本协议中,“基本的(atomic)”表示在读和写操作的执行期间,不允许有其他的基本读文件操作或者基本写文件操作作用在同一个文件上。

具有BACnet设备内部操作性质的服务如何同步的问题由生产商自行解决,标准没有作任何具体解析定义。

15.“对象访问服务”部分

在BACnet体系中,每一种BACnet设备都可以抽象成一个或几个标准对象的集合,对设备的访问就是对对象的访问。该部分解析定义了:添加列表元素的服务、删除列表元素的服务;创建对象的服务、删除对象的服务、读属性服务、条件读属性的服务、读多个属性的服务、写属性的服务等。

16.“远程设备管理服务”部分

在设备通信控制服务中,解析定义了设备通信控制服务原语结构、服务过程;在有证实专有传输服务中,解析定义了有证实专有传输服务结构、服务过程。无证实专有传输服务的内容有:无证实专有传输服务结构、Who-Has服务过程、I-Have服务结构、I-Have服务过程;重新初始化设备服务、有证实文本报文服务、无证实文本报文服务和时间同步服务;Who-Has和I-Have服务内容有:Who-Has服务结构、Who-Has服务过程、I-Have服务结构和I-Have服务过程;Who-Is和I-Am服务内容有:Who-Is服务结构、Who-Is服务过程和I-Am服务过程等。

17.“虚拟终端服务”部分

一个客户端BACnet用户使用虚拟终端(VT)服务建立一个与另一个BACnet设备上的应用程序服务器的连接。建立这个连接的目的是为了实现数据的面向字符双工交换。VT服务通常被用来使一个BACnet设备上的应用程序作为一个“终端模拟器”,与另一个BACnet设备上的“操作员接口”应用程序交互。这种类型的连接称之为VT会话(VT-session)。一旦建立了一个VT会话,客户端应用程序和服务器端应用程序都称之为VT用户(VT-user)。

在“虚拟终端服务”这一部分包括的内容如下:虚拟终端模型(包含:基本服务、VT类型、活动VT会话、VT开启、VT关闭和VT数据的状态图、VT会话同步、VT会话标识符);VT开启服务(包含:结构、服务过程、VT关闭服务、结构、服务过程);VT数据服务(包含:结构、服务过程);默认终端的指标(包含:默认终端字符清单、控制功能)等。

18.“错误、拒绝和中止代码”部分

BACnet协议中涉及的所有错误,按照“错误类”分类。在每一个错误类别中,进一步按照“错误代码”进行分类。这样分类,使得应用程序可能按照两个尺度,对错误采取不同的补救方式。“错误、拒绝和中止代码”部分包括的内容如下:

1)错误类-设备包含:设备忙、正在进行配置、运行问题;

2)错误类-对象包含:不支持动态创建、无指定类型的对象、不支持对象删除、对象标识符已存在、读访问拒绝、未知对象和不支持的对象类型等;

3)错误类-属性包含:不支持字符集、选择准则不一致、无效数组索引、无效数据类型、读访问拒绝、未知属性、写访问拒绝和值超出阈值等;

4)错误类-资源包含:无空间创建对象、无空间添加列表元素和无空间写属性等;

5)错误类-安全包含:认证失败、不支持字符集、不兼容的安全等级、无效的操作员名字、密钥生成错误、密码错误、不支持安全性和超时等;

6)错误类-服务包含:不支持字符集、文件访问拒绝、参数不一致、无效的文件访问方法、无效的文件开始位置、无效的参数类型、无效的时间戳、属性非列表元素、缺少必要的参数和服务请求拒绝等;

7)错误类-虚拟终端包含:未知VT类别、未知VT会话、无可用的VT会话、VT会话已经关闭和释放VT会话失败等;

8)拒绝原因包含:缓冲器溢出、参数不一致、无效参数类型、无效标志、缺少必要的参数、参数超出阈值、过多参数、未定义枚举和不支持的服务等;

9)中止原因包含:缓冲器溢出、在本状态下无效的APDU、高优先级任务抢占、很不支持分段等。

19.“命令优先级机制”部分

在BAS中,一个对象可能被多个实体操作。例如,一个二进制输出对象的当前值可能被多个应用程序设置,诸如查询计量读数、优化启/停操作等。每一个这样的应用程序都有一个明确的功能需要执行。当有两个或者多个应用程序都要操作一个属性值而发生冲突时,就需要在这些应用程序之间进行协调。协调处理的目的是要保证被多个程序(或者非程序)实体操作的对象达到期望的状态。例如,一个启/停程序可能规定某个二进制输出对象应该为ON,而查询计量读数的程序可能规定同一个二进制输出对象为OFF。在这种情况下,OFF应该具有优先权。操作者可以不顾查询计量读数程序,强行设置这个二进制输出对象为ON,在这种情况下,ON就具有优先权。

在BACnet协议中,采用一个优先级机制提供这种协调处理方法。这个优先级机制根据整个系统要求,给命令实体分配不同的优先级级别。每个包含有一个可命令属性的对象负责按照命令的优先级顺序执行相应的操作。任何这样的机制都必须在复杂性和稳定性之间进行折中,本协议确定优先级机制应该是简单有效,并且可以应用到非常简单的BACnet设备中。

这部分内容如下:优先级机制(包含:可命令属性、优先级命令、释放命令、命令源标识符和命令改写等);应用优先级的分配;活动最小值和非活动最小值;命令对象的优先级机制;环对象的优先级机制;时间表对象的优先级机制。

20.BACnet协议数据单元编码

在BACnet中,使用应用层协议数据单元(APDU)传送包含在应用服务原语和相关参数中的信息。该部分内容如下:

1)BACnet APDU的固定部分的编码包含:BACnet PDU选择标记的编码、BACnet有证实请求PDU、BACnet无证实请求PDU、BACnet简单确认PDU、BACnet复杂确认PDU、BACnet分段确认PDU、BACnet差错PDU、BACnet拒绝PDU、BACnet终止PDU等。

2)BACnet APDU的可变部分的编码包含:BACnet标记编码的一般规则、空值的编码、布尔值的编码、无符号整型数值的编码、有符号整型数值的编码、实数的编码、双准确度实数的编码、字节串值的编码、比特串值的编码、枚举值的编码、日期值的编码、时间值的编码、对象标识符值的编码、标记值的编码、序列值的编码、Sequence-Of值的编码、选择值的编码、ANY类型值的编码和标记规则总结等。

21.“应用层协议数据单元的正式描述”部分

这部分内容通过ASN.1模块定义所有的BACnet APDU及其数据类型。在13节至17节中有许多被定义为条件的或者可选的服务参数,这些参数在ASN.1的表述中都标注为OPTINAL,说明这些参数可以在PDU中存在,也可以不在PDU中存在。在ASN.l表述中只使用OPTIONAL标注,不改变在服务规范中对条件的参数的要求。

22.“一致性及其规范”部分

BACnet定义了一套具有广泛适应性的对象类型和应用服务,其目的是要满足在分布式的、具有层次结构的BAS中各个层次的控制设备对数据通信的要求。这里需要说明的是,并不要求BAS中所有设备都必须支持BACnet的所有功能才能实现BACnet数据通信。本部分定义了一套为了实现BACnet数据通信功能,设备必须满足的要求。本部分定义了6个一致性类别和13个“功能组”。这6个一致性类别编号为1~6,具有分级结构,每一个类别的要求都包括了编号数小于该类别的所有类别的要求。功能组是若干BACnet标准对象类型和应用服务的集合,它们一起工作,可以满足一个单项的楼宇自动控制功能的通信要求。

1)BACnet一致性类别包含:一致性类别1~6;

2)BACnet功能组包含:时钟功能组、手提操作设备(HHWS)功能组、个人计算机工作站(PCWS)功能组、事件起始(Event Initiation)功能组、事件响应(Event Resonse)功能组、COV事件起始功能组、COV事件响应功能组、文件功能组、重新初始化功能组、虚拟操作员接口功能组、虚拟终端功能组、设备通信功能组、时间主站功能组;

3)BACnet路由器;

4)协议实现一致性声明;

5)对于BACnet的一致性包含:最小的一致性要求、PICS、一致性测试、数据链路层和物理层、关于与非标准数据链路层的兼容问题。

23.扩展BACnet容纳生产商专有信息

BACnet协议的目的是为楼宇自动控制设备交换信息提供一种机制。为了实现互操作性,BACnet定义了一组标准的数据结构,称之为对象。标准对象中包含的信息是在大多数楼宇系统中普遍使用的信息,同时BACnet也允许在设备中交换非标准化的信息和扩展BACnet容纳非标准信息交换的方式。

1)扩展枚举值;

2)使用专有传输服务调用非标准服务;

3)向标准对象添加专有属性;

4)向BACnet中添加专有对象类型包含:专有对象类型枚举值、专有属性的数据类型、在专有对象类型中要求的属性;

5)在扩展BACnet中的限制。

24.“网络安全”部分

这一部分内容定义了一个有限的安全体系结构。在BACnet中,网络安全是可选项。本协议的安全体系提供对等实体鉴别(authentication)、数据来源鉴别、操作员身份鉴别和数据保密性与完整性方面的安全机制,不提供诸如访问控制和非否定的通信安全机制,如果系统中需要这样的安全机制,可以使用专有的方法将它们加入到BACnet中。

1)安全体系结构包含:概述、私有加密密钥、会话加密密钥、加密算法;

2)鉴别机制包含:获得会话密钥的过程、对等实体鉴别机制、报文执行鉴别、报文起始鉴别、操作员身份鉴别;

3)数据保密性机制包含:请求一个加密会话、结束一个加密会话;

4)请求密钥服务包含:结构、服务过程;

5)鉴别服务包含:结构、服务过程。