BACnet对象详解:模拟输入对象AnalogInput

5星 · 超过95%的资源 需积分: 5 13 下载量 88 浏览量 更新于2024-07-09 收藏 252KB DOCX 举报
"18种BACnet对象说明文档提供了关于BACnet协议中不同对象类型的详细信息,包括模拟输入对象(AnalogInput)的结构体成员定义和一个读取模拟输入对象Present_Value属性的通信示例。" BACnet(楼宇自动化控制网络)是一种开放的、基于国际标准的通讯协议,广泛应用于楼宇自动化、智能建筑和设施管理等领域。它定义了18种基本的对象类型,这些对象类型涵盖了楼宇自动化系统中常见的各种设备和参数。以下是其中一种对象——模拟输入对象(AnalogInput)的详解: 1. **模拟输入对象(AnalogInput)** - **定义**:模拟输入对象用于接收连续变化的模拟信号,如温度、湿度、压力等传感器的数据。它们的属性包括Present_Value(当前值)、Status_Flags(状态标志)和Event_State(事件状态)等。 - **Present_Value**:这是模拟输入对象的核心属性,表示当前的测量值。在示例中,我们看到如何通过特定的BACnet协议报文结构读取这个属性。 在通信示例中,我们看到一个MSTP(Master-Slave/Token-Passing)协议的数据单元(LPDU),它是BACnet在总线型网络中的传输层协议。接下来是网络协议数据单元(NPDU),包含协议控制信息(PCI),它定义了报文的类型、优先级和服务类型。接着是应用协议数据单元(APDU),其中包括了服务请求的具体信息。 在APDU中,我们看到了以下关键信息: - **PCI**(PDU控制信息)指示这是一个APDU,且不分段,需要复杂确认。 - **MaxResp** 表示最大响应报文长度。 - **InvokeID** 是一个唯一标识符,用于匹配请求和响应。 - **服务类型**(ReadProperty)表示这是一个读取属性的服务请求。 - **对象标识符** 包含了对象类型(AI)和对象实例号。 - **属性标识符**(Presend_Value)指明要读取哪个属性。 在示例中,模拟输入对象的实例号被假设为2,而要读取的属性是Present_Value,其在BACnet中的枚举值为45。最后,示例中的APDU部分用F0B进行CRC校验,确保数据的完整性。 理解和掌握BACnet对象,尤其是像AnalogInput这样的关键对象,对于设计、配置和维护楼宇自动化系统至关重要。每个对象都有其特定的属性和行为,通过BACnet协议,设备之间能够有效地交换这些信息,实现自动化系统的协同工作。