> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 用 AI 给 PLC 程序做投运前审查：Learn-LAD 第 5 课
- URL: https://www.hubwiz.com/blog/ai-plc-program-review-lesson/
- Published: 2026-10-21T12:21:54.000Z
- Updated: 2026-10-21T12:22:33.000Z
- Description: 免费的 35 分钟图文课：让 AI 按固定清单只读审查 PLC 程序，产出带证据、分级、可复现的审查报告，投运前把"会停机"的缺陷先找出来。
- Author: admin
- Tags: AI × 工业, PLC, 程序审查, 博途, TiaLink

**一句话结论**：接手一套没跑过的博途程序，最危险的错觉是"编译 0 错误 0 警告，所以没问题"。编译器只查语法和一致性，不查"没箱子时进料输送机也在转"这类跨网络的逻辑缺陷。[Learn-LAD「PLC AI 实战](https://tia.hubwiz.com/learn-lad/ai/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-program-review-lesson)」系列的[第 5 课](https://tia.hubwiz.com/learn-lad/ai/plc-program-review/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-program-review-lesson)（免费图文，约 35 分钟）讲的就是补上这道缺口：让 AI 在**只读**前提下，按固定清单给一套 PLC 程序做投运前的程序审查（code review），产出一份带证据、分严重级别、可复现的《程序审查报告》。

## 这门课在系列里的位置

「PLC AI 实战」是一套面向博途工程师的免费图文课，主线是把"敢让 AI 碰真工程"拆成一步一步可验收的台阶：读懂老工程 → 评估改动波及面 → 写块到编译 0/0 → 让程序在虚拟 PLC 里跑起来。第 5 课是投运前的最后一道工序——**这套程序哪里会出事，先修哪条**。

它刻意把"程序审查"和"代码点评"区分开：让 AI 说"命名不规范、建议拆网络"这类风格建议，听着都对，但没有一条能证明"会停机"。这门课对审查的定义很严格——**只读、按清单、只收有失败场景的缺陷**，风格偏好和没有失败场景的候选，一律挡在"发现"之外。

## 课程方法：一份任务书，四道关卡

课程的核心交付物不是知识，而是一份可以直接复制给 AI Agent 的**审查任务书**。它的结构值得单说：

**第一道关卡是审什么。** 课程给出 7 类固定清单：结构与调用、状态与保持（置位/复位配对、断电恢复）、时序与扫描（双线圈、边沿存储、定时器类型）、互锁与安全、数据与地址（类型越界、I/O 地址与硬件通道）、可维护性、可测试性。清单的作用是防止 Agent 只挑自己熟悉的方向看。

**第二道关卡是证据链。** 每条候选发现必须给全 7 个要件：块名+网络号+标签的证据、失败场景（什么输入/时序/硬件状态下出错）、严重级别（P0 停机安全 → P3 待确认）、置信度（确认/推断/无法确认）、最小改动建议、验证方法、以及**反证**——有没有别的网络或外部写入让结论不成立。"没有失败场景的候选不进报告"是任务书里的硬约束。

**第三道关卡是全局视角。** 课程特别强调"输出 → 写点"表：把每个输出被哪些网络、用什么指令写一遍列出来。多驱动、置位/复位配对错误、扫描顺序问题，单看一个网络是看不出来的，必须按输出做全局对账。

**第四道关卡是只读约束。** 审查阶段不修改任何对象、不保存工程，报告末尾要有"只读声明"。这一步的目标是先出报告，修复是后面的流程。

## 课程自己跑了一遍：靶子和成绩单

这门课不是纯方法论——它拿示例库里的**分拣箱（Factory IO）**开源示例当靶子实跑了一遍：Main（OB1）18 个梯形图网络 + 1 个 SCL 通信 FC，31 个标签，5 个系统实例 DB。这个示例刻意保留了原工程的真实缺陷，正好用来练审查。

按课程页给出的实测结果（本站未复测，数字以课程页为准），这一轮审查找到：

- **2 条 P1**：右分拣不按箱型工作，左箱型时左右链条可能同时动作；进料输送机被 3 个网络同时驱动，没箱子也在转、停止不保持；
- **2 条 P2**：出料执行器只得到一个扫描周期（10ms）的脉冲，电磁阀可能来不及动作；编译警告"使用了硬件中不存在的 I/O"；
- **1 条 P3**：程序内没有急停/安全逻辑——课程明确把它标为"无法确认"，因为原机可能有硬接线安全回路，这要电气图纸和安全评审说了算；
- **1 条误报被反证排除**：SCL 导出文本里出现拼接伪影，看起来像编译失败，实际让 TIA 真编译一遍是 0 错误。

最后这条是我认为整节课最值钱的一段。**AI 审查最大的风险不是漏看，而是把"看起来像问题"当成"已确认的缺陷"**。课程专门用一步做反证：对每条候选追问三个问题——有没有别的网络或外部写入让结论反转？信号是保持还是脉冲，失败场景还成立吗？有没有工艺要求说明这是故意的？三条"看起来很吓人"的候选就这样被降级或排除，报告里只留下能证实的部分。

这也是给所有想用 AI 审代码（不限 PLC）的人的一个通用提醒：**编译结论只信编译器，别用文本导出代替真实编译；"确认"和"推断"必须分开标注。**

## 编译、仿真、人工，三件事不能互相替代

课程反复强调三类验证手段的边界：**编译**能查语法和一致性，查不出逻辑错误；**仿真/逐扫描推演**能验证逻辑行为，查不出接线、物理通道和安全回路；**人工确认**负责工艺意图、硬件配置和安全评审。报告里每条发现都要标验证方法，不能拿其中一种冒充另一种。

安全部分尤其严格：课程口径是"AI 是辅助审查，结论必须人工复核"，急停/安全功能必须由有资质的人确认，报告不能作为安全认证，也不能从"程序里没有"推出"机器不安全"。这条红线和本站一贯的立场一致——AI 辅助，人工把关。

## 适合谁，需要什么

**适合**：要接手别人（或以前自己）写的博途工程的电气/自动化工程师；想让 AI 参与程序评审但不知道怎么约束它的团队；以及想把 7 类清单固化成团队评审模板的人——课程明说这套"7 类 + 证据 + 反证 + 分级"可以直接当 MR/评审模板用。练习对象不限于示例，课程建议拿自己的一个老工程按任务书审一遍，先只出报告、不改代码。

**前置条件**：一台装了 TIA Portal V19 的 Windows 机器，加上 [TiaLink](https://tia.hubwiz.com/tia-link?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-program-review-lesson)（把 TIA Portal 接给 AI Agent 的 MCP 网关，本地运行，工程数据不出厂），再加一个支持 Streamable HTTP MCP 的客户端（Claude Code、Cursor、VS Code 等）即可。课程约 35 分钟，免费、无视频、不卖课。

**不太适合**：想找"一键 AI 优化代码"的人——这门课的方法论恰恰是反着来的：审查阶段零改动，所有发现都要人工复核后再走修复流程。

## 相关阅读

- [AI PLC 编程：7 个免费实战课，每课都能验收](https://www.hubwiz.com/blog/ai-plc-programming-7-lessons-verification/) —— 本系列 7 节课的总览拆解；
- [接手遗留 PLC 程序的 4 步取证](https://www.hubwiz.com/blog/taking-over-legacy-plc-program-4-steps/) —— 审查之前的现场取证与基线方法；
- [Learn-LAD 梯形图示例库](https://www.hubwiz.com/blog/siemens-plc-ladder-example-library/) —— 本课所用分拣箱示例的出处；
- [TIA Openness MCP 的写保护与边界](https://www.hubwiz.com/blog/tia-portal-openness-mcp-write-guards/) —— 让 AI 改博途程序时的写保护设计。

有兴趣可以直接看[课程原文](https://tia.hubwiz.com/learn-lad/ai/plc-program-review/?utm%5Fsource=blog&utm%5Fmedium=article&utm%5Fcampaign=ai-plc-program-review-lesson)，任务书和报告模板都可以照抄去用。

> **这是「AI × 工业 / PLC」专题的一部分。**完整地图见：[AI × 工业 / PLC 完全指南](https://www.hubwiz.com/blog/ai-industrial-stack/)