BACnet/IP
BACnet(Building Automation and Control Networks)是一种用于智能建筑的通信协议,它是由国际标准化组织(ISO)、美国国家标准协会(ANSI)和美国采暖、制冷与空调工程师学会(ASHRAE)定义的通信协议。BACnet 是专门为智能建筑及控制系统设计的通信协议,可用于暖通空调系统(HVAC)、照明控制、门禁系统、火警侦测系统以及其相关设备。其优点在于可降低维护系统所需成本,并且安装比一般工业通信协议更为简易。此外,BACnet 还提供了五种业界常用的标准协议,可以防止设备和系统供应商的垄断,从而增加未来系统的扩展性和兼容性。BACnet 协议支持多种通信方式,包括串口、IP、Ethernet、ZigBee 等。
Neuron 支持 BACnet IP 协议,可以通过 UDP 协议与 BACnet 设备进行通讯。
添加插件
在 配置 -> 南向设备,点击添加设备来创建设备节点,输入插件名称,插件类型选择 BACnet/IP 启用插件。
设备配置
点击插件卡片或插件列,进入设备配置页。配置 Neuron 与设备建立连接所需的参数,下表为插件相关的配置项。
| 字段 | 说明 |
|---|---|
| 设备 IP 地址 | BACnet 设备的 IP |
| 设备端口 | BACnet 设备的端口号,默认为 47808 |
设置组和点位
完成插件的添加和配置后,要建立设备与 Neuron 之间的通信,首先为南向驱动程序添加组和点位。
完成设备配置后,在南向设备页,点击设备卡片/设备列进入组列表页。点击创建来创建组,设定组名称以及采集间隔。完成组的创建后,点击组名称进入点位列表页,添加需要采集的设备点位,包括点位地址,点位属性,数据类型等。
公共配置项部分可参考连接南向设备,本页将介绍支持的数据类型和地址格式部分。
数据类型
- FLOAT
- BIT
- INT8
- UINT8
- UINT16
- BOOL
- STRING
地址格式
AREA ADDRESS(.PROPERTY_ID)
支持区域
| 区域 | 地址范围 | 属性 | 数据类型 | 备注 |
|---|---|---|---|---|
| AI | 0 - 0x3fffff | 读 | float | 模拟输入 |
| AO | 0 - 0x3fffff | 读/写 | float | 模拟输出 |
| AV | 0 - 0x3fffff | 读/写 | float | 模拟量 |
| BI | 0 - 0x3fffff | 读 | bit | 二进制输入 |
| BO | 0 - 0x3fffff | 读/写 | bit | 二进制输出 |
| BV | 0 - 0x3fffff | 读/写 | bit | 二进制值 |
| MSI | 0 - 0x3fffff | 读 | uint8 | 多状态输入 |
| MSO | 0 - 0x3fffff | 读/写 | uint8 | 多状态输出 |
| MSV | 0 - 0x3fffff | 读/写 | uint8 | 多状态值 |
| DEV | 0 - 0x3fffff | 读 | 设备 | |
| ACC | 0 - 0x3fffff | 读/写 | uint8 | 累加器 |
目前支持标准属性和自定义属性
标准属性
| 属性 | 地址 | 类型 |
|---|---|---|
| 对象名称 | Object_Name | string |
| 对象类型 | Object_Tyep | uint8 |
| 描述 | Description | string |
| 设备类型 | Device_Type | string |
| 状态标志 | Status_Flags | string |
| 事件状态 | Event_State | uint8 |
| 脱离服务 | Out_Of_Service | bool |
| 更新间隔 | Update_Interval | uint8 |
| 最小值 | Min_Pres_Value | float |
| 最大值 | Max_Pres_Value | float |
| 分辨率 | Resolution | float |
| COV增量 | COV_Increment | float |
| 时间延迟 | Time_Delay | uint8 |
| 通告类 | Notification_Class | uint8 |
| 通告类型 | Notify_Type | uint8 |
| 单位 | Units | uint8 |
| 高阈值 | High_Limit | float |
| 低阈值 | Low_Limit | float |
| 阈值宽度 | Deadband | float |
| 可靠性 | Reliability | uint8 |
| 极性 | Polarity | uint8 |
| 系统状态 | System_Status | uint8 |
| 厂商名 | Vendor_Name | string |
| 厂商ID | Vendor_Identifier | uint8 |
| 型号名称 | Model_Name | string |
| 固件版本 | Firmware_Revision | string |
| 应用软件版本 | Application_Software_Version | string |
| 位置 | Location | string |
| 协议版本 | Protocol_Version | uint16 |
| 协议一致类别 | Protocol_Conformance_Class | uint8 |
| 协议服务支持 | Protocol_Service_Supported | string |
| 协议对象类型支持 | Protocol_Object_Types_Supported | string |
| 序列号 | Serial_Number | string |
| 最大APDU长度支持 | Max_APDU_Length_Accepted | uint16 |
| 分段支持 | Segmentation_Supported | uint8 |
| 本地时间 | LOCAL_TIME | string |
| 本地日期 | LOCAL_DATE | string |
| 时差 | UTC_Offset | int8 |
| 夏令时状态 | Daylight_Savings_Status | bool |
| APDU分段超时 | APUD_Segment_Timeout | uint8 |
| APDU超时 | APUD_Timeout | uint16 |
| APDU重传次数 | Number_Of_APDU_Retries | uint8 |
| 最大主节点数 | Max_Master | uint8 |
| 最大信息帧数 | Max_Info_Frame | uint8 |
| 配置名 | Profile_Name | string |
| 频率 | Pulse_Rate | uint8 |
| 分频 | Scale | float |
| 预分频 | Prescale | float |
| 原值 | Value_Before_Change | uint8 |
| 修改时间 | Value_Change_Time | string |
不指定属性,默认为当前值(Present_Value)属性,DEV 区域除外。
自定义属性
PROPERTY_ID 由两部分组成,一个是 custom 标志,一个是属性的值(int),整体格式为 AREA ADDRESS.custom.id。
支持 Present Value 置零操作,目前支持 AO 和 BO 区域,地址形式为 (AO|BO)xxx.NULL,只支持写操作,根据区域的类型,写入类型的零值即可。
地址示例
| 地址 | 数据属性 | 说明 |
|---|---|---|
| AI0 | float | AI 区域,地址为 0 |
| AI1 | float | AI 区域,地址为 1 |
| AV30 | float | AV 区域,地址为 30 |
| BO10 | bit | BO 区域,地址为 10 |
| BO10.NULL | bit | BO 区域,地址为 10,写入NULL值 |
| BO20 | bit | BO 区域,地址为 20 |
| BI0 | bit | BI 区域,地址为 0 |
| BI1 | bit | BI 区域,地址为 1 |
| BV3 | bit | BV 区域,地址为 3 |
| MSI10 | uint8 | MAI 区域,地址为 10 |
| MSI20 | uint8 | MSI 区域,地址为 20 |
| MSI30 | uint8 | MSI 区域,地址为 30 |
| ACC1 | string | ACC 区域,地址为 1 |
| AI0.Object_Name | string | AI 区域,地址为 0,属性为对象名 |
| AI0.custom.1234 | ALL | AI 区域,地址为 0,属性值为1234 |
| DEV400001.Vendor_Name | string | DEV 区域,地址为 400001,属性值为厂商名 |