用 AI 给 PLC 程序做投运前审查:Learn-LAD 第 5 课
免费的 35 分钟图文课:让 AI 按固定清单只读审查 PLC 程序,产出带证据、分级、可复现的审查报告,投运前把"会停机"的缺陷先找出来。
一句话结论:接手一套没跑过的博途程序,最危险的错觉是"编译 0 错误 0 警告,所以没问题"。编译器只查语法和一致性,不查"没箱子时进料输送机也在转"这类跨网络的逻辑缺陷。Learn-LAD「PLC AI 实战」系列的第 5 课(免费图文,约 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(把 TIA Portal 接给 AI Agent 的 MCP 网关,本地运行,工程数据不出厂),再加一个支持 Streamable HTTP MCP 的客户端(Claude Code、Cursor、VS Code 等)即可。课程约 35 分钟,免费、无视频、不卖课。
不太适合:想找"一键 AI 优化代码"的人——这门课的方法论恰恰是反着来的:审查阶段零改动,所有发现都要人工复核后再走修复流程。
相关阅读
- AI PLC 编程:7 个免费实战课,每课都能验收 —— 本系列 7 节课的总览拆解;
- 接手遗留 PLC 程序的 4 步取证 —— 审查之前的现场取证与基线方法;
- Learn-LAD 梯形图示例库 —— 本课所用分拣箱示例的出处;
- TIA Openness MCP 的写保护与边界 —— 让 AI 改博途程序时的写保护设计。
有兴趣可以直接看课程原文,任务书和报告模板都可以照抄去用。
这是「AI × 工业 / PLC」专题的一部分。完整地图见:AI × 工业 / PLC 完全指南