目录
1. 前言(概述)
2. 前置条件与软硬件清单
3. 模块硬件通道配置指南(PLC 采集通道设置)
4. 采集变量组态配置(PLC 点位映射)
5. MQTT 客户端基础参数配置(连接鉴权、服务器参数)
6. MQTT 上下行通信协议规范(上报 / 下发 / 应答 JSON 报文)
7. 采集规则与传输策略配置(上传模式、休眠、轮询周期)
8. 典型对接案例(西门子 S7-1200 + 第三方 MQTT 平台)
9. 故障排查与常见问题
10. 附录(参数对照表、Topic 规范、错误码)
1 前言
1.1 产品简介
辰控智能远程硬解模块集成网口以太网 + RS485/232 串口双采集通道,原生内置 MQTT3.1.1 协议客户端,无需外置网关,直连西门子、三菱等主流 PLC,实现 PLC 寄存器数据实时上云、云端远程下发指令修改 PLC 变量,适配第三方私有 MQTT 服务器、华为 IoTDA、阿里云 IoT 等物联网平台对接。
模块分为以太网通道(最多 8 路网口)、串口通道(1 路硬件串口)两种采集链路,支持变化上传、周期定时上传双模式,硬件硬解码 PLC 协议,不依赖脚本解析,稳定性优于软解析方案。
1.2 MQTT 对接能力说明
1. 上行:PLC 实时变量主动上报:PLC 点位变化 / 定时周期触发 JSON 格式数据推送至 MQTT 服务端;
2. 下行:云端远程写控 PLC:MQTT 服务端下发控制报文,模块解析后写入 PLC 寄存器、M 区、DB 块点位;
3. 应答回执:写指令结果回复:模块收到下发写指令后,固定返回应答报文,反馈写入成功 / 失败状态码;
4. 协议固定版本:version:"1.0",全链路 UTF-8 JSON 编码。
1.3 文档适用范围
本文档面向设备工程师、物联网运维人员,指导辰控远程模块从 PLC 接线→通道配置→变量添加→MQTT 参数填写→平台联调全流程配置,对接任意第三方 MQTT Broker(华为 IoTDA / 自建 MQTT 服务器)。
2 前置条件与软硬件清单
2.1 硬件清单
序号 | 名称 | 规格参数 | 备注 |
1 | 辰控智能远程硬解模块 | XBOX-4G款(8 路网口 + 1 串口) | 硬件固件≥V2.3 |
2 | 西门子 S7-1200 PLC | IP:[192.168.2.55](192.168.2.55),端口 102 | 示例设备,可替换其他 PLC |
3 | 网线 / 串口线 | 超五类网线、RS485 屏蔽线 | 以太网 / 串口分别接线 |
4 | 上位调试电脑 | 安装辰控云组态配置软件 | 本地参数配置 |
2.2 软件清单
1. 辰控智能云组态配置工具(PC 端);
2. MQTT 调试工具(MQTT.fx,可选,用于报文调试);
3. 第三方 MQTT 服务信息:服务器 IP / 域名、端口、ClientID、账号、密码、发布 / 订阅 Topic(由平台方提供)。
2.3 网络前提
1. 模块与 PLC 同局域网(以太网采集),串口线正确接 PLC RS485 端子;
2. 模块可访问外网 MQTT 服务器(开放 1883 非加密 / 8883 加密端口);
3. 华为 IoTDA 对接需提前在平台创建产品、注册设备,获取 DeviceID、密钥、接入地址。
3 模块硬件通道配置指南(PLC 采集通道设置)
进入辰控云组态软件【网络通道配置】菜单,分为以太网通道(1~8 通道)、串口通道两类配置,模块默认 8 路网口、1 路硬件串口。
3.1 以太网通道配置(示例:通道 1 对接 S7-1200)
通道序号 | 协议类型 | PLC IP 地址 | 端口 | 运行模式 |
网络通道 1 | 西门子 S7 协议 | [192.168.2.55](192.168.2.55) | 102 | 单线程采集 |
通道 2~8 | 自定义模式 | [0.0.0.0](0.0.0.0) | 0 | 单线程(闲置默认) |
说明:闲置网口默认 IP [0.0.0.0](0.0.0.0),如需新增其他 PLC,修改对应通道 IP 与协议。 |
3.2 串口通道配置
串口通道固定硬件参数:波特率 9600、数据位 8、无校验 (N)、停止位 1(9600,N,8,1),支持 Modbus-RTU、自定义串口协议,如需修改串口参数在【串口通道配置】页签修改。
3.3 配置保存
通道参数填写完成后点击【保存通道配置】,模块自动重启通讯链路,约 30s 完成 PLC 握手。
4 采集变量组态配置(PLC 点位映射)
进入【变量配置】→【添加变量】,绑定已配置的 PLC 通道,支持 bool 布尔、float32 浮点数据类型,支持读写 / 只读属性配置,示例配置如下表(S7-1200 点位):
ID | 所属设备名称 | 变量名称 | PLC 寄存器地址 | 数据类型 | 读写属性 | 是否本地存储 | 说明 |
1 | S7 1200(Ethernet)_1 | 启动 | M30.2 | bool | 读写 | 不储存 | 设备启停开关,云端可下发修改 |
2 | S7 1200(Ethernet)_1 | 显示 | Q0.2 | bool | 只读 | 不储存 | PLC 输出点位,仅上报无法远程写 |
3 | S7 1200(Ethernet)_1 | 浮点启动 | DB1.12 | float32 | 读写 | 不储存 | DB 块浮点参数 |
4 | S7 1200(Ethernet)_1 | 浮点 1 | DB1.0 | float32 | 读写 | 不储存 | DB 块浮点数据 |
5 | S7 1200(Ethernet)_1 | 启动运算 | M30.3 | bool | 读写 | 不储存 | 运算使能点位 |
4.1 批量导入功能
支持 Excel 表单批量导入变量:【导入表单】→选择点位清单→一键生成全部变量,适用于上百点位批量配置场景。
4.2 热更新推送
勾选【热更新】,新增 / 修改变量无需重启模块,实时生效并同步 MQTT 上报规则。
5 MQTT 客户端基础参数配置
菜单路径:【采集配置】→【MQTT 上传平台】→选择「第三方 MQTT 服务器」,填写连接鉴权全参数。
5.1 MQTT 基础连接参数表
参数项 | 参数说明 | 必填 | 填写规范 |
服务器地址 | MQTT Broker 域名 / IP | 是 | 私有 MQTT 填 IP;华为 IoTDA 填平台接入域名 |
端口号 | MQTT 端口 | 是 | 非加密 1883,TLS 加密 8883 |
客户端标识 ClientID | MQTT 唯一客户端 ID | 是 | 平台分配唯一标识,华为 IoTDA 规则:产品 ID_设备 ID_0_时间戳 |
用户名 | MQTT 接入账号 | 可选 | Broker 开启鉴权时必填 |
密码 | MQTT 接入密钥 | 可选 | Broker 开启鉴权时必填 |
上传模式 | 数据触发模式 | 是 | 变化上传 / 定时周期上传 |
变量上报间隔 | 最小上报间隔 | 是 | 单位 ms,示例:10ms(最快轮询周期) |
休眠时间 | 闲置休眠时长 | 可选 | 长时间无变量访问,到达时间暂停采集节省带宽 |
补充:华为 IoTDA 对接时,ClientID、用户名、DeviceSecret 由平台注册设备后自动生成,直接复制填入配置框即可。 |
5.2 Topic 配置(发布 / 订阅)
1. 发布 Topic(上行上报):模块主动发布实时数据至该主题(平台订阅此 Topic 接收 PLC 数据);
2. 订阅 Topic(下行控制):模块订阅该主题,接收平台下发写控指令;
3. 应答 Topic(写指令回执):模块收到下发指令后,向应答 Topic 推送执行结果。
6 MQTT 上下行通信协议规范(JSON 报文,固定 version=1.0)
全链路 JSON 采用 UTF-8 编码,分为实时数据上报、云端下发写指令、指令应答回执三类报文,是模块与 MQTT 平台数据交互标准。
6.1 上行:实时变量上报报文(type:variant_data)
6.1.1 参数定义表
字段名 | 数据类型 | 必填 | 说明 |
type | string | 是 | 固定值:variant_data(标识实时数据上报) |
version | string | 是 | 固定:"1.0",协议版本 |
time | Number | 否 | 毫秒级 Unix 时间戳,模块本地系统时间 |
params | Object | 是 | 键值对:key = 变量名,value = 变量实时数值,支持多变量同时上报 |
6.1.2 标准示例报文
json |
触发规则:变化上传:变量数值发生改变立即上报;周期上传:按配置上报间隔定时全量上报所有变量。 |
6.2 下行:云端远程写控指令报文(type:write_variant)
平台向订阅 Topic 下发指令,模块解析后写入对应 PLC 点位。
6.2.1 参数定义
字段名 | 数据类型 | 必填 | 说明 |
id | string | 是 | 消息唯一流水 ID,平台随机生成,用于应答匹配 |
type | string | 是 | 固定:write_variant(远程写指令标识) |
version | string | 是 | 固定 "1.0" |
time | Number | 否 | 毫秒 Unix 时间戳 |
params | Object | 是 | key = 变量名,value = 待写入目标值,批量多变量写入 |
6.2.2 下发指令示例
json |
约束:只读变量(如 Q0.2 显示)无法下发写入,下发无效,应答返回错误码。 |
6.3 下行应答:写指令回执报文(type:write_variant_reply)
模块执行写指令后,固定发布应答报文,id 与下发指令 id 一一对应,code 为执行结果码。
6.3.1 参数定义
字段名 | 数据类型 | 必填 | 说明 |
id | string | 是 | 和下发 write_variant 消息 id 保持一致 |
type | string | 是 | 固定:write_variant_reply(写指令应答) |
version | string | 是 | 固定 "1.0" |
time | Number | 否 | 毫秒时间戳 |
code | int | 是 | 0 = 写入成功;非 0 = 错误码(见附录错误码表) |
6.3.2 应答报文示例
json |
7 采集规则与传输策略配置
7.1 上传模式选择
1. 变化上传(推荐):仅变量数值变更时触发 MQTT 上报,节省流量,适用于工业设备低频变化场景;
2. 定时全量上传:按上报间隔周期,全量推送所有配置变量,适用于需要全量快照的平台。
7.2 休眠配置说明
休眠时间:无任何变量数据交互达到设定时长,模块暂停 PLC 轮询采集、暂停 MQTT 上报;任意变量触发变化后自动唤醒恢复采集。
适用场景:设备夜间停机、长时间无人运维,降低模块功耗与流量消耗。 |
7.3 断线重连策略
模块内置退避式重连机制:MQTT 断开后首次 5s 重连,失败后间隔翻倍,最大重连间隔 120s;网络恢复自动重连 Broker,重连成功后补发断线期间变化数据(可选开启)。
8 典型对接案例:S7-1200 对接华为 IoTDA 平台
8.1 华为平台前置操作
1. 登录华为云 IoTDA 控制台→创建产品,产品模型添加属性:启动 (bool)、显示 (bool)、浮点启动 (float)、浮点 1 (float)、启动运算 (bool);
2. 产品下注册设备,获取接入域名、DeviceID、DeviceSecret(密码);
3. 获取平台系统 Topic:
○ 设备上报 Topic:$oc/devices/{device_id}/sys/properties/report(模块发布)
○ 平台下发 Topic:$oc/devices/{device_id}/sys/commands/request_id={xxx}(模块订阅)
○ 指令应答 Topic:$oc/devices/{device_id}/sys/commands/response/request_id={xxx}(模块发布回执)
8.2 辰控模块参数填写
1. MQTT 服务器地址:华为 IoTDA 对应区域接入域名,端口 8883(TLS 加密);
2. ClientID、用户名、密码按华为设备鉴权规则填写;
3. 发布 / 订阅 Topic 复制华为平台 Topic 填入组态软件;
4. 上传模式勾选「变化上传」,上报间隔 10ms。
8.3 联调验证
1. PLC 修改变量数值,查看华为平台设备详情页实时数据;
2. 华为平台控制台下发属性修改指令,查看 PLC 点位同步变化;
3. 平台查看模块返回应答 code=0,代表远程写入成功。
9 故障排查与常见问题
故障现象 | 排查方向 | 解决方案 |
MQTT 连接失败,模块日志提示无法连接 Broker | 1. 服务器地址 / 端口错误;2. 鉴权账号密码错误;3. 外网不通 | 核对 MQTT 参数,ping 服务器 IP,检查防火墙放行 1883/8883 端口 |
变量不上报数据 | 1.PLC 通讯断开;2. 变量配置错误;3. 上传模式设置错误 | 网口 ping PLC IP,核对 PLC 点位地址,切换定时上传测试 |
平台下发指令无应答 | 1. 订阅 Topic 错误;2. 变量为只读无法写入;3.PLC 离线 | 核对订阅主题,检查变量读写属性,排查 PLC 接线 |
上报数据乱码 | 编码格式异常 | 模块固定 UTF-8,平台接收端统一配置 UTF-8 解析 |
10 附录
附录 A:指令应答错误码对照表(code 字段)
错误码 | 含义 |
0 | 远程写入 PLC 点位成功 |
1 | 变量为只读,禁止下发写入 |
2 | PLC 通讯离线,点位无法访问 |
3 | 下发数据类型与 PLC 变量类型不匹配(bool 传入浮点) |
4 | 变量名称不存在(参数 params 键名错误) |
附录 B:PLC 点位规则速查表
1. M 区:M30.2→bit 布尔点位;
2. Q 区:Q0.2→PLC 输出,大多只读;
3. DB 块:DB1.0、DB1.12→DB 块浮点 float32。
附录 C:MQTT 安全配置建议
1. 公网对接优先启用 MQTTS(8883 端口 TLS 加密),禁用 1883 明文端口;
2. ClientID、账号密码定期轮换,禁止明文保存;
3. 华为 IoTDA 推荐使用证书鉴权模式,关闭密钥明文鉴权提升安全性。






