OpenPLC V4:从开源教学玩具到工业级 vPLC
2026 年初,OpenPLC 迎来了一次”换骨”级更新。原作者 Thiago Alves 把项目从个人仓库 thiagoralves/OpenPLC_v3 迁移到新公司 Autonomy-Logic 名下,V3 已于 2026-04-04 归档停更(EOL)。这不是简单的版本号递增,而是一次从架构、许可到商业模式的整体重写。
本篇是系列开篇,先帮你把”V4 到底是什么、适合谁”这件事想清楚,后续几篇再逐层展开协议栈、实战部署、安全与 AI 集成。
图:V3(带网页仪表盘的控制器)到 V4(headless 运行时 + 桌面 Editor 经 HTTPS/JWT 管理)的架构重写。
一、所有权与版本线
| 项 | OpenPLC v3 | OpenPLC v4 |
|---|---|---|
| 维护方 | Thiago Alves(个人) | Autonomy-Logic(公司) |
| 仓库 | thiagoralves/OpenPLC_v3(已归档只读) | Autonomy-Logic/openplc-runtime + openplc-editor |
| 状态 | EOL,2026-04-04 归档 | 当前活跃分支 |
| 新项目建议 | 仅维护既有系统 | 新部署从这里开始 |
注意:很多照搬的旧教程混用了 v3 的安装命令、v3 的截图和 v4 的连接步骤,这是大量”照着做却跑不通”的根因。动手前先确认你下的是哪一版。
二、架构重写:从”带网页的控制器”到 headless 运行时
V3 的经典形态是一个带 Web 仪表盘的运行时,浏览器开 :8080 就能上传程序、看变量、配硬件。
V4 把这套网页前端整个砍掉,变成纯 headless 工业 PLC 运行时:
- 管理走 OpenPLC Editor(桌面端) 通过 HTTPS
:8443+ JWT 连接; - 调试走安全 WebSocket 通道,支持实时变量监视与强制写入;
- 运行时本身只暴露 REST API,不含任何网页前端(用浏览器直接开
:8443返回 404 属正常)。
这一点在笔者的 LuckFox 嵌入式板实测中已被印证:部署后
https://192.168.5.2:8443只有 REST 接口,图形化编程必须靠桌面 Editor 连上去。详见本系列实战篇与笔者另一篇部署记录。
三、许可变化(对商用最关键)
V3 给人的印象是”GPLv3,随便玩但要注意传染性”。V4 把许可拆得更精细,且对嵌入产品明显更友好:
| 组件 | V4 许可 | 含义 |
|---|---|---|
| Runtime v4 | MIT | 可闭源嵌入你的商业产品,无 copyleft 义务 |
| Editor v4 | GPL-3.0 | 修改编辑器本身需开源 |
| v3 Runtime(EOL) | GPLv3 | 旧印象的来源 |
结论:如果你要把 OpenPLC 运行时塞进自己的硬件/设备里卖,V4 的 MIT 运行时从根本上消除了 v3 的传染性顾虑;只有当你去改编辑器源码时才受 GPL-3.0 约束。
四、能力清单(V4 给了什么)
- IEC 61131-3 全五语言:LD、ST、FBD、IL、SFC(FBD 在 v4.0.2-beta 落地,目前 4/5 已成);额外支持 Python / C / C++。
- 实时性:
SCHED_FIFO优先级调度,提供确定性扫描周期(典型 10–100ms)。 - 插件系统:Python 与 C/C++ 插件扩展硬件 I/O 与工业协议。
- 多平台:Windows / macOS / Linux / Raspberry Pi / Arduino。
- 云编排:Autonomy Edge 做 vPLC 的云管理与部署;vPLC 可在嵌入式到云服务器间任意运行。
五、它适合什么、不适合什么
| 场景 | 建议 |
|---|---|
| 教育、研究、原型验证、安全研究 | ✅ OpenPLC V4 首选 |
| 低关键度 / 非安全相关自动化 | ✅ 可用 |
| 需要功能安全认证(SIL)的产线 | ❌ 走商业 PLC / CODESYS |
| 需要冗余、热备、微秒级确定性 | ❌ 商业硬件更合适 |
经验法则:OpenPLC 用于学习、安全研究和低关键度自动化;生产级工业控制、认证与冗余交给商业 PLC 或 CODESYS 运行时。
六、本系列导航
- 本篇:定位与边界
- 协议栈变迁:OPC UA / S7 / EtherCAT 上位,DNP3 / EtherNet/IP 退场
- 实战入门:Docker 拉起 + 第一个启保停电路
- 树莓派 GPIO:3.3V 与 24V 之间
- 编译器管线:STruC++ 取代 MatIEC
- 安全设计:TLS/JWT/8443
- 插件系统:自定义 FB 与协议驱动
- AI 增强 PLC:本地 LLM 做预测性维护
- Autonomy Edge 与 vPLC:PLC 上云与边缘编排
配套代码与参考仓库
- OpenPLC Runtime v4(Autonomy-Logic,MIT):https://github.com/Autonomy-Logic/openplc-runtime
- OpenPLC Editor v4(Autonomy-Logic,GPL-3.0):https://github.com/Autonomy-Logic/openplc-editor
- 本系列配套示例(Docker Compose / 启保停 ST / GPIO 接线 / AI agent):https://gitcode.com/linjian19901122/openplc-v4-samples
系列导航 · 双向链接(OpenPLC V4 系列 · 共 12 篇)
- ① 定位:从教学玩具到工业级 vPLC
- ② 协议栈变迁
- ③ 实战入门:Docker + 启保停
- ④ 树莓派 GPIO 与隔离
- ⑤ 编译器管线:MatIEC → STruC++
- ⑥ 安全设计:TLS/JWT/8443
- ⑦ 插件系统实战
- ⑧ AI 增强 PLC(预测性维护)
- ⑨ vPLC 与 Autonomy Edge
- ⑩ 实时性 vPLC:实验室→车间
- ⑪ 为什么选 SOEM(EtherCAT 主站)
- ⑫ Edge Control 机遇与挑战
本系列当前均为草稿(
draft: true)。建议发布序:① → ③ → ② → ④ → ⑧ 打头,⑩⑪⑫ 作深度延展按读者反馈穿插。