aiDgePLC Editor:为 aiDgeController 网关定制的 PLC 编程工具

在工业物联网和边缘计算场景中,网关设备往往需要承担一定的本地逻辑控制任务。传统做法是网关负责采集转发,PLC 负责逻辑控制,两者各司其职但相互割裂——数据交换需要额外的通信配置,变量映射靠人工对齐,出问题后排查困难。

aiDgePLC Editor 正是为了解决这个问题而开发的。它是基于 OpenPLC Editor(4.1.1 版本)二次开发的 PLC 编程环境,核心目标只有一个:让 PLC 程序与 aiDgeController 网关之间的数据交换变得无感化。

项目地址:https://gitee.com/galaxy_0/ai-dge-plceditor

一、它是什么,不是什么

先明确边界:

  • 它是什么:OpenPLC Editor 的增强分支,专门为 aiDgeController 网关的软 PLC 功能配套的编译工具。在保留官方版本全部 IEC 61131-3 编程能力的基础上,增加了编译期的数据映射处理、网关数据桥接代码注入,以及集成 Docker 容器化的交叉编译工具链。

  • 它不是什么:不是全新发明的编辑器,也没有添加 Python 支持。界面和编程体验与 OpenPLC Editor 基本一致——它本身就是基于 OpenPLC Editor 的 Electron + React 架构构建的。

二、解决的真实问题:数据映射

在 aiDgeController 网关的软 PLC 功能中,PLC 程序需要读写网关采集的设备数据。按照说明书的描述,用户只需在 PLC 程序中使用特定的变量命名格式:

<dp|dv>_<站点>_<变量>

例如 dp_site0_FS,就表示访问设备点表中站点 site0 下的 FS 数据点,在网关中表现为 site0.FS

这套命名规范本身并不复杂,但手工操作存在两个痛点:

  1. 编译前需要手动处理数据声明:如果每次编译前都要手动检查变量命名是否正确、站点与数据点是否存在,容易出错。
  2. 编译后需要手动注入桥接代码:PLC 程序编译完成后,需要额外添加与网关通信的胶水代码,这部分工作重复且容易遗漏。

aiDgePLC Editor 做的事情,就是在编译阶段自动完成这两步:

  • 编译期解析与转换:编译器自动扫描 PLC 程序中的全局变量,识别符合 dp__dv__ 前缀的变量,将其转换为网关可识别的数据访问指令。
  • 自动注入数据桥接器:编译过程中,自动向生成的代码中插入网关数据桥接模块,负责软 PLC 运行时与网关之间的变量实时同步通道。
  • 基本的数据隔离:根据变量前缀(dp 还是 dv)和站点名称,对不同来源的数据做区分处理,防止跨站点或跨类型的数据干扰。

这样用户就不需要手动编写任何数据交换代码了——在 PLC 程序里按规范命名变量,编译时自动搞定底层桥接。

三、交叉编译工具链:Docker 化打包

aiDgeController 网关支持多种硬件平台:x86_64、ARM32、AARCH64、MIPS32。要让同一份 PLC 程序在不同架构上运行,交叉编译是刚需。

传统做法是在每台目标设备上搭建编译环境,或者手动配置交叉编译工具链,整个过程比较繁琐。aiDgePLC Editor 的做法是:

  • 将交叉编译工具链打包成 Docker 镜像,随编辑器分发。
  • 在编辑器中选择目标平台后,自动拉取或使用本地对应的 Docker 镜像完成编译。
  • 编译产物是 .so 格式的动态库文件,可直接上传到 aiDgeController 的软 PLC 模块中加载运行。

整个流程用户只需在编辑器里选一下目标平台,其他步骤自动完成。

四、完整的软 PLC 工作流

结合 aiDgeController 网关(后端 C/C++ 采集引擎 + Vue3 Web 管理界面)来看,整体流程是:

  1. aiDgePLC Editor 中使用梯形图、结构化文本等 IEC 61131-3 语言编写控制逻辑。
  2. 按规范命名全局变量(dp_站点_变量dv_站点_变量),定义与网关的数据交互点。
  3. 选择目标硬件平台,执行编译。编辑器自动完成数据映射处理、桥接代码注入和交叉编译,生成 .so 动态库。
  4. 通过 aiDgeController Web 管理界面的“软 PLC”模块上传动态库,配置扫描周期(10ms-10000ms)或事件触发模式。
  5. 启动软 PLC,PLC 程序通过自动建立的桥接通道读写网关数据。

在整个链路中,aiDgePLC Editor 承担的是编译工具的角色——把用户的 PLC 程序变成网关可以直接加载的动态库,同时自动打通数据通道。

五、开源与构建

项目沿用 OpenPLC Editor 的 GPL-3.0 协议。如果你已经在用 aiDgeController 网关,或者在做类似的边缘计算方案,可以把这个工具集成到你的工作流里。

项目地址:https://gitee.com/galaxy_0/ai-dge-plceditor

欢迎 Star 和 Issue。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