教材-BACnet

  • 格式:doc
  • 大小:94.00 KB
  • 文档页数:14

1 3.2.3 楼宇自控网络协议BACnet .................................................................................. 2

3.2.3.1 BACnet 的历史 .............................................................................................. 2

3.2.2.2 BACnet 的主要内容 ............................................................................... 2

3.2.2.3 BACnet 与生产商 ................................................................................... 8

3.2.2.4 BACnet 与工程商 .................................................................................. 11

3.2.2.6 BACnet 的前景 .................................................................................... 13 2 3.2.3 楼宇自控网络协议BACnet

BACnet是Building Automation and Control Networks 的缩写,它是针对楼宇自控领域的标准,制定这个标准的目的是为了使不同生产商提供的控制设备能够互操作,也使业主不再依赖特定的私有技术。BACnet是暖通空调行业唯一的国际标准。

3.2.3.1 BACnet 的历史

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

- 历经8年半的发展;

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

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

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

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

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

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

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

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

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

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

3.2.2.2 BACnet 的主要内容

BACnet是开放的标准,目前在国内已有中文版本,任何公司或个人都可以获得。该标准并不关注实现手段,因此生产商不依赖特定的开发器、芯片或软件,生产商有绝对的自由选择各具特色的实现方式,例如单片机、单板机+嵌入系统、PC机+桌面系统等等。

为了保证有效的互操作,BACnet不仅仅定义了通讯过程,也定义了控制设备内部数据的格式。例如:通过FTP协议,我们可以在本地看到远程电脑上的文件,但是如果我们不知道这些文件的格式,我们仍然无法打开、编辑,如果我们通过一些默认的扩展名知道了哪些是文本,哪些是JPG图片,就可以使用他们了。在BACnet中针对各种数据分别定义了标准对象,每种对象包含一些标准属性,这样一台控制设备可以很容易使用另一台控制设备的资源。 3 从实现的复杂程度而言,BACnet确实是重型协议,但幸运的是,一个特定功能的控制设备不需要实现全部的BACnet。也就是说,对于特定的应用范围,BACnet是可裁剪的。因此,BACnet同样也适合一些低成本的应用,例如:网络型温度传感器,用8位单片机就可以实现了。每台BACnet设备都要提供一份协议实现一致性声明(PICS,Protocol Implementation Conformance Statement)来说明自己实现了哪些内容。

BACnet 协议栈

网络通讯是一个复杂的过程,人们对复杂问题的处理办法通常是把他们分解为若干简单问题,然后分别处理。基于同样的思路,便提出了一种通用的网络分层结构,并于1983年成为国际标准(ISO 7498),这就是OSI(开放系统互连)模型。该模型将网络通讯协议分解为7层,BACnet通讯协议引用了其中的4层。

BACnet 通讯协议分层 对等的OSI模型分层

应用层 应用层

网络层 网络层

ISO 8802-2 1类 MS/TP PTP LonTalk BVLL

UDP/IP 数据链路层

ISO 8802-3 ARCNET EIA-485 EIA-232 物理层

上图是BACnet通讯协议的分层结构,这样的结构在每台BACnet设备中都是存在的。其中每一层向上层提供服务,屏蔽本层的处理细节,最终由应用层向BACnet设备中的应用程序提供一组API(应用程序编程接口)。

➢ 物理层:

物理层是为不同设备间数据流传输提供物理通路。BACnet 物理层支持多种通讯介质。

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

Ethernet。

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

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

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

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

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

8802-2 1类标准(逻辑连接控制),同时还定义了MS/TP和PTP两种新的数据链路层协议。数据链路层将网络层下发的数据打包,计算出校验码,添上合适的链路层数据头,有序地下发到物理层。同时,解析物理层接收到的数据,对数据进行校验,然后上传网络层。

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

