摘要:實現(xiàn)工業(yè)互聯(lián)網價值離不開邊緣計算的支撐,而工業(yè)現(xiàn)場設備種類繁多, 領域特性又大相徑庭,目前工業(yè)邊緣計算應用雖然已有一定數(shù)量,但通用性較差。工業(yè)邊緣計算是OT與IT融合的典型應用場景,工業(yè)邊緣APP需要同時支撐邏輯運動控制、監(jiān)控人機界面等OT應用與視覺檢測、數(shù)據(jù)采集分析、預測性維護、生產管理等IT應用。通過IEC 61499標準與微服務、容器化技術融合,工業(yè)邊緣應用可以實現(xiàn)多種編程語言混合設計,通過軟硬件解耦靈活部署到任意邊緣節(jié)點, 從而實現(xiàn)工業(yè)互聯(lián)網從數(shù)據(jù)到模型再到控制的完整閉環(huán),真正為制造業(yè)賦能。
關鍵詞:邊緣計算;工業(yè)邊緣APP;微服務;容器化;IEC 61499
1 引言
在過去幾年中,工業(yè)互聯(lián)網平臺如雨后春筍般涌現(xiàn),無論是通用性平臺還是面向垂直領域的專業(yè)功能性平臺目前都有千余家在運營,已初具規(guī)模。工業(yè)互聯(lián)網平臺需要大量邊緣設備接入,采集海量過程數(shù)據(jù)并進行處理分析來實現(xiàn)對生產過程的優(yōu)化。更重要的是優(yōu)化模型也需要以工業(yè)邊緣App的形式重新部署到邊緣設備上,使得工業(yè)互聯(lián)網平臺真正實現(xiàn)賦能企業(yè)。
工業(yè)邊緣計算應用(工業(yè)邊緣App)種類繁多, 除了包含傳統(tǒng)的實時控制、運動控制、現(xiàn)場總線通訊、人機界面等功能外,還融合了數(shù)據(jù)采集與處理、機器視覺、生產管理、運營維護等創(chuàng)新性應用。無論是側重于OT或是IT的工業(yè)邊緣App,面向異構平臺都需要多種OT與IT語言混合設計。顯然傳統(tǒng)基于桌面應用的工業(yè)軟件開發(fā)方式無法滿足工業(yè)邊緣計算應用輕量、靈活與協(xié)作的特性。
歐盟早在2017年就對此問題展開研究,例如圖1中列舉的Horizon 2020的DAEDALUS項目的架構[1],為支撐信息物理系統(tǒng)設備間協(xié)作,圍繞IEC 61499標準[2],使用面向對象的模塊化設計方法對現(xiàn)場中各種設備進行封裝,通過基于IEC 61499的集成開發(fā)環(huán)境與自動化App 應用商店提升應用與算法的復用性,建立以自動化開發(fā)者、設備與零件供應商以及系統(tǒng)集成商為核心的生態(tài)圈。此外,由幾十家廠商所組成的開放過程自動化聯(lián)盟(OPAF)[3]同樣以開放標準來整合MES、DCS、HMI、 PLC以及I/O功能,基于模塊化設計實現(xiàn)過程控制系統(tǒng)的開放性以及互操作性。
圖1 歐盟Horizon 2020 DAEDALUS項目架構[1]
工業(yè)互聯(lián)網平臺要發(fā)揮賦能作用,除了數(shù)據(jù)上云之外,更重要的是提供通用的編程語言與設計工具,協(xié)助現(xiàn)場工程師高效地將Know-How轉變成工業(yè)邊緣App, 無需具備專業(yè)知識的全棧工程師也能快速地開發(fā)、部署與調試工業(yè)邊緣App,從而真正實現(xiàn)工業(yè)互聯(lián)網價值落地,填補工業(yè)互聯(lián)網關鍵核心技術空心化的問題。
2 基于微服務的工業(yè)邊緣應用設計
近年來, IT系統(tǒng)軟件設計范式已經逐漸從面向對象編程(OOP)向面向服務架構(SOA)進化。面 向服務架構的軟件設計方法對模塊接口的統(tǒng)一定義來實現(xiàn)軟件模塊的松散耦合,使得由不同編程語言、操作系統(tǒng)與硬件平臺實現(xiàn)的應用模塊通過統(tǒng)一編排來完成特定功能,從而提升軟件復用性。SOA解決了不同系統(tǒng)之間應用數(shù)據(jù)交互的難題。與SOA類似,微服務(Microservice)同樣由松散耦合的可復用軟件模塊組成。不同的是,SOA更加適合開發(fā)大型企業(yè)級應用, 而微服務更多滿足針對某個特定領域的定制化需求,并具有更新簡單、擴展容易等特點。工業(yè)邊緣計算系統(tǒng)涉及領域眾多、通常由異構設備組成等特性完全符合微服務的適用范圍,因此,微服務是工業(yè)邊緣App設計范式的完美選擇。
隨著工業(yè)邊緣設備計算與儲存能力的不斷提升,工業(yè)邊緣計算節(jié)點除了能涵蓋原ISA-95架構中的感知層、控制層以及監(jiān)控層的應用,還能支撐視覺檢測、機器人與AGV控制、數(shù)據(jù)采集處理、生產管理等新型工業(yè)邊緣應用。如圖2所示,一個工業(yè)邊緣App可以分為三個類型:獨立工業(yè)邊緣App、分布式工業(yè)邊緣App以及邊- 云協(xié)同工業(yè)App。獨立工業(yè)邊緣App通常適用于單一功能應用(例如數(shù)據(jù)采集)或者包含實時控制、人機界面以及數(shù)據(jù)采集的小型系統(tǒng),此類工業(yè)邊緣App通常只需一個節(jié)點即可完成所有任務;分布式工業(yè)邊緣App通常需要多個節(jié)點協(xié)同來實現(xiàn)復雜任務,例如大型物流系統(tǒng)或者復雜生產系統(tǒng);邊-云協(xié)同工業(yè)App則是針對類似于大數(shù)據(jù)處理或者深度學習等無法完全依靠邊緣計算解決的新型混合系統(tǒng),需要利用云平臺的計算與儲存能力來協(xié)助實現(xiàn)生產過程中的優(yōu)化。
圖2 工業(yè)邊緣App分類
工業(yè)邊緣App通常是由多個功能組合而成,如一個PCB質量檢測的產線牽涉到實時控制、運動控制、機器視覺、數(shù)據(jù)采集、模型訓練、人機界面等多項功能, 而每項功能則可能由不同的編程語言所開發(fā)。例如,實時控制通常采用基于IEC 61131-3[4]的邏輯控制,運動控制多基于G代碼,而機器視覺則采用Python或者C++ 等高級語言。如果將每個功能看作是獨立的微服務,用戶則需要使用統(tǒng)一的建模語言編排這些微服務。而IEC 61499功能塊系列標準則是目前適合的建模語言。IEC 61499標準提供了基于事件觸發(fā)功能塊的標準封裝方式,對包含IEC 61131-3、C++等高級語言的統(tǒng)一封裝,能有效地獨立于微服務開發(fā)。除此之外,標準中提供了功能塊網絡模型、資源模型、設備資源等完整的軟件模型來支持微服務的復用性與可移植性。如圖3 所示,將每個功能塊看作是獨立的微服務,而功能塊接口則是調用API。功能塊網絡將各個模塊通過控制流與數(shù)據(jù)流整合,形成一個或者多個應用程序,通過IEC 61499部署模型將應用程序映射到不同的邊緣計算節(jié)點上,實現(xiàn)了系統(tǒng)級工業(yè)邊緣計算應用的統(tǒng)一建模設計。與UML等建模語言不同的是,IEC 61499提供了完整的功能塊執(zhí)行機制,因此功能塊網絡能夠被直接部署與執(zhí)行,從而減少了從建模語言到可執(zhí)行代碼的轉換, 避免了由于模型轉換造成的代碼質量問題,從而提升設計效率。目前施耐德電氣EcoStruxure Automation Expert[5]以及國產海王星模塊工匠Function Block Builder[6]等IEC 61499工具已經初步具備了應對工業(yè)邊緣計算混合設計的能力。
圖3 基于IEC 61499的OT與IT混合設計
3 輕量級容器化工業(yè)邊緣應用運行環(huán)境
在IT應用開發(fā)中,微服務往往與容器密不可分。將微服務通過容器化封裝可以實現(xiàn)微服務的獨立運行, 同時將依賴庫文件與操作系統(tǒng)一同移植可以有效減少由于開發(fā)環(huán)境與部署環(huán)境的差異而造成的問題?,F(xiàn)有的Linux容器主要有Docker、LXC/LXD等選擇,然而目前所有Linux容器都是為IT應用設計,針對計算與儲存能力有限的工業(yè)邊緣計算節(jié)點而言,這些容器都過于臃腫。特別是面向工業(yè)實時控制等高實時性、高可靠性要求的傳統(tǒng)OT應用,目前容器在更新時間、文件大小以及操作性等關鍵上與工業(yè)現(xiàn)場實際需求還存在一定的差距,針對工業(yè)邊緣計算的輕量級容器化運行環(huán)境仍然是待解決的重要問題。
圖4 基于IEC 61499的工業(yè)邊緣計算容器化運行環(huán)境
基于IEC 61499的微服務化工業(yè)邊緣App同樣需要輕量級容器化的運行環(huán)境支撐。如圖4所示,以Linux 容器為基礎,將每個微服務作為單獨容器封裝,容器依次將IEC 61499微服務運行環(huán)境、所需要的編程語言支撐環(huán)境以及基于IEC 61499的應用程序加載,最后通過IEC 61499功能塊網絡將不同微服務之間串聯(lián)起來。當需要對應用程序重新編排時,僅需對微服務調用順序進行重新編排,無需對容器進行修改;當需要對微服務進行更新時,則只需要對容器內的頂層應用程序進行更新即可完成,而無需影響其他微服務以及系統(tǒng)的運作。通過容器化封裝功能塊,微服務可以實現(xiàn)軟件與硬件的完全解耦,從而顯著提升邊緣計算系統(tǒng)的靈活性。
當工業(yè)邊緣App開發(fā)完成后,最后一步需要將工業(yè)邊緣App從云端或者網關部署到邊緣計算節(jié)點上。容器化工業(yè)邊緣App能保證從開發(fā)環(huán)境部署到生產環(huán)境的一致性,開發(fā)者將封裝完成的容器上傳到云端的工業(yè)邊緣App市場,系統(tǒng)集成商或者設備制造商可以根據(jù)需求從云端購買相應的工業(yè)邊緣App,并且通過簡易配置部署到邊緣計算節(jié)點。在這方面國內已經有了非常不錯的基礎,華為云IEF以及容器市場已經實現(xiàn)了容器的交易、配置以及從云端向邊緣端的部署,當與基于IEC 61499 實現(xiàn)對微服務的統(tǒng)一編排與管理融合后,快捷地遠程部署調試將不再是夢想。
4 結語
如何高效設計OT與IT融合工業(yè)互聯(lián)網邊緣計算應用一直是制約工業(yè)互聯(lián)網價值落地的關鍵技術之一。將IEC 61499功能塊標準與微服務、容器化融合能夠賦予工業(yè)邊緣App軟硬件解耦的能力,使其適用于擁有不用計算、儲存與通訊能力的邊緣計算節(jié)點,提升系統(tǒng)的靈活性、互操作性與可移植性。當基于微服務、輕量級容器以及IEC 61499的工業(yè)邊緣App與確定性IP網絡、TSN等網絡緊密結合時,工業(yè)互聯(lián)網邊緣計算將發(fā)揮其真正的價值。
作者簡介:
戴文斌,上海交通大學電子信息與電氣工程自動化系副教授,博士生導師,隸屬“系統(tǒng)控制與信息處理”教育部重點實驗室,上海市自動化學會秘書長。近年來主要從事下一代分布式工業(yè)控制軟件、工業(yè)信息化、工業(yè)互聯(lián)網邊緣計算等方向的研究工作。是IEC TC65B/WG15(IEC 61499)標準委員會國內唯一專家,IEEE P2805邊緣計算標準工作組組長。目前擔任IEEE-TII編委、IEEE-IES工業(yè)信息學技術專委會主席以及多個IEEE-IES旗艦會議的程序委員會主席等職務。
參考文獻:
[1] EU. Horizon 2020 DAEDALUS Project[EB/OL]. http://daedalus.iec61499.eu/.
[2] IEC 61499, Function Blocks, International Standard, Second Edition[S]. 2012.
[3] The Open Group. The Open Process Automation Forum[EB/OL]. https://www.opengroup.org/forum/open-processautomation-forum.
[4] IEC 61131-3, Programmable controllers - Part 3: Programming languages, International Standard, Third Edition[S]. 2013.
[5] Schneider Electric. Schneider Electric EcoStruxure Automation Expert[EB/OL]. https://www.se.com/ww/en/productrange-presentation/23643079-ecostruxure%E2%84%A2-automation-expert/.
[6] 國際電工委員會. Function Block Builder[EB/OL]. http://www.iec61499.cn
摘自《自動化博覽》2021年2月刊