做物联网平台开发,最怕的就是协议对接。客户说"我们要接西门子 PLC",你一脸懵;客户说"支持 GB28181 国标",你连夜看文档。
今天一次性给你梳理清楚:工业领域最常用的 17 种通信协议,以及每种协议的原理、场景、避坑点。
文末送个福利:不用买硬件,电脑上就能仿真测试全部 17 种协议的工具。
一、现场层协议(设备直连)
1. Modbus RTU
原理:主从架构,RS485 总线,二进制编码,CRC16 校验场景:电表、温控器、变频器、传感器避坑:
- A/B 线反接(50% 故障根源)→ 万用表测 A-B 电压应为 +2~+6V
- 地址偏移:40001 → 实际发 0x0000(要减 1)
- 波特率不匹配:双方必须一致
2. Modbus TCP
原理:Modbus RTU + TCP/IP 封装,502 端口场景:国产 PLC、HMI、以太网仪表避坑:
- 端口冲突:Windows 需管理员权限启动 502 端口
- 防火墙拦截:需开放 502/TCP 双向规则
- 事务 ID 不匹配:有些客户端不检查,有些严格检查
3. PROFIBUS DP
原理:令牌环 + 主从轮询,最高 12Mbps场景:西门子 S7-300/400 产线避坑:
- 终端电阻:总线两端必须加 120Ω 电阻
- 段长度:1.5Mbps 时最大 200 米,超了要加中继器
二、控制层协议(PLC 通信)
4. Siemens S7
原理:ISO-on-TCP(RFC 1006),西门子私有协议场景:S7-1200/1500/300/400避坑:
- DB 块编号:S7-1200 从 DB1 开始,有些老设备从 DB0 开始
- 字节序:西门子用大端序,注意转换
5. Mitsubishi MC
原理:SLMP 协议,以太网通信场景:FX5U、Q 系列、L 系列 PLC避坑:
- 帧格式:3E 帧和 4E 帧不兼容,要确认 PLC 支持哪种
- 软元件范围:D 寄存器、M 继电器、X/Y 输入输出,范围不同
6. Omron FINS
原理:工厂自动化网络协议,支持 CIO/DM/WR 区域场景:CP1H、CJ 系列、NX 系列避坑:
- 网络号/节点号:FINS 地址包含网络号,配置错误连不上
- UDP vs TCP:默认 UDP,有些场景需要 TCP
7. Rockwell AB
原理:EtherNet/IP(CIP),罗克韦尔私有协议场景:ControlLogix、CompactLogix避坑:
- Tag 名大小写:AB 严格区分大小写
- 结构体访问:要用"Tag.Member"格式
三、上位机协议(数据交互)
8. OPC-UA
原理:面向服务架构,信息模型驱动,跨平台场景:数字孪生、跨品牌集成、安全上云避坑:
- 证书管理复杂,建议用私有 CA 统一签发
- 资源受限设备选 OPC UA Nano Profile
- Namespace 索引:不同服务器 Namespace 不同
9. OPC-DA
原理:经典 OPC,COM/DCOM 技术,Windows 专属场景: legacy 系统、C#上位机避坑:
- DCOM 配置复杂:权限、防火墙、身份验证
- 仅 Windows:Linux 要用 OPC-UA 替代
10. MQTT
原理:发布/订阅,轻量级,支持 QoS 0/1/2场景:传感器上云、手机 APP 告警、弱网环境避坑:
- QoS=1 消息可能重复:业务层需去重
- Broker 单点故障:生产环境必须集群部署
- retained 消息:会占用内存,注意清理
11. HTTP REST
原理:标准 HTTP,JSON 数据场景:Web API 对接、云平台集成避坑:
- 无状态设计:每次请求带认证信息
- 幂等性:POST 非幂等,PUT/DELETE 要幂等
四、专用协议(垂直行业)
12. GB28181
原理:国标视频监控,SIP+RTP场景:安防平台、摄像头对接、雪亮工程避坑:
- 设备 ID 格式:20 位数字,编码规则严格
- SIP 端口冲突:5060 容易被占用,建议改端口
- RTP 时间戳:单位是 90kHz,不是 1kHz
13. BACnet
原理:楼宇自动化,ASHRAE 135 标准场景:暖通空调、照明、安防避坑:
- 对象类型:AI/AO/AV/BI/BO/BV,选对类型
- 实例号冲突:同一网络实例号必须唯一
14. FANUC FOCAS
原理:CNC 数据采集,支持坐标/状态/参数读写场景:数控机床、智能制造避坑:
- 权限设置:FOCAS 需要开启以太网功能
- 并发限制:FOCAS 连接数有限,注意释放
15. MTConnect
原理:机床数据互联标准,XML 格式场景:智能工厂、设备监控避坑:
- XML 命名空间:严格匹配,否则解析失败
- 数据项 ID:不同厂商 ID 定义不同
16. Mettler-Toledo
原理:称重仪表协议场景:工业称重、配料系统避坑:
- 连续发送模式:注意缓冲区溢出
- 单位换算:注意 kg/g/lb 切换
17. PROFINET IO / EtherCAT
原理:实时工业以太网,周期通信场景:运动控制、机器人、高速产线避坑:
- 实时性要求:需要专用网卡或实时内核
- 拓扑结构:EtherCAT 是总线型,PROFINET 是星型
福利:不用买硬件,电脑上测试全部 17 种协议
上面这些协议,每种都要买对应的硬件来测试,成本至少 3 万 +。
推荐一个开源工具 ProtoForge:
它能做什么?
- ✅ 17 种协议全部仿真,点一下"全部启动"就搞定
- ✅ 90+ 设备模板,PLC/传感器/摄像头一键创建
- ✅ 实时调试日志,每个字节都看得清清楚楚
- ✅ 场景编排,多设备联动测试
- ✅ 自动化测试,14 种断言,CI/CD 集成
5 分钟上手:
git clone https://github.com/suoten/ProtoForge.git
cd ProtoForge
pip install -e ".[all]"
protoforge demo
浏览器打开 localhost:5173,admin/admin 登录,就能看到 17 个协议全部运行中。
谁在用?
- IoT 平台开发者:验证协议对接逻辑
- 工业软件公司:CI/CD 自动化测试
- 高校学生:毕业设计不用买硬件
- 个人开发者:低成本验证想法
📦 GitHub: github.com/suoten/Prot… 📦 Gitee: gitee.com/suoten/Prot…
觉得有用请收藏,有问题评论区见。