Install
openclaw skills install @paudyyin/plc-code-toolkitPLC代码分析与审查工具包。12个维度系统化分析InoProShop/CoDeSys ST语言PLC代码,输出结构化报告和问题清单。
openclaw skills install @paudyyin/plc-code-toolkit对 InoProShop / CoDeSys ST 语言的 PLC 代码进行系统化、多维度分析与审查,输出结构化报告,帮助工程师识别潜在问题、安全隐患、逻辑缺陷和可维护性不足之处。
| 模式 | 目的 | 适用场景 |
|---|---|---|
| 分析模式 | 理解程序、梳理逻辑、描述程序做了什么 | 接手新项目、理解他人代码、文档化 |
| 审查模式 | 评判质量、找漏洞、给修改建议 | 代码投产前检查、质量审计、安全审查 |
OR 与 AND 混用时的运算符优先级问题(ST语言中最常见的逻辑缺陷)TRUE 用于安全相关字段的风险评估高优先级标准:任何防护装置硬编码 TRUE、急停未覆盖的工位、可能被 HMI 绕过的安全联锁
=> 后是否为空)g*、gb_*、gStru_*)的读写关系梳理hmi_功能启用[n])是否有未使用的索引hmi_*屏蔽)的覆盖范围hmi_功能启用[n])的索引分配与语义流程步号[n])的状态流转分析gb_*自动运行中 等)赋值条件是否完备(适用于具有左右对称结构的工位/设备,如左右胀管机、左右倍速链等)
out_xxx => 未连接)TRUE/FALSE 用于逻辑条件的潜在风险目标:确保调试临时代码在正式代码中已清除或已确认
检查项目:
TRUE(调试时常见临时处理)TRUE(跳过实际自动条件的调试痕迹)TRUE(跳过设备就绪检测)注意:调试残留(维度12)中的硬编码 TRUE 若出现在安全相关字段,同时标记到维度3(安全联锁)
每个维度按以下格式输出:
## 维度N:XXX
**总体评价**(一句话)
**结论**:通过 / 有问题 / 有风险
发现的问题:
1. [问题描述] → 位置:第X行 建议:[具体修改方案,附代码片段]
所有维度分析/审查完成后,输出汇总表格:
## 问题汇总清单
| 优先级 | 维度 | 问题描述 | 位置(行号)| 修改建议 |
|--------|------|----------|------------|----------|
| 高 | 安全联锁 | 左胀管机防护装置硬编码TRUE | 约8行 | 接入实际安全门信号 |
| 高 | 信号映射 | 停止按钮灯输出悬空 | 约3行 | 连接 do_主柜停止灯 |
| 中 | 可维护性 | 功能启用数组无注释 | 全文 | 添加索引含义注释 |
优先级定义:
用户可指定分析/审查深度,默认完整分析(12个维度):
| 模式 | 包含维度 | 适用场景 |
|---|---|---|
| 快速扫描 | 仅输出问题汇总表,不展开详细分析 | 大文件快速审阅 |
| 安全专项 | 维度3(安全联锁)+ 维度12(调试残留) | 投产前安全检查 |
| 逻辑专项 | 维度2(控制逻辑)+ 维度4(信号映射)+ 维度8(一致性) | 功能验证 |
| 完整分析 | 全部12个维度(默认) | 全面代码审查 |
用户也可指定只分析特定维度(如"只分析安全联锁和信号映射")。
| 文件后缀 | 类型 | 分析/审查重点 |
|---|---|---|
.action.st | ACT 动作块 | 工位主控、状态分发、信号联锁、调试残留 |
.prg.st | PRG 主程序 | 调用结构、执行顺序、全局协调、调用完整性 |
.fb.st | FB 功能块 | 接口定义、内部逻辑、状态机、接口完整性 |
.gvl | 全局变量 | 变量分组、命名规范、类型定义 |
.dut | 结构体定义 | 字段完整性、命名规范、注释 |
TRUE 若出现在安全相关字段,同时标记到维度3| 版本 | 日期 | 变更 |
|---|---|---|
| v1.1.0 | 2026-07-31 | 合并 plc-code-analyzer + plc-code-reviewer,新增维度12调试残留、审查深度选项、修改建议格式 |
| v1.0.0 | - | 初始版本(plc-code-analyzer) |
Version 1.1.0 — 12维度PLC代码分析与审查工具包