网关实现温湿度传感器Modbus转BACnet项目案例
发布者: 管理员 阅读次数:49
一、项目概述
1.1 项目背景
某智能楼宇项目需要将分布在各楼层的环境温湿度数据接入楼宇自动化监控系统(BAS)。现场部署的温湿度传感器采用Modbus RTU协议(RS485接口),而楼宇监控平台采用BACnet/IP协议进行数据交互。两种协议无法直接通信,需要通过协议转换网关实现数据互通。
1.2 项目目标
-
采集温湿度传感器的实时数据(温度、湿度)
-
将Modbus RTU协议数据转换为BACnet/IP协议
-
使楼宇监控平台能够通过BACnet协议读取环境数据
-
实现数据的实时监测与历史记录
1.3 技术方案
采用VFBOX系列协议转换网关作为中间转换设备,实现:
-
南向采集:通过RS485接口,使用Modbus RTU协议采集温湿度传感器数据
-
北向转发:通过以太网接口,使用BACnet/IP协议将数据转发给楼宇监控平台
二、系统架构
┌─────────────────┐ BACnet/IP ┌─────────────┐ Modbus RTU ┌─────────────────┐
│ 楼宇监控平台 │ ◄──────────────────► │ VFBOX网关 │ ◄──────────────────► │ 温湿度传感器 │
│ (BAS系统) │ 以太网(UDP:47808) │ │ RS485(9600bps) │ (从站地址:1) │
│ │ │ • 协议转换 │ │ │
│ • 数据展示 │ │ • 数据映射 │ │ • 温度:40001 │
│ • 报警管理 │ │ • 实时转发 │ │ • 湿度:40002 │
│ • 历史趋势 │ │ │ │ │
└─────────────────┘ └─────────────┘ └─────────────────┘
三、硬件选型与准备
3.1 网关选型
根据项目需求(1个网口 + 1个RS485串口),选择 VB303-1100#128-1-B 型号网关:
-
硬件规格:1个以太网口 + 1个RS485串口
-
采集能力:128个数据点位(满足温湿度采集需求)
-
采集协议:Modbus(K=1)
-
转发协议:BACnet(L=B)
3.2 设备清单
|
序号
|
设备名称
|
型号/规格
|
数量
|
备注
|
|
1
|
VFBOX协议转换网关
|
VB303-1100
|
1台
|
协议转换核心设备
|
|
2
|
温湿度传感器
|
Modbus RTU, RS485
|
若干
|
从站地址1,温度40001,湿度40002
|
|
3
|
电源适配器
|
DC 12V/2A
|
1个
|
网关供电
|
|
4
|
网线
|
CAT5e
|
1根
|
连接网关与交换机
|
|
5
|
RS485通讯线
|
双绞屏蔽线
|
若干
|
传感器与网关连接
|
|
6
|
电脑
|
Windows系统
|
1台
|
安装VFBOX Studio配置软件
|
3.3 接线方式
电源接线:
-
网关V+ → 电源正极(DC 9-30V)
-
网关V- → 电源负极
RS485接线(传感器→网关):
-
传感器A+ → 网关A(RS485+)
-
传感器B- → 网关B(RS485-)
以太网接线:
-
网关Ethernet1 → 交换机/电脑(用于BACnet通信和配置)
四、传感器参数确认
4.1 温湿度传感器通信参数
|
参数项
|
设定值
|
说明
|
|
通信协议
|
Modbus RTU
|
串行通信协议
|
|
物理接口
|
RS485
|
差分半双工
|
|
波特率
|
9600 bps
|
默认配置
|
|
数据位
|
8位
|
|
|
校验位
|
无校验
|
None
|
|
停止位
|
1位
|
|
|
从站地址
|
1
|
设备ID
|
|
温度寄存器
|
40001
|
Holding Register,浮点型/整型
|
|
湿度寄存器
|
40002
|
Holding Register,浮点型/整型
|
五、网关配置步骤
5.1 准备工作
-
电脑IP设置:将电脑IP地址设置为192.168.1.198,子网掩码255.255.255.0
-
连接网关:用网线将电脑直连网关Ethernet1口(默认IP:192.168.1.199)
-
安装软件:从仰科官网下载并安装 VFBOX Studio 配置软件(管理员权限运行)
-
连通测试:打开CMD,执行ping 192.168.1.199,确认网络连通
5.2 新建工程
-
打开VFBOX Studio软件,点击 "新建工程"
-
输入工程名称,如:Building_HVAC_Modbus2BACnet
-
设备类型选择:VB30X-1100(与网关侧面标签型号一致)
-
点击菜单 "网关IP地址",输入192.168.1.199
5.3 配置Modbus采集(南向)
步骤1:添加采集设备
-
在左侧导航栏点击 "采集设备" → "新建设备"
-
驱动类型选择:Modbus RTU
-
设备名称:TempHumidity_Sensor
-
连接接口选择:COM1(RS485接口)
-
串口参数配置:
-
波特率:9600
-
数据位:8
-
校验位:None
-
停止位:1
-
设备站号(从站地址):1
步骤2:添加采集标签
根据BACnet协议推荐命名规范,创建以下标签:
|
标签名称
|
数据类型
|
寄存器地址
|
读写控制
|
描述
|
BACnet对应
|
|
AI1_Temp
|
Float/Short
|
40001
|
读
|
温度值
|
AI(模拟量输入)
|
|
AI2_Humidity
|
Float/Short
|
40002
|
读
|
湿度值
|
AI(模拟量输入)
|
操作步骤:
-
选中设备TempHumidity_Sensor
-
点击 "新建标签" 按钮
-
配置第一个标签(温度):
-
标签名称:AI1_Temp
-
数据类型:根据传感器实际输出选择(如Float或Short)
-
寄存器地址:40001
-
读写控制:读
-
描述:环境温度
-
同样方式添加第二个标签(湿度):
-
标签名称:AI2_Humidity
-
寄存器地址:40002
-
描述:环境湿度
命名建议:为便于BACnet侧识别,建议标签名使用AI1、AI2等前缀,对应BACnet的Analog Input对象。
5.4 配置BACnet转发(北向)
步骤1:启用BACnet服务
-
在左侧导航栏点击 "服务" → "BACnet"
-
启用BACnet/IP服务:
-
启用:Yes
-
设备ID:设置网关的BACnet设备实例号(如389001)
-
端口号:47808(BACnet默认UDP端口)
-
网络号:1
步骤2:添加BACnet对象映射
根据采集标签的数据类型,选择对应的BACnet对象类型:
|
BACnet对象类型
|
适用数据
|
对象名称建议
|
说明
|
|
AI (Analog Input)
|
模拟量输入(温度、湿度)
|
AI1,AI2
|
只读模拟量,如传感器数据
|
|
AO (Analog Output)
|
模拟量输出
|
AO1
|
可写模拟量,如设定值
|
|
AV (Analog Value)
|
模拟量值
|
AV1
|
内部计算值
|
|
BI (Binary Input)
|
开关量输入
|
BI1
|
只读开关量
|
|
BO (Binary Output)
|
开关量输出
|
BO1
|
可写开关量
|
操作步骤:
-
在BACnet服务配置界面,选择 "AI"(Analog Input)栏目
-
点击 "添加" 按钮(+图标)
-
在弹出的标签选择对话框中:
-
选择要映射的标签AI1_Temp
-
点击 OK 保存
-
重复操作,将AI2_Humidity也添加到AI栏目
-
点击 "保存" 按钮(磁盘图标)保存服务配置
注意:如果温度/湿度数据需要被楼宇系统控制写入,可选择AO类型;如果仅用于监测,选择AI类型。
5.5 下载工程
-
点击工具栏 "下载" 按钮(向下箭头图标)
-
等待下载完成,输出窗口显示Download OK
-
点击 "查看数据" 按钮,确认:
-
标签状态显示 "Good"
-
更新时间为当前时间
-
温度、湿度数值正常显示
六、系统测试与验证
6.1 使用YABE软件测试BACnet功能
YABE(Yet Another BACnet Explorer) 是一款免费的BACnet调试工具。
测试步骤:
-
环境准备:
-
关闭电脑防火墙
-
退出杀毒软件
-
确保电脑与网关在同一个局域网
-
启动YABE软件:
-
点击 "+" 号添加连接
-
选择 "BACnet/IP over UDP"
-
本地IP选择电脑当前网卡IP(如192.168.1.198)
-
点击 "Add" 按钮
-
扫描设备:
-
YABE会自动扫描网络中的BACnet设备
-
在"设备"树中应能看到VFBOX网关(显示为对应的设备ID)
-
查看数据:
-
展开网关设备节点
-
进入"地址空间"(Address Space)
-
找到AI1(温度)和AI2(湿度)对象
-
将节点拖动到"订阅"(Subscribe)窗口
-
实时查看数值变化
-
保存日志(可选):
6.2 楼宇监控平台接入
-
在BAS系统中添加BACnet/IP设备
-
输入网关的BACnet设备ID和网络地址
-
扫描并导入AI1、AI2等对象
-
在监控界面创建温湿度显示控件,绑定对应对象
-
配置报警阈值(如温度>30℃报警)
七、项目效果
7.1 数据流验证
|
检查项
|
预期结果
|
验证状态
|
|
网关采集温度
|
与传感器实际值一致
|
✓
|
|
网关采集湿度
|
与传感器实际值一致
|
✓
|
|
BACnet AI1对象
|
数值等于温度标签值
|
✓
|
|
BACnet AI2对象
|
数值等于湿度标签值
|
✓
|
|
数据刷新周期
|
≤2秒
|
✓
|
|
通信状态
|
Device_Status = 0(正常)
|
✓
|
7.2 系统功能实现
-
实时监测:楼宇平台实时显示各区域温湿度
-
历史记录:平台自动记录数据,生成趋势曲线
-
报警管理:超温/超湿自动触发报警
-
远程访问:通过BACnet/IP网络远程查看数据
八、常见问题与解决
|
问题现象
|
可能原因
|
解决方案
|
|
采集数据为0或不变
|
传感器接线错误
|
检查A、B线是否接反,确保A接A、B接B
|
|
BACnet扫描不到设备
|
防火墙阻挡
|
关闭电脑防火墙,开放UDP 47808端口
|
|
数据状态显示"Bad"
|
串口参数不匹配
|
核对波特率、数据位、校验位、停止位
|
|
温度数值异常
|
字节顺序错误
|
在设备属性中调整"寄存器顺序"(Float字节序)
|
|
BACnet对象值为空
|
服务未启用
|
检查BACnet服务"启用"是否设为Yes
|
|
下载工程失败
|
工程密码不匹配
|
确认工程未加密,或输入正确密码
|
九、项目总结
9.1 方案优势
-
协议兼容性强:VFBOX网关支持300+种工业协议,轻松实现Modbus到BACnet的转换
-
配置简单直观:通过VFBOX Studio图形化软件,无需编程即可完成配置
-
稳定可靠:工业级设计,支持-40℃~70℃工作温度,7×24小时稳定运行
-
扩展灵活:后续可增加更多传感器或其他协议设备,无需更换网关
-
成本优化:单台网关可替代传统PLC+协议转换模块方案,降低硬件成本
9.2 技术要点回顾
-
南向配置:Modbus RTU主站,RS485接口,9600bps,从站地址1
-
北向配置:BACnet/IP服务端,UDP 47808,设备ID自定义
-
数据映射:40001→AI1(温度),40002→AI2(湿度)
-
命名规范:遵循BACnet对象类型前缀(AI/AO/AV/BI/BO/BV)
十、附录
10.1 网关默认参数
|
项目
|
默认值
|
|
网关IP
|
192.168.1.199
|
|
串口波特率
|
9600, 8, N, 1
|
|
BACnet端口
|
47808 (UDP)
|