乐于分享
好东西不私藏

开源了近二十年的这套工业软件,想换掉我们现在写 PLC 的方式

开源了近二十年的这套工业软件,想换掉我们现在写 PLC 的方式

Eclipse 4diac 是一套开源的工业控制开发环境,由 Eclipse 基金会维护。它跟常见的 PLC 编程软件不太一样:它做的是 IEC 61499 这个标准,而我们现在用的西门子博途、倍福 TwinCAT、CODESYS,走的都是 IEC 61131-3。

61131-3 是上世纪九十年代的标准,它的假设是「一台 PLC 管一摊事」——程序、扫描周期、IO,都绑在这台设备上。这个假设在过去三十年是成立的。但现在一条线上可能有十几个控制器、几十个智能节点,还得跟上位系统交换数据,你会发现不少工作量花在了「这段逻辑到底该放在哪台设备上」以及「设备之间怎么把数据传过去」。改一次设备分配,程序常常得跟着动一遍。

它的做法不一样

→ 程序是「功能块 + 事件连线」,不是扫描周期,61499 里功能块由事件触发才执行,不是每个周期都从头扫一遍→ 逻辑和硬件是分开画的,先画应用(谁跟谁连),再画系统(这些块分别下到哪台设备上),换设备分配不用重写逻辑——官方那句「design once use everywhere」说的就是这件事→ 分布式是写进模型里的,多台设备之间的数据传递由模型本身管,不用自己再糊一层通讯→ FORTE 是配套的运行时,C++ 写的,很小,能跑在嵌入式设备上,也能在电脑上跑仿真→ Windows 有现成的 IDE,3.2.1 版是打包好的 zip,解压就能开→ EPL-2.0,Eclipse 基金会项目,IDE 那个仓库九千多次提交,昨天还在合并分支

怎么跑起来

去 Eclipse 4diac 官网的下载页,拿 4diac-ide_3.2.1-win32.win32.x86_64.zip,解压运行。不用先有 PLC,IDE 里能建虚拟设备把流程走通。

有件事得说在前面

两件事。一是 FORTE 的现成二进制暂时没有——下载页上 3.2.0 的预编译版还写着「coming soon」,只有 2.0.1 及更早的版本给了二进制。也就是说你要在真设备上跑运行时,现在得自己用 C++ 编译一遍,这一步不算轻松。

二是别被 GitHub 上的星数骗了。 4diac IDE 那个仓库只有六十几颗星,看着像个小项目,实际它是 Eclipse 基金会下面维护了近二十年的东西,IDE 仓库九千多次提交,今年已经发了 3.0.2、3.1.0、3.2.0 三个版本,3.3 的里程碑版也出来了。星数低是因为工业软件的用户不太逛 GitHub,不是因为没人用。反过来说,它在国内的实际落地案例我也没找到多少,这个标准在国内自动化圈子里还很边缘,学了短期内未必有地方用。

仓库地址:https://github.com/eclipse-4diac/4diac-ide