OpenPLC
工业自动化领域使用最广泛的开源技术栈。
现代化的 IEC 61131-3 IDE、可用于生产的运行时,以及连接二者的编译器。
- 2014
- 开源始于
- 100万+
- 下载量
- 150+
- 覆盖国家
- IEC 61131-3
- 支持第 3 版
安全源于设计,而非隐藏
自 2014 年起代码公开,经过每一位部署者的检验而不断加固。
隐藏不等于安全
封闭的运行时并不会因为无法阅读而更安全,只是被审视得更少。缺陷依然存在,而且只有厂商能去查找。
源代码可审计
你的安全团队阅读的是实际运行工艺过程的代码,而不是描述它的数据手册。我们的团队可以,其他任何人的团队也可以。
经过现场验证
在 150+ 个国家累计下载 100万+ 次。所覆盖的硬件、边界情况和极端使用,远超任何实验室测试所能复现的范围。
公开修复
问题的报告、修补和评审全部公开进行。你可以看到哪里出了问题、何时修复以及具体改动了什么。
三个组件,一套工具链
在 Editor 中编写逻辑,由 StruC++ 编译,再由 Runtime 执行。选择其中一项查看详情。
下载 OpenPLC Editor
面向工业自动化的开源 PLC 编程环境。 支持 Windows、macOS 和 Linux。
内置 PLC 仿真器,无需任何硬件,即可运行梯形图、ST 和 FBD 程序,并使用在线调试器进行调试。
新功能
编辑器中的 CoPilot
Autonomy CoPilot 同样可在编辑器中使用:输入时自动补全代码;在聊天中提出需求,它会编写代码,您审阅并批准后,结果才会进入项目。
使用 Autonomy Edge 账户登录
随时可以使用 Autonomy Edge 账户登录,把保存在那里的项目拉取到编辑器中,并在工作过程中持续对代码进行版本管理。
从源代码运行
前提条件
Git
版本控制
Node.js x64
版本 >= 20
操作步骤
1. 克隆代码仓库
git clone https://github.com/Autonomy-Logic/openplc-editor.git cd openplc-editor
2. 安装依赖项
npm install
3. 运行开发服务器
npm run start:dev
OpenPLC v4 背后的结构化文本编译器。 完整支持 IEC 61131-3 第 3 版,编译为真正可读的 C++17。
结构化文本会被转换为地道的 C++17,使用真正的类、虚方法和模板,便于调试、测试,并可直接集成到现有 C++ 项目中。
IEC 61131-3 第 3 版
覆盖第 3 版的广泛子集以及常用的 CODESYS 扩展:POINTER TO、类型化字面量和 64 位类型,并可直接导入 CODESYS 库。
真正的面向对象
支持类、虚方法、EXTENDS 和 IMPLEMENTS、访问修饰符、抽象和最终声明,以及带 GET 和 SET 访问器的属性。
用 ST 编写单元测试
内置测试框架,支持 SETUP 和 TEARDOWN、模拟 (mock)、断言和时间推进。运行测试无需 PLC 硬件。
交互式 REPL
单步执行编译后的程序,设置输入、查看变量,并将 ST 与生成的 C++ 并排对照阅读。
标准库
80 多个数学和实用函数,以及定时器、计数器和边沿检测器,全部用 ST 实现,并像你自己的代码一样编译。
零运行时依赖
单一可执行文件的编译器,加上仅含头文件的 C++ 运行时,可用 g++、clang++ 或 MSVC 构建。
许可
编译器采用 GPL-3.0 许可。C++ 运行时和标准库采用附带运行时库例外条款的 GPL-3.0,因此你编译的程序可以按照你选择的任何许可证分发。
现代架构
全新设计的架构,满足现代工业自动化的需求。
实时执行
SCHED_FIFO 优先级调度提供确定性的扫描周期,实现可靠控制。
WebSocket 调试
安全的 WebSocket 调试接口,支持实时查看和强制变量。
插件系统
可扩展的插件系统,支持 Python 和 C/C++ 插件,用于硬件 I/O 和工控协议。
多架构支持
能运行 Linux 的硬件,就能运行 OpenPLC Runtime。全面支持多种架构。
内置安全
从底层设计起,所有通信均采用 TLS 加密,并使用基于 JWT 的身份验证。
兼得两者之长
开源版用于学习、测试和开发。需要运行工厂时,选择 Autonomy Edition。
Community Edition
用于学习、测试和开发。与社区十年来一直使用的运行时相同。
- 完整源代码,无功能限制
- 运行时采用 MIT,编辑器和编译器采用 GPL-3.0:可使用、修改和再分发
- 通过社区论坛获取支持
- 广泛用于科研、教学和开发
Autonomy Edition
面向关键任务生产环境:按 IEC 62443 构建的安全性、专有驱动和工业协议,并提供配套支持。
- 可用于商业和生产环境
- 按照 IEC 62443-4-1 和 IEC 62443-4-2 安全标准构建
- 专有设备驱动和工业通信协议
- 由 Autonomy 提供商业支持和维护
安装
选择最适合你环境的安装方式。
Linux 原生安装
在 Linux 系统上以原生方式安装运行时,可获得最佳性能。
克隆并安装
git clone https://github.com/Autonomy-Logic/openplc-runtime.git cd openplc-runtime sudo ./install.sh
安装脚本会自动检测你的 Linux 发行版,安装所有必需的依赖,创建 Python 虚拟环境,编译运行时,并创建一个 systemd 服务来自动启动和管理运行时。
安装完成后,运行时会在 8443 端口监听来自 OpenPLC Editor 的连接。
管理运行时服务
查看状态
sudo systemctl status openplc-runtime.service
启动
sudo systemctl start openplc-runtime.service
停止
sudo systemctl stop openplc-runtime.service
重启
sudo systemctl restart openplc-runtime.service
Editor 的定位
同一套工具链可在四个地方运行。Editor 是你自行安装和运行的版本;Autonomy Node、Autonomy Edge 和 Edge on-prem 则在其他环境中运行它。
| OpenPLC Editor安装在你的电脑上 | Autonomy Node由设备提供 | Autonomy Edge托管在云端 | Edge on-prem托管在你自己的硬件上 | |
|---|---|---|---|---|
| IDE 运行位置 | 在你的电脑上 | 在设备上 | 在云端 | 在你自己的基础设施上 |
| PLC 独立于 IDE 运行 | 是 | 否 | 是 | 是 |
| 需在电脑上安装 | 是 | 否 | 否 | 否 |
| 需要互联网访问 | 否 | 否 | 是,仅用于管理 | 否 |
| 项目存储和版本历史 | 部分 | 部分 | 是 | 是 |
| 团队和细粒度权限 | 否 | 部分 | 是 | 是 |
| 批量部署到设备群 | 否 | 否 | 是 | 是 |
| AI 辅助 | 是 | 部分 | 是 | 是 |
如果你看的是旧教程
仍在使用 OpenPLC v3?
OpenPLC v3 已停止维护。不会再有 v3 新版本或修复,这也是 v3 编辑器经常无法在当前版本的 Windows、macOS 或 Linux 上安装的原因:问题出在版本而不是你的电脑,而且不会再有修复。
本页所有内容均为 v4,即仍在维护的版本。它像其他桌面应用一样安装,涵盖 v3 的全部功能,所有修复和新功能都在 v4 中发布。如果某个教程让你下载了无法运行的安装包,请从这里重新开始。


