BACnet MS/TP 协议即主-从/令牌数据链路协议,
为现场控制总线提供可靠、实时数据传输服务
其物理层采用RS-485。
其中‘MS’的含义:MASTER/SLAVE (主/从)
‘TP’的含义:TOKEN PASSING(令牌传递)
BACnet MS/TP是建立在主从通讯基础上的无主从通讯,令牌传递为关键
对BACnet MS/TP的分析主要针对链路层
BACnet MS/TP是建立在主从通讯基础上的是因为:如果只观察BACnet MS/TP的一个通讯片段,它确实是主从通讯。这也是BACnet MS/TP中‘MS’的含义:(MASTER/SLAVE)。但观察全部通讯过程,会发现它是无主从通讯,其中的关键就是另外两个字母‘TP’的含义:TOKEN PASSING(令牌传递)。通俗的说,就是大家轮流做主,令牌传到谁的手里,谁就做主,没有令牌的做从。
图1是BACnet MS/TP的通讯过程:
图1是一个典型的通讯过程,在实际应用中,可能会跳过一些步骤,比如下图3(Airtek品牌小型DDC控制器架构):令牌传到控制器3,它没有什么命令要发,就直接把令牌传个下一个控制器。或者:控制器3命令控制器4,是一个无需应答的命令,控制器4没有应答,控制器3接着命令控制器1。得到令牌的控制器会发什么样的命令,取决于网络层和应用层的服务需求。
如何处理令牌丢失
如果一切正常,令牌会一圈又一圈轮流传递。但是意外总会发生的,例如:得到令牌的控制器发生故障了,这时网上一片寂静,但是每台控制器都默默地计算着寂静时间,一旦寂静时间超过了BACnet的规定,会有一台控制器抢先产生令牌,然后继续令牌传递的过程。这就是BACnet MS/TP对令牌丢失的解决办法。另外,控制器在传出令牌后会监视其他控制器对令牌的使用情况,如果得到令牌的控制器一直没动静,会被自动从令牌环中剔除。
即插即用
在令牌传递过程中,会有控制器在得到令牌时对本网段的空余位置发出查询命令,如果得到正确应答,说明有新的控制器申请加入令牌环,就把令牌传递给新的控制器,使其自动加入到令牌环中。因此,新的控制器加入网络,BACnet MS/TP会自动识别,无需重新配置。由哪台控制器何时发出查询命令,是由BACnet的算法决定的,这个算法的目的是使查询命令不占用过多的网络时间,并且新控制器可以在一个可接受的时间内被发现。
对主从通讯模式的兼容
令牌传递的过程将决定控制器无法采用低档CPU,所以对于一些简单应用不是很经济,比如:IO模块、BACnet传感器、BACnet执行器等,它们不需要主动通讯,因此主从模式的通讯也是必要的。由于BACnet MS/TP是建立在主从通讯基础上,因此对不需要额外的定义就可以支持主从通讯,简单的做法是使他们不加入令牌环,不响应主控制器查询命令。也就是说在主控制器的通讯源代码中删除一部分就可以应用在从模块中了。这时的通讯过程参见图3:
综述
从上面的分析可以看出,BACnet MS/TP虽然是较新的技术,但是它是建立在一些成熟的技术基础上的,并没有开发出一种独特的通讯模式。这样它可以和其他基础技术的发展一起前进,光纤中继的采用就是一个例子。基于成熟的技术,也是BACnet的基本思路,这也是BACnet能成功加入ISO标准的原因之一。