1. 项目背景与需求分析
在工业称重场景中,托利多(Toledo)地磅作为高精度称重设备,通常通过RS232/RS485串口输出称重数据。传统的数据采集方式需要工控机直连串口,存在布线复杂、数据孤岛等问题。本项目通过有人串口网关(USR系列)实现称重数据的MQTT协议转换,将地磅数据实时上传至云端MQTT服务器(如阿里云IoT平台),构建轻量级物联网称重系统。
核心需求拆解:
- 硬件层:托利多电子地磅(标配RS232串口)
- 传输层:有人USR-TCP232系列串口网关(实现串口到以太网协议转换)
- 协议层:MQTT 3.1.1(轻量级发布/订阅模型)
- 云端:阿里云IoT平台(支持MQTT协议的消息中转)
2. 硬件连接与网关配置
2.1 物理连接拓扑
code复制托利多电子地磅(RS232)
│
↓ (DB9串口线)
有人USR-TCP232网关
│
↓ (网线)
企业局域网
│
↓ (互联网)
阿里云MQTT Broker
2.2 串口参数配置
通过浏览器访问网关管理界面(默认IP:192.168.0.7),关键配置项:
- 串口参数(需与地磅保持一致):
- 波特率:9600(常见地磅默认速率)
- 数据位:8位
- 停止位:1位
- 校验位:无
- 工作模式:选择"TCP Client"或"MQTT Client"模式
- 心跳包间隔:建议设置60秒(防止NAT超时)
注意:托利多部分型号地磅采用特殊波特率(如19200),需通过地磅仪表菜单确认实际参数。
2.3 网络参数配置
- 本地IP:设置为企业内网可用地址(如192.168.7.43)
- 远程服务器:填写阿里云MQTT Broker地址:
- 华东1节点:
a1nNXXXXX.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883
- 华东1节点:
- MQTT连接参数:
- ClientID:
device01|securemode=3,signmethod=hmacsha1| - Username:
device01&a1nNXXXXX - Password:通过阿里云控制台生成的设备密钥
- ClientID:
3. 数据协议解析与转换
3.1 地磅原始数据格式
托利多串口典型输出(ASCII格式):
code复制ST,GS, 00012.50 kg
字段说明:
- ST:数据开始标识
- GS:分隔符(ASCII 29)
- 00012.50:当前重量值(含小数点)
- kg:重量单位
3.2 数据转换方案
在有人网关中配置"数据预处理"功能:
- 数据过滤:设置起始符
ST和终止符CRLF - 字段提取:使用分隔符
GS拆分字符串 - JSON格式化(网关高级功能):
json复制{
"weight": 12.50,
"unit": "kg",
"timestamp": "$timestamp"
}
3.3 MQTT主题设计
建议采用分层主题结构:
- 发布主题:
/toledo/weight/device01/data - 订阅主题:
/toledo/weight/device01/cmd(用于远程指令)
4. 阿里云IoT平台配置
4.1 产品与设备创建
- 登录阿里云IoT控制台
- 创建产品:
- 节点类型:直连设备
- 联网方式:Wi-Fi/以太网
- 数据格式:透传/自定义
- 添加设备:
- DeviceName:device01
- 获取三元组(ProductKey, DeviceName, DeviceSecret)
4.2 物模型定义
定义重量数据的TSL模型:
json复制{
"schema": "weight_monitor",
"properties": {
"weight": {
"type": "double",
"unit": "kg",
"accessMode": "r"
}
}
}
5. 故障排查与优化
5.1 常见问题速查表
| 现象 | 排查步骤 | 解决方案 |
|---|---|---|
| 网关无法连接云端 | 1. ping测试网络连通性 2. telnet测试1883端口 |
检查企业防火墙设置 |
| MQTT频繁断开 | 查看网关日志中的CONNACK返回值 |
调整心跳间隔至30-60秒 |
| 数据格式错误 | 用串口调试工具直连地磅验证原始数据 | 修正网关的数据过滤规则 |
5.2 性能优化建议
- 数据压缩:启用MQTT的
Clean Session标志减少传输开销 - 本地缓存:配置网关在断网时缓存最新50条数据
- 安全加固:
- 启用TLS加密(MQTT over SSL)
- 定期轮换设备密钥
6. 扩展应用场景
基于MQTT数据流可构建:
- 实时看板:通过MQTT订阅实现Web端重量监控
- 自动打印:触发打印机在稳定重量时自动出单
- 数据融合:与ERP系统对接实现称重-库存联动
实际部署中发现,托利多某些型号的地磅在连续工作时会发送特殊状态码(如OL表示超载),需要在数据解析层增加异常状态处理逻辑。建议在首次调试时,先用串口监听工具记录完整通信过程,确保协议解析的完整性。