plc-skill
v1.0.0
Published
> 生产级的工业控制编程 AI Agent 技能。采用“通用工程 + 品牌特化”的双层架构,既能处理通用的 IEC 61131-3 逻辑,又能为西门子、罗克韦尔、三菱、欧姆龙等主流 PLC 品牌提供深度、准确的路由和规范。
Maintainers
Readme
PLC_SKILL
生产级的工业控制编程 AI Agent 技能。采用“通用工程 + 品牌特化”的双层架构,既能处理通用的 IEC 61131-3 逻辑,又能为西门子、罗克韦尔、三菱、欧姆龙等主流 PLC 品牌提供深度、准确的路由和规范。
这是什么?
PLC_SKILL 是为 OpenClaw、Cursor、Claude Code 等 AI 编程工具设计的一个可扩展技能(Skill)。
与那些把所有 PLC 混为一谈的基础 Prompt 不同,本技能采用了分层架构:
- 通用 PLC 层:处理跨平台的工程规则(如状态机设计、扫描周期推理、模块化结构、联锁与报警模式)。
- 品牌特化层:当检测到特定的品牌或软件环境时自动介入,提供准确的语法、内存模型、软件环境规范以及官方文档索引。
这能有效防止 AI 生成“模糊的伪代码”,强制其输出结构清晰、可审查、且符合特定平台规范的控制逻辑。
核心能力
- 逻辑设计与生成:基于工程最佳实践,生成结构化文本 (ST)、梯形图 (LD) 和顺序功能图 (SFC)。
- 状态机与顺控:构建具有清晰状态流转逻辑和明确输出所有权的复杂步进顺控程序。
- 代码审查与重构:审查现有逻辑的可维护性,排查竞争冒险(Race Conditions)、双线圈冲突和混乱的 I/O 映射。
- 调试与排障:为在线调试提供系统性的故障隔离步骤。
- 品牌感知路由:在各大生态系统(如 Siemens TIA Portal, Rockwell Studio 5000, Mitsubishi GX Works 等)之间无缝切换上下文。
适用场景
当你需要 Agent 完成以下任务时,请触发此技能:
- 用结构化文本(ST)编写一个状态机或顺控器。
- 审查一段梯形图代码,寻找扫描周期引发的 Bug 或双线圈冲突。
- 将混乱的“面条式代码”重构为具有清晰 I/O 映射的模块化结构。
- 在现场调试时,排查特定的定时器、边沿触发或联锁逻辑为何失效。
- 将通用的控制逻辑概念映射到特定品牌的软件中(例如,如何在 Omron Sysmac Studio 中实现某功能)。
不适用场景:没有控制逻辑上下文的纯电气接线问题、宽泛的 IT 网络问题,以及要求给出明确安全认证结论(如 SIL/PL 级别)的场景。
仓库结构
ext
PLC_SKILL/
├── SKILL.md # Agent 的主入口点和触发规则
├── INSTALL.md # OpenClaw, Cursor, Claude Code 等工具的安装指南
├── references/
│ ├── common/ # 跨品牌通用规则:扫描周期、状态机、代码审查清单
│ └── vendors/ # 品牌特化模块:西门子、罗克韦尔、三菱、欧姆龙等
├── templates/ # 可复用的控制模式与模板代码
├── examples/ # 触发示例与生成样例
├── evals/ # 技能的回归测试矩阵
└── docs/guides/ # 架构、扩展与评估用例用户指南
安装与接入
在 Oh My OpenCode 中使用 (推荐)
本 Skill 专为 Oh My OpenCode 代理框架原生设计。
克隆本仓库到本地:
ash git clone https://github.com/YOUR_USERNAME/plc-skill.git cd plc-skill在您的 OpenCode 配置中注册此 skill。
在其他工具中使用 (Cursor, Claude Code 等)
请查看 INSTALL.md,了解如何在您喜欢的 AI 编程环境中配置和使用此技能。
设计原则
- 模块化优先于大而全:AI 输出应当是模块化、易于审查的代码块,而不是丢出一大坨无法维护的代码。
- 品牌隔离:绝不随意混合不同品牌的语法。如果品牌未知,AI 必须明确说明其所作的假设。
- 面对缺失信息保持克制:如果 I/O 列表或工艺要求不完整,Agent 必须提问或使用占位符,绝不捏造虚假的确定性。
- 安全边界:本技能明确拒绝在没有现场确认的情况下,为涉及安全(Fail-safe)的物理系统提供高置信度的结论。
贡献与扩展
当您需要添加或深化某个品牌模块时:
- 定义该品牌的识别信号(专有术语、软件名称)。
- 添加品牌 Overview 文件。
- 建立官方文档索引。
- 根据实际需要,补充特定的规则(如内存模型、指令差异)。
- 保持通用概念留在 common/ 目录中,避免污染各品牌的独立目录。
详细的扩展指南请参阅 docs/guides/adding-new-vendors.md 和 docs/guides/architecture.md。
