生成式 AI 如何簡(jiǎn)化復(fù)雜的 PLC 編程?

時(shí)間:2025-04-03

來源:控制工程網(wǎng)

導(dǎo)語:生成式 AI 如何簡(jiǎn)化復(fù)雜的 PLC 編程?

  與許多其他行業(yè)一樣,機(jī)器制造商和系統(tǒng)集成商也在嘗試人工智能(AI)帶來的好處。生成式AI的普及和無處不在的特性也激起了原始設(shè)備制造商(OEM)和集成商工程師的興趣。AI為工程師代碼編程中的實(shí)際應(yīng)用帶來了真正的好處,并被應(yīng)用到日常工作流程中。AI工具在某些編程語言中更為先進(jìn),而真正的AI增強(qiáng)型可編程邏輯控制器 (PLC) 代碼需要高度定制的生成式AI。

  生成式 AI 將如何影響控制編程?

  生成式 AI 最有可能影響機(jī)器制造商和系統(tǒng)集成商的工作。無論是試驗(yàn)生成式 AI,還是思考和規(guī)劃其在機(jī)器本身中的未來潛力,許多人都在從信息技術(shù)(IT)領(lǐng)域汲取靈感。

  系統(tǒng)集成商和 CSIA 會(huì)員 A&E Engineering 公司新興技術(shù)發(fā)展總監(jiān) Chris Gibson 表示,“IT 行業(yè)長(zhǎng)期以來一直在使用AI來提高程序員的工作效率。我們開始看到這一趨勢(shì)也延伸到了控制領(lǐng)域。”

  生成式 AI 應(yīng)被視為助手,而不是完全替代人工干預(yù)或編程工程師。DigiKey公司應(yīng)用工程師Aaron Dahlen將這種關(guān)系描述為指揮家和音樂家的關(guān)系?!熬幊桃呀?jīng)成為一種混合活動(dòng),程序員充當(dāng)指揮,AI 充當(dāng)音樂家?!盌ahlen說。

  “在機(jī)器設(shè)計(jì)方面,我們看到工業(yè)控制器聯(lián)網(wǎng)以收集數(shù)據(jù)的持續(xù)趨勢(shì)。我們還注意到,一些設(shè)計(jì)師將數(shù)據(jù)移動(dòng)到云或本地服務(wù)器,而另一些設(shè)計(jì)師則利用現(xiàn)代PLC的功能將計(jì)算能力轉(zhuǎn)移到機(jī)器的邊緣?!盌ahlen 說,“在 DigiKey,我們已經(jīng)看到這一趨勢(shì)反映在我們不斷增長(zhǎng)的工業(yè)產(chǎn)品銷售中?!?/p>

  聊天機(jī)器人和生成式 AI 工具(如 OpenAI 的 ChatGPT 和谷歌的 Gemini等)越來越受到人們的關(guān)注。大型語言模型(LLM)是一種特定類型的生成式 AI,它使用深度學(xué)習(xí)模型在大量文本數(shù)據(jù)上進(jìn)行訓(xùn)練,這些模型使用自然語言處理(NLP)(AI 的另一個(gè)子領(lǐng)域)來生成文本。自然語言處理允許LLM通過編碼和處理數(shù)據(jù)來讀取人類語言。

  E Tech Group 制造智能總監(jiān) Pradeep Paul表示,LLM可以被訓(xùn)練并用于解決復(fù)雜的編程問題,但使用LLM進(jìn)行控制編程將需要大量的代碼示例、代碼文檔,甚至是設(shè)計(jì)功能的自然語言描述。這些數(shù)據(jù)使模型能夠?qū)W習(xí)語法、常見模式以及代碼與其用途之間的關(guān)系。

  通用LLM還必須針對(duì)特定自動(dòng)化供應(yīng)商平臺(tái)或協(xié)議的數(shù)據(jù)集進(jìn)行微調(diào)或自定義?!斑@種微調(diào)使模型適應(yīng)供應(yīng)商獨(dú)特的指令集、庫(kù)和最佳實(shí)踐,”Paul 補(bǔ)充道,“這解決了專有函數(shù)庫(kù)的挑戰(zhàn)?!?/p>

  最后,強(qiáng)化學(xué)習(xí)可以進(jìn)一步完善模型?!肮こ處熁蜃詣?dòng)化系統(tǒng)可以提供有關(guān)生成代碼的反饋,獎(jiǎng)勵(lì)模型的正確和有效的解決方案,并懲罰錯(cuò)誤。這個(gè)迭代過程提高了模型的準(zhǔn)確性和處理復(fù)雜場(chǎng)景的能力。

  如何在控件編程工作流程中構(gòu)建自定義AI模型?

  經(jīng)過訓(xùn)練后,AI 模型可以在復(fù)雜應(yīng)用程序中節(jié)省大量開發(fā)時(shí)間,執(zhí)行代碼生成、自動(dòng)文檔、代碼錯(cuò)誤檢測(cè)和調(diào)試、代碼優(yōu)化和測(cè)試用例生成等任務(wù)。自然語言提示可以生成功能代碼塊,從而減少?gòu)念^開始編寫代碼所花費(fèi)的時(shí)間。這對(duì)于重復(fù)性任務(wù)或復(fù)雜的邏輯特別有用。

  E Tech Group已經(jīng)試驗(yàn)了行業(yè)特定的生成式 AI 工具,如羅克韋爾自動(dòng)化的 FactoryTalk Design Studio 和其他平臺(tái),其工程師仍在學(xué)習(xí)如何最好地將它們整合到工作流程中,但潛力是巨大的。目前,該公司正在努力將生成式 AI 納入其標(biāo)準(zhǔn)編碼工作流程?!拔覀兙S護(hù)著一個(gè)強(qiáng)大的內(nèi)部代碼庫(kù),通常可以滿足大約 80% 的項(xiàng)目需求,” Paul補(bǔ)充道,“為了完成部署,我們創(chuàng)建了 AI 驅(qū)動(dòng)的內(nèi)部工具?!?/p>

  這些工具擅長(zhǎng)自動(dòng)執(zhí)行重復(fù)編碼,例如為多個(gè)標(biāo)簽進(jìn)行模板編程。工程師可以上傳 CSV 文件,而不是手動(dòng)逐個(gè)標(biāo)簽進(jìn)行開發(fā),使工具能夠快速生成和復(fù)制必要的編程邏輯,從而節(jié)省大量時(shí)間。

  編碼文檔和調(diào)試:使用AI進(jìn)行編程規(guī)范、測(cè)試和調(diào)查

  生成式AI工具還可能有助于生成功能需求規(guī)范(FRS),這些規(guī)范是根據(jù)自動(dòng)化項(xiàng)目的客戶需求開發(fā)的,然后 E Tech Group 從 FRS 構(gòu)建代碼。但是,定義詳細(xì)規(guī)范通常需要初步編碼以鞏固設(shè)計(jì)元素。

  “有時(shí),如果不做一些前期編碼來消除設(shè)計(jì)組件,就很難構(gòu)建你的功能規(guī)范。”Paul 說。使用 AI 工具,很容易為其提供一般輸入,它將為功能需求規(guī)范生成一個(gè)框架,其中包含所有必需的組件,而無需進(jìn)行任何示例編碼。

  AI 還可以幫助自動(dòng)生成測(cè)試用例,確保更全面的測(cè)試并減少手動(dòng)創(chuàng)建測(cè)試所花費(fèi)的時(shí)間。在FRS之后,工程師編寫測(cè)試協(xié)議以測(cè)試功能要求和所有功能,AI可以幫助起草測(cè)試協(xié)議。

  一般來說,文檔對(duì)工程師來說可能是一項(xiàng)乏味但必要的任務(wù),而AI可以幫助從代碼本身生成所需的文檔。E Tech Group 還承擔(dān)其他公司啟動(dòng)的項(xiàng)目或需要集成來自不同供應(yīng)商和設(shè)備的系統(tǒng)的項(xiàng)目,這些項(xiàng)目可能不遵循與其工程師相同的編程實(shí)踐。

  生成式 AI 有可能對(duì)當(dāng)前代碼進(jìn)行一些逆向工程,而不是讓工程師花費(fèi)數(shù)小時(shí)試圖理解舊代碼背后的意圖。它至少可以生成一些文檔和代碼意圖的摘要。E Tech Group 的一些工程師正在使用生成式 AI 工具嘗試對(duì)代碼進(jìn)行逆向工程。

  編寫代碼后,AI可以再次介入以提供幫助?!翱梢杂?xùn)練 AI 模型來識(shí)別代碼中的潛在錯(cuò)誤,提出修復(fù)建議或突出顯示需要審查的區(qū)域。這可以大大減少調(diào)試時(shí)間?!? Paul說,“AI 可以分析現(xiàn)有代碼,并針對(duì)性能、內(nèi)存使用或可讀性提出優(yōu)化建議?!?/p>

  此外,生成式AI平臺(tái)也非常適合與 Python、SQL 或 .NET 等更傳統(tǒng)的編程語言一起使用。例如,E Tech Group還使用這些更傳統(tǒng)的語言為歷史數(shù)據(jù)庫(kù)和客戶應(yīng)用程序編程接口 (API) 構(gòu)建接口。ChatGPT 或 Gemini 的基本免費(fèi)版本非常擅長(zhǎng)為那些廣泛使用的語言尋找代碼中的缺陷。

  預(yù)計(jì)未來,這些工具將發(fā)揮更多作用,而不僅僅是錯(cuò)誤檢測(cè),并提供更好的代碼實(shí)踐和建議來改進(jìn)格式。它已經(jīng)減少了用戶對(duì)更多主題專家的需求,并為年輕工程師提供了更多工具,以更快地提高他們的編碼技能。

  生成式AI正在幫助年輕工程師磨練他們的編程技能并擴(kuò)展他們的語言知識(shí)。他們可以使用FactoryTalk Design Studio 根據(jù)特定要求開發(fā)代碼結(jié)構(gòu),然后將其與內(nèi)部代碼庫(kù)進(jìn)行比較,了解它們有何不同,以及為什么一個(gè)代碼庫(kù)比另一個(gè)代碼效果更好。

  “我們使用了很多軟件和許多不同的平臺(tái),每個(gè)系統(tǒng)都略有不同?!?Paul 說,“這會(huì)使應(yīng)用生成式AI進(jìn)行 PLC 編程變得更加復(fù)雜。對(duì)于 PLC 編程,由于每個(gè)供應(yīng)商都有自己不同的程序結(jié)構(gòu)和代碼模塊方法,因此很難有一個(gè)通用工具來實(shí)現(xiàn)這一點(diǎn)。這就是自定義AI 工具的用武之地,但這些工具需要大量時(shí)間來開發(fā)?!?/p>

  RAG如何提升LLM在PLC編程中的表現(xiàn)?

  不過,對(duì)于目前的任何LLM工具, Chris Gibson仍然建議謹(jǐn)慎使用,他認(rèn)為:“在將生成式 AI 用于PLC編程時(shí),謹(jǐn)慎是必不可少的,因?yàn)樗赡軙?huì)而且會(huì)產(chǎn)生幻覺,這意味著它可能會(huì)生成不正確或誤導(dǎo)性的信息。”他建議通過檢索增強(qiáng)生成(RAG)AI 系統(tǒng)來創(chuàng)建代碼來降低這種風(fēng)險(xiǎn)。

  RAG 是一個(gè)AI框架,它與LLM配合使用,通過搜索更多外部數(shù)據(jù)源并在將信息和提示集成到LLM之前對(duì)其進(jìn)行預(yù)處理,使其更加準(zhǔn)確和相關(guān)。

  “RAG 允許您使用特定知識(shí)訓(xùn)練AI,本質(zhì)上是為其響應(yīng)設(shè)置護(hù)欄。通過向其提供經(jīng)批準(zhǔn)的庫(kù)和最佳實(shí)踐,您可以確保AI生成的代碼符合您的標(biāo)準(zhǔn)。”Gibson 說。借助RAG,AI可以學(xué)習(xí)機(jī)器規(guī)格和編碼實(shí)踐,以協(xié)助生成 PLC、HMI 和 SCADA 代碼。這種新興趨勢(shì)會(huì)不斷增長(zhǎng),將顯著減少繁瑣、易出錯(cuò)和重復(fù)的編程任務(wù)。

  傳統(tǒng)的AI基礎(chǔ)模型在離線狀態(tài)下進(jìn)行預(yù)訓(xùn)練,不包括訓(xùn)練之后出現(xiàn)的數(shù)據(jù)或信息。RAG通過檢索外部數(shù)據(jù)和信息來彌補(bǔ)這些不足。RAG還利用這些信息來豐富提示,提取相關(guān)信息和數(shù)據(jù)并更新原始提示,然后將這個(gè)豐富的提示傳遞給LLM。

  程序組織單元如何改進(jìn)PLC編碼?

  復(fù)雜性是所有編程語言的一個(gè)重要考慮因素,Aaron Dahlen表示,AI可以在這方面提供幫助,“將程序解析成較小的程序組織單元(POU)是當(dāng)今PLC程序員的黃金標(biāo)準(zhǔn)。我們不再構(gòu)建100行的梯形邏輯圖,而是將代碼分解成更小、更易管理的部分?!?/p>

  冗長(zhǎng)而蜿蜒的代碼很難構(gòu)建、故障排除和維護(hù)?!斑@是一種糟糕的編程做法,在機(jī)器的整個(gè)生命周期內(nèi)會(huì)花費(fèi)你大量的錢,”他補(bǔ)充道。

  相反,如果代碼被分成幾個(gè)較小的 POU,每個(gè) POU 都執(zhí)行一個(gè)專用功能,則代碼更容易構(gòu)建和故障排除?!斑@就是AI作為合作伙伴的優(yōu)勢(shì)所在,它可以幫助我們探索內(nèi)部工作和 POU 之間的界限,”Dahlen說。“知道任何給定的 POU 都很小,AI 通??梢栽诟蟮某绦蛑欣斫?POU 的功能和目的?!?/p>

  借助此功能,程序員可以使用生成式AI來優(yōu)化單個(gè)POU或整個(gè)程序。他們可以闡明POU 的用途并優(yōu)化變量的范圍、結(jié)構(gòu)和名稱。使用已知的編程指標(biāo),AI還可以估計(jì)程序復(fù)雜性或確定降低 POU 復(fù)雜性的方法。對(duì)于任何給定的 POU,都可以通過測(cè)量決策點(diǎn)的數(shù)量、嵌套或分層排列以及運(yùn)算符的總數(shù)來定義復(fù)雜性。

  AI可以通過重構(gòu)或改進(jìn)代碼幫助程序員使代碼更易于閱讀和維護(hù)。Dahlen說,“重構(gòu)的深度取決于具體的項(xiàng)目。有時(shí),它就像更改變量名稱一樣簡(jiǎn)單。在其他時(shí)候,程序員將做出一個(gè)關(guān)鍵發(fā)現(xiàn),從而改變整個(gè)項(xiàng)目的結(jié)構(gòu)。這可能是正式代碼審查的一部分,也可以是探索代碼的個(gè)人程序員?!?/p>

  需要注意的是,在工業(yè)環(huán)境中重構(gòu)具有挑戰(zhàn)性,因?yàn)?PLC 代碼的更改可能需要進(jìn)行廣泛的驗(yàn)證測(cè)試才能找出意外的錯(cuò)誤。有時(shí),重構(gòu)以 TODO 語句結(jié)束,以識(shí)別將來應(yīng)該更新的代碼。AI 可以協(xié)助完成此過程的許多步驟。

  Dahlen表示,他更喜歡PLC的梯形邏輯編程,部分原因在于梯形邏輯圖是PLC排錯(cuò)的最佳方法之一。然而,這些AI工具在結(jié)構(gòu)化文本(ST)上表現(xiàn)更佳?!叭缃?,使用ST可以輕松完成這些任務(wù),因?yàn)榇a可以在AI和PLC開發(fā)環(huán)境之間復(fù)制粘貼。未來,我們或許能夠使用梯形圖?!? Dahlen 說,“想象一下,有一天我們可以與AI對(duì)話,然后看到更改被納入梯形邏輯圖中?!?/p>


AI
中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽科技有限公司

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0