教材BACnet.docx

上传人:b****7 文档编号:11332880 上传时间:2023-02-27 格式:DOCX 页数:16 大小:89.19KB
下载 相关 举报
教材BACnet.docx_第1页
第1页 / 共16页
教材BACnet.docx_第2页
第2页 / 共16页
教材BACnet.docx_第3页
第3页 / 共16页
教材BACnet.docx_第4页
第4页 / 共16页
教材BACnet.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

教材BACnet.docx

《教材BACnet.docx》由会员分享,可在线阅读,更多相关《教材BACnet.docx(16页珍藏版)》请在冰豆网上搜索。

教材BACnet.docx

教材BACnet

3.2.3楼宇自控网络协议BACnet

BACnet是BuildingAutomationandControlNetworks的缩写,它是针对楼宇自控领域的标准,制定这个标准的目的是为了使不同生产商提供的控制设备能够互操作,也使业主不再依赖特定的私有技术。

BACnet是暖通空调行业唯一的国际标准。

3.2.3.1BACnet的历史

BACnet的研发工作始于1987年,专门在美国暖通空调和制冷工程师协会(ASHREA)下面成立了BACnet标准设计委员会(SPC135)并在美国Tennessee省Nashville市召开第一次会议。

-历经8年半的发展;

-由12个国家的81位专家提出了741条建议并进行了3次公众发布;

-1995年6月由美国暖通空调和制冷工程师协会(ASHREA)首次发布,并于当年成为美国国家标准,编号为:

ANSI/ASHRAE135-1995;

-2001年发布更新的标准ANSI/ASHRAE135-2001;

-2003年1月BACnet成为了建筑行业ISO国际标准,标准号:

ISO16484-5;

-BACnet产品适用于HVAC,消防,照明,安防等领域;

-可用的产品包括控制器,网关,路由器和诊断工具等;

-BACnet在ASHRAE的持续资助下得到发展;

-公众或委员会成员可在任何时间提出对协议的改变建议;

-所有的改变必须经过公众讨论和认可;

-SSPC135(BACnet标准设计委员会135)负责与CEN(欧洲),ABOK(俄罗斯)和IEIEJ(日本)的联系。

3.2.2.2BACnet的主要内容

BACnet是开放的标准,目前在国内已有中文版本,任何公司或个人都可以获得。

该标准并不关注实现手段,因此生产商不依赖特定的开发器、芯片或软件,生产商有绝对的自由选择各具特色的实现方式,例如单片机、单板机+嵌入系统、PC机+桌面系统等等。

为了保证有效的互操作,BACnet不仅仅定义了通讯过程,也定义了控制设备内部数据的格式。

例如:

通过FTP协议,我们可以在本地看到远程电脑上的文件,但是如果我们不知道这些文件的格式,我们仍然无法打开、编辑,如果我们通过一些默认的扩展名知道了哪些是文本,哪些是JPG图片,就可以使用他们了。

在BACnet中针对各种数据分别定义了标准对象,每种对象包含一些标准属性,这样一台控制设备可以很容易使用另一台控制设备的资源。

从实现的复杂程度而言,BACnet确实是重型协议,但幸运的是,一个特定功能的控制设备不需要实现全部的BACnet。

也就是说,对于特定的应用范围,BACnet是可裁剪的。

因此,BACnet同样也适合一些低成本的应用,例如:

网络型温度传感器,用8位单片机就可以实现了。

每台BACnet设备都要提供一份协议实现一致性声明(PICS,ProtocolImplementationConformanceStatement)来说明自己实现了哪些内容。

BACnet协议栈

网络通讯是一个复杂的过程,人们对复杂问题的处理办法通常是把他们分解为若干简单问题,然后分别处理。

基于同样的思路,便提出了一种通用的网络分层结构,并于1983年成为国际标准(ISO7498),这就是OSI(开放系统互连)模型。

该模型将网络通讯协议分解为7层,BACnet通讯协议引用了其中的4层。

BACnet通讯协议分层

对等的OSI模型分层

应用层

应用层

网络层

网络层

ISO8802-21类

MS/TP

PTP

LonTalk

BVLL

UDP/IP

数据链路层

ISO8802-3

ARCNET

EIA-485

EIA-232

物理层

上图是BACnet通讯协议的分层结构,这样的结构在每台BACnet设备中都是存在的。

其中每一层向上层提供服务,屏蔽本层的处理细节,最终由应用层向BACnet设备中的应用程序提供一组API(应用程序编程接口)。

Ø物理层:

