KNXnet/IP(照明 / 遮阳 / 房间控制)
KNX 是欧洲楼宇/住宅自动化标准(ISO/IEC 14543-3),也是照明、遮阳(百叶)、HVAC、门禁领域最常见的协议之一。其原生介质为双绞线(KNX TP),但通过网关暴露到以太网的 KNXnet/IP 才是 PlantPulse 可直接处理的形式。
本网关采用 KNXnet/IP Tunneling 模式通信。
KNX 不是 PLC
KNX 是分布式“设备网络”。只有在现场存在事先用 ETS(KNX Engineering Tool Software)完成**组地址(Group Address)**与 DPT(Datapoint Type) 映射的工程文件时,才能读到有意义的数值。请向施工方 / KNX 集成伙伴索取 ETS 工程(*.knxproj)或组地址清单。
注册表单填写项
| 输入栏 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | KNX/IP 路由器、接口的 IP | 192.168.20.30 |
| 端口 | KNXnet/IP 端口 | 3671(标准) |
| Connection Type | tunneling / routing | tunneling(默认) |
代表性硬件:Siemens N146、ABB IPR/S、Gira X1、MDT IP 接口、Weinzierl KNX IP BAOS 等。
组地址(Group Address)
KNX 中各设备并不直接寻址,而是通过组地址收发报文。以下三种表示法可以指向同一个地址。
| 表示法(3-level) | 表示法(2-level) | raw | 含义 |
|---|---|---|---|
1/2/10 | 1/522 | 2570 | 主 1、中 2、子 10 |
0/0/1 | 0/1 | 1 | 第一个组 |
PlantPulse 的 PLC 地址栏建议使用 3-level 表示法(1/2/10),与 ETS 工程中的写法一致。
常见组地址模式
| 表示法 | 一般含义 |
|---|---|
1/0/x | 照明 ON/OFF |
1/2/x | 照明调光值(%) |
2/0/x | 遮阳(百叶)UP/DOWN |
3/0/x | 房间温度测量 |
3/2/x | 设定温度(Setpoint) |
上述模式仅为惯例 —— 实际映射由各站点的 ETS 工程决定。
DPT(Datapoint Type)是关键
KNX 的 raw 报文只是字节序列,不知道 DPT 就无法解析。常用 DPT 如下。
| DPT | 含义 | 数据格式 | 格式辅助 |
|---|---|---|---|
| DPT 1.001 Switch | ON/OFF | Boolean | (留空) |
| DPT 1.008 Up/Down | 0=Up, 1=Down | Boolean | (留空) |
| DPT 5.001 Scaling | 0~100 %(1 byte) | Integer | B |
| DPT 5.010 Counter | 0~255 | Integer | B |
| DPT 9.001 Temperature | 2 字节浮点(°C) | Float | REAL |
| DPT 9.002 Temp Difference | 2 字节浮点(K) | Float | REAL |
| DPT 9.004 Lux | 2 字节浮点(lx) | Float | REAL |
| DPT 14.x | 4 字节浮点 | Float | REAL |
| DPT 16.x | 14 字节字符串 | String | STR[14] |
将 PlantPulse 的 [数据格式] / [格式辅助] 列按上表设置后,后处理阶段会自动完成转换。
注册流程概要
- 在 ETS 工程中确认要读取的组地址(例:
3/0/12= 会议室温度)及 DPT(9.001) - 在 PlantPulse 中以 PLC 地址 =
3/0/12、数据格式 = Float、格式辅助 =REAL注册标签 - 轮询周期不要设置得过短 —— KNX TP 总线带宽很窄,容易拥塞(通常建议 5 秒以上)
常见问题与处理
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| “No tunneling slot available” | 超出 KNX/IP 接口的并发隧道数 | 关闭其他 ETS / Visu 客户端;升级为 IP 路由器 |
| 始终为 0 或 NaN | DPT 设置错误 | 重新确认 ETS 工程 / 施工方提供的组地址清单 |
| 数值相差 100 倍或 256 倍 | 混淆了 1 字节与 2 字节 DPT | 区分 DPT 5(1 byte 0~255)↔ DPT 9(2 byte float) |
| 部分组无响应 | KNX 的 Read 属性未启用 | 在 ETS 中为该组对象启用 “Read” flag |
| 一轮询其他设备就变慢 | KNX TP 9600 bps 带宽限制 | 加长轮询周期;考虑改用事件(GroupValue_Write)捕获方式而非 Read |
写入务必谨慎
向照明、遮阳组地址误写会真实驱动负载(灯被点亮、百叶下降)。在运行中的站点建议仅注册读取。
下一步
- 高级 — REST API 中的 KNX 示例
- 如果有 ETS 工程文件(
*.knxproj),向集成伙伴索取 CSV 格式的组地址 / DPT 清单,再用 CSV 批量上传 会更快。