摘要:概述了智能建筑中通信协议和现场总线的现状,并就此领域内出现的新型数据通信协议——BACnet作了详细介绍。
关键词:BACnet 智能建筑 楼宇自动化 面向对象
随着计算机、通信、控制和图形显示技术即4C技术的快速发展和全球对信息高速公路的大力建设,智能建筑,这个数字化、网络化和信息化的结合产物开始进入人们的视野。然而,如今智能建筑内各种控制功能变得愈发强大而复杂,致使不同厂商生产的设备使用于同一建筑物内,但各个厂商基本上都是开发自己专有的通信协议,于是各式各样的通信协议和设备给智能建筑的系统集成及管理使用带来诸多不便,用户处于受制于厂商而使造价提高、使用和维护费用增加的境地。所以制定一个开放的、统一的通信协议标准,并形成即插即用(plug and play)的环境,就成为十分迫切需要解决的问题。
目前,在智能建筑领域,现场总线和通信协议主要有:(1)最初应用于工业控制领域的总线协议,如具有代表性的Profibus总线、Lonworks总线、CAN总线等;(2)专门针对智能建筑的总线和通信协议,如美国的BACnet和CEBus、欧洲的EIB等。本文就其中的BACnet作详细介绍。
图1 BACnet的体系结构层次图
1 BACnet协议概述
楼宇自动控制网络数据通信协议BACnet(A Data
Communication Protocol for Building Automation and Control Network)由美国供热、制冷与空调工程师协会组织的标准项目委员会135P于1995年6月正式通过制定。标准编号为ANSI/ASHRAE Standard l35-1995,同年12月正式成为美国国家标准,并得到欧盟标准委员会的承认,成为欧盟标准草案。2000年1月ISO组织TC205委员会的15个国家(中国、法国、日本、英国、美国等)的代表一致通过决议,将BACnet作为“委员会草案”进行广泛评议,适当修改后列为“国际标准化草案”,最后成为国际标准。
一般楼宇自控设备从功能上讲分为两部分:一部分专门处理设备的控制功能;另一部分专门处理设备的数据通信功能。而BACnet就是要建立一种统一的数据通信标准,使得设备可以互操作。BACnet协议只是规定了设备之间通信的规则,并不涉及实现细节。
BACnet协议模型为:(1)所有的网络设备,除基于MS/TP协议的以外,都是完全对等的(peer to peer);(2)每个设备都是一个“对象”的实体,每个对象用其“属性”描述,并提供了在网络中识别和访问设备的方法;设备相互通信是通过读/写某些设备对象的属性,以及利用协议提供的“服务”完成;(3)设备的完善性(Sophistication),即其实现服务请求或理解对象类型种类的能力,由设备的“一致性类别”(Conformance Class)所反映。
1.1 BACnet的体系结构
BACnet是一种针对智能建筑的开放性的网络协议,遵循OSI模型体系结构,BACnet体系结构层次图如图1所示。BACnet协议从硬/软件实现、数据传输速率、系统兼容和网络应用等几方面考虑,目前支持五种组合类型的数据链路/物理层规范。其中主从/令牌传递(MS/TP)协议是专门针对楼宇自控设备设计的数据链路规范。BACnet在物理介质上,支持双绞线、同轴电缆和光缆。在拓扑结构上,支持星型和总线拓扑。
BACnet没有严格规定网络拓扑结构,如图2所示。其中:网段(Segment)是多个物理网段通过中继器(R)连接形成的段落区间;网络是多个网段通过网桥(B)连接而成的,每个网络都形成一个MAC地址域;BACnet/Internet网络是将使用不同局域网技术的多个网络用路由器(RT)互联起来形成的网际网。
在BACnet拓扑中设备之间只存在一条逻辑通路,无需广域网的最优路由算法;其次,BACnet具有单一的局部地址空间,所以BACnet参照OSI模型制定了简化的网络层协议,向应用层提供不确认无连接的数据单元传送服务。每个BACnet设备都被一个网络号码和一个MAC地址唯一确定。
网络层通过“路由器”实现两个或多个异类BACnet局域网(不同的数链层)的连接,并通过协议报文进行“路由器”的自动配置、路由表维护和拥塞控制。BACnet路由器与每个网络的连接处称为一个“端口”。路由表中包含端口的下列项目:(1)端口所连接网络的MAC地址和网络号;(2)端口可到达网络的网络号列表及与这些网络的连接状态。图2中,“1/2 RT”是半路由器,由PTP连接形成一个完整的BACnet路由器,即BACnet网际网将广域网技术向应用层屏蔽。
BACnet应用层即BACnet应用实体,通过API(应用编程接口)为上层应用程序服务,并与对等应用层实体通信。应用实体由两部分组成:用户单元和应用服务单元(ASE)。ASE是一组特定内容的应用服务。而用户单元支持本地API、保存事务处理上下文信息、产生请求ID、记录ID对应的应用服务响应、维护超时重传机制所需的计数器以及将设备行为要求映射为对象。
BACnet应用层提供证实和非证实两种类型的服务。BACnet定义了四种服务原语:请求、指示、响应和证实,它们通过应用层协议数据单元(APDU)传递。由于BACnet建立在无连接的通信模式上,所以OSI模型提供端到端服务的传输层部分简化功能也由应用层实现,分别为:可靠的端到端传输和差错校验;报文分段和流量控制;报文重组和序列控制。
1.2 BACnet的对象、服务和功能组
BACnet采用面向对象技术,借此提供一种表示楼宇自控设备的标准。在BACnet中,对象就是在网络设备之间传输的一组数据结构,网络设备通过读取、修改封装在应用层APDU中的对象数据结构,实现互操作。BACnet目前定义了18个对象,如表1所示,每个对象都必须有三个属性:对象标志符(Object_Identifier)、对象名称(Object_Name)和对象类型(Object_Type)。其中,对象标志符用来唯一标识对象;BACnet设备可以通过广播自身包含的某个对象的对象名称,与包含相关对象的设备建立联系。BACnet协议要求每个设备都要包含“设备对象”,通过对其属性的读取可以让网络获得设备的全部信息。
表1 BACnet对象
对 象 名 称
应 用 举 例
01
模拟输入Analog Input
模拟传感器输入如机械开关On/Off输入
02
模拟输出Analog Output
模拟控制量输出
03
模拟值Analog Value
模拟控制设备参数如设备阀值
04
数字输入Binary Input
数字传感器输入如电子开关On/Off输入
05
数字输出Binary Output
继电器输出
06
数字值Binary Value
数字控制系统参数
07
命令Command
向多设备多对象写多值如日期设置
08
日历表Calender
程序定义的事件执行日期列表
09
时间表Schedule
周期操作时间表
10
事件登记Event Enrollment
描述错误状态事件如输入值超界或报警事件。通知一个设备对象,也可通过“通知类”对象通知多设备对象
11
文件File
允许访问(读/写)设备支持的数据文件
12
组Group
提供单一操作下访问多对象多属性
13
环Loop
提供访问一个“控制环”的标准化操作
14
多态输入MulTI-state Output
表述多状态处理程序的状况,如制冷设备开、关和除霜循环
15
多态输出MulTI-state Output
表述多状态处理程序的期望状态,如制冷设备开始冷却、除霜的时间
16
通知类NoTIficaTIon Class
包含一个设备列表,配合“事件登记”对象将报警报文发送给多设备
17
程序Program
允许设备应用程序开始和停止、装载和卸载,并报告程序当前状态
18
设备Device
其属性表示设备支持的对象和服务以及设备商和固件版本等信息
在BACnet中,把对象的方法称为服务,对象及其属性提供了对一个楼宇自控设备“网络可见信息”的抽象描述,而服务提供了如何访问和操作这些信息的命令和方法。BACnet设备通过在网络中传递服务请求和服务应答报文实现服务。BACnet定义了35种服务,并将其划分为6个类别:(1)报警与事件服务(Alarm and Event Services)包含8种服务处理环境状态的变化,提供了BACnet设备预设的请求值改变通告、请求报警或事件状态摘要、发送报警或事件通知、收到报警通知确认等方法;(2)文件访问服务(File Access Services)包含2种服务,提供读写文件的方法,包括上/下载控制程序和数据库的能力;(3)对象访问服务(Object Access Services)包含9种服务,提供了读、修改和写属性值以及增删对象的方法;(4)远程设备管理服务(Remote Device Management Services)包含11种服务,提供对BACnet设备进行维护和故障检测的工具、方法;(5)虚拟终端服务(Virtual Terminal Services)包含3种服务,提供了一种面向字符的数据双向交换机制,使其他具有专有特性的楼宇自控设备成为一个BACnet虚拟终端并使BACnet网络能对其进行重构;(6)网络安全服务(Network Security Services)包含2种服务,提供对等实体验证、数据源验证、操作者验证和数据加密等功能。
BACnet功能组规定了实现特定控制功能所需的对象和服务的组合。BACnet已定义了13个功能组,包括时钟功能组、事件响应功能组、文件功能组、虚拟终端功能组、设备通信功能组等。
1.3 BACnet设备级别和设备等级说明
在实际的楼宇自动化系统中,没有必要也不可能所有的设备都支持、包含上述所有的对象和服务。因此,BACnet定义了6个一致性类别(设备级别)。一致性类别的分级编号为1~6,最低级别是类别l。每个类别都规定了设备要实现的最小服务子集,且包含低级别的所有服务。
为了帮助用户和工程人员确定不同BACnet设备之间的互操作性,需要厂商为每个设备提供标准格式文件以标识设备中己实现的BACnet标准的内容,即文件需包括设备符合BACnet等级的说明。这个文件就是PICS(Protocol Implementation Conformance Statement),它包括:(1)标识厂商和描述设备的基本信息;(2)设备符合BACnet的级别;(3)设备所支持的功能组;(4)设备所支持的基于标准或专有的服务,设备启动或响应服务请求的能力;(5)设备所支持的基于标准或专有的对象类型及其属性描述;(6)设备支持的数据链路技术;(7)设备支持的分段请求和响应。
2 BACnet的互联网扩展
目前,BACnet标准使用两种技术实现与Internet的互联。第一种技术附件H中称之为“隧道”技术,并将其设备称之为分组封装/拆装设备,简称PAD。其作用就像一个网关/路由器,这在图2中两个半路由器连接广域网形成一个完全的BACnet路由器有所体现。第二种技术附件J中称之为BACnet/IP,设备直接封装IP帧/包在BACnet网络和Internet上传输。
PAD将BACnet报文数据封装在IP协议数据包内传输,在目的BACnet网络解封。因此每个连接Internet的BACnet网络都要配置PAD网关/路由器。它可以是一个单独的设备,也可以是某种楼宇控制设备功能的一部分。
ASHRAE于1999年1月正式发布附件J并成为美国国家标准。它规范了支持TCP/IP的设备组建BACnet网络的技术,并称之为BACnet/IP网络,简称B/IP,是一个或多个IP子网组成的集合,整体具有单独的BACnet网络号。BACnet/IP网络报文在网络层是IP包,在传输层是UDP数据报,从而实现与Internet的TCP/IP协议的融合。
开放、兼容、灵活、获得广泛支持并且专门针对智能建筑的通信协议或现场总线必将成为智能建筑领域的一个发展方向。而BACnet协议正是这样一种具有开拓性的技术,使不同厂商的设备能够互联、互换和互操作,打造无缝连接(Seamless linking)的楼宇自动化系统,充分满足了业主、用户和集成商的需求并提供了多种网络互联和接入Internet的方案,为智能建筑内部各系统之间的集成提供了便利条件,使智能建筑搭乘信息高速公路变得轻而易举。