物理层是为不同设备间数据流传输提供物理通路。

BACnet物理层支持多种通讯介质。

其中ISO8802-3也是国际标准,就是通常说的以太网,BACnet引用了该标准,通常称为:

BACnetEthernet。

在数据链路层协议PTP中已经进行了脱字符处理,所以EIA-232可以支持本地连接,也可以支持MODEM+电话线路这种远程连接方式。

BACnet也引用LonTalk协议作为自己的物理层和链路层,LonTalk协议经Echelon公司修订和补充后,作为参考包括在BACnet协议中,想要将BACnet做成包含LonTalk协议的人,需要获得Echelon公司的OEM许可。

在BACnet协议中不支持LonTalk的身份认证。

BVLL和UDP/IP是采用成熟的UDP/IP协议加上虚拟链路层作为BACnet的物理层和链路层,适合通过国际互连网通讯,通常称为:

BACnetIP。

Ø数据链路层:

数据链路层的主要工作是维护链路连接,实现无差错传输。

BACnet的数据链路层引用了ISO8802-21类标准(逻辑连接控制),同时还定义了MS/TP和PTP两种新的数据链路层协议。

数据链路层将网络层下发的数据打包,计算出校验码,添上合适的链路层数据头,有序地下发到物理层。

同时,解析物理层接收到的数据,对数据进行校验,然后上传网络层。

BACnet的数据链路层协议种类较多,相互差别很大,在这里着重介绍数据链路层协议MS/TP。

MS/TP是建立在主从通讯基础上的无主通讯方式,因为:

如果只观察MS/TP的一个通讯片段,它确实是主从通讯,这也是MS/TP中‘MS’的含义:

MASTER/SLAVE。

如果观察全部通讯过程,我们会发现它是无主通讯,其中的关键就是另外两个字母‘TP’的含义:

TOKENPASSING(令牌传递)。

通俗地说,就是大家轮流做主,令牌传到谁的手里,谁就做主,没有令牌的做从,令牌在这里的含义就是一个标志。

下图是MS/TP的通讯过程:

上图是一个典型的通讯过程,在实际应用中,可能会跳过一些步骤,例如:

令牌传到控制器3,它没有命令要发,就直接把令牌传给下一个控制器。

或者:

控制器3命令控制器4,是一个无需应答的命令,控制器4没有应答,控制器3接着命令控制器1。

得到令牌的控制器会发什么样的命令,取决于网络层和应用层的服务需求。

如果一切正常,令牌会一圈又一圈轮流传递。

如果意外发生了,例如:

得到令牌的控制器发生故障了,这时网上一片寂静,但是每台控制器都默默地计算着寂静时间,一旦寂静时间超过了BACnet的规定,会有一台低地址控制器抢先产生令牌,然后继续令牌传递的过程。

这就是BACnetMS/TP对令牌丢失的解决办法。

另外,控制器在传出令牌后会监视其他控制器对令牌的使用情况,如果得到令牌的控制器一直没响应,会被自动从令牌环中剔除。

在令牌传递过程中,会有控制器在得到令牌时对本网段的空余位置发出查询命令,如果得到正确应答,说明有新的控制器申请加入令牌环,就把令牌传递给新的控制器,使其自动加入到令牌环中。

因此,新的控制器加入网络,MS/TP会自动识别,无需重新配置。

由哪台控制器何时发出查询命令,是由BACnet的算法决定的,这个算法的目的是使查询命令不占用过多的网络时间,并且新控制器可以在一个可接受的时间内被发现。

注意:

在以上针对MS/TP的分析中,只考虑了数据链路层的处理过程,忽略了网络层和应用层,在实际通讯过程中,每一次命令和应答都是通过协议栈处理过的。

例如:

主控制器1命令主控制器2,实际是主控制器1的应用层将命令数据下发到主控制器1的网络层,加上网络层控制信息后再下发到链路层,等到主控制器1的链路层得到令牌后,再把命令通过物理层发送出去。

Ø网络层:

网络层的作用是屏蔽不同链路层的差异,屏蔽网络拓扑结构,向应用层提供一致的服务。

在BACnet网络中,通过网络号和物理地址可以定位一台唯一的BACnet设备。

网络层要根据应用层提供的数据(包括网络号和物理地址)寻找合适的路由,将数据打包,下发到数据链路层,同时将数据链路层上传的数据解包,解析出源网络号、源物理地址和数据,然后上传应用层。

网络层还有一个重要功能就是路由,如果一台BACnet设备能够同时连接两个网络,并提供路由功能,它必须在网络层支持多种路由服务,例如:

