4.4 BACnet路由器
BACnet路由器可以将两个或多个BACnet网络互联起来,构成一个BACnet互联网络,是建构BACnet网络的关键设备。BACnet路由器使用BACnet网络层协议报文来维护路由表。BACnet网络层协议数据单元中含有以下信息:
1)版本:表示当前BACnet协议的版本号;
2)控制:含有BACnet NPDU的控制信息;
3)DNET:目标网络号;
4)DLEN:目标MAC层地址长度;
5)DADR:目标MAC层地址;
6)SNET:源网络号;
7)SLEN:源MAC层地址长度;
8)SADR:源MAC层地址;
9)Hop Count:转发计数;
10)报文类型:指明网络层报文类型;
11)Vendor ID:生产商标识;
12)NSDU:网络层服务数据单元。
在“控制”域中,BACnet规定了4种优先级不同的网络层报文,优先级由高到低分别为:
1)生命安全报文;
2)关键设备报文;
3)紧急报文;
4)正常报文。
不同优先级的BACnet网络层报文表示了数据通信的紧急程度,BACnet路由器要按照优先级的高低次序处理BACnet网络层报文。一旦路由器接收到高优先级报文,必须要保证优先处理,并且为此要不惜丢弃一些低优先级报文。在通常的应用状况下,大部分BACnet网络层报文是正常报文,生命安全报文、关键设备报文和紧急报文等高优先级报文虽然占少数,但是必须得到及时处理。
BACnet路由器作为实现BACnet网络互联的节点设备,可以为专用节点,也可以与其他节点共用一个网络节点。前者可以不实现BACnet应用层协议功能,只实现网络层协议功能。
BACnet路由器作为一个BACnet设备,支持Device对象,支持对Who-Is-Router-To-Network报文、I-Am-Router-To-Network报文、Who-Has报文和I-Have报文的处理,支持对读属性、读多个属性、写属性和写多个属性服务的处理,因此需要实现对报文网络层、应用层的处理。
4.4.1 路由表和路由表的管理方式
1.路由表
路由器均通过“端口”与BACnet子网络相互连接。路由器报文路由的功能是通过描述端口及其互连子网络之间关系的数据结构——路由表实现的。在BACnet互联网络中,路由器的每一个端口与一个BACnet子网络相连,并分配一个相应子网类型的MAC地址。路由表中反映端口连接子网络的运行状态,BACnet标准的路由表由“端口表”组成。其中每一个端口表项包括下面的重要信息项:
1)端口的MAC地址,所占字节数与MAC地址长度相等。
2)与该端口直接相连的BACnet网络的网络号,占用2B。
3)通过此端口可通达网络的网络号列表每个这些网络的可通达的状态。
2.路由表的管理方式
路由表的管理采取如下的方式:
1)启动时,向每个端口广播一个I-Am-Router-To-Network报文,其中包含有每个可通达网络的网络号。同时还广播发送Who-Is-Router-to-Network报文、I-Am-Router-To-Network报文,并清空Router.ini文件的[RouterTable]段里面的路由表。
2)当收到别的路由器广播的I-Am-Router-To-Network报文时,在路由表中填上网络号、端口ID和端口信息,端口信息即为该路由器的IP地址。
3)当收到Initialize-Routing-Table报文时,分为添加记录、修改记录、删除记录和直接回复4种情况进行处理。
4.4.2 路由器的运行和路由器流量控制
1.路由器的运行
图4-4给出了路由器运行的流程图。
2.路由器流量控制
出现下面的情况时,BACnet路由器缓存器会出现溢出:路由器接收报文时,如果流量大于它的处理速度,产生溢出后,将导致数据丢失。因此BACnet路由器设置了一种功能,当它的缓存器将要溢出时,它能够通知源设备暂停发送数据或者放慢发送的速度。在BACnet网络中,路由器使用Router-Busy-To-Network报文和Router-Available-To-Network报文来实现流量控制的功能。
图4-4 BACnet网络路由器运行流程图
4.4.3 一种BACnet路由器产品
美国科动控制系统(苏州)有限公司生产的一种BACnet路由器如图4-5所示。该路由器用于在BACnet/IP、BACnet以太网和BACnet MS/TP网络之间路由消息。
部分性能参数:
1)BACnet/IP网络和BACnet®MS/TP网络之间发送信息;
2)10Mbit/s/100Mbit/s以太网直线、交叉自适应;
3)LED诊断,包括MS/TP数据流监视器;
4)美国联邦通信认证标准CFR 47,Part 15 Class A;
5)通过网页服务器试运行,重新设置及纠错;
6)可移除MS/TP端口连接头;
7)钉轨安装需要24V交流或直流电源;
8)MS/TP波特率:9600~76800bit/s。
按照美国国家标准协会和美国采暖、制冷与空调工程师学会标准ANSI/ASHRAE 135(ISO 16484-5)标准,BAS Router可以在BACnet/IP网络与BACnet MS/TP网络之间进行数据转发。它能够使得BACnet/IP设备通过以太网和MS/TP设备通信。路由器是由35mm的钉轨安装,通过24V交流或直接电源通电。每个产品上有一个MS/TP端口,一个10Mbit/s/100Mbit/s以太网端口。路由器可以通过WEB页面进行参数设置。
MS/TP端口提供一个光隔离收发器,还有EIA-485连接的3-pin的接线端子。通过这个端口,可以找到127个设备的地址,本地总线上有多达31个负载设备。所有MS/TP的波特率为9.6~76.8kbit/s。
以太网端口提供一个屏蔽RJ-45连接头。通过自动协商和直线、交叉自适应功能,可以自动适应连接设备的双工设置、速率和信号极性。
内置网页服务器可以通过网页浏览器用来试运行,重新设置和纠错。可以通过自配的交换机把路由器设置为工厂初始IP地址。
产品上有3个LED显示灯,绿灯显示电源。以太网LED灯显示绿色为100Mbit/s,显示黄色为10Mbit/s,若闪烁表明活动。LED绿灯闪烁显示收到MS/TP信号。
图4-5 一款BACnet路由器