与许多其他行业一样,机器制造商和系统集成商也在尝试人工智能(AI)带来的好处。生成式AI的普及和无处不在的特性也激起了原始设备制造商(OEM)和集成商工程师的兴趣。AI为工程师代码编程中的实际应用带来了真正的好处,并被应用到日常工作流程中。AI工具在某些编程语言中更为先进,而真正的AI增强型可编程逻辑控制器 (PLC) 代码需要高度定制的生成式AI。
生成式 AI 将如何影响控制编程?
生成式 AI 最有可能影响机器制造商和系统集成商的工作。无论是试验生成式 AI,还是思考和规划其在机器本身中的未来潜力,许多人都在从信息技术(IT)领域汲取灵感。
系统集成商和 CSIA 会员 A&E Engineering 公司新兴技术发展总监 Chris Gibson 表示,“IT 行业长期以来一直在使用AI来提高程序员的工作效率。我们开始看到这一趋势也延伸到了控制领域。”
生成式 AI 应被视为助手,而不是完全替代人工干预或编程工程师。DigiKey公司应用工程师Aaron Dahlen将这种关系描述为指挥家和音乐家的关系。“编程已经成为一种混合活动,程序员充当指挥,AI 充当音乐家。”Dahlen说。
“在机器设计方面,我们看到工业控制器联网以收集数据的持续趋势。我们还注意到,一些设计师将数据移动到云或本地服务器,而另一些设计师则利用现代PLC的功能将计算能力转移到机器的边缘。”Dahlen 说,“在 DigiKey,我们已经看到这一趋势反映在我们不断增长的工业产品销售中。”
聊天机器人和生成式 AI 工具(如 OpenAI 的 ChatGPT 和谷歌的 Gemini等)越来越受到人们的关注。大型语言模型(LLM)是一种特定类型的生成式 AI,它使用深度学习模型在大量文本数据上进行训练,这些模型使用自然语言处理(NLP)(AI 的另一个子领域)来生成文本。自然语言处理允许LLM通过编码和处理数据来读取人类语言。
E Tech Group 制造智能总监 Pradeep Paul表示,LLM可以被训练并用于解决复杂的编程问题,但使用LLM进行控制编程将需要大量的代码示例、代码文档,甚至是设计功能的自然语言描述。这些数据使模型能够学习语法、常见模式以及代码与其用途之间的关系。
通用LLM还必须针对特定自动化供应商平台或协议的数据集进行微调或自定义。“这种微调使模型适应供应商独特的指令集、库和最佳实践,”Paul 补充道,“这解决了专有函数库的挑战。”
最后,强化学习可以进一步完善模型。“工程师或自动化系统可以提供有关生成代码的反馈,奖励模型的正确和有效的解决方案,并惩罚错误。这个迭代过程提高了模型的准确性和处理复杂场景的能力。

如何在控件编程工作流程中构建自定义AI模型?
经过训练后,AI 模型可以在复杂应用程序中节省大量开发时间,执行代码生成、自动文档、代码错误检测和调试、代码优化和测试用例生成等任务。自然语言提示可以生成功能代码块,从而减少从头开始编写代码所花费的时间。这对于重复性任务或复杂的逻辑特别有用。
E Tech Group已经试验了行业特定的生成式 AI 工具,如罗克韦尔自动化的 FactoryTalk Design Studio 和其他平台,其工程师仍在学习如何最好地将它们整合到工作流程中,但潜力是巨大的。目前,该公司正在努力将生成式 AI 纳入其标准编码工作流程。“我们维护着一个强大的内部代码库,通常可以满足大约 80% 的项目需求,” Paul补充道,“为了完成部署,我们创建了 AI 驱动的内部工具。”
这些工具擅长自动执行重复编码,例如为多个标签进行模板编程。工程师可以上传 CSV 文件,而不是手动逐个标签进行开发,使工具能够快速生成和复制必要的编程逻辑,从而节省大量时间。
编码文档和调试:使用AI进行编程规范、测试和调查
生成式AI工具还可能有助于生成功能需求规范(FRS),这些规范是根据自动化项目的客户需求开发的,然后 E Tech Group 从 FRS 构建代码。但是,定义详细规范通常需要初步编码以巩固设计元素。
“有时,如果不做一些前期编码来消除设计组件,就很难构建你的功能规范。”Paul 说。使用 AI 工具,很容易为其提供一般输入,它将为功能需求规范生成一个框架,其中包含所有必需的组件,而无需进行任何示例编码。
AI 还可以帮助自动生成测试用例,确保更全面的测试并减少手动创建测试所花费的时间。在FRS之后,工程师编写测试协议以测试功能要求和所有功能,AI可以帮助起草测试协议。
一般来说,文档对工程师来说可能是一项乏味但必要的任务,而AI可以帮助从代码本身生成所需的文档。E Tech Group 还承担其他公司启动的项目或需要集成来自不同供应商和设备的系统的项目,这些项目可能不遵循与其工程师相同的编程实践。
生成式 AI 有可能对当前代码进行一些逆向工程,而不是让工程师花费数小时试图理解旧代码背后的意图。它至少可以生成一些文档和代码意图的摘要。E Tech Group 的一些工程师正在使用生成式 AI 工具尝试对代码进行逆向工程。
编写代码后,AI可以再次介入以提供帮助。“可以训练 AI 模型来识别代码中的潜在错误,提出修复建议或突出显示需要审查的区域。这可以大大减少调试时间。” Paul说,“AI 可以分析现有代码,并针对性能、内存使用或可读性提出优化建议。”
此外,生成式AI平台也非常适合与 Python、SQL 或 .NET 等更传统的编程语言一起使用。例如,E Tech Group还使用这些更传统的语言为历史数据库和客户应用程序编程接口 (API) 构建接口。ChatGPT 或 Gemini 的基本免费版本非常擅长为那些广泛使用的语言寻找代码中的缺陷。
预计未来,这些工具将发挥更多作用,而不仅仅是错误检测,并提供更好的代码实践和建议来改进格式。它已经减少了用户对更多主题专家的需求,并为年轻工程师提供了更多工具,以更快地提高他们的编码技能。
生成式AI正在帮助年轻工程师磨练他们的编程技能并扩展他们的语言知识。他们可以使用FactoryTalk Design Studio 根据特定要求开发代码结构,然后将其与内部代码库进行比较,了解它们有何不同,以及为什么一个代码库比另一个代码效果更好。
“我们使用了很多软件和许多不同的平台,每个系统都略有不同。” Paul 说,“这会使应用生成式AI进行 PLC 编程变得更加复杂。对于 PLC 编程,由于每个供应商都有自己不同的程序结构和代码模块方法,因此很难有一个通用工具来实现这一点。这就是自定义AI 工具的用武之地,但这些工具需要大量时间来开发。”