WhoIsRouterToNetwork(谁是到网络XX的路由)、InitializeRoutingTable(初始化路由表)等,这些服务必须在网络层被处理,不能上传到应用层。

一台专用的BACnet路由器可以没有应用层。

Ø应用层:

应用层的主要任务是信息的编码和解码、信息的处理及信息分段,同时提供一组API,使应用程序可以访问其他设备。

BACnet在应用层引用了ISO8824(抽象语法记法)和ISO8825(基本编码规则)进行数据包的编码和解码。

设备所有执行的服务都在应用层处理。

如果应用程序需要访问其他设备,可以调用应用层的API(ApplicationProgramInterface),这时应用层根据调用类型和参数发起响应的服务,如果发起的服务需要响应,有两种处理方式,一种是直到得到响应或超时调用才返回,另一种是调用立即返回,得到响应或超时后以回调方式通知应用程序。

BACnet服务

BACnet服务主要分为以下类型:

Ø对象访问服务

例子:

ReadProperty、WriteProperty、ReadPropertyMultiple、WritePropertyMultiple、CreateObject、DeleteObject.

Ø文件访问服务

例子:

AtomicReadFile、AtomicWriteFile.

Ø报警和事件服务

例子:

ConfirmedCOVNotification、UnconfirmedCOVNotification、AcknowledgeAlarm、SubscribeCOV.

Ø远程设备管理服务

例子:

WhoIs、Iam、WhoHas、IHave、TimeSynchronization.

Ø虚拟终端服务

例子:

VTOpen、VTClose、VTData.

BACnet服务有很多,一种特定功能的设备无需支持全部服务。

例如一台网络型风阀执行器只需要支持:

ReadProperty、WriteProperty,而一台可编程控制器至少要支持:

WhoIs、TimeSynchronization、ReadProperty、WriteProperty、CreateObject、DeleteObject、AtomicReadFile、AtomicWriteFile。

以下为几种常用的BACnet服务的含义。

ØReadProperty

含义是读对象属性。

例如设备A需要知道设备B的温度数据,设备A就会发出ReadProperty命令,在命令中指定设备B的物理地址和网络号、温度点对象的ID、温度点对象的属性(如果想读温度值,属性为:

PresentValue、如果想读温度单位,属性为:

Unit),如果设备B支持ReadProperty服务,并且温度点对象是可读的,它的回答就会包含正确数据。

ØWriteProperty

含义是写对象属性。

例如设备A需要修改设备B的温度设定点,设备A就会发出WriteProperty命令,在命令中指定设备B的物理地址和网络号、温度设定点对象的ID、温度设定点对象的属性、要设定的新值,如果设备B支持WriteProperty服务,同时这个对象可以被写,它的温度设定点就会被改变,同时返回一个成功通知。

ØReadPropertyMultiple

含义是读多个对象的多个属性。

如果设备A需要知道设备B的多个数据,可以发多个ReadProperty命令,但是这样会降低网络效率,因为每条命令由应用层下传到物理层后都会增加许多协议控制信息,如果只发一条ReadPropertyMultiple指令,会提高效率。

在命令中要指定设备B的物理地址和网络号、相关对象的ID和相关属性,如果设备B支持ReadPropertyMultiple服务,它的回答就会包含所有数据,如果某个数据不可读,它会被一个错误码代替。

ØSubscribeCOV

含义是订阅COV(ChangeofValue)。

例如设备A需要连续了解设备B的某个数据,设备A可以每隔一段时间发ReadProperty命令,这就是常见的查询。

这样做的缺点是效率太低,假如查询间隔时间较短,会增加网络负荷,如查询间隔时间较长,会增加数据传输延时。

在BACnet网络中,使用COV进行数据交换是常见的方法,这个方法就是设备A先在设备B做一个登记,以后设备B的相关数据发生改变时会主动通知设备A。

首先,设备A需要发出SubscribeCOV命令,在命令中指定设备B的物理地址和网络号、关心的对象的ID等,如果设备B支持SubscribeCOV服务,并且关心的对象是可订阅的,设备B会返回一个订阅成功通知。

ØUnconfirmedCOVNotification

含义是无需确认的COV(ChangeofValue)通知。

如果设备A在设备B成功的订阅了某个对象,当这个对象的相关属性发生改变时,设备B会向设备A发出UnconfirmedCOVNotification通知,包含这个对象的相关属性的列表。

设备A收到该命令后不需要回答。

