BACnet是用于智能建筑的通信协议,是国际标准化组织(ISO)、美国国家标准协会(ANSI)及美国采暖、制冷与空调工程师学会(ASHRAE)定义的通信协议。
BACnet针对智能建筑及控制系统的应用所设计的通信,可用在暖通空调系统(HVAC,包括暖气、通风、空气调节)也可以用在照明控制、门禁系统、火警侦测系统及其相关的设备。
优点在于能降低维护系统所需成本并且安装比一般工业通信协议更为简易,而且提供有五种业界常用的标准协议,此可防止设备供应商及系统业者的垄断,也因此未来系统扩充性与兼容性大为增加[1]。
BACnet为Building Automation and Control networks 的简称,台湾通常翻译为“建筑自动化控制网路通讯协定”[5][6],而中国大陆则译为“楼宇自动化与控制网络”[7]。
协议简介[编辑]BACnet通信协议中定义了几种不同的数据链结层/物理层,包括:1.ARCNET(ARCNET)。
2.以太网。
3.BACnet/IP。
4.RS-232上的点对点通信(Point-to-point_(telecommunications))。
5.RS-485上的主站-从站/令牌传递(Master-Slave/Token-Passing,简称MS/TP)通信。
6.LonTalk(LonTalk)BACnet通信协议中定义了许多服务(service),可供各设备之间的通信,服务可以分为五类:有关设备对象管理的服务包括Who-Is、I-Am、Who-Has及I-Have等服务,有关对象访问的服务包括读取属性、写入属性等服务,有关报警与事件的服务包括确认报警、属性改变(change of state)报告等,此外也有有关文件读写及虚拟终端的服务[8]。
BACnet通信协议也定义了许多种类的对象。
金每个对象中都有许多属性,可以通过服务来访问对象中的属性。
BACnet通信中的设备就是由许多对象组成,其中包括一个设备对象,是每个设备都必需的,其中记录设备相关的数据,其他对象包括模拟输入、模拟输出、模拟值、数字输入、数字输出及数字值等有关数据的对象。
为了提供不同厂商BACnet设备之间的互操作性,BACnet协议也定义了BACnet互操作基本块(BACnet Interoperability Building Block,简称BIBB),BACnet互操作基本块是由一个或多个服务所组成,说明在特定需求下,服务器(server)端及客户(client)端需要支持的服务及程序。
BACnet互操作基本块可分为以下的五种:1.数据分享2.警告及事件管理3.调度4.趋势5.设备及网络管理每个BACnet设备都会有一份名为“协议实现一致性声明”(Protocol Implementation Conformance Statement,PICS)的文件,其中需说明设备所支持的BACnet互操作基本块、对象种类及定义、使用文字集及通信时需要的数据。
BACnet协议概述1BACnet协议概述楼宇自动控制网络数据通信协议BACnet(A Data Communication Protocol for Building Automation and Control Network)由美国供热、制冷与空调工程师协会组织的标准项目委员会135P于1995年6月正式通过制定。
标准编号为ANSI/ASHRAEStandardl35-1995,同年12月正式成为美国国家标准,并得到欧盟标准委员会的承认,成为欧盟标准草案。
2000年1月ISO组织TC205委员会的15个国家(中国、法国、日本、英国、美国等)的代表一致通过决议,将BACnet作为“委员会草案”进行广泛评议,适当修改后列为“国际标准化草案”,最后成为国际标准。
一般楼宇自控设备从功能上讲分为两部分:一部分专门处理设备的控制功能;另一部分专门处理设备的数据通信功能。
而BACnet就是要建立一种统一的数据通信标准,使得设备可以互操作。
BACnet协议只是规定了设备之间通信的规则,并不涉及实现细节。
BACnet协议模型为:(1)所有的网络设备,除基于MS/TP协议的以外,都是完全对等的(peertopeer);(2)每个设备都是一个“对象”的实体,每个对象用其“属性”描述,并提供了在网络中识别和访问设备的方法;设备相互通信是通过读/写某些设备对象的属性,以及利用协议提供的“服务”完成;(3)设备的完善性(Sophistication),即其实现服务请求或理解对象类型种类的能力,由设备的“一致性类别”(ConformanceClass)所反映。
1.1BACnet的体系结构BACnet是一种针对智能建筑的开放性的网络协议,遵循OSI模型体系结构,BACnet 体系结构层次图如图1所示。
BACnet协议从硬/软件实现、数据传输速率、系统兼容和网络应用等几方面考虑,目前支持五种组合类型的数据链路/物理层规范。
其中主从/令牌传递(MS/TP)协议是专门针对楼宇自控设备设计的数据链路规范。
BACnet在物理介质上,支持双绞线、同轴电缆和光缆。
在拓扑结构上,支持星型和总线拓扑。
BACnet的体系结构层次图BACnet没有严格规定网络拓扑结构,如图2所示。
其中:网段(Segment)是多个物理网段通过中继器(R)连接形成的段落区间;网络是多个网段通过网桥(B)连接而成的,每个网络都形成一个MAC地址域;BACnet/Internet网络是将使用不同局域网技术的多个网络用路由器(RT)互联起来形成的网际网。
在BACnet拓扑中设备之间只存在一条逻辑通路,无需广域网的最优路由算法;其次,BACnet具有单一的局部地址空间,所以BACnet参照OSI模型制定了简化的网络层协议,向应用层提供不确认无连接的数据单元传送服务。
每个BACnet设备都被一个网络号码和一个MAC地址唯一确定。
网络层通过“路由器”实现两个或多个异类BACnet局域网(不同的数链层)的连接,并通过协议报文进行“路由器”的自动配置、路由表维护和拥塞控制。
BACnet路由器与每个网络的连接处称为一个“端口”。
路由表中包含端口的下列项目:(1)端口所连接网络的MAC地址和网络号;(2)端口可到达网络的网络号列表及与这些网络的连接状态。
图2中,“1/2RT”是半路由器,由PTP连接形成一个完整的BACnet路由器,即BACnet 网际网将广域网技术向应用层屏蔽。
BACnet应用层即BACnet应用实体,通过API(应用编程接口)为上层应用程序服务,并与对等应用层实体通信。
应用实体由两部分组成:用户单元和应用服务单元(ASE)。
ASE是一组特定内容的应用服务。
而用户单元支持本地API、保存事务处理上下文信息、产生请求ID、记录ID对应的应用服务响应、维护超时重传机制所需的计数器以及将设备行为要求映射为对象。
BACnet应用层提供证实和非证实两种类型的服务。
BACnet定义了四种服务原语:请求、指示、响应和证实,它们通过应用层协议数据单元(APDU)传递。
由于BACnet建立在无连接的通信模式上,所以OSI模型提供端到端服务的传输层部分简化功能也由应用层实现,分别为:可靠的端到端传输和差错校验;报文分段和流量控制;报文重组和序列控制。
1.2BACnet的对象、服务和功能组BACnet采用面向对象技术,借此提供一种表示楼宇自控设备的标准。
在BACnet中,对象就是在网络设备之间传输的一组数据结构,网络设备通过读取、修改封装在应用层APDU中的对象数据结构,实现互操作。
BACnet目前定义了18个对象,如表1所示,每个对象都必须有三个属性:对象标志符(Object_Identifier)、对象名称(Object_Name)和对象类型(Object_Type)。
其中,对象标志符用来唯一标识对象;BACnet设备可以通过广播自身包含的某个对象的对象名称,与包含相关对象的设备建立联系。
BACnet协议要求每个设备都要包含“设备对象”,通过对其属性的读取可以让网络获得设备的全部信息。
表1 BACnet对象在BACnet中,把对象的方法称为服务,对象及其属性提供了对一个楼宇自控设备“网络可见信息”的抽象描述,而服务提供了如何访问和操作这些信息的命令和方法。
BACnet 设备通过在网络中传递服务请求和服务应答报文实现服务。
BACnet定义了35种服务,并将其划分为6个类别:(1)报警与事件服务(AlarmandEventServices)包含8种服务处理环境状态的变化,提供了BACnet设备预设的请求值改变通告、请求报警或事件状态摘要、发送报警或事件通知、收到报警通知确认等方法;(2)文件访问服务(FileAccessServices)包含2种服务,提供读写文件的方法,包括上/下载控制程序和数据库的能力;(3)对象访问服务(ObjectAccessServices)包含9种服务,提供了读、修改和写属性值以及增删对象的方法;(4)远程设备管理服务(RemoteDeviceManagementServices)包含11种服务,提供对BACnet设备进行维护和故障检测的工具、方法;(5)虚拟终端服务(VirtualTerminalServices)包含3种服务,提供了一种面向字符的数据双向交换机制,使其他具有专有特性的楼宇自控设备成为一个BACnet虚拟终端并使BACnet网络能对其进行重构;(6)网络安全服务(NetworkSecurityServices)包含2种服务,提供对等实体验证、数据源验证、操作者验证和数据加密等功能。
BACnet功能组规定了实现特定控制功能所需的对象和服务的组合。
BACnet已定义了13个功能组,包括时钟功能组、事件响应功能组、文件功能组、虚拟终端功能组、设备通信功能组等。
1.3BACnet设备级别和设备等级说明在实际的楼宇自动化系统中,没有必要也不可能所有的设备都支持、包含上述所有的对象和服务。
因此,BACnet定义了6个一致性类别(设备级别)。
一致性类别的分级编号为1~6,最低级别是类别l。
每个类别都规定了设备要实现的最小服务子集,且包含低级别的所有服务。
为了帮助用户和工程人员确定不同BACnet设备之间的互操作性,需要厂商为每个设备提供标准格式文件以标识设备中己实现的BACnet标准的内容,即文件需包括设备符合BACnet等级的说明。
这个文件就是PICS(ProtocolImplementationConformanceStatement),它包括:(1)标识厂商和描述设备的基本信息;(2)设备符合BACnet的级别;(3)设备所支持的功能组;(4)设备所支持的基于标准或专有的服务,设备启动或响应服务请求的能力;(5)设备所支持的基于标准或专有的对象类型及其属性描述;(6)设备支持的数据链路技术;(7)设备支持的分段请求和响应。