MS/TP是建立在主从通讯基础上的无主通讯方式,因为:如果只观察MS/TP的一个通讯片段,它确实是主从通讯,这也是MS/TP中‘MS’的含义:MASTER/SLAVE。如果观察全部通讯过程,我们会发现它是无主通讯,其中的关键就是另外两个字母‘TP’的含义:TOKEN PASSING(令牌传递)。通俗地说,就是大家轮流做主,令牌传到谁的手里,谁就做主,没有令牌的做从,令牌在这里的含义就是一个标志。下图是MS/TP的通讯过程:

上图是一个典型的通讯过程,在实际应用中,可能会跳过一些步骤,例如:令牌传到控制器3,它没有命令要发,就直接把令牌传给下一个控制器。或者:控制器3命令控制器4,是一个无需应答的命令,控制器4没有应答,控制器3接着命令控制器1。得到令牌的控制器会发什么样的命令,取决于网络层和应用层的服务需求。

如果一切正常,令牌会一圈又一圈轮流传递。如果意外发生了,例如:得到令牌的控制器发生故障了,这时网上一片寂静,但是每台控制器都默默地计算着寂静时间,一旦寂静时间超过了BACnet的规定,会有一台低地址控制器抢先产生令牌,然后继续令牌传递的过程。这就是BACnet MS/TP对令牌丢失的解决办法。另外,控制器在传出令牌后会监视其他控制器对令牌的使用情况,如果得到令牌的控制器一直没响应,会被自动从令牌环中剔除。

在令牌传递过程中,会有控制器在得到令牌时对本网段的空余位置发出查询命令,如果得到正控制器1

控制器2

控制器3

控制器4  控制器1命令控制器2;

 控制器2应答;

 控制器1命令控制器3;

 控制器3应答;

 控制器1命令控制器4;

 控制器4应答;

 控制器1把令牌传给控制器2

 控制器2命令控制器1;

 控制器1应答;

 控制器2命令控制器3;

 控制器3应答;

 控制器2命令控制器4;

 控制器4应答;.

 控制器2把令牌传给控制器3

.. 通讯总线 终端电阻

5 确应答,说明有新的控制器申请加入令牌环,就把令牌传递给新的控制器,使其自动加入到令牌环中。因此,新的控制器加入网络, MS/TP会自动识别,无需重新配置。由哪台控制器何时发出查询命令,是由BACnet的算法决定的,这个算法的目的是使查询命令不占用过多的网络时间,并且新控制器可以在一个可接受的时间内被发现。

注意:在以上针对MS/TP的分析中,只考虑了数据链路层的处理过程,忽略了网络层和应用层,在实际通讯过程中,每一次命令和应答都是通过协议栈处理过的。例如:主控制器1命令主控制器2,实际是主控制器1的应用层将命令数据下发到主控制器1的网络层,加上网络层控制信息后再下发到链路层,等到主控制器1的链路层得到令牌后,再把命令通过物理层发送出去。

➢ 网络层:

网络层的作用是屏蔽不同链路层的差异,屏蔽网络拓扑结构,向应用层提供一致的服务。在BACnet网络中,通过网络号和物理地址可以定位一台唯一的BACnet设备。网络层要根据应用层提供的数据(包括网络号和物理地址)寻找合适的路由,将数据打包,下发到数据链路层,同时将数据链路层上传的数据解包,解析出源网络号、源物理地址和数据,然后上传应用层。

网络层还有一个重要功能就是路由,如果一台BACnet设备能够同时连接两个网络,并提供路由功能,它必须在网络层支持多种路由服务,例如:Who Is Router To Network(谁是到网络XX的路由)、Initialize Routing Table(初始化路由表)等,这些服务必须在网络层被处理,不能上传到应用层。一台专用的BACnet路由器可以没有应用层。

➢ 应用层:

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

BACnet在应用层引用了ISO 8824 (抽象语法记法)和 ISO 8825(基本编码规则)进行数据包的编码和解码。设备所有执行的服务都在应用层处理。如果应用程序需要访问其他设备,可以调用应用层的API (Application Program Interface),这时应用层根据调用类型和参数发起响应的服务,如果发起的服务需要响应,有两种处理方式,一种是直到得到响应或超时调用才返回,另一种是调用立即返回,得到响应或超时后以回调方式通知应用程序。