做物联网开发,这17种工业协议你必须懂

0 阅读5分钟

做物联网平台开发,最怕的就是协议对接。客户说"我们要接西门子 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…

觉得有用请收藏,有问题评论区见。