2023年11月30日发(作者:)

认识BACnet协议

⼀、什么是BACnet

BACnetBuilding Automation and Control networks的简称,即楼宇⾃动化与控制⽹络。是⽤于智能建筑的通信协议。

⼀般楼宇⾃控设备从功能上讲分为两部分:⼀部分专门处理设备的控制功能;另⼀部分专门处理设备的数据通信功能。⽽BACnet就是要建

⽴⼀种统⼀的数据通信标准,使得设备可以互操作。BACnet协议只是规定了设备之间通信的规则,并不涉及实现细节。

BACnet协议模型为:

1)所有的⽹络设备,除基于MS/TP协议的以外,都是完全对等的(peer to peer);

2)每个设备都是⼀个对象的实体,每个对象⽤其属性描述,并提供了在⽹络中识别和访问设备的⽅法;设备相互通信是通过读/写某些

设备对象的属性,以及利⽤协议提供的服务完成;

3)设备的完善性(Sophistication),即其实现服务请求或理解对象类型种类的能⼒,由设备的⼀致性类别Conformance Class)所

反映。

⼆、BACnet的体系结构

BACnet建⽴在包含四个层次的简化分层体系结构上,这四层相当于OSI模型中的物理层、数据链路层、⽹络层和应⽤层。

BACnet标准定义了⾃⼰的应⽤层和简单的⽹络层,对于其数据链路层和物理层,提供了以下五种选择⽅案:

1)第⼀种选择是ISO8802-2类型1定义的逻辑链路控制(LLC)协议,加上ISO8802-3介质访问控制(MAC)协议和物理层协议。ISO

8802-2类型1提供了⽆连接(Connectionless)不确认(Unacknowledged)的服务,ISO8802-3则是著名的以太⽹协议的国际标准。

2)第⼆种选择是ISO8802-2类型1定义的逻辑链路控制(LLC)协议,加上ARCNETATA/ANSI878.1)。

3)第三种选择是主从/令牌传递(MS/TP)协议加上EIA-485协议。MS/TP协议是专门针对楼宇⾃动控制设备设计的,同ISO 8802-2类型1

⼀样,它通过控制EIA-485的物理层,向⽹络层提供接⼝。

4)第四种选择是点对点(PTP)协议加上EIA-232协议,为拨号串⾏异步通信提供了通信机制。

5)第五种选择是LonTalk协议。

三、BACnet的协议栈和数据流

由应⽤层服务原语产⽣的应⽤层协议数据单元(APDU),构成了⽹络层服务原语的数据部分,并通过⽹络层服务访问点下传到⽹络层。

同样,这个请求将进⼀步下传到本地设备协议栈的以下各层。

服务原语:⽤于描述服务⽤户和服务提供者之间交互作⽤的、抽象的、与具体⽆关的表现⽅式。服务原语只有4种类型:

