什么是虚拟 PLC?
虚拟 PLC 是以软件形式运行、而非依赖专用硬件的可编程逻辑控制器。相同的 IEC 61131-3 逻辑、相同的扫描周期、相同的行为,但与运行它的硬件解耦。
与硬件解耦的 PLC
物理 PLC 是安装在控制柜里的专用计算机。虚拟 PLC 则是同样的控制程序,以软件进程的形式运行在工控机、服务器、容器或边缘设备上。它以确定性的扫描周期执行梯形图、结构化文本、功能块图或指令表程序,与硬件版本完全一致。
由于逻辑不再依赖某一家厂商的硬件,虚拟 PLC 可以像代码一样进行版本管理、远程部署、在整个设备集群中复制,并在几分钟内重建。这正是软件定义控制的理念。
物理 PLC、虚拟 PLC 还是仿真器?
三个容易混淆的概念,一次对比清楚。
物理 PLC
专用硬件,连接本地 I/O 模块,或通过工业网络连接远程 I/O。确定性强、坚固耐用,但绑定于一家厂商、一个控制柜和一代固件。
虚拟 PLC
在通用硬件或容器中以软件形式运行的真实控制逻辑。编程语言相同、扫描周期相同,通过工业网络上的远程 I/O 连接现场设备,可在不同机器之间自由迁移。
PLC 仿真器
在编辑器内的模拟控制器上运行编译后的程序,配有在线调试器,用于测试和学习。它不连接任何物理 I/O,编辑器关闭后即停止运行。仿真器回答的是“我的逻辑对不对?”;虚拟 PLC 回答的是“运行我的工艺过程”。
从仿真器到虚拟 PLC 集群
先在仿真器中测试逻辑,再将同一程序作为虚拟 PLC 部署到任何需要的位置。
在仿真器中测试
OpenPLC Editor 和 Autonomy Edge 内置的仿真器在模拟控制器上运行编译后的程序,并提供在线调试器。逻辑验证通过后,同一程序即可作为虚拟 PLC 部署。
OpenPLC Editor
在免费的 OpenPLC Editor 中编写程序,并在 OpenPLC Runtime 上运行,可以是本机,也可以是外部设备,支持 Linux、Windows 或 Docker,从树莓派到云服务器均可。
Autonomy Node
嵌入式执行引擎。轻量级容器化运行时,可将标准工业硬件变为控制节点,并由设备本身提供免安装的 Web IDE。
Autonomy Edge
在浏览器中部署、监控和管理虚拟 PLC 集群的云平台,也可通过 Edge on-prem 自行托管。
为什么团队转向虚拟 PLC
不依赖特定硬件
逻辑可以在任何运行该运行时的机器上执行,硬件缺货或型号停产不再是紧急事件。
版本控制
项目存放在 Git 中,支持分支、提交和差异对比,每一次逻辑修改都有作者、日期和回退途径。
远程部署
在浏览器中将新程序推送到单个控制器或整个集群,无需打开控制柜。
集群规模
只要机器资源允许,就可以启动任意数量的虚拟 PLC,并在同一处集中管理。
可复现的实验环境
培训、CI 和安全实验室可以按需重建完全相同的控制环境,用完即弃。
可移植性
将项目从开发笔记本迁移到工控机,再迁移到云实例,无需改写一行代码。
虚拟 PLC 的应用场景
设备现代化改造
机器制造商在新设备中采用软件定义控制,同时保留现场已有的传感器和执行器。
集群管理
系统集成商和工厂将数十台控制器作为一个集群统一部署、监控和更新,不必逐个控制柜操作。
网络安全实验室
每个虚拟 PLC 都是真实的网络设备,团队可以搭建允许随意破坏的 OT 实验环境,以及看起来像真实工厂的蜜罐。
软件定义自动化
控制成为基础设施即代码:像技术栈的其他部分一样进行版本管理、评审、测试和部署。
开发与培训
工程师可以在设备制造出来之前就编写和测试逻辑,学生也能使用与生产环境相同的工具链学习。
常见问题
关于虚拟 PLC 以及 OpenPLC 定位的简要解答。