与之相对,还有一个ConfirmedCOVNotification通知,这是需要设备A确认的通知,设备A会收到哪种类型的通知取决于订阅时指定的参数。

ØWhoIs

含义是“谁在?

”,这是一个远程设备管理服务。

典型情况是由工作站以广播形式发出WhoIs命令,所有在线的、支持该服务的设备将陆续提交一个“IAm”报告,说明自己的地址、生产商编号等重要参数。

在WhoIs命令中也可以指定地址范围,这样只有范围内的设备提交“IAm”报告。

BACnet对象

在BACnet协议中,把楼宇自控领域应用的各种具体功能单元抽象为对象。

代表性对象有:

AnalogInput、AnalogOutput、AnalogValue、BinaryInput、BinaryOutput、BinaryValue、Calendar、Command、Device、EventEnrollment、File、Group、LifeSafetyPoint、LifeSafetyZone、Loop、Multi-stateInput、Multi-stateOutput、Multi-stateValue、NotificationClass、Program、Schedule、TrendLog。

对于一种特定功能的设备,无需支持所有对象。

例如网络型温度传感器只需要支持:

Device、AnalogInput,而一台可编程控制器至少要支持:

Device、AnalogInput、AnalogOutput、AnalogValue、BinaryInput、BinaryOutput、BinaryValue、Calendar、Schedule、File、Program。

以下就两种常用的BACnet对象简要解释。

ØDevice

所有设备都要支持Device对象。

该对象用于描述这台设备的特性。

该对象包含39种标准属性,以下简单介绍其中的几种属性:

对象ID号:

4个字节的编码。

该编码在全部网络上必须是唯一值,不能重复,通常的做法是采用设备物理地址和网络号的某种组合。

生产商名称:

字符串。

例如:

ABC公司。

生产商编号:

正整数。

所有BACnet设备生产商都可以从BACnet组织得到这个编号。

模块名称:

字符串。

例如:

A100型控制器。

执行的服务:

位序列。

例如:

11110100……,其中每一位代表一种服务,该位为‘1’表示该设备支持这种服务,为‘0’表示不支持。

支持的对象:

位序列。

例如:

11011011……,其中每一位代表一种对象,该位为‘1’表示该设备支持这种对象,为‘0’表示不支持。

对象列表:

队列。

为该设备内所有对象的ID的列表。

ØAnalogInput

含义是模拟量输入。

该对象主要用途是描述一个模拟传感器输入值,例如:

室内温度、风道湿度。

该对象包含27种标准属性,以下简单介绍其中的几种属性:

对象ID号:

4个字节的编码。

该属性用于区分同一台设备内的各个对象。

对象名称:

字符串。

例如:

1#教室室内温度。

当前数值:

浮点数。

例如:

32.7。

单位:

枚举值。

例如:

5代表伏特、62代表摄氏度。

3.2.2.3BACnet与生产商

BACnet自公布以来,受到了楼宇自控生产商的广泛重视,世界著名的生产商都已经加入了BMA(BACnetManufacturersAssociation),其产品须经BTL(BACnetTestingLaboratories)测试,BTL负责将符合标准的产品和厂家在全球范围内发布列表并对其产品给予BACnet认证。

生产商的利益

BACnet是公开的标准,而且对实现该标准的技术手段无任何要求。

生产商可以自由选择硬件、软件实现方案,例如采用最先进的芯片或最熟悉的芯片,采用最高效的或最廉价开发工具等等,生产商对BACnet组织无任何依赖。

由于BACnet设备具有很强的互操作性,生产商可以把集中精力发展自己领先的技术。

例如生产商A拥有先进的VAV控制技术,A就可以专门生产VAV控制器,操作站软件和路由器等配套产品可以选用其他生产商的产品,无需由一个生产商提供全套楼宇自控产品。

BACnet不是一种全新的技术,它是建立在其他标准基础上的。

生产商如果已经有自己的成型产品,多数情况下不需要重新设计硬件,只要更新嵌入软件就可以成为BACnet产品。

例如有RS485接口的控制器可以支持BACnetMS/TP,有以太网接口的设备可以支持BACnetEthernet等等

BACnet产品实现方案参考

对于一个特定功能的BACnet设备,它所支持的BACnet协议可以是BACnet的一个子集。

BACnet标准根据主要功能把所有设备分为六大类:

操作员工作站:

运行于电脑上的监控软件

楼宇控制器:

最高级的控制器,最全面地实现BACnet,通常支持以太网的数据链路层。

高级控制器:

次于楼宇控制器,支持大部分服务和对象。

