- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于BACnet协议的智能建筑系统集成的实现
1 概述
智能建筑是信息时代的产物,是以计算机和网络为核心的信息技术向建筑行业的应用与渗透。它与传统的建筑相比,具有作业流程更为有效,综合运行成本更低,物业管理效率更高以及综合服务功能更强等优点。智能化已经成为当代建筑发展的一个重要趋势所在。
要实现对这些系统的综合管理,就需要相关的机电和通信设备和各个功能子系统具有开放性和互操作性,各机电设备以及子系统和中央机能实现相互通讯,而各楼宇控制设备生产商以及由他们组成的各个组织分别开发了自己的通讯协议,且这些协议互不相容,这就给用户系统升级以及维护造成困难。因此也阻碍了智能建筑的发展。所以制定一个统一的,使各厂家的通讯协议能够互通的通讯协议标准,从而使建筑物内的各个子系统可以进行标准化的集成,就成为十分迫切的问题。BACnet协议的制定正好迎合了这一要求。
2 BACnet协议
2.1 BACnet协议
BACnet是A DATA CommuNIcation Protocol fox Building Automa-tion and Control Network的简称,即楼宇自动控制网络。它是因应楼宇自控的使用者对自动控制设备互操作性的要求而产生的。它的根本目的是提供楼宇自动控制系统实现互操作的方法,以便操作者对建筑物内的各个子系统进行标准化的集成。
2.2 BACnet对象模型
BACnet的最成功之处就在于采用了面向对象的技术,定义了一组具有属性的对象(Object)来表示任意的楼宇自控设备的功能,从而提供了一种标准的表示楼宇自控设备的方式。BACnet目前定义了18个对象,每个对象都有一组属性,属性的值描述对象的特征和功能。
2.3 BACnet的服务
在BACnet中,把对象的方法称为服务(Servic)。服务就是一个BACnet设备可以用来向其它BACnet设备请求获得信息,命令其它设备执行某种操作或者通知其它设备有某个事件发生的方法。在BACnet设备中要运行一个“应用程序”,负责发出服务请求和处理收到的服务请求。这个应用程序实际上就是一个执行设备操作的软件。BACnet定义了35个服务,并且将这35个服务划分为6个类别。
2.4 BACnet的体系结构
BACnet的体系结构是包含四个层次的简化分层结构,这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。BACnet标准定义了自己的应用层和简单的网络层,对于其数据链路层和物理层,提供了以下五种选择方案:1) Ethernet (ISO 8802-03):2)ARCnet;3)LonTalk:4)RS48.5:5)RS232。
3 基于BACnet协议的系统集成方案
在采用BACnet协议进行智能建筑的集成设计时,实际上就是在楼宇监控网络发送BACnet格式的数据包。根据BACnet协议的内容特点来实现BACnet数据通讯的要素,在实现基于BACnet的系统集成的方案中,主要包括以下三方面的设计:
BACnet协议栈BACnet对象和BACnet应用层服务。
3.1 BACnet协议栈的实现
在实际的基于BACnet协议的智能建筑集成系统中,系统的通讯实体之间是靠传送和接收BACnet报文来实现通讯和信息交互的。而BACnet协议栈主要负责BACnet报文封装、拆装和通信实现,/BACnet协议栈的实现过程实际上就是BACnet报文的实现过程。
BACnet报文与BACnet协议的体系结构是紧密相关的,BAC-net通讯买体根据BACnet协议的体系结构由最高层应用层开始,把要进行通讯的内容作为数据在应用层进行封装,形成应用层协议数据单元(APDU),然后由高层往低层进行封装,最后形成可以在物理链路上发送的物理数据帧。接收方的BACnet设备则对接收的BACnet报文进行拆装,报文的则是与封装相反的过程。
BACnet报文的封装和拆装过程如下:
APDU
NPDU
物理数据帧
其中从左往右是BACnet报文封装的过程,从右往左是BAC-net报文拆装的过程。
3.2 BACnet对象的确定
在BACnet网络中,任何一个支持使用BACnet协议进行通信的真实或者虚拟设备都被视为是BACnet设备。因此在实际的智能建筑内部的集成系统中,每个需要集成进人BACnet网络的系统都可以定义为一个设备(Device)对象,该Device对象应拥有由BAC-net网络号和设备对象标识符(Object Identifier)组成的BACnet设备标识符,该BACnet设备标识符在整个集成系统内应该是唯一的,可以根据它在整个系统内确定该BACnet设备。
在Device对象内部,可以定义别的BACnet对象如模拟输人对象(Analog Input)。这些对象的属性值可以用来对实际BACnet设备的特征参数值进行描述,这样就可以通过对该Device对象内的各个对象进行读-写的操作,通过读写对象的属性值来获得或修改该设备的实际特征参数。
3.3 BACnet应用层服务的选择
对对象的读-写的操作是通过BACnet的应用层服务来实现的,在确定需要定义的BACnet对象之后,可以根据所定义的对象的特性以及实际的BACnet设备的特点并结合BACnet服务的类型特点来确定所需要的BACnet服务。
以下通过一应用实例来说明基于BACnet协议的系统集成的实现过程。
4 基于BACnet协议的系统集成的应用实例
4.1 应用背景
在某办公大楼的楼宇智能化工程当中,楼宇自动化设备管理系统(BMS)采用美国ALC公司的WebCtrl系统进行设计,该系统内遵守BACnet通讯协议。在该系统上接人了大厦内的各个自动化设备系统。
大楼的安防系统为BOSCH公司的DS7240安防控制系统,为了实现整个大厦的智能化综合管理,需要将安防系统与WebCtrl系统进行集成,即将安防系统的各种有用信息集成进WebCtrl系统内,然后在WebCtrl系统内部对这些信息进行处理,并以一定的形式表现出来,从而可以利用楼宇自动化系统平台实现对安防系统的管理。
在这里WebCtrl系统是一个标准的BACnet通信实体,为了实现DS7240安防控制系统与WebCtrl系统的集成,需要加人一个中间程序,称之为BACnet协议转换程序,将安防控制系统转变成为一个虚拟的BACnet设备来与WebCtrl系统进行信息交互实现集成的目的。系统结构如图1所示。
下面按照上面所述的三方面的内容来对BACnet协议转换程序进行设计。
4. 2 BACnet协议转换程序通讯协议栈的实现
由于WebCtrl系统是建立在网络之上,利用网络进行信息传输。为了能在网络上传输BACnet报文,在本设计中采用的通讯协议是BACnet的协议的扩展BACnet/IP协议。
BACnet/IP是BACnet在Internet上的扩展。它直接支持基于IP协议的BACnet设备,用IP帧接受和发送BACnet报文,可以在Internet上有效地进行BACnet广播。下图是它的体系结构图。
根据BACnet/IP的体系结构,可得BACnet协议转换程序的通讯协议栈实现为:
APDU
NPDU
BVLL 报文
UDP 报文
IP报文
4.3 BACnet协议转换程序中BACnet对象的确定
具体对于BOSCH安防子系统而言,我们计划采用18种标准对象中的三种对象:Device对象,Analog_Input对象和Binary_Input对象。
(1) Device对象
Device对象是用来描述安防子系统本身,即将整个安防系统映射为BACnet控制网络中的一个BACnet设备。
标准的Device的属性有许多,最重要的是要定义好Ob-ject Identifer,因为这在整个BACnet网络内应该是唯一的,是别的BACnet设备引用该Device对象的唯一标志。在本设计中,将整个安防系统定义为Device 24003。
(2) Analog Input对象
该对象是用来描述安防系统中每一个防区。在安防系统中共有36个防区,即需要定义36个AI对象。每个防区共有46种报警状态。在定义AI属性时,用object, ID来确定是哪个防区发生事件和报警,即AI# 1代表一号防区,......一直定义到AI#36。 PresentValue的值来判断是具体的何种报警,它的变化值为。0~46,其中0代表正常,1~46代表46种事件报警。
(3) Binary Input对象
该对象是用来描述安防系统的事件的。安防系统共有29种系统事件,如:交流电源故障、RX无线总线错误等。每一种事件用一个BI对象表示。共定义29个BI对象,从BI#~BI#29。当BI的Present_Value为1时,代表该事件发生,0代表不发生。
4.4 BACnet协议转换程序中服务的选择
需要选择的服务包括BACnet协议转换程序可以响应的We-bCtrl系统发出的服务请求以及它回应给WebCtrl系统的服务。以下结合BACnet协议转换程序与WebCtr1系统之间的通信过程说明BACnet协议转换程序的服务的选择。
当两者建立连接时,WebCtrl系统会向整个楼宇监控网络内发出Who-Is服务请求,BACnet协议转换程序接收到这一请求服务后,回应I-Am服务,这样两者建立连接。
当WebCtrl系统需要读取Device对象中的AI或者BI对象属性时,WebCtr1系统会发出ReadProperty服务请求,BACnet协议转换程序则回应ReadPropertyACK服务,将相关对象的属性信息传送给WebCtr1系统。
当WebCtrl系统需要预定安防系统的COV (Change of Value)报告。所谓COV报告就是当安防系统的状态发生改变,AI或者BI的属性值也跟着发生改变,为了对这些事件进行及时处理,BACnet协议转换程序主动通知WebCtrl系统安防系统有事件发生。预定COV报告时,WebCtrl系统首先发出SubscribeCOV服务,BACnet协议转换程序接受该服务。当有事件发生时,BACnet协议转换程序主动向WebCtrl系统发送ConfixmedCOVNotification服务,将Device对象中的AI或者BI对象属性改变的信息通知Webctrl系统。
对于不被接受的请求信息,BACnet协议转换程序可以做出Reject的响应。
4.5 系统实现
根据上述三方面的设计内容,可以编写出BACnet协议转换程序的程序代码。该程序代码采用VC++6.0编写。
整个系统的程序流程图如图3所示。
该系统已经在实际的工程项目中得到应用,运行效果达到预期要求。
5 小结
BACnet协议作为一种良好的楼宇自控通信协议有许多的优点,目前它正得到越来越广泛的应用,利用BACnet协议为基础通信协议进行智能建筑的系统集成工作也必将会成为智能建筑系统集成的一个重要的发展方向。
上一篇:WCDMA系统中PIM的分析以及测量
下一篇:基于手写识别芯片的汉字手写输入技术