RAG如何提升LLM在PLC编程中的表现?
不过,对于目前的任何LLM工具, Chris Gibson仍然建议谨慎使用,他认为:“在将生成式 AI 用于PLC编程时,谨慎是必不可少的,因为它可能会而且会产生幻觉,这意味着它可能会生成不正确或误导性的信息。”他建议通过检索增强生成(RAG)AI 系统来创建代码来降低这种风险。
RAG 是一个AI框架,它与LLM配合使用,通过搜索更多外部数据源并在将信息和提示集成到LLM之前对其进行预处理,使其更加准确和相关。
“RAG 允许您使用特定知识训练AI,本质上是为其响应设置护栏。通过向其提供经批准的库和最佳实践,您可以确保AI生成的代码符合您的标准。”Gibson 说。借助RAG,AI可以学习机器规格和编码实践,以协助生成 PLC、HMI 和 SCADA 代码。这种新兴趋势会不断增长,将显著减少繁琐、易出错和重复的编程任务。
传统的AI基础模型在离线状态下进行预训练,不包括训练之后出现的数据或信息。RAG通过检索外部数据和信息来弥补这些不足。RAG还利用这些信息来丰富提示,提取相关信息和数据并更新原始提示,然后将这个丰富的提示传递给LLM。
程序组织单元如何改进PLC编码?
复杂性是所有编程语言的一个重要考虑因素,Aaron Dahlen表示,AI可以在这方面提供帮助,“将程序解析成较小的程序组织单元(POU)是当今PLC程序员的黄金标准。我们不再构建100行的梯形逻辑图,而是将代码分解成更小、更易管理的部分。”
冗长而蜿蜒的代码很难构建、故障排除和维护。“这是一种糟糕的编程做法,在机器的整个生命周期内会花费你大量的钱,”他补充道。
相反,如果代码被分成几个较小的 POU,每个 POU 都执行一个专用功能,则代码更容易构建和故障排除。“这就是AI作为合作伙伴的优势所在,它可以帮助我们探索内部工作和 POU 之间的界限,”Dahlen说。“知道任何给定的 POU 都很小,AI 通常可以在更大的程序中理解 POU 的功能和目的。”
借助此功能,程序员可以使用生成式AI来优化单个POU或整个程序。他们可以阐明POU 的用途并优化变量的范围、结构和名称。使用已知的编程指标,AI还可以估计程序复杂性或确定降低 POU 复杂性的方法。对于任何给定的 POU,都可以通过测量决策点的数量、嵌套或分层排列以及运算符的总数来定义复杂性。
AI可以通过重构或改进代码帮助程序员使代码更易于阅读和维护。Dahlen说,“重构的深度取决于具体的项目。有时,它就像更改变量名称一样简单。在其他时候,程序员将做出一个关键发现,从而改变整个项目的结构。这可能是正式代码审查的一部分,也可以是探索代码的个人程序员。”
需要注意的是,在工业环境中重构具有挑战性,因为 PLC 代码的更改可能需要进行广泛的验证测试才能找出意外的错误。有时,重构以 TODO 语句结束,以识别将来应该更新的代码。AI 可以协助完成此过程的许多步骤。
Dahlen表示,他更喜欢PLC的梯形逻辑编程,部分原因在于梯形逻辑图是PLC排错的最佳方法之一。然而,这些AI工具在结构化文本(ST)上表现更佳。“如今,使用ST可以轻松完成这些任务,因为代码可以在AI和PLC开发环境之间复制粘贴。未来,我们或许能够使用梯形图。” Dahlen 说,“想象一下,有一天我们可以与AI对话,然后看到更改被纳入梯形逻辑图中。”