夜雨聆风学习资料网

ARTICLE · 1043888

AI辅助PLC编程工具初探

AI辅助PLC编程工具初探

——目前能帮你生成梯形图或ST代码吗?

2023年以来,以ChatGPT、Copilot为代表的大语言模型(LLM)在代码生成领域展现了惊人能力。

不少PLC工程师开始尝试:能不能让AI帮我写一段梯形图?

能不能让AI生成一个PID功能块?本文将基于实际测试,客观评估当前AI辅助PLC编程的真实水平、可用场景和局限性。

1. 当前主流AI编程工具的PLC能力测试

我对三款主流AI工具进行了实际测试,以下是测试结果汇总。

AI工具PLC编程能力实测对比

测试任务
ChatGPT-4
GitHub Copilot
某工业专用AI工具
说明
生成SCL函数(如电机启停FB)
✅ 可用
✅ 可用
✅ 可用
简单逻辑,准确率80~90%
生成梯形图(LAD)
❌ 不可用
❌ 不可用
⚠️ 部分可用
AI无法输出图形化LAD,仅能输出文本描述
生成复杂算法(如PID变种)
⚠️ 基本可用
⚠️ 基本可用
✅ 可用
逻辑框架对,参数需人工校正
优化现有代码
✅ 可用
✅ 可用
✅ 可用
能指出冗余逻辑,提出改进建议
解释陌生代码
✅ 可用
⚠️ 部分可用
✅ 可用
能解释大部分标准指令
生成完整项目(多FB/DB协同)
❌ 不可用
❌ 不可用
❌ 不可用
架构级设计,AI无法替代
硬件配置/地址分配
❌ 不可用
❌ 不可用
❌ 不可用
不懂具体硬件和工程约束

关键发现

  • ✅ 代码片段生成:AI在生成SCL/ST代码片段方面确实可用,尤其是标准算法(PID、滤波、缩放)和标准设备控制(电机、阀门)。

  • ❌ 梯形图生成:AI无法直接输出梯形图图形,只能输出文本描述(如"使用常开触点I0.0,串联常闭I0.1,输出Q0.0"),仍需工程师手动绘制。

  • ⚠️ 准确性:AI生成的代码约70~80%正确,剩余需人工修正。绝不可不加验证直接下载到PLC

2. AI辅助编程的正确姿势——让它当"高级模板",不当"主编"

AI目前在PLC编程中的最佳角色是"高级智能模板库"——你描述需求,它生成一个可用的代码框架,你再精调。

AI辅助编程工作流

3. 实测案例:让AI生成一个"带前馈的温度PID控制块"

以下是一个真实的测试案例,展示AI的输出质量和需要修正的地方。

AI生成的SCL代码片段(精简)

审查意见

  • ✅ 总体框架正确:结构完整,接口合理

  • ⚠️ 积分项实现方式:AI用了累加方式,但未处理积分饱和,需增加抗积分饱和逻辑

  • ⚠️ 微分项:未对微分进行滤波,工业现场噪声会放大扰动

  • ⚠️ 扫描周期:AI假设了0.1s,实际应用中需动态传入或使用循环中断

  • ⚠️ 前馈量:未做限幅校验,需确保前馈值在有效范围内

  • ❌ 缺少数值安全保护:若PV_Temp传感器断线,PV值可能为异常值,需增加断线检测

修正工作量:AI生成了约80%的框架,人工修正了剩余的20%。

总体来说节省了约50%的编码时间

4. AI编程的"幻觉"问题——最危险的陷阱

AI在PLC编程中最危险的问题不是"写错",而是"一本正经地胡说八道"——它生成的代码看起来完全正确、格式规范、注释清晰,但逻辑是错的。

AI在PLC编程中常见的"幻觉"类型

幻觉类型
典型表现
危害等级
防范方法
常开/常闭搞反
停止按钮用了常开指令
⚠️ 严重(设备无法停止)
手动逐条审查
数据类型不匹配
将INT赋值给REAL未转换
🟡 中等(编译报错可发现)
编译检查
忽视扫描周期
累加器未乘扫描时间
⚠️ 严重(积分值错误)
仿真验证
命名张冠李戴
用了不存在的DB或变量名
🟢 轻微(编译报错)
编译检查
安全逻辑遗漏
互锁条件未完整转移
🔴 极严重(可能导致设备碰撞)
强制人工重点审查
平台混用
把西门子指令用在三菱代码中
🟡 中等(语法错误)
指定平台背景

黄金法则AI生成的代码,必须经过"人工审查→编译检查→仿真验证"三重关卡,才能进入正式项目。

 绝不可"生成即下载"。

5. AI辅助编程的成熟度预判

AI辅助PLC编程的发展路线图预测

总结:AI辅助PLC编程已从"实验室概念"进入"工程可用"阶段,但当前定位是"高级辅助工具"而非"编程替代品"
它对有经验的工程师是强大的效率倍增器,但对新手可能是个"陷阱"(因为无法识别AI的错误)。
正确的态度:积极尝试,谨慎使用,严格验证。

相关学习资料