ITPub博客

首页 > 应用开发 > Python > 做物联网开发,这17种工业协议你必须懂

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

原创 Python 作者:suoten 时间:2026-05-11 09:55:07 0 删除 编辑

做物联网平台开发,最怕的就是协议对接。客户说"我们要接西门子 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:  https://github.com/suoten/ProtoForge
📦 Gitee:  https://gitee.com/suoten/ProtoForge

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050062/viewspace-3117495/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2026-05-07

  • 博文量
    72
  • 访问量
    57279