生成式 AI 如何簡化復雜的 PLC 編程?
發布時間:2025-04-03 作者:Anna Townshend
與許多其他行業一樣,機器制造商和系統集成商也在嘗試人工智能(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對話,然后看到更改被納入梯形邏輯圖中。”