# aiDgePLCEditor **Repository Path**: galaxy_0/ai-dge-plceditor ## Basic Information - **Project Name**: aiDgePLCEditor - **Description**: 在工业物联网和边缘计算场景中,网关设备往往需要承担一定的本地逻辑控制任务。传统做法是网关负责采集转发,PLC 负责逻辑控制,两者各司其职但相互割裂——数据交换需要额外的通信配置,变量映射靠人工对齐,出问题后排查困难。aiDgePLC Editor 正是为了解决这个问题而开发的。核心目标只有一个:让 PLC 程序与 aiDgeController 网关之间的数据交换变得无感化 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-06 - **Last Updated**: 2026-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # aiDgePLC Editor [![Version](https://img.shields.io/badge/version-4.1.1-blue.svg)](https://gitee.com/galaxy_0/ai-dge-plceditor) [![License](https://img.shields.io/badge/license-GPL--3.0-green.svg)](./LICENSE) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)]() [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org/) [![STVM](https://img.shields.io/badge/stvm-bytecode%20compiler-orange.svg)](https://gitee.com/galaxy_0/stvm) [![IEC 61131-3](https://img.shields.io/badge/IEC-61131--3-blueviolet.svg)]() ## 简介 **aiDgePLC Editor** 是基于 [OpenPLC Editor](https://github.com/Autonomy-Logic/openplc-editor) 开发的下一代 PLC 编程 IDE。它继承了 OpenPLC Editor 的所有核心功能,并在此基础上进行了扩展和优化,为工业自动化领域提供了更强大的开发工具。 aiDgePLC Editor 已将编译后端从传统的 **matiec (iec2c) + Docker** 迁移至 [STVM](https://gitee.com/galaxy_0/stvm) 字节码虚拟机,实现 ST 源码直接编译为可执行字节码,告别 C 代码生成与容器化交叉编译。 ## 核心特性 ### 🔧 多语言编程 - **梯形图 (LD)** - 直观的电气逻辑视图 - **功能块图 (FBD)** - 模块化的图形编程 - **结构化文本 (ST)** - 高级文本编程语言 - **指令表 (IL)** - 低级指令编程 - **顺序功能图 (SFC)** - 流程控制编程 ### 🖥️ 高级代码编辑 - 基于 **Monaco Editor** 的专业代码编辑体验 - 语法高亮、自动补全、代码折叠 - 内置 Python 和 IEC 61131-3 代码支持 ### ⚡ STVM 字节码编译 - 基于 [STVM](https://gitee.com/galaxy_0/stvm) 虚拟机,ST 源码直接编译为 `.bytecode` 字节码 - 告别 matiec (iec2c) 的 ST → C 代码生成与 Docker 交叉编译,零容器依赖 - 编译产物与目标硬件解耦,Runtime 端通过 stvm-run 解释执行字节码 - 静态单文件分发 `stvmc` 编译器,仅依赖系统内核,部署即用 ## 技术架构 - **前端框架**: React 18 + TypeScript - **状态管理**: Zustand - **图形编辑器**: React Flow (@xyflow/react) - **代码编辑**: Monaco Editor - **样式方案**: Tailwind CSS + Radix UI - **打包工具**: Electron + electron-builder - **编译后端**: [STVM](https://gitee.com/galaxy_0/stvm) 字节码编译器 (`stvmc`) ## 编译流程 aiDgePLC Editor 采用 STVM 字节码编译流水线,替代原有的 matiec + Docker 方案: ``` 项目 JSON → plc.xml → program.st ──[stvmc --iec]──▶ program.bytecode ``` - `xml2st` 将 PLCopen XML 转换为 IEC 61131-3 标准 ST - `stvmc` 以 `--iec` 模式将 ST 编译为 `.bytecode` 字节码 - 字节码由 Runtime 端的 stvm-run 解释执行,无需 C 编译与链接 详细的迁移背景与技术方案见 [STVM 适配说明](./docs/stvm-adoption-blog.md)。 ## 快速开始 ### 环境要求 - [Git](https://git-scm.com/) - [Node.js](https://nodejs.org/) x64 版本 >= 20 > 编译工具链已内置 `stvmc` 字节码编译器,无需安装 Docker、matiec 或 gcc 交叉编译器。 ### 安装步骤 1. 克隆仓库 ```bash git clone https://gitee.com/galaxy_0/ai-dge-plceditor.git cd ai-dge-plceditor ``` 2. 安装依赖 ```bash npm install ``` 3. 运行开发版本 ```bash npm run start:dev ``` ### 构建发布版本 ```bash npm run package ``` 构建完成后,安装包位于 `release/build` 目录。 ## 发布新版本 项目使用 GitHub Actions 自动构建和发布所有支持的平台(macOS、Windows、Linux)和架构(x64、ARM64)。 ### 创建发布 只需创建一个新标签并推送: ```bash git tag v4.2.0 git push origin v4.2.0 ``` 这将自动完成: 1. 为所有平台和架构构建应用程序 2. 对 macOS 构建进行签名和公证 3. 创建包含所有构件的 GitHub Release 4. 基于自上次发布以来的提交生成发布说明 ### 版本号规范 - 使用语义化版本:`vMAJOR.MINOR.PATCH`(例如:v4.2.0) - 预发布版本添加后缀:`v4.2.0-beta`、`v4.2.0-alpha`、`v4.2.0-rc1` ## 与 OpenPLC Editor 的关系 aiDgePLC Editor 是 OpenPLC Editor 的开源分支,保留了所有原始功能: - 完全兼容 OpenPLC Runtime - 支持标准的 IEC 61131-3 编程语言 - 继承开放的架构设计 - 增加了 stcc aiDgeController 数据桥注入功能 - 编译后端由 matiec + Docker 迁移至 [STVM](https://gitee.com/galaxy_0/stvm) 字节码编译 我们感谢 [Autonomy Logic](https://github.com/Autonomy-Logic) 和所有 OpenPLC Editor 的贡献者。 ## 许可证 本项目基于 GPL-3.0 许可证开源。