在楼宇自控网络中,各种设备之间要进行数据交换,BACnet 的对象提供了网络设备进行信息通信的“共同语言”。除此之外,BACnet 设备之间还要有进行信息传递的手段,例如,一个设备要求另一个设备提供信息,命令另一个设备执行某个动作,或者向某些设备发出信息通知已经发生某事件,等等。在面向对象技术中,与对象相关联的是属性和方法,属性用来说明对象,而方法是外界用来访问或作用于对象的手段。在BACnet 中,把对象的方法称为服务(Service),对象提供了对一个楼宇自控设备的“网络可见”部分的抽象描述,而服务提供了用于访问和操作这些信息的命令。
服务就是一个BACnet 设备可以用来向其他BACnet 设备请求获得信息,命令其他设备执行某种操作或者通知其他设备有某事件发生的方法。在BACnet设备中要运行一个“应用程序”,负责发出服务请求和处理收到的服务请求。这个应用程序实际上就是一个执行设备操作的软件。例如,在操作工作台,应用程序负责显示一系列传感器的输入信号,这需要周期性地向相应的目标设备中的对象发送服务请求,以获得最新的输入信号值;而在监测点设备中,它的应用程序则负责处理收到的服务请求,并返回包含有所需数据的应答。实现服务的方法就是在网络中的设备之间传递服务请求和服务应答报文。图4-25 所示为一个BACnet 设备接收服务请求和进行服务应答的示意图。
BACnet 定义了35 个服务,并且将这35 个服务划分为6 个类别,见表4-16,这些服务又分为两种类型,一种是确认服务(Confirmed,简单标记为“C”),另一种是不确认服务(Unconfirmed,简单标记为“U”)。发送确认服务请求的设备,将等待一个带有数据的服务应答。而发送不确认服务请求的设备并不要求有应答返回。对于每一个确认服务,BACnet 设备或者能够发送服务请求,或者能够处理并应答收到的服务请求,或者两者都能做。对于每一个不确认服务,BACnet 设备或者能够发送服务请求,或者能够处理收到的服务请求,或者两者都能做。BACnet 并不要求每个设备具有执行每个服务的能力,但是有一个服务是每个设备都必须能够处理的,这就是“读属性”服务。
图4-25 读属性服务示意
表4-16 设备对象属性
续表
续表(www.xing528.com)
1. 动态设备绑定—— 是谁(Who-Is)
Who-Is 和I-Am 服务由客户机在网络上广播;服务器回复I-Am 消息,包括设备ID 和MAC 地址,具体如图4-26 所示。跨越以太网设备交谈,出于通信的目的,必须用到其他设备的MAC 地址。称为动态设备绑定是因为,如果某设备死机并被更换,它的MAC 地址不同但分配的设备Device ID 是相同的;我们可以发送一个Who-Is 来发现新设备的新MAC 地址;Who-Is 服务通常使用网络管理工具学习网络。
图4-26 Who-Is 典型用法
2. 动态设备绑定—— 谁有(Who-Has)
Who-Has 和I-Have 服务是为了让你做动态对象绑定,确定哪些设备包含一个特定的对象,具体如图4-27 所示。设备实例响应的范围可以限制,通常使用网络管理工具学习网络。
图4-27 Who-Has 典型用法
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。