跳到主要内容

BACnet/IP 从站

BACnet/IP 从站将数据转发组内的变量发布给楼宇自控主站。支持 Who-Is / I-Am、ReadProperty、ReadPropertyMultiple、Present_Value 写入、十六级命令优先级及确认和非确认 COV 通知。

转发组范围、公共变量和目标启停见数据转发。需要从其他 BACnet 设备采集数据时,选择 BACnet/IP 主站。

建立转发目标​

  1. 登录 WEB 配置页,进入“开发配置 → 数据转发”。
  2. 新建或选择转发组,设置变量范围;确认源变量已初始化且在线。
  3. 新增目标,选择“BACnet/IP 从站”,将通道类型设为 UDP,填写本地绑定地址,例如 0.0.0.0:47808。
  4. 设置网络内唯一的设备实例号、设备对象名称和实际厂商编号。初次验证时保持“允许写入”为否。
  5. 在“目标变量属性”中选择已属于该组的变量,填写对象类型、对象实例号和工程单位编号。
  6. 保存并启用目标,在“调试 → 操作 → 映射点表”核对对象地址、当前值和访问权限。

BACnet 从站监听状态与映射点表

仅保存目标变量属性不会把变量加入转发组。源变量不在组范围中、尚未初始化或离线时,不会用默认零值冒充有效数据。重复对象标识或名称会使建模失败,应先改正配置再重启目标。

目标参数​

参数说明
通道类型仅支持标准 UDP 会话;BACnet/IP 使用 IPv4。
本地绑定地址默认 0.0.0.0:47808。同一 IP 和端口应由一个目标独占;只在本机测试可填 127.0.0.1:47808。
设备实例号默认 1001,范围 0~4194303,必须在当前 BACnet 网络唯一。
设备对象名称默认 TGateway,不可为空,最多 255 字符,不能与变量对象重名。
厂商编号按实际分配的 BACnet Vendor ID 填写;默认值 0。
允许写入默认否。开启后仍需变量级写权限及源变量 RPC 写能力。
最大数据报字节数默认 1476,范围 64~1476,包含协议头。请求或响应超过预算时不会发送超大报文。
请求超时毫秒默认 5000,范围 100~120000,包含源变量回写等待。
最大 COV 关系数默认 128,范围 1~1024。同一来源最多 128 个关系,永久租约也计入容量。

远程地址、串口和 SSL 公共字段不用于此协议服务。不要开启 SSL;本插件不提供 BACnet/SC。

保存时会校验通道和协议参数;导入配置在启动前也会执行同样校验。最大数据报超出上述范围时应先修正配置,目标不会占用监听端口。

变量映射​

参数说明
对象类型支持 Analog Input / Output / Value、Binary Input / Output / Value、Multi-state Input / Output / Value。输入对象只读。
对象实例号范围 0~4194303,相同类型内必须唯一。调试地址以“类型编号:实例号”显示,例如 2:1。
对象名称留空时使用变量名;必须与全部对象及设备对象名称不同,最多 255 字符。
工程单位编号模拟量使用 BACnet 标准单位编号,默认 95 表示无单位。
撤销默认值默认 JSON 数值 0。所有命令槽释放后写回此值;多状态对象须配置至少为 1 的整数。
允许变量写入默认否;只有目标级和变量级权限都开启时才能命令输出或值对象。

模拟量使用 BACnet Real;二进制对象使用枚举 0 / 1,布尔源变量会转换为相应枚举;多状态对象使用大于零的无符号整数。选择与源变量和实际设备一致的类型。

设备对象支持 Object_List,数组索引 0 返回元素数量;可按索引逐项读取,避免一次请求过大。对象提供标识、名称、类型、Present_Value、相关单位与状态属性;可写对象另提供 Priority_Array 和 Relinquish_Default。未知属性返回协议错误。

批量读取中某个源变量离线或值类型不符时,该属性返回错误,其他有效属性仍正常返回。主站应逐项检查结果,不应将错误项当作零值。

读写和 COV 验证​

  1. 在映射点表中点击该行“网络探测”。
  2. 点击“网络读取”,核对结果与源变量当前值一致。探测使用网关主站驱动访问当前从站的真实监听端口。
  3. 在安全测试点启用目标、变量和源变量的写权限。
  4. 输入 JSON 数值,选择优先级后点击“网络写入并读回”,确认控制提示,再核对读回值及源变量。
  5. 撤销命令时,以相同优先级写入 JSON null。数值越小,命令优先级越高;优先级 6 为协议保留,不接受人工写入。
  6. 使用 BACnet 主站订阅对象 COV,验证初值和后续变化;确认通知需要客户端 ACK。续订应在租约到期前完成,取消需发送取消订阅请求。租约 0 表示永久关系。

BACnet 优先级写入与网络读回

低优先级命令不会覆盖高优先级命令;撤销后采用下一个有效槽值。修改映射或重启目标会清空运行时优先级数组及 COV 关系,主站应重新确认命令状态并订阅。

只有合法的 BACnet Null 才能释放指定优先级。携带正文的畸形 Null 或非法应用标签会被拒绝,不执行源变量回写,当前值和优先级槽保持原状。客户端收到拒绝后应检查应用类型和报文编码,再重新读取确认命令状态。

写入确认绑定打开提示时的目标、点位、值和优先级;切换目标或点位后原确认失效。修改输入后需要重新发起写入并确认。

范围与排障​

当前提供无分段 BACnet/IP,不提供 BBMD、Foreign Device 注册、跨网段路由、分段 APDU 或 BACnet/SC。跨网段部署应先确认网络方案适合此能力范围;大对象列表和批读应拆分请求。

现象处理方法
目标离线或端口绑定失败检查本地 IP、UDP 端口占用、转发组和目标使能,再查看目标日志。
能按 IP 读取但广播发现不到检查主站网卡、广播地址、防火墙与设备实例范围;优先使用直接地址验证。
没有映射对象检查组变量范围和目标变量属性,确认对象名称及标识没有重复。
写入拒绝或读回未变化检查双层权限、源变量 RPC、对象类型及优先级数组中更高优先级的命令。
超大请求返回 Abort缩小 RPM 批量;Object_List 按数组索引读取。
COV 停止检查租约、确认 ACK、关系容量及目标是否重启或改过映射,然后重新订阅。