请求(Request ⽤户实体要求服务做某项⼯作 源(N+1)实体—>源(N)实体

指⽰(Indication ⽤户实体被告知某事件发⽣ ⽬的(N)实体—>⽬的(N+1)实体

响应(Response ⽤户实体表⽰对某事件的响应 ⽬的(N+1)实体—>⽬的(N)实体

确认(Confirm ⽤户实体收到关于它的请求的答复 源(N)实体—>源(N+1)实体

PDUProtocol Data Unit,协议数据单元,是指对等层次之间传递的数据单位。

APDUApplication Protocol Data Unit,应⽤协议数据单元。

NPDUNetwork Protocol Data Unit ,⽹络协议数据单元。

LPDULink Protocol Data Unit,链路协议数据单元。

MPDUMAC Protocol Data UnitMAC协议数据单元。

PPDUPresentation Protocol Data Unit,表⽰协议数据单元。

四、BACnet应⽤层

BACnet应⽤层主要有两个功能:

定义楼宇⾃控设备的信息模型——BACnet对象模型

定义⾯向应⽤的通信服务

BACnet应⽤进程模型:

⼀个应⽤进程包括:应⽤程序和应⽤实体,应⽤实体位于应⽤层内,属于通信协议的部分,应⽤程序不属于协议部分。应⽤程序和应⽤实体

之间通过API进⾏通信。

应⽤层有四种原语,分别为:请求(request)、指⽰(indication)、响应(response)和证实(confirm)。

BACnet对象模型:

BACnet⽹络协议使⽤先进的⾯向对象技术,通过封装在APDU内的对象数据进⾏通讯。BACnet拥有28个对象:

序号对象名称应⽤实例

01Accumulator累加器

02Analog Input模拟输⼊对象

03Analog Output模拟输出对象

04Analog Value模拟值对象

05Averaging 平均器

06Binary Input ⼆进制输⼊对象

07Binary Output⼆进制输出对象

08Binary Value ⼆进制值对象

09Calendar ⽇期表对象

10Command 命令对象

11Device设备对象

12Event Enrollment 事件登录对象

13Event Log事件⽇志对象

14File⽂件对象

15Global Group全局组对象

16Group 组对象

17Life Safety Point ⽣命安全监测点的信息检测

18Life Safety Zone ⽣⾯安全区域的信息检测

19 Loop控制环对象

20Multi-State Input多态输⼊对象

21Multi-State Output多态输出对象

22Multi-State Value多态值对象

23Notification Class通告类对象

24Program 程序对象

25Pulse Converter 脉冲转换器

26Schedule时间安排对象

27Trend Log趋势记录对象

28Trend Log Multiple多趋势记录对象

BACnet服务:

BACnet具有35种服务,服务是操作对象的⽅法。这35种服务分为6类,分别为:报警与事件服务,⽂件访问服务,对象访问服务,远程设

备管理服务、虚拟终端服务和⽹络安全服务。

其中,对象服务访问包括:

创建对象服务

删除对象服务

读属性服务

条件读属性服务

读多个属性服务

写属性服务

写多个属性服务

远程设备管理服务包括:

设备通信控制服务

有证实专有传输服务

⽆证实专有传输服务

重新初始化设备服务

有证实⽂本报⽂服务

⽆证实⽂本报⽂服务

时间同步服务

五、BACnet⽹络层

BACnet⽹络层的作⽤是检查⽹络拓扑结构,决定最佳路由。

⽹络层提供将报⽂直接传送到⼀个远程BACnet设备、⼴播到⼀个远程BACnet⽹络、或者⼴播到所有的BACnet⽹络中的所有BACnet

设备的能⼒。

⼀个BACnet设备由⼀个⽹络号码和⼀个MAC地址唯⼀确定。

BACnet互联⽹络拓扑结构:

物理⽹段(Physical Segment):直接连接以下BACnet设备的⼀段物理介质。

⽹段(Segment):多个物理⽹段通过中继器在物理层连接,所形成的⽹络段。

⽹络(Network):多个BACnet⽹段通过⽹桥互联⽽成,每隔BACnet⽹络都形成⼀个单⼀的MAC地址域。这些在物理层和数据链路层上连

接各个⽹段的设备,可以利⽤MAC地址实现报⽂的过滤。

互联⽹络(Internetwork):将使⽤不同LAN技术的多个⽹段,⽤BACnet路由器互联起来,便形成了⼀个BACnet互联⽹络。在⼀个BACnet

互联⽹络中,任意两个节点之间恰好存在着⼀条报⽂通路。

六、BACnet数据链路/物理层

BACnet标准将五种类型的数据链路/物理层技术作为⾃⼰所⽀持的数据链路/物理层技术进⾏规范,形成其协议。

ARCNET局域⽹:

ARCNET1977年由Datapoint公司开发的⼀种安装⼴泛的局域⽹(LAN)技术,它采⽤令牌总线(token-bus)⽅案来管理LAN上⼯作站和

其他设备之间的共享线路,其中,LAN服务器总是在⼀条总线上连续循环的发送⼀个空信息帧。

当有设备要发送报⽂时,它就在空帧中插⼊⼀个令牌以及相应的报⽂。当⽬标设备或LAN服务器接收到该报⽂后,就将令牌重新设置为

0,以便该帧可被其他设备重复使⽤。这种⽅案是⼗分有效的,特别是在⽹络负荷⼤的时候,它为⽹络中的各个设备提供平等使⽤⽹络资源

的机会。

主从/令牌传递(MS/TP)协议:

BACnet的主从/令牌传递局域⽹技术的基础时使⽤EIA-485标准。

由于EIA-485标准只是⼀个物理层标准,不能解决设备访问传输介质的问题,BACnet定义了主从/令牌(MS/TP)协议,提供数据链路层功能。

MS/TP⽹络使⽤⼀个令牌来控制设备对⽹络总线的访问:

当主节点掌握令牌时,它可以发送数据帧。

凡是收到主节点请求报⽂的主(从)节点都可以发送响应报⽂。⼀个主节点在发送完报⽂之后,就将令牌传递给下⼀个主节点。

如果主节点有许多报⽂要发送,当它⼀次掌握令牌期间最多只能发送max_info_iframes个数据帧,就必须将令牌传递给下⼀个主节

N

点,其他数据帧只能在它再⼀次掌握令牌时,才能发送。

点到点(PTP)通信协议:

为了使两个BACnet设备能够各种点到点通信机制进⾏通信,BACnet定义了点到点数据链路层通信协议,⾯向连接的协议,这个协议的功能

是:

使两个BACnet⽹络层实体建⽴点到点数据链路连接,可靠地交换BACnet PDU

使⽤已建⽴地物理连接执⾏BACnet点到点连接的有序终⽌。

⼀旦这种连接成功建⽴后,两个设备就可以透明地交换BACnet PDU

⽆论呼叫设备还是被呼叫设备,都可以启动释放连接过程,⽽只有每个设备都发送了终⽌请求后,连接才会终⽌。

对应地物理连接有:EIA-232连接调制解调器,线路驱动器,或者其他数据通信设备。