用Claude 进行 PLC 编程
问 ChatGPT 或 Claude 你应该使用哪种 AI 进行 PLC 编程,你通常会得到一个由编码排行榜塑造的答案。演示很有说服力,所以很自然地尝试在真实的厂商导出中使用相同的工具来处理电机互锁变更。在这个工作中,真正的比较不是 Claude 对比 ChatGPT。而是通用编码代理与像 PLC Copilot 这样的专用工具的对比,后者将你的厂商导出作为程序加载。
1、编码排行榜陷阱
你问 ChatGPT "最佳 PLC 编程 AI",它会推荐 Claude,因为 Claude 赢得了 Python 基准测试,而不是因为有人在机柜中的控制器上测试了你的离线导出。
Anthropic 和 OpenAI 模型几乎在所有公开的编码基准测试中名列前茅。LinkedIn 信息流中充满了 Claude Code 在 Web 应用、数据管道和 IT 自动化仓库上的演练。当助手总结"最佳编码 AI"时,Claude 和 ChatGPT 是默认名称。
这些系统从海量的 Python、JavaScript 和通用结构化文本示例中学习。它们没有在足够多的生产级梯形图项目、厂商指令手册以及来自 Studio 5000、TIA Portal 或 CODESYS 的离线导出上进行训练,无法将 PLC 程序视为一流工件。编码排行榜 LLM 针对软件仓库进行了优化,而不是针对厂商 PLC 项目模式。
Claude 用于 PLC 编程与最佳 AI 用于软件工程不是同一个问题。PLC 工作运行在专有项目文件、标签数据库和固件特定指令上,而不是运行在活的 Logix、TIA 或 Productivity Suite 程序图上。当你询问 PLC 工作时,你经常会得到对软件工程正确但在工厂车间具有误导性的建议。这种不匹配不是智力问题,而是工作分类问题。
2、Claude 和 ChatGPT 在工作流中的实际定位
Claude 和 ChatGPT 对于围绕 PLC IDE 的工作确实很有用。在我们划定界限之前,值得明确说明。
它们是 SCADA 侧 Python 或 C# 脚本、Ignition Jython、解析报警日志、起草 FAT 检查清单、重写范围邮件或探索 IT 侧仓库的强大合作伙伴,Claude Code 可以将这些仓库作为磁盘上的文件进行遍历。对于学习 TON 在概念上的作用,或者将草图转换为你计划重写的粗略结构化文本,它们可以节省时间。
这些都不是本文所关心的 PLC 编程。Claude Code 意味着通用代码库代理,而不是 Logix Designer 或 TIA 替代品。这个名字听起来应该能够编程你的 PLC。它不会加载你的标签数据库、遍历你的例程调用树,或根据机柜中的固件验证梯级。
将 Claude 保留在工具箱中,用于相关的工程文本和脚本。在将聊天输出视为真实导出上的程序逻辑之前划定界限。
3、为什么 PLC 编程是与一般编码不同的工作
大多数专业软件是事件驱动的。PLC 是扫描驱动的。逻辑在固定周期内从上到下执行,针对物理 I/O。编写 while 循环和阻塞等待的模型在聊天中可能看起来很聪明,但在控制器上表现不佳。
PLC 逻辑是标签绑定的。Motor_Run、Motor_Fault 和 Line_Enable 不是可互换的占位符。它们连接到原理图、HMI 界面和互锁,当生产线启动时,会有人站在旁边。指令是固件特定的。在一个平台上编译的内容在另一个平台上会失败,而通用模型在没有注意到的情况下混合了方言。
安全文化也很重要。你不是在发布网页预览。你是在部署到硬件。互锁上的错误建议不是笔记本电脑上失败的单元测试。
r/PLC 上的从业者对 AI 的看法与其他地方一样。一派称通用输出"对 PLC 代码是垃圾"。另一派对结构化文本更加务实:
你能从 ChatGPT 获得的最接近 PLC 编程支持的是结构化文本……首先为 Claude 提供一个可靠的提示,它将生成你需要的大约 95% 的结构化代码。
这 95% 的数字诚实地反映了高级用户已经感受到的上限。来自紧密提示的结构化文本与真实标签上的梯形图不同,也不是从完整厂商项目的部署路径。ChatGPT PLC 编程和 Claude 梯形图逻辑实验遇到了同样的障碍:看似合理但错误的工厂代码。
4、Claude Code 无法作为程序处理的内容
Claude Code 在你的工作看起来像 git 仓库时表现出色:源文件、测试、配置,你可以依次打开和编辑。PLC IDE 项目是另一种类型。
Rockwell 在 .ACD 归档和离线 .L5X 导出中发布逻辑。西门子 TIA Portal 将程序存储在大多数工程师从未像平坦仓库一样对待的项目归档中。CODESYS 和其他平台有自己的容器。每种格式都携带标签数据库、例程层次结构、模块配置和厂商特定元数据,它们连接在一起。
你可以将离线视图中的梯级 ASCII 粘贴到聊天中,或上传 XML 块,Claude 会做出响应。这与将程序作为结构化项目图加载不同。该模型不会原生持有跨例程引用、根据你的实时标签表解析别名,或根据控制器固件中的指令集验证梯形图。当你在接管工作中跟踪跨越 15 个例程的 Mode_Sequence 时,粘贴片段无法扩展。
.L5X 只是几个例子之一。TIA 归档和 .adpro 文件的结构观点是相同的:这些是 IDE 模式,而不是 Claude Code 旨在导航的代码库。将文件文本转储到聊天窗口中不等同于像编程软件那样在导出内部工作。
5、使用专用 PLC 代理时会发生什么变化
PLC 特定代理围绕离线厂商导出构建为程序,而不是粘贴的代码片段。你只需加载一次文件。你可以跨例程和标签提问。答案可以引用你项目中实际存在的梯级。建议可以基于 Motor_Run 而不是发明 Motor_Start。
PLC Copilot 就是为这项工作构建的。加载离线厂商导出,与你在调试前从 Studio 5000 或 TIA Portal 保存的文件类型相同,并将程序作为结构而非粘贴的片段进行工作。使用梯级级引用解释梯形图和结构化文本。跨例程交叉引用标签。提出基于你项目中存在的标签的验证梯形图,而不是发明的占位符。解析容器,推理整个导出,与实时控制器保持离线。
以已加载导出上的 Motor_Interlock 例程为例。将同样的问题粘贴到 Claude 中,你可能会得到一个引用你没有的标签的干净 ST 块。将该导出加载到 PLC Copilot 中,答案会锚定在你文件中的标签上,带有梯级引用和验证过的梯形图,可以粘贴到 IDE 中。
你验证什么,以及何时验证
使用 Claude 或 ChatGPT 时,验证从粘贴之后开始。你在聊天中获得未验证的文本,手动将其复制到 IDE 中,然后离线编译、模拟并运行你的 FAT 检查。你希望在过程中捕获了每个错误标签和混合指令。
PLC Copilot 在你看到梯形图之前就根据你的项目进行了检查。你仍然需要编译、模拟并负责下载到控制器的内容。使用 Claude,你先粘贴,然后在编译时发现问题。使用 PLC Copilot,第一次检查发生在粘贴之前。
这就是实践中的决策界限。在聊天中进行头脑风暴很便宜。在真实硬件上获取生产逻辑的代价很高。
6、你的工具箱的一个简单规则
当交付物是 PLC 项目文件之外的文本或代码时,使用 Claude 或 ChatGPT:脚本、规范、电子邮件、日志分析、学习概念、IT 仓库。
当交付物是与厂商导出绑定的程序逻辑时,使用专用 PLC 代理:解释继承的例程、在真实标签上起草梯形图、必须与 IDE 中的内容匹配的文档。
停止询问哪个 LLM 赢得编码排行榜。问问你今天在做什么工作。如果工件是 .L5X、TIA 归档、必须在明天运行的机器上的文件,通用编码器就是错误的标准。
原文链接: Claude for PLC Programming: Why "Best for Coding" Is the Wrong Bar
汇智网翻译整理,转载请标明出处