发表于:2003-06-26 16:29:00
楼主
BACnet、LonWorks与楼宇自动化通信协议标准
香港理工大学屋宇设备工程学系 徐正元(访问学者) 王盛卫
美国暖通空调工程师协会 David M. Fisher
本文已公开发表,欢迎转载,请注明作者
摘要:本文先大概介绍了BACnet及LonWorks,然后从二者之间的关系、协议分层模型、对象功能、互操作性、与以太网、IP网及Internet的连接、开放性、市场占有率等各个方面作了详细的比较,并简单介绍了当前的国际标准化动向。
关键字:BACnet,LonWorks,互操作,楼宇自动化通信协议
前言
长期以来,楼宇自动化中的系统集成问题一直困扰着开发商、集成商、工程师们。各种专有系统的存在、通信协议的多样化使得各子系统、各家的产品难于集成或只能实现有限的集成,也使得成本大大增加。采用开放的、标准的、统一的技术成为迫切实际的需要。于是出现了一些解决方案正在努力解决这方面的问题,比较盛行的有两个。其中之一是美国暖通空调工程师协会(ASHRAE)推出的BACnet,另一个是美国Echelon公司推出的LonWorks,目前这两种技术方案在楼宇自动化市场上都占有一定的份额。
本文的目的是就这两种技术方案作一个全方位的对比,并试图消除目前行业内外存在的各种误解及容易混淆之处。
一、 什么是BACnet?
BACnet,即A Data Communication Protocol for Building Automation and Control Networks,简称BACnet协议,是美国采暖、制冷和空调工程师协会(ASHRAE)经过近9年时间的研究制定的世界上第一个开放的楼宇自动控制网络协议。它详细地阐述了楼宇自控网的功能,阐明了系统组成单元相互分享数据实现的途径、使用的通讯媒介、可以使用的功能以及信息如何翻译的全部规则。它确立了不同生产厂家生产的各种BACnet兼容系统在不依赖任何专用芯片的情况下,相互开放通讯的基本规则。它使不同厂商生产的设备与系统在互连和互操作的基础上实现无缝集成成为可能。
该协议1995年一经颁布,即引起了各国政府、专家学者和企业的广泛关注。1995年由美国国家标准学院通过成为美国国家标准,目前韩国、日本已将其列为国家标准,也成为欧盟的预标准、ISO草案标准。
BACnet提供了一个描述各种自动化系统的精确模型,模型包括以下这些组成部分:
1. 对象:代表系统信息及数据库,以及统一的存取方法,下图列出了部分对象及其关系[2]。
图1 BACnet部分对象及之间的关系
1. 服务:服务是一个BACnet设备从另一个BACnet设备获得信息或命令另一个设备执行某种动作或通知一个或多个设备发生了某种事件的方法和手段。BACnet定义了一系列不同的服务,包括存取对象及其属性、报警及事件、设备及通信管理、文件传输、虚拟终端等。
2. LANs:BACnet允许采用当前应用广泛的五种不同LAN技术,这些LAN实现有着不同的特性、成本、性能,可以根据实际情况选用。这五种LAN技术是:Ethernet,ARCNET,MS/T,PTP,LonTalk(注意:不是LonWorks)。
3. 网络功能:实际中往往是不同的LAN并存,不同的LAN中的设备要通信必须解决三个问题:跨网络的信息存取,LAN之间不相关信息的控制隔离,信号的电气匹配。BACnet路由器能将采用不同LAN技术的BACnet网络连接在一起。
4. BIBBs:BIBBs是一个或多个BACnet服务的集合,是实现设备间一致性及互操作的方法。
BACnet是一个实现控制系统互操作的应用独立模型,它有着众多的互操作性类型和通用的对象,这使它不仅可以用于HVAC,还可以用于照明、安防、消防、门禁、交通等领域,事实证明它的应用领域还在不断的扩展之中。
一、 什么是LonWorks?
LonWorks是Echelon公司推出的一套实现控制网络系统的平台,它包括:Neuron芯片、LonTalk协议、LonWorks收发器、LonBuilder及NodeBuilder开发工具等。
LonTalk就象一个邮件系统,为系统设计者提供了在系统之间传输信息的基本机制。在LonWorks应用层交换信息的一个主要方法是采用SNVTs(标准网络变量类型)进行的, SNVT是一系列预定义的数据结构,不同的SNVT用不同的编码(code number)来标识,接收方设备也根据这个编码来识别如何解码收到的信息。但是LonWorks并没有定义每一个编码代表的含义,这样不同的厂家就有可能采用相同的编码表示不同的含义,从而引起混乱及错误。为了解决这个问题,成立了LonMark协会,该协会文档对SNVT编码及其对应的含义作出了具体的规定。
LonWorks技术上有一定的先进性,在一些场合中也得到了较好的应用。但目前行业内外流传着很多对LonWorks的看法及其与BACnet之间的关系的说法并不正确。
有文章中称LonWorks“…还被选入了许多其他国际标准,如IEEE1473(火车控制)、ANSI/EIA709.1(控制网络)、TC247(楼宇自动化)、AAR(火车电气制动)和SEMI标准(半导体生产设备)。能够成为这么多的国际标准,证明 LonWorks技术是通用的标准;…”[6] ,这是不符合事实的。AAR是美国铁路协会(the Association of American Railroads),不是标准团体,也与楼宇自动化无关;SEMI(Semiconductor Equipment and Materials International)是一个贸易联合会,不是标准团体。IEEE、ANSI、EIA是标准团体,但不是国际的标准团体。提到的唯一属于国际标准团体是CEN,但CEN仅仅采用LonTalk(而不是LonWorks)的一部分作为一个预备标准,还不是标准。
提到的这一组中真正属于标准的只有IEEE 1473和ANSI/EIA 709.1,但它们都只是美国标准。IEEE 1473是一个关于火车通信的标准,与楼宇自动化无关;ANSI/EIA 709.1是作为家居自动化(Home Automation)系统的标准,而不是商业建筑自动化系统的标准,而且它也只是采用了LonTalk的一个子集。所以实际上LonWorks从来都不是国际标准。
二、 BACnet与LonWorks的协议分层模型的比较
国际标准化组织在制定计算机网络通讯协议标准时定义了一个参考模型,称为开放系统互联参考模型(OSI)(ISO 7498)。模型的目的是提供解决计算机与计算机之间普遍的通信问题时的共同标准参照系。在这个模型中,将计算机通信这样一个复杂的问题分解成7个小的、容易解决的子问题,每个子问题只与某些通信功能相关,并且把这些子问题称为协议体系结构的一层,整个模型是一个七层的体系结构。OSI模型以高度概括的观点来分析计算机与计算机的通信,用来解决在全世界范围内的、巨大而复杂的计算机网络的通信问题。
经常有些错误的观点认为“LonTalk是实现了ISO/OSI模型全部七层的现场总线,这是它优势”,事实果真如此吗?实际上ISO/OSI七层模型是一个考虑很全面的参考模型,但从来没有要求实现所有的层,也不是实现的越多就越好,实现OSI模型全部协议层所需的费用也较高。现在流行的各种通信协议都根据实际情况作了不同的简化,如TCP/IP协议只有四层,但并不妨碍它的广泛应用。控制网络的特性使得它不需要实现全部七层协议,所以用于控制领域的总线协议往往根据情况作些删减;同样在绝大部分楼宇自动控制系统中,并不需要实现OSI模型的所有内容。通过只选择OSI模型中需要的层次,形成一个简化的模型,作为楼宇自动控制系统的协议体系结构,可以减少报文的长度,降低通信处理的开销,并且也满足楼宇自动控制系统的需要。这个简化的体系结构降低了楼宇自动控制工业的生产成本。图2是BACnet简化的协议层次结构。
BACnet网络层
ISO 8802-3
(IEEE 802.3)
ARCNET
MS/TP
(主从/令牌)
PTP
(点到点协议)
EIA-485
(RS485)
EIA-232
(RS232)
ISO 8802-2
(IEEE 802.2)类型1
LonTalk
BACnet应用层
BACnet的协议层次
应用层
网络层
数据
链路层
物理层
对应的
OSI层次
图2 BACnet简化的协议体系结构层次图
简化的四层BACnet体系结构,一方面是在仔细考虑了BACnet网络的独特特征和要求,以及尽可能少的协议开销原则后得出的。另