特定功能控制器:

次于高级控制器,根据功能的需求,支持某一小部分服务和对象。

网络型执行器:

最低级的设备,通常只支持读写服务和一两种对象。

网络型传感器:

最低级的设备,通常只支持读服务和一两种对象。

路由器:

提供不同BACnet协议之间的路由服务。

以上的分类不严格,并没有规定每种设备必须支持哪些服务和对象。

以下针对高级控制器、特定功能控制器、网络型传感器做简单的实现方案,由于实现的方法有很大的自由度,此方案仅作为参考。

Ø产品类型:

网络型温度传感器

支持的链路层协议:

MS/TP,通讯速率=9600bps

应用层数据每祯最大长度:

50字节

执行的服务:

ReadProperty

支持的对象:

Device、AnalogInput

采用的CPU:

51系列、8位、处理能力=1Mips

ROM需求:

8K

RAM需求:

1K

开发编程语言:

汇编

Ø产品:

网络型温度传感器

支持的链路层协议:

MS/TP,通讯速率=76800bps

应用层数据每祯最大长度:

50字节

执行的服务:

ReadProperty

支持的对象:

Device、AnalogInput

采用的CPU:

ATMELAVR系列、8位、处理能力=13Mips

ROM需求:

8K

RAM需求:

1K

开发编程语言:

汇编

Ø产品:

风机盘管控制器(特定功能控制器)

支持的链路层协议:

MS/TP,通讯速率=76800bps

应用层数据每祯最大长度:

480字节

执行的服务:

WhoIs、ReadProperty、ReadPropertyMultiple、WriteProperty、SubscribeCOV

支持的对象:

Device、AnalogInput、AnalogOutput、AnalogValue、BinaryInput、BinaryOutput、BinaryValue。

输入输出:

2AI、1AO、3BO、两行数显LCD、4按钮。

采用的CPU:

ATMELAVR系列、8位、处理能力=13Mips

ROM需求:

64K

RAM需求:

4K

开发编程语言:

C

Ø产品:

可编程控制器(高级控制器)

支持的链路层协议:

以太网,通讯速率=10Mbps

应用层数据每祯最大长度:

1476字节

执行的服务:

WhoIs、ReadProperty、WriteProperty、ReadPropertyMultiple、WritePropertyMultiple、CreateObject、DeleteObject,AtomicReadFile、AtomicWriteFile,ConfirmedCOVNotification、UnconfirmedCOVNotification、AcknowledgeAlarm、SubscribeCOV,TimeSynchronization。

支持的对象:

Device、AnalogInput、AnalogOutput、AnalogValue、BinaryInput、BinaryOutput、BinaryValue、Calendar、Loop、File,Program、Schedule、TrendLog。

输入输出:

8AI/BI、8AO/BO。

采用的CPU:

ARM系列、32位、处理能力=40Mips

采用的嵌入系统:

UCLINUX

ROM需求:

512K

RAM需求:

128K

开发编程语言:

C

PICS和BIBBs

BACnet设备必须通过“BACnet一致性测试”并提供“协议实现一致性声明”,即PICS,PICS是ProtocolImplementationConformanceStatement的缩写。

PICS中主要包括以下内容:

Ø生产商和设备的基本信息。

ØBIBBs

Ø如果是标准类型的设备,指明所属类型。

Ø支持的非标准服务。

Ø实现的BACnet对象类型。

Ø每一种对象实现的属性、可写的属性、写入数据范围、该对象是否能动态建立和删除。

Ø支持的物理层和链路层协议。

其中BIBBs是BACnetINTEROPERABILITYBUILDINGBLOCKS的缩写,即BACnet互操作基本块,用于描述设备支持的BACnet服务。

BIBB分为两类,分别用A和B标识,A表示服务发起者,B表示服务执行者,例如:

设备甲需要通过ReadProperty服务读设备乙的数据,甲就是该服务发起者,标识为:

BIBB-DataSharing-ReadProperty-A,缩写为DS-RP-A,乙就是服务执行者,标识为:

BIBB-DataSharing-ReadProperty-B,缩写为DS-RP-B。

3.2.2.4BACnet与工程商

BACnet已经在全球的八十多个国家和地区得到应用,得到了众多工程商的认可。

工程商的利益

由于遵循BACnet标准的产品可以互操作,工程商的选择范围更广了。

例如:

根据项目的具体情况,选择A生产商的监控软件、B生产商的VAV控制器、C生产商的路由器等等。

这样工程商可以充分发挥各种产品

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1