BACnet软网关应用框架的
与实现
智能建筑中文核心期刊《微计算机信息>(测控自动fi5)2007年第23卷第2.1
期
BACnet软网关应用框架的设计与实现
DesignandImplementationofaFrameworkofBACnetSoftwareGateway (广东工业大学)陈博李军周慧瑁
CHENBOLIJUNZHOUHUIJUN
摘要:楼宇网络中,经常遇到楼控设备使用私有
的情况,为了使其能访问
BACnet网络和方便BACnet工作站控制,通常
的解决方法是开发BACnet软网关做协议转换.开发BACnet软网关的过程有很多
工作是很繁琐重复的.本文提出了一种
BACnet软网关应用框架的实现
,通过封装BACnet协议和利用VC的应用程
序框架.使windows平台上BACnet软网关开
发过程得到简化和加速.
关键词:楼字控制;BACnet;协议:软网关
中图分类号:TP3l1文献标识码:B
Abstract:Alotofbuildingautomationequipmentuseprivateprotocol.BACnetsoftwaregate
way,whichcandotranslationbetween
privateprotocolandBACnetprotocol,canletthoseequipmentsaccessBACnetnetwork.The
ImplementationofBACnetSo'waregate—
wayistediousandalotofworkcallbedoneautomatically.Thispaperhaveimplementedafram
eworkofBACnetsoftwaregateway
whichcanmakeitfasterforuserstodevelopaBACnetsoftwaregateway. Keywords:BuildingAutomation,BACnetprotocol~Softwaregateway 引言
BACnet协议是由美国采暖,制冷和空调工程师协会制定的
开发楼宇自动控制网络数据通信协议,它于1995年颁布,同年
被批准为美国国家
.BACnet协议提出了,种标准的网络 通行语言.使不同厂家生产的楼控设备进行灵活组合,选配和 扩展,以满足各种楼控设备的需求.
BACnet软网关是指运行在Windows或Linux等通用操作 系统上的网关软件,网关的硬件平台通常为Pc或者嵌入式系 统.其特点是:在设计过程中,网关软件的设计是重点,而硬件只 需很少的设计或不需要设计.相对于BACnet网关,软网关的优 点是功能单一.实现简单,又可以直接运行在BACnet工作站 上.在项目中某些设备需要做协议转换时BACnet软网关通常 可以满足要求.在楼控项目中,使用私有协议的设备很多,经常 要开发BACnet软网关,因此将BACnet软网关的开发过程部分 自动化有一定的积极意义.本文提出的应用程序框架对BAC— net协议中BACnet应用层及其状态机,BACnet网络层,BVLL 层均进行了封装,实现了BACnet协议的类库.再依附于VC的 MFC框架实现了BACnet软网关的应用框架,使开发运行在 windows上的BACnet软网关的过程得以简化.
1BACnet软网关一般的结构
BACnet软网关的结构大同小异.开发过程也有很多重复 工作.BACnet软网关的
一
般结构如图1所示
陈博:硕士研究生
基金项目:广东省科技
项目(2Oo3一B一12211) BAC
net
对
象
创
建
BACnet对象实例
BACnet对象管理
BACnet服务
BACnet状态机
私有协议编解码l{BACnet网络层
数据收发
BACnet虚拟链路
层
BACnet报文收发
使用麓的}BACnet网络楼控系统if络
图1BACnet软网关结构图
图1中数据收发模块,私有协议处理模块以及BACnet对 象管理模块等根据工程需求会有较大变化,其他部分则变化较 小.所以可以根据用户需求实现一个代码框架,BACnet部分自 动生成,而其它部分由用户根据需求自己编写.本系统是先实现 BACnet协议的类库.封装了BACnet协议各层的实现,在此基 础上在实现BACnet软网关的代码框架.
2BACnet类库的实现
BACnet类库的作用主要是实现BACnet各层服务以及状 态机,以供代码框架和用户使用.BACnet协议主要由两部分构 一
208—360~L,年邮局订阅号:82.946
智能建筑
成:通信传输部分,BACnet对象与BACnet服务.实现时首先需 要定义BACnet数据类型及其编解码,然后实现BACnet服务以 及各层报文的编解码.
2.1BACnet数据类型定义及其编解码,BACnet对象 BACnet协议定义了l3种应用数据类型,另外还有5O余种
构造型数据.BACnet构造型数据都有SQUENCE,SQUENCE OF,CHOICE三种类型派生而来.为了使BACnet对象的定义简 洁,我们将BACnet数据定义和其编解码分离,BACnet有相应 的类做编解码的工作,而BACnet数据则用相应的C十+结构定 义.例如Boolean,BACnetData,BACnetVTSe,~sion三个数据类型 的C++定义如下图:
咄i"1jd.}kihx)】
矗Tl{,I{t{l'H{},,讧^T^目il
-l,{tj'{'辩
'?}rj{
il,qk粥0,d
}{,《,0一1t?
{*…b}{{,0I,
}D;0
图2BooleAb-i,BACnetData和BACnetVTSession的定义 在编写BACnet应用数据编解码的同时,本系统还编写了 BACnet标记的编解码.对于构造类型编解码,SQUENCE类型 是不同数据类型的组合,其编解码过程也是这些数据编解码的 组合,所要注意的是SQUENCE中可选元素应有一个标志标识 其是否存在.SQUENCEOF类型数据是一组相同数据的集合, 可利用C++模板和vector来实现它.CHOICE类型数据则用一 个变量来确定该类型数据的真实类型,其编解码过程也是调用 真实类型数据的编解码.BACnetAny数据处理方法与CHOICE 数据相似.
整个BACnet数据编解码程序包的结构图如图3所示.所 有编解码类都继承于BACnetEncodable类,BACnetEncodable定 义了所有编解类的接口.
图3BACnet数据编解码结构图
BACnet对象可以直接利用BACnet数据类型定义.对其可
选属性要另加布尔标志说明是否支持.
2.2BACnet各层报文编解码,BACnet服务
这部分类库主要功能是实现各层的编解码,同时BACnet 服务的定义和编解码也在这里实现.整个程序包由BACne— tAPDUEncodel",BACnetAPDUDecodel",BACretAPDU和其子类, BACnetNPDU和BACnetBVLL等类组成,其结构如图5所示. 图5BACnet报文编解码结构图
BACnetAPDUEncoder/BACnetAPDUDe?2oder为应用层的编 码提供了一个缓冲区.以及一些操作缓冲区的方法.BACne— tAPDU是所有BACnet服务编解码类的父类,为BACnet服务编 解码提供了接口.协议解码过程如图6所示.
协议数
据单元
编解码
固定部分编解码简单数据类型编解码
可变部分编解码标志编解码
图6协议解码流程图
BACnetAPDU的子类具体定义了BACnet服务编解码过 程,其编解码分为固定部分和可变部分,最终都通过调用BAC— net数据类型的编解码实现.
BACnetNPDU实现了网络层编解码.网络层的报文有网络 层协议管理控制报文和传输APDU的报文两类,由于软网关一 般都不需要路由功能,所以可直接将网络层协议管理控制报文 丢弃.而对传输APDU的报文判断DNET域,若不存在DNET 域或DNET域存在且为X'FFFF',表明报文到达了目的地或在 该BACnet网络广播.调用应用层解码模块对其处理. BACnetBVLL主要处理BVLL报文的编解码.BVLL层是 BACnet/IP新增的一层运行于UDP层之上的微型协议层,其 作用主要有三:1.对BACnet广播进行统一管理,2.提供在IP
网络上动态增加或减少BACnet设备的功能,3.提供BACnet 通信系统的扩展机制.BVLL报文也有两类:用于传输BACnet 应用层数据(APDU)和BACnet网络层数据(NPDU)的报文(共4 个),用于BVLL协议内部管理的报文(共8个).BVLL内部管 理报文用于BVLL协议设备BBMD和管理工作站之间,在这 里忽略这些报文.
3软网关框架的实现
BACnet部分类库完成之后,借助Vc的可定制应用程序向 导便可实现软网关应用框架,具体过程是将Bacnet部分代码做 资源文件处理,然后通过配置文件过滤掉不需要的代码,最后生 成一个最小系统.系统过程如图7所示:
图7BACnet软网关框架结构图
首先设计好了BACnet类库配置界面,用户可以通过配置界 面选择软网关是否要实现BVLL,需要那些BACnet对象和服务 等等.本系统通过配置文件,将用户所作的修改记录下来. 系统根据用户所做选择,对BACnet程序资源文件做一些 修改取舍.生成最终的最小系统.在具体实现时要注意 CCustomAppWiz的派生类和其成员变量mDictonary,在 CCustomAppWiz的初始化函数InitCustomAppWiz中初始化一 些BACnet的宏指令.用户修改软网关配置文件时相应的修改 字典对象mDictonary,它存储宏名及其值.因为这个成员变量 是CMapStringToString类型的,用标准的MFC映射函数就能设 置不同的宏.最后需要修改的是VC提供的newproj.inf文件, confirm.inf和我们的BACnet资源文件,(_F转第235页) @臣自控闻邮局订阅号:82360元/年-209—
GPSGJS
包括:报警,命令,电话,显示等.
图4车载终端控制软件流程图
6监控中心站软件设计
监控中心站软件包括用户界面系统,数据库管理系统,电 子地图管理系统,通信系统.该通信系统使用可视化程序设计 语言(VB或Delphi或VC)编写.通信系统软件通过AT命令对 串口操作把TC35接受到的短消息传送到PC机.PC机对该消 息首先进行分离,定位信息送给电子地图管理系统,在地图上 显示运输车辆的位置,而运输车辆的安全检测信息则显示在用 户界面系统上,由监控管理员对其做出响应.系统也可以控制 Tc35给车载终端发控制命令.
7结束语
基于GPS和GSM短消息的车辆定位监控系统利用现有的 GSM网络实现化学品运输过程中的定位监控,成本低,覆盖范 围广,可行性高,对提高我国化学品运输体储运过程的安全性, 方便预警与事故遇险人员生命保障和快速救援有着切实意义. 本文作者创新点:针对我国危险化学品运输的实际情况提 出了一套简单可行的车辆定位监控方案.系统充分利用现有的 GPS网络,成本低,软硬件实现简单.采DSP进行数据处理和 控制,速度快,处理能力强,非常适合对多目标进行监控. 参考文献:
【1】冀常鹏等.GPS/GSM车辆监控系统研究fJ】微计算机信息.2003 (9):44.48?
[2】郑祖舵等.GPS车辆调度监控系统及其在我国的发展趋势.东 北汽车运输.2004(4):20,25
[3】翟战强.蔡少华.基于GPRS/GPS/GIS的车辆导航与监控系统. 测绘通报.2004(2):34—36
f41纪玉波等.车辆定位监控系统设计与实现.石油化工高等学校 .2002f91:6l一63
作者简介:秦海涛,男,汉族,1981年2月出生,湖南沅江人,中 北大学硕士研究生:计算机与电子科学与技术学院,电子科学
与技术系;研究方向:微系统设计与测量技术;E—maihhaitao. qin@sohu.com;薛晨阳,男,汉族,1971年11月出生,山西忻州 人,中北大学电子测试国家重点实验室副主任,副教授;研究方 向:MEMS器件设计和动态测试.
Biography:QinHaltao,DepartmentofElectronicScienceand
Technology,CollegeofElectronicsandComputerScience,Nonh
UniversityofChina,majorinmicrosystemdesignandmcasurc— ment;XueChenyang,majorindesignanddynamictestingof
MEMSdevice.
(030051山西太原电子测试技术国家重点实验室.中北大学 电子科学与技术系1秦海涛薛晨阳秦丽张斌珍马游春 通讯地址:(030051山西山西省太原市中北大学18系教研室1 秦海涛
(收稿目期:2006.10.12)(修稿日期:2006.11.9) (上接第209页)
这三个文件的修改非常相似,都要根据前面所设置的BACnet 宏指令,删除不必要部分.
用户利用应用框架生成的BACnet软网关只是一个最小系 统,私有协议处理,数据收发等模块需要用户自己实现. 4结束语
BACnet协议目前应用非常广泛,实际项目中经常需要开发 软网关做协议转换,软网关繁琐重复的过程即费时又费力.使 BACnet软网关应用框架开发BACnet软网关加快简化软网关 的开发过程,可以有效解兜这个问题.在实际项目现场调试的 过程中,利用该应用框架开发的BACnet软网关运行良好,可以 实现私有协议设备访问BACnet网络.
本文作者创新点:提出了一种Windows平台上BACnet软 网关应用框架的实现方案,简化了BACnet软网关的开发过程. 参考文献:
【1】CommunicationProtocolforBuildingAutomationandControl NetworksIS】.ANSI/ASHRAEStandard135,20o1,AData
[2】董春桥等.智能楼宇BACnet原理与应用[M】.北京:电子工业
出版社
[3]~tj隶等.BACnet网络与Internet互联的研究[J1微计算机信息.
2002.6:59-61
作者简介:陈博,男,1983.2.,硕士研究生,就读于广东工业大学
自动化学院检测技术与自动化装置专业,研究方向为楼宇智能
化技术,E—maihzhongky04@sina.com;李军,男,1962.9,硕士,副教
授,广东工业大学自动化学院硕士生导师,研究方向为楼宇智
能化技术;周慧瑁,女,1981.9,广东工业大学自动化学院硕士研
究生,研究方向为楼宇智能化技术
Biography:ChenBo,male,bornin1983.2,postgraduate,Au? tomationFacultyofGuangDongUniversityofTechnology,Study Interest:BuildingAutomation,E—mail:zhongky04@sina.com;Li
Jun,male,bornin1962.9,master,associateprofessor,Automa? tionFacultyofGuangDongUniversityofTechnology,StudyIn- terest:BuildingAutomation;ZhouHui-jun,female,bornin 1981.9,postgraduate,AutomationFacultyofGuangDongUniver—
sityofTechnology,StudyInterest:BuildingAutomation. (510090广州广东工业大学自动化学院)陈博李军周慧瑁
通讯地址:(510090广州广州市东风东路729号广东工业大
学自动化学院1号楼405实验室)陈博
f收稿日期:2006.10.12X修稿日期:2006.11.9)
翅自控罔邮局订阅号:82-946360~L/-q-一235—