博文

一张表看懂 OpenPLC V4 的协议栈变迁:OPC UA / S7 / EtherCAT 上位,DNP3 / EtherNet/IP 退场

一张表看懂 OpenPLC V4 的协议栈变迁

做 SCADA / HMI 集成的人最关心的就是”它跟我的上位机能不能对话”。OpenPLC V4 在协议层做了大手术,方向是更偏真实工业现场,但也砍掉了两个老协议。

图:OpenPLC V4 工业协议栈变迁

图:Modbus 保底、OPC UA / S7 / EtherCAT 新增、DNP3 / EtherNet/IP 退场的协议栈矩阵(插件默认全禁用)。

一、插件清单(以 v4.2.x 为准)

V4 把协议与硬件 I/O 都做成插件,且默认全部禁用——装好运行时若不改 plugins.conf,它不吐任何现场总线。已验证的五个插件如下:

插件协议 / 作用语言默认启用V 版本变化
modbus_slaveModbus TCP 服务器(SCADA/HMI 读写 PLC)Python否V3 即有,V4 保留
modbus_masterModbus 主站(连远程 I/O)Python否V3 即有,V4 保留
opcuaOPC UA(V4 新增)Python否🆕 新增
s7commSiemens S7(via snap7,V4 新增)native否🆕 新增
ethercat原生 EtherCAT master(V4 新增)native否🆕 新增(V3 仅 opt-in 实验)

经验:启用插件后务必核对 plugins_default.conf 与运行容器的实际加载,确认端口与证书符合预期再接产线。

二、退场的协议

协议V3V4影响
DNP3支持❌ 移除与电力/水务 SCADA 对接需另寻网关
EtherNet/IP支持❌ 移除Rockwell/AB 系设备需走 OPC UA 或 Modbus 桥接

V3 的 webserver/webserver.py 里 start_dnp3、start_enip 在 V4 树中已无任何对应文件——这不是配置没开,是代码层面被删。

三、对 SCADA / HMI 集成的实际含义

  1. Modbus TCP 仍是万能底座:V4 内置 Modbus TCP 服务器,把 IEC 地址自动映射到标准寄存器,既有 SCADA/HMI 照常能连。这也是笔者 HMI Web Designer 项目(复用 OPC UA / Modbus TCP 架构)能直接对接 OpenPLC 的原因。
  2. OPC UA 上位打通:V4 新增的 opcua 插件让 OpenPLC 能作为 OPC UA 服务器暴露标签,对接 Ignition、KEPServerEX、UA 客户端类 HMI 不再需要 Modbus 中间层。
  3. S7comm 直连西门子:现场若已有 S7-1200/1500,可用 s7comm 插件直接通信,省去协议网关。
  4. EtherCAT 从站扩展:原生 EtherCAT master 让 V4 能驱伺服、远程 I/O 耦合器,闭环运动控制门槛降低。
  5. DNP3 / EtherNet/IP 用户:若你的系统依赖这两个协议,V4 不能直接替代 V3,需要保留 V3、或加协议网关(如通过 modbus_master + 网关设备桥接)。

四、配置要点

  • 插件默认关闭:编辑 plugins.conf(或运行容器内的 plugins_default.conf 副本),把目标插件 Enabled 改为 true 并重启运行时。
  • OPC UA / S7 走 native 或 Python 实现,注意 snap7 的许可与依赖。
  • EtherCAT 依赖 SOEM 子模块,源码编译时需联网拉取(笔者的 LuckFox 部署已验证 SOEM 可编入)。

五、结论

V4 的协议栈是”做减法聚焦核心,做加法补齐工业刚需”:砍掉偏小众的 DNP3 / EtherNet/IP,补上 OPC UA、S7、原生 EtherCAT 三块现代工厂最常被点名的拼图。对接上位机时,Modbus TCP 保底、OPC UA 升级是最稳的组合。

→ 下一篇:实战入门,把运行时跑起来。


配套代码与参考仓库

系列导航 · 双向链接(OpenPLC V4 系列 · 共 12 篇)

本系列当前均为草稿(draft: true)。建议发布序:① → ③ → ② → ④ → ⑧ 打头,⑩⑪⑫ 作深度延展按读者反馈穿插。

相关阅读

← 返回博文列表