★上海交通大學(xué)戴文斌,張瀛月,康嘉樂(lè )
★北京廣利核系統工程有限公司吳彬,李剛,任寶華
★華為技術(shù)有限公司孔令波,黃還青
摘要:一方面,邊緣計算所帶來(lái)的性能提升給工業(yè)現場(chǎng)設備提供了巨大的潛力;另一方面,工業(yè)現場(chǎng)應用軟件的復雜程度也在不斷提升,對自動(dòng)化工程師提出了巨大的挑戰。因此,低代碼開(kāi)發(fā)已經(jīng)受到工業(yè)界越來(lái)越多的關(guān)注與研發(fā)的投入。本文介紹了適用于工業(yè)控制系統的低代碼設計方法以及常用建模范式。低代碼設計已經(jīng)在工業(yè)多個(gè)場(chǎng)景中取得了良好的效益,在提升了代碼質(zhì)量的同時(shí),也為工程開(kāi)發(fā)節省了大量的成本。在邊緣計算更加普及的未來(lái),低代碼設計方法將在工業(yè)各個(gè)行業(yè)中擁有更加廣闊的應用前景。
關(guān)鍵詞:邊緣計算;工業(yè)控制軟件;IEC61499;低代碼設計;軟件自動(dòng)生成
1引言
近年來(lái),邊緣計算給工業(yè)現場(chǎng)帶來(lái)了許多新的變化。由于計算、儲存能力的大幅提升,邊緣計算時(shí)代的新設備往往能夠勝任多個(gè)復雜任務(wù)。另外,隨著(zhù)網(wǎng)絡(luò )能力的提升,邊緣設備與設備之間、邊緣設備與工業(yè)互聯(lián)網(wǎng)云平臺之間的通訊延遲與帶寬都不再受限。但隨著(zhù)工業(yè)邊緣應用設計復雜程度的不斷提升,也對自動(dòng)化工程師提出了新的挑戰。在項目推進(jìn)的過(guò)程中,自動(dòng)化工程師除了需要根據設計圖紙與功能規格說(shuō)明來(lái)完成代碼編寫(xiě)與測試之外,還需要對SCADA/HMI、外部設備等通訊接口進(jìn)行組態(tài)配置,最后對部署的完整系統進(jìn)行測試。而新型邊緣計算應用的出現,給傳統自動(dòng)化工程師帶來(lái)了全新的要求。自動(dòng)化工程師除了完成原本控制功能的設計、開(kāi)發(fā)與測試之外,可能還需要面對機器視覺(jué)、運動(dòng)控制、數據處理分析等復雜任務(wù)的挑戰。而同時(shí)具備所有這些能力的復合型工程師卻是少之又少,即使有,高額的經(jīng)濟代價(jià)也是絕大多數工業(yè)企業(yè)所無(wú)法承受的。因此,低代碼開(kāi)發(fā),甚至是無(wú)代碼開(kāi)發(fā),受到工業(yè)界的廣泛關(guān)注。
圖1復雜工業(yè)邊緣計算應用
2工業(yè)控制系統低代碼設計
低代碼開(kāi)發(fā)本質(zhì)上是以一種抽象的方式來(lái)描述復雜邏輯,以降低開(kāi)發(fā)者的編程能力要求。近年來(lái),低代碼開(kāi)發(fā)已經(jīng)在IT領(lǐng)域得到了廣泛的應用,其平臺如雨后春筍般遍地開(kāi)花,國內外微軟、谷歌、阿里、騰訊、百度等巨頭紛紛入局,并且已在流程應用、移動(dòng)應用、數據應用等領(lǐng)域取得了不俗的成績(jì)。例如,浪潮推出的iGix平臺基于云原生、微服務(wù)架構以及彈性計算,實(shí)現了面向智能物聯(lián)、企業(yè)財務(wù)管理等領(lǐng)域的低代碼開(kāi)發(fā);微軟開(kāi)發(fā)的PowerApps為企業(yè)提供了應用軟件的低代碼開(kāi)發(fā)平臺,基于模型驅動(dòng)工程以及所見(jiàn)即所得的方式,無(wú)需專(zhuān)業(yè)開(kāi)發(fā)人員也能快速搭建基于Web或者移動(dòng)端的應用軟件。在OT領(lǐng)域,低代碼設計也已經(jīng)在工業(yè)界取得了較好的效果。例如,自動(dòng)化巨頭西門(mén)子于2018年收購了Mendix低代碼構造平臺,并將其與工業(yè)互聯(lián)網(wǎng)平臺MindSphere結合,基于低代碼方式實(shí)現了個(gè)性化SCADA、MES或者ERP應用組件的開(kāi)發(fā)與配置[1]。
低代碼設計方法主要可以歸為兩類(lèi),如圖2所示,分別是基于模型驅動(dòng)工程(Model-Driven),以及基于數據驅動(dòng)(Data-Driven)的設計方法,其中基于模型驅動(dòng)工程的設計方法已經(jīng)在工業(yè)中得到了廣泛的應用。模型驅動(dòng),顧名思義,即通過(guò)建立模型來(lái)描述、模擬系統屬性,并通常使用這些模型來(lái)自動(dòng)生成代碼。由于工業(yè)各種行業(yè)特征大相徑庭,為了準確描述行業(yè)特性,通常會(huì )使用特定的領(lǐng)域模型來(lái)描述這些行業(yè)的特征與細節,而這些領(lǐng)域模型往往需要經(jīng)驗豐富的工程師來(lái)設計。工藝工程師通常并不具備較強的代碼編寫(xiě)能力,而模型驅動(dòng)工程將工藝與代碼分離,可以讓工程師將更多的精力用在工藝設計上,而無(wú)需從事繁重且重復的代碼編寫(xiě),從而真正將工程師解放出來(lái)專(zhuān)注于工藝創(chuàng )新。
圖2工業(yè)低代碼設計方法分類(lèi)
近年來(lái),邊緣計算的興起使得大量產(chǎn)生的現場(chǎng)數據能夠實(shí)時(shí)被采集與分析,也為數據驅動(dòng)低代碼設計方式的興起提供了堅實(shí)的基礎。對于高爐反應等復雜流程工藝,單單依靠人工經(jīng)驗無(wú)法準確描述其運行機理。如何有效地利用大量邊緣產(chǎn)生的數據來(lái)描述復雜流程工藝機理,從而替代建模方法,也是近年來(lái)一個(gè)熱門(mén)的研究方向。近幾個(gè)月以來(lái),以大模型為基礎的ChatGPT[2]等通用人工智能在代碼自動(dòng)生成方面取得了不俗的進(jìn)步,然而通用人工智能要在工業(yè)落地卻有著(zhù)許多困難。首先,工業(yè)領(lǐng)域并沒(méi)有大量的線(xiàn)程代碼可以作為訓練數據集,多數代碼中由于包含工藝,通常也是各個(gè)系統集成商或者生產(chǎn)廠(chǎng)商的機密而無(wú)法獲取。其次,工業(yè)行業(yè)眾多且工藝完全不同,即使是相同行業(yè),由于每條產(chǎn)線(xiàn)都存在特殊的定制化需求,因此很難通過(guò)收集大量產(chǎn)線(xiàn)數據來(lái)建立通用模型。最后,生產(chǎn)過(guò)程往往存在很多動(dòng)態(tài)變化,例如產(chǎn)線(xiàn)中的設備隨著(zhù)時(shí)間的推移老化甚至損壞,或者在生產(chǎn)過(guò)程中出現的隨機質(zhì)量問(wèn)題等等,如果不實(shí)時(shí)對代碼進(jìn)行修正會(huì )影響產(chǎn)品質(zhì)量,嚴重的情況還會(huì )發(fā)生安全事故。如果用來(lái)訓練的數據集中未包含這些故障數據(正常運行下也無(wú)法獲得這些數據),當問(wèn)題發(fā)生時(shí),生成的代碼自然也無(wú)法做出正確的應對措施。
因此,無(wú)論是模型驅動(dòng)還是數據驅動(dòng)的方法,都無(wú)法完全滿(mǎn)足工業(yè)邊緣計算的低代碼設計需求,我們需要將這兩種方法結合起來(lái)以實(shí)現工業(yè)邊緣計算應用的低代碼設計與開(kāi)發(fā)。
3面向工業(yè)邊緣計算應用的低代碼設計方法
工業(yè)互聯(lián)網(wǎng)中OT與IT的融合一直是一項艱巨的挑戰,主要原因是OT與IT系統特性存在較大的差異。在自動(dòng)化系統設計過(guò)程中,提高可靠性與降低成本永遠是企業(yè)追求的目標。對一條產(chǎn)線(xiàn)來(lái)說(shuō),至少需要達到五個(gè)九的可靠性,在核電、鋼鐵等行業(yè)則需要達到10[6]的可靠性。而代碼生成的質(zhì)量則直接影響了系統的可靠性,同時(shí)反復測試與修改同樣也會(huì )大幅度增加成本?;诳煽啃耘c成本的考量,現有的工業(yè)控制軟件低代碼設計方法基本以模型驅動(dòng)為主,通過(guò)對功能的拆解,使模塊化的代碼能夠被復用,從而減少開(kāi)發(fā)、測試與部署所需的時(shí)間,提升軟件設計的效率。
模塊化設計方法的核心思想是將復雜邏輯通過(guò)功能模塊封裝,通過(guò)標準化的接口來(lái)調用。軟件工程師即使對邏輯一無(wú)所知,也能快速使用這些抽象化的模塊來(lái)構建應用程序。模塊化設計主要有面向對象(Object-OrientedProgramming,OOP)、模型視圖-控制(Model-View-Controller,MVC)、微服務(wù)(Microservices)等幾種范式。
其中,面向對象的編程方法是最常見(jiàn)的設計范式,即將系統按照實(shí)際物理設備進(jìn)行建模,為每臺目標設備創(chuàng )建一個(gè)實(shí)例化的模塊并以設備名稱(chēng)命名。如圖3所示,在物流系統中,我們可以為輸送機、轉彎機、轉臺等設備單獨創(chuàng )建基于IEC61499標準[3]的功能模塊類(lèi)型并實(shí)例化,然后按照實(shí)際工廠(chǎng)中的上下游關(guān)系進(jìn)行連接,從而使得功能塊網(wǎng)絡(luò )與系統布局圖一一對應,幫助維護工程師快速定位代碼。當需要對設備功能升級時(shí),只需更新模塊類(lèi)型即可,而無(wú)需對接口做出改動(dòng)。
圖3面向對象的設計范式示例
在MVC設計范式中,我們將一個(gè)設備的實(shí)時(shí)控制、仿真模型與人機界面(HMI)三個(gè)部分分別使用模塊封裝,如圖4所示。在調試階段,我們可以將控制部分與仿真模型進(jìn)行連接,從而形成閉環(huán)。進(jìn)一步地,我們可以將HMI模塊連接到控制或者模型上來(lái)實(shí)現對設備內部狀態(tài)的監控。當設備投入實(shí)際運行時(shí),我們可以將仿真模塊替換為I/O接口模塊,直接連接設備,從而保證代碼在仿真與實(shí)際環(huán)境的一致性。MVC設計方式也可以與面向對象模塊進(jìn)行融合,如圖4所示,將對象類(lèi)型模塊作為容器(IEC61499復合功能塊),將基于MVC范式的功能塊網(wǎng)絡(luò )封裝在對象模塊類(lèi)型內,使系統集成商能夠快速集成、調試各種不同的設備,同時(shí)也大幅度減少了監控畫(huà)面的設計時(shí)間。
圖4MVC設計范式示例
近幾年來(lái),微服務(wù)架構也開(kāi)始在自動(dòng)化系統中嶄露頭角。與面向對象的設計范式不同,其更加適用于離散制造系統。在批量控制與過(guò)程自動(dòng)化中,一方面,連續的生產(chǎn)過(guò)程需要所有設備協(xié)同運作,例如當我們向罐中加料時(shí),需要管道、閥門(mén)與泵同時(shí)運作?;诿嫦驅ο蟮脑O計方法會(huì )造成大量模塊間的通訊,從而使得功能塊網(wǎng)絡(luò )擁擠不堪。另一方面,設備之間并無(wú)明顯上下游關(guān)系,使得我們無(wú)法將工藝流程直觀(guān)且抽象地展現出來(lái)。因此,對于此類(lèi)系統,如圖5所示,我們通常是以模塊來(lái)描述生產(chǎn)流程中的最小單元,即微服務(wù),進(jìn)一步將這些微服務(wù)模塊按照實(shí)際生產(chǎn)步驟進(jìn)行連接,就形成了完整的工藝流程。
圖5微服務(wù)設計范式示例
基于以上幾種設計范式,我們可以將不同類(lèi)型的工業(yè)生產(chǎn)系統進(jìn)行抽象建模,但是應該選擇何種建模語(yǔ)言呢?在工業(yè)4.0體系架構中,AutomationML[4]、SysML(基于UML)[5]都能提供完整的系統建模描述語(yǔ)言。在上述示例中,我們使用了基于IEC61499標準的功能塊網(wǎng)絡(luò )來(lái)建模。相對于A(yíng)utomationML與IEC61131-3標準[6]的組合,IEC61499標準中的功能塊模型可以直接部署到設備上執行,從而避免了從AutomationML到IEC61131-3功能塊的模型轉換過(guò)程。IEC61499功能塊中的邏輯算法可以使用任意編程語(yǔ)言來(lái)實(shí)現,因此除了支持使用IEC61131-3中定義的5種編程語(yǔ)言外,它還可以使用高級編程語(yǔ)言(例如C/C++、Java、Python等)來(lái)實(shí)現復雜邏輯,同時(shí)HMI也可以使用模塊描述,更加符合工業(yè)邊緣計算場(chǎng)景中多種設備異構場(chǎng)景的需求。而IEC61499統一的功能塊接口封裝保證了復用性,無(wú)論是面向對象、MVC或是微服務(wù)范式,都可以復用現有模塊。另外,IEC61499標準使用軟硬件解耦的設計概念,如圖6所示,當需要將應用部署到多個(gè)邊緣節點(diǎn)中時(shí),只需要創(chuàng )建相應的部署模型,將功能塊映射到目標資源上,即可完成分布式一鍵部署。每個(gè)IEC61499設備中的資源都是獨立運行的,保證了邊緣設備中不同實(shí)時(shí)性任務(wù)的資源隔離。當工藝流程設計完成時(shí),只需要為功能塊網(wǎng)絡(luò )中的每個(gè)模塊設置部署資源即可完成部署,所有跨資源跨設備的連接通訊,IEC61499會(huì )在運行時(shí)自動(dòng)插入訂閱/發(fā)布模塊,而無(wú)需用戶(hù)手動(dòng)設計接口,從而大幅度提升了部署的效率。
圖6基于IEC61499的低代碼部署
此外,基于IEC61499的低代碼開(kāi)發(fā)同樣也可以引入數據驅動(dòng)的設計方法。在工業(yè)邊緣計算應用開(kāi)發(fā)中,由于仿真環(huán)境無(wú)法100%還原現場(chǎng)所有情況,即使通過(guò)了仿真測試,在實(shí)際系統調試中,也需要按照現場(chǎng)實(shí)際情況對參數進(jìn)行調整,這也是一項非常耗時(shí)且成本巨大的支出。如圖7所示,我們可以對采集的數據進(jìn)行訓練,之后將模型插入功能塊網(wǎng)絡(luò )中,與需要調整的參數進(jìn)行閉環(huán),從而在運行的過(guò)程中,根據實(shí)際結果來(lái)實(shí)時(shí)調整參數。
圖7數據驅動(dòng)的參數尋優(yōu)方法
4低代碼設計的工業(yè)應用前景
市場(chǎng)上,所有主要PLC/DCS廠(chǎng)商都已在各自的集成開(kāi)發(fā)環(huán)境中提供了模塊化設計方法。例如西門(mén)子的TIAPortal中,所有的代碼都必須封裝在模塊中,并且可以使用TecnomatixPlantSimulation建立系統仿真模型并生成相應的PLC代碼;3SCodeSys公司則與慕尼黑工業(yè)大學(xué)合作[7],推出基于UML的系統建模方法,可以將UML模型自動(dòng)轉換成PLC代碼;施耐德電氣推出的EcoStruxureAutomationExpert[8]則基于IEC61499標準,為分布式控制系統提供了完整的模塊化設計軟件;北京廣利核系統工程有限公司、上海交通大學(xué)和華為技術(shù)有限公司一起設計了全新一代虛擬化核電DCS系統原型機,如圖8所示,通過(guò)華為歐拉操作系統、FusionCube超融合服務(wù)器和確定性IP網(wǎng)絡(luò ),配合基于IEC61499標準的分布式功能塊網(wǎng)絡(luò )封裝核電控制工藝,實(shí)現了低代碼構造,從而無(wú)需先分站再下裝,大量節省了開(kāi)發(fā)、部署與調試時(shí)間。同時(shí),通過(guò)華為確定性IP網(wǎng)絡(luò )保證了數據傳遞的實(shí)時(shí)性與可靠性,并且使用IEC61499的動(dòng)態(tài)重構功能設計了低成本高可靠的熱備方案,當單個(gè)虛擬設備出現故障時(shí),系統會(huì )自動(dòng)將模塊化的代碼遷移到全新的虛擬資源。
圖8基于低代碼開(kāi)發(fā)的新一代核電DCS控制系統
僅僅幾年的時(shí)間,模塊化低代碼設計已經(jīng)在工業(yè)多個(gè)場(chǎng)景中取得了良好的效益,在提升了代碼質(zhì)量的同時(shí)也為企業(yè)節省了大量的成本。在邊緣計算更加普及的未來(lái),我們相信低代碼設計方法將在工業(yè)各個(gè)行業(yè)中擁有更加廣闊的應用前景。
作者簡(jiǎn)介:
戴文斌,上海交通大學(xué)電子信息與電氣工程學(xué)院教授、院長(cháng)助理、國家優(yōu)青,兼任上海市自動(dòng)化學(xué)會(huì )秘書(shū)長(cháng)、IEEEP2805邊緣計算系列標準工作組主席。主要從事下一代分布式工業(yè)控制軟件、工業(yè)信息化、工業(yè)互聯(lián)網(wǎng)邊緣計算等方向的研究工作。
參考文獻:
[1]王戈,楊楠,崔粲,等.國際工業(yè)互聯(lián)網(wǎng)新進(jìn)展及分析,信息通信技術(shù)與政策[J].2018,44(10):6.
[2]Avila-ChauvetL,MejíaD,AcostaQuirozCO.ChatgptasaSupportToolforOnlineBehavioralTaskProgramming[J].AvailableatSSRN4329020,2023.
[3]IEC61499,FunctionBlocks,InternationalStandard,SecondEdition[S].2012.
[4]DrathR,LuderA,PeschkeJ,etal.AutomationML-theglueforseamlessautomationengineering[C].2008IEEEInternationalConferenceonEmergingTechnologiesandFactoryAutomation,IEEE,2008:616-623.
[5]HauseM.TheSysMLmodellinglanguage[C].FifteenthEuropeanSystemsEngineeringConference,2006,9:1-12.
[6]IEC61131-3,Programmablecontrollers-Part3:Programminglanguages,InternationalStandard,ThirdEdition,2013.
[7]WitschD,Vogel-HeuserB.CloseintegrationbetweenUMLandIEC61131-3:Newpossibilitiesthroughobjectorientedextensions[C].2009IEEEConferenceonEmergingTechnologies&FactoryAutomation,IEEE,2009:1-6.
[8]PelliccioneA.SpotlightonInnovation:Bestautomation,controlandinstrumentationproductsin19categories[J].ControlEngineering,2022,69(1):47-56.
摘自《自動(dòng)化博覽》2023年第2期暨《邊緣計算2023專(zhuān)輯》