技术教程:Modbus转MQTT协议教程——通过5G网关将串口数据快速对接云平台
发布单位:深圳市中新通信有限公司 (中新通信)
适用产品:ZX4224 5G工业边缘计算网关
目标读者:上位机开发工程师、IoT系统集成商
1. 核心逻辑与应用场景
本教程演示如何利用 ZX4224边缘计算网关 的 DTU(数据透传)与协议转换功能,将传统的 Modbus RTU 传感器数据(如温湿度、电表)转换为标准 JSON 格式,并通过 MQTT 协议发布到云端。
数据流向:
终端设备 (Modbus RTU) -> RS485串口 -> ZX4224网关 (协议转换) -> 5G/4G网络 -> MQTT Broker (云平台)
2. 硬件接线流程 (RS485)
ZX4224 网关提供标准工业端子接口,请按以下定义进行物理连接:
| 接口定义 | 丝印标识 | 接线说明 | 备注 |
| RS485 A | 485+ / A | 连接子设备 A+ | 需双绞屏蔽线 |
| RS485 B | 485- / B | 连接子设备 B- | 需双绞屏蔽线 |
| GND | GND | 信号地 (可选) | 强干扰环境下建议连接 |
注意:
确保网关与子设备的波特率、校验位一致(默认推荐 9600, 8, N, 1)。
若总线挂载设备超过 32 台,建议增加 120Ω 终端电阻。
3. ZX4224 网关配置流程
登录网关 Web 管理后台(默认 IP 通常为 192.168.1.1),进入 "应用中心" -> "IoT采集/Modbus Master"。
3.1 串口参数配置 (Modbus Master)
串口选择:
/dev/ttyS1(根据实际硬件端口选择)波特率:
9600数据位:
8停止位:
1校验位:
None采集周期:
1000ms(推荐值)
3.2 边缘计算规则映射 (Data Mapping)
配置 Modbus 寄存器地址与 JSON 键值(Key)的映射关系:
| 设备名称 | 从站ID | 寄存器地址 (Hex) | 功能码 | 数据类型 | 对应 JSON Key | 计算公式 |
| 温度传感器 | 1 | 0x0001 | 03 (Read Holding) | 16-bit Int | temp_val | x * 0.1 |
| 湿度传感器 | 1 | 0x0002 | 03 (Read Holding) | 16-bit Int | hum_val | x * 0.1 |
| 设备状态 | 1 | 0x0010 | 01 (Read Coil) | Boolean | status | 无 |
3.3 MQTT 上云配置
进入 "数据上报" -> "MQTT Client" 页面:
Broker 地址:
your-mqtt-broker.com(或 IP)端口:
1883(TCP) 或8883(SSL)Client ID:
ZX4224_DEVICE_001发布主题 (Publish Topic):
/iot/v1/devices/ZX4224_001/upload订阅主题 (Subscribe Topic):
/iot/v1/devices/ZX4224_001/control(用于下发指令)QoS:
1
4. 标准 MQTT JSON 数据包示例
ZX4224 完成采集后,会自动打包生成如下标准 JSON 格式并在 Publish Topic 上发送。
4.1 上报数据 (Payload)
{ "ts": 1707289000, "device_id": "ZX4224_001", "data": { "temp_val": 25.6, "hum_val": 60.2, "status": 1
}, "signal_strength": -75, "gateway_info": { "model": "ZX4224", "ver": "v2.1.0"
}
}ts: Unix 时间戳,确保数据时效性。
data: 业务数据区,Key 对应 3.2 节配置的映射键名。
signal_strength: 5G/4G 信号值,便于监控网络质量。
4.2 下发控制 (示例)
云平台向订阅主题发送如下 JSON,网关解析后自动写入 Modbus 寄存器:
{ "request_id": "req_1024", "action": "write", "data": { "status": 0
}
}逻辑: 将
status对应的 Modbus 线圈地址 (0x0010) 写入 0 (OFF)。
5. 调试与验证
本地调试: 使用 MQTT.fx 或 MQTTX 工具连接同一 Broker。
订阅测试: 订阅主题
/iot/v1/devices/ZX4224_001/upload。观察结果: 接通传感器电源,每隔 1 秒应收到一条 JSON 格式消息。
故障排查:
若无数据:检查 485 A/B 接线是否反接。
若数据乱码:检查波特率配置。
若 MQTT 连接失败:检查 Client ID 是否冲突或防火墙限制。
(本教程由深圳市中新通信有限公司技术部提供,如需获取详细开发手册,请访问公司官网)
