# plc-studio **Repository Path**: wanwuliandong/plc-studio ## Basic Information - **Project Name**: plc-studio - **Description**: PLC Editor,同一个开发环境和运行时支持TIA Portal / Codesys两种操作界面 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: development - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-30 - **Last Updated**: 2026-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PLC Studio 基于 **Tauri 2 + Vue 3** 的 IEC 61131-3 PLC 图形化编程 IDE,界面与交互对标 [OpenPLC Editor](https://github.com/Autonomy-Logic/openplc-editor) / Beremiz, 并提供类似西门子博途(TIA Portal)/ CODESYS 的**图形化拖拽编程**体验。 ![语言](https://img.shields.io/badge/IEC%2061131--3-LD%20%7C%20FBD%20%7C%20SFC%20%7C%20ST%20%7C%20IL-blue) ## 功能 - **五种 IEC 61131-3 语言** - **LD 梯形图**:电源轨、触点(常开/常闭/边沿)、线圈(普通/取反/置位 S/复位 R)、功能块、变量节点、连接器/延续、注释 - **FBD 功能块图**:从元件库拖入标准函数/功能块,引脚点击连线 - **SFC 顺序功能图**:步/转移/动作块/选择与并行分歧汇合/跳转,动作限定符(N/S/R/P…) - **ST / IL**:语法高亮文本编辑 - **博途式交互**:库面板拖拽或工具放置 → 引脚连线(预览线)→ 属性对话框;10px 网格吸附; Ctrl+滚轮缩放、平移、框选、图形复制粘贴、全操作撤销/重做 - **变量表 / 数据类型 / 资源(任务与实例)编辑器** - **代码链路**:图形模型 → 生成 ST(`build/plc.st`)→ 调用 [matiec](https://github.com/beremiz/matiec) `iec2c` 编译为 C 并解析错误(matiec 缺失时全功能可编辑,仅构建禁用) - **工程格式完全兼容 Beremiz**:目录式工程(`plc.xml` + `beremiz.xml`),可直接打开 Beremiz / OpenPLC Editor 的工程文件 ## 开发 ```bash pnpm install pnpm tauri dev # 桌面应用 pnpm dev # 仅前端(浏览器模式,构建功能不可用) pnpm test # vitest:XML 往返 + ST 生成(含 iec2c 编译验证,需 ~/matiec) pnpm build # vue-tsc 类型检查 + 前端构建 ``` 依赖:Node ≥ 20、Rust ≥ 1.77、Linux 需 `libwebkit2gtk-4.1-dev` 等 Tauri 标准依赖; 可选 `~/matiec`(含 `iec2c`)用于编译到 C。 ## 架构 ``` src/core/ 领域层(纯 TS):PLCopen TC6 XML ⇄ 模型、ST 生成器、标准库 src/bridge/ Tauri IPC 桥接(浏览器降级模式) src/app/ Vue 界面:Shell / 项目树 / 画布(SVG)/ 各语言编辑器 / 面板 src-tauri/ Rust:工程文件 IO、matiec 进程编排 ``` 关键设计见 [docs/需求与设计.md](docs/需求与设计.md);前端约定见 [docs/前端开发约定.md](docs/前端开发约定.md)。 ## 许可 MIT