# 2026 MoonBit 黑客松项目申报书

### 1. 项目名称
MoonPLC —— 纯 MoonBit 软 PLC 运行时与 IEC 61131-3 子集编译器

### 2. 项目简介
MoonPLC 是基于 MoonBit 实现的轻量级工业软 PLC 系统，包含 IEC 61131-3 结构化文本 (ST) 与梯形图 (LD) 编译前端、确定性三段式毫秒级扫描周期执行引擎、工业闭环 PID 控制器与 Modbus 现场总线协议栈，支持 Native CLI 与 WebAssembly 浏览器工业孪生实时仿真。

### 3. 项目方向与通用性说明
- **项目方向**：语言与开发工具（解释器、运行时、编译器/DSL）/ 系统与网络基础设施。
- **通用性说明**：项目设计高度模块化，核心库（AST、扫描调度器、过程映像内存、PID 与 Modbus 协议）完全通用，既可作为嵌入式工控边缘控制器的核心固件，也可作为高校自动化教学仿真实验的通用纯前端 Wasm 引擎，还能发布为 Mooncakes 通用工业基础构件。

### 4. 预期使用场景
1. **轻量化工业边缘软控制器**：部署于工业边缘网关（如树莓派/工控机），通过 Modbus 协议采集现场传感器数据并执行确定性控制逻辑。
2. **高校自动化教学与实验仿真**：工科师生无需安装庞大商业工控软件，在浏览器端即开即用学习 IEC 61131-3 标准语言，直观调试梯形图与红绿灯/电机动效。
3. **工业过程闭环控制与数字孪生**：利用内置抗饱和 PID 控制器与扫描周期调度器，模拟化工厂水温恒温、恒压供水及物流流水线推杆分拣的数字孪生系统。

### 5. 拟实现的核心功能
1. **IEC 61131-3 编译前端**：支持 ST 词法与语法分析、时间字面量与直接寻址，支持梯形图（LD）布尔网络与比较触点向 AST 的等价编译。
2. **确定性扫描周期引擎**：严格实现“输入采样 -> 逻辑执行 -> 输出刷新”三段式周期调度与微秒级时基推进。
3. **标准功能块与控制算法**：内置 TON/TOF/TP/TONR 定时器、CTU/CTUD 计数器、双稳态触发器、边沿检测及抗积分饱和闭环 PID 控制器。
4. **工业通信与虚拟机支持**：支持 Modbus 现场总线通信协议（FC 01/02/03/05/06）与 IL 字节码指令虚拟机执行。
5. **双形态交互仿真**：包含 Native 终端 CLI 交互运行与零依赖 WebAssembly 浏览器 SCADA 工业孪生控制台。

### 6. 项目属性
原创项目（基于 MoonBit 从零独立架构与实现）。

### 7. 参考与来源说明
无外部代码移植。系统严格遵循国际电工委员会 IEC 61131-3 工业标准规范与 Modbus 协议规范独立设计实现。

### 8. GitHub 仓库链接与提交说明
- **仓库链接**：https://github.com/lycvvt/Moonplc
- **提交情况**：当前已完成 16 个真实有效、符合规范的语义化 commits，涵盖从 AST、编译器、调度引擎、PID 控制器、Modbus 协议、IL 虚拟机到 32 项自动化单元测试的完整开发演进过程，无任何无意义拆分或空提交。
