乐于分享
好东西不私藏

续:AI说的这些PLC bug是真的吗?我们人工验证了26个问题,结果出人意料

续:AI说的这些PLC bug是真的吗?我们人工验证了26个问题,结果出人意料

🔥 续:AI说的这些PLC bug是真的吗?我们人工验证了26个问题,结果出人意料

上一期,我们用一段500行真实生产环境的西门子S7-200 SMART STL代码,测试了4大AI的代码审查能力,共发现了26个疑似问题。

文章发出后,很多工程师在评论区留言:"AI说的这些bug真的会炸机吗?""有些问题看起来像是AI不懂工业逻辑的误判!""能不能人工验证一下,哪些是真问题,哪些是瞎扯?"

为了给大家一个最准确的答案,我们逐行人工比对了这段代码,并结合实际设备运行逻辑,对所有问题进行了逐一验证。

结果确实出人意料:超过30%的"bug"其实是AI的误判,有些甚至是工业程序中非常常见的设计手法。


📋 人工验证说明

本次验证严格遵循工业现场标准,将所有问题分为四个等级:

  • ✅ 真问题:确实存在逻辑错误,会导致设备异常或功能失效

  • ⚠️ 优化建议:不影响设备正常运行,但可以提升代码可读性或可维护性

  • ❌ 误判:AI对工业逻辑理解错误,问题本身不存在

  • 🟡 有瑕疵:AI的判断部分正确,但存在细节偏差

验证原则:

  1. 以实际PLC编译运行结果为准

  2. 结合工业现场的常见设计习惯

  3. 区分"逻辑错误"和"设计选择"

  4. 不追求完美代码,只关注是否影响生产

🔍 三大AI平台问题人工验证结果

3.1 某文心:3个真问题,1个完全误判

原AI提出的问题人工验证结果详细说明
Network5 NG落料超时索引错误(应存[11]而非[10])
✅ 真问题
确实会覆盖OK落料超时参数,导致NG超时功能异常
Network8 MOVR指令缺少目标操作数
✅ 真问题
指令不完整,编译无法通过,必须补全
Network10重复S/R指令是冗余,建议删除
✅ 真问题
经核对原始梯形图,确实多了一个无前置条件的S指令,与分支逻辑无关,属于无效冗余代码
INCD指令与数据类型不匹配
❌ 误判
已确认计数变量均为DWORD类型,与INCD指令要求完全匹配

某文心验证小结:对最明显的语法错误和简单冗余识别准确,但对STL代码的生成逻辑和工业程序的常见设计手法了解不足,存在数据类型相关的误判。


3.2 某千:0个致命bug,全是优化建议或误判

原AI提出的问题人工验证结果详细说明
Network41-42存在逻辑死循环,设备会假死
⚠️ 优化建议
这不是bug,而是正常的等待逻辑。设备本来就应该在备钉完成后等待下级要料信号。可以优化增加超时退出机制,但不修改也能正常运行
OK落料助吹逻辑依赖输出反馈是错误的
❌ 误判
这是故意设计的安全逻辑,确保助吹信号确实输出后再进行下一步,避免漏吹
步序跳跃混乱,执行流难以追踪
⚠️ 优化建议
步序编号确实跳跃较大,建议添加跳转注释,但不影响功能
重复代码过多,建议封装成子程序
⚠️ 优化建议
确实存在重复逻辑,但S7-200 SMART只有FB块没有FC块,封装成本较高,属于可选项
报警复位逻辑不完善
❌ 误判
报警本来就设计为需要手动复位,这是工业安全规范的要求

某千验证小结:没有发现任何真正的逻辑错误。擅长从代码结构角度提出优化建议,但对工业控制的实际工艺和安全规范理解严重不足,容易将正常的设计选择误判为bug。


3.3 某Deep:7个真问题,1个有瑕疵,1个优化建议,0个误判

原AI提出的问题人工验证结果详细说明
Network5 NG落料超时索引错误
✅ 真问题
与某文心一致,确实存在覆盖问题
Network8 MOVR指令缺少目标操作数
✅ 真问题
与某文心一致,编译错误
Network28 OK螺钉跳转到错误步序
✅ 真问题
合格产品跳转到待命步序而非落料步序,会导致合格产品不分料
Network48误将定时器预设时间清零
✅ 真问题
本应清零计数变量,却清零了定时器预设值,导致超时功能失效
定时器逻辑完全缺失,没有调用TON指令
🟡 有瑕疵
不是完全缺失,而是S7-200 SMART的功能块无法直接调用全局定时器,需要通过外部变量传递。AI不了解这个平台限制,判断过于绝对
Network10重复S/R指令是冗余
✅ 真问题
与某文心一致,确实多了一个无前置条件的S指令,属于无效代码
步序5000无跳入条件,为孤立网络
✅ 真问题
确实是废弃代码,没有任何地方会跳转到这个步序,可以删除
Network16多层LPS/LPP嵌套可读性差
⚠️ 优化建议
确实影响代码可读性和后期维护,建议重新组织,但不影响设备运行
模拟量输入范围可能不匹配
✅ 真问题
如果使用4-20mA传感器,0-27648对应1.0-5.0确实会导致低段输出错误,需要根据实际传感器调整

某Deep验证小结:是三个平台中发现真问题最多的。对硬逻辑错误的识别能力较强,几乎没有误判,但对特定PLC平台的细节限制了解不足,存在个别判断有瑕疵的情况。


📊 三大AI平台验证结果多维度对比

统一基准说明

本次验证共确认7个独立真问题,所有指标均基于此统一基准计算,确保对比公平性。

对比维度某Deep某文心某千
提出问题总数
9
4
5
✅ 发现真问题数量
7
3
0
🎯 真问题发现率
100%
42.9%
0%
⚠️ 有效优化建议数量
1
0
2
🟡 有瑕疵判断数量
1
0
0
❌ 误判数量
0
1
3
🚫 误判率
0%
25%
60%

本次验证核心发现:

  1. 不同AI的能力差异巨大,真问题发现率从0%到100%不等

  2. 所有AI都存在不同程度的局限性,没有一个平台能做到完美

  3. AI最擅长找"语法错误"和"硬逻辑错误"

  4. AI最不擅长理解"工艺设计"和"特定平台特性"


💬 互动时间

你被AI误判过吗?有没有遇到过AI说有bug,但实际运行完全正常的情况?欢迎在评论区分享你的经历,点赞最高的3位,我们将免费送出一份《AI审PLC代码避坑指南》。


📢 下期预告:某豆的14个问题全验证

本期我们验证了某文心、某千、某Deep三个平台的18个问题,某豆提出的14个问题(包括5个被判定为"致命级"的bug)我们将在下一期进行最详细的验证。

我们会把这段代码下载到真实的S7-200 SMART PLC中,逐一触发每一个疑似bug,用实际运行结果告诉你:

  • 那个被某豆判定为"会让气缸1ms疯狂动作"的定时器bug,到底有多可怕?

  • 某豆发现的其他9个问题,哪些是真的,哪些是误判?

  • 为什么某豆能发现其他AI都看不到的问题?

关注我们,下期带你亲眼见证——AI审PLC代码的真实水平到底如何。


#工业自动化 #PLC编程 #AI代码审查 #西门子S7200SMART #工控技术 #AI误判 #工业AI

相关学习资料