摘要:邊緣計算是智能制造的基石,靈活的軟件體系是支撐邊緣智能計算的核心。邊緣計算同時(shí)也是傳統工業(yè)由自動(dòng)化向信息化與智能化發(fā)展的重要手段。在邊緣計算的推動(dòng)下,傳統工業(yè)現場(chǎng)設備的軟件系統勢必發(fā)生翻天覆地的變化。本文通過(guò)對現有邊緣端工業(yè)軟件體系的剖析,分析邊緣計算給工業(yè)軟件設備層帶來(lái)的需求變革以及未來(lái)發(fā)展趨勢。
關(guān)鍵詞:服務(wù)化邊緣計算;建模語(yǔ)言;設計方法;動(dòng)態(tài)重構;工業(yè)軟件智能體;邊緣機器學(xué)習;數據采集監控
1 引言
上世紀70年代,可編程邏輯控制器的誕生促使工業(yè)進(jìn)入3.0時(shí)代,制造過(guò)程自動(dòng)化程度得到大幅度的提升。過(guò)去十年中,隨著(zhù)計算機與信息技術(shù)的高速發(fā)展,工業(yè)數字化得以迅速普及。工業(yè)軟件是企業(yè)生產(chǎn)過(guò)程實(shí)現自動(dòng)化與信息化的關(guān)鍵,涉及到設計、編程、工藝、控制、監控、通訊、管理等所有環(huán)節。工業(yè)軟件往往需要根據過(guò)程控制、運動(dòng)控制、離散制造等不同行業(yè)的工藝需求進(jìn)行定制,以提升企業(yè)生產(chǎn)效率、優(yōu)化配置資源以及提升產(chǎn)品的質(zhì)量。
現有的工業(yè)軟件大體上可以分為嵌入式軟件與非嵌入式軟件兩類(lèi)。嵌入式工業(yè)軟件主要是應用在可編程邏輯控制器、傳感器、工業(yè)網(wǎng)關(guān)、機器人、AGV等工業(yè)現場(chǎng)設備中,實(shí)現對生產(chǎn)過(guò)程的狀態(tài)采集、實(shí)時(shí)控制與通信,通常對實(shí)時(shí)性、安全性、可靠性有著(zhù)極高的要求。而非嵌入式軟件則為包括產(chǎn)品的研發(fā)設計與業(yè)務(wù)的運行管理提供信息化手段,這類(lèi)的工業(yè)軟件主要包括計算機輔助設計軟件CAD、產(chǎn)品數據管理系統PDM、產(chǎn)品生命周期管理系統PLM、企業(yè)資源計劃系統ERP、客戶(hù)管理系統CRM、生產(chǎn)執行管理系統MES、數據采集與分析系統SCADA、系統仿真軟件SIM等等。
現有的工業(yè)系統多數遵循ISA-95國際標準,如圖1所示,ISA-95為工業(yè)系統定義了類(lèi)似于金字塔結構的五層框架。金字塔五層框架的最底層是現場(chǎng)層,現場(chǎng)層通常包含各類(lèi)傳感器、執行器、變頻器、電機等現場(chǎng)設備。在設備層之上是現場(chǎng)控制層,工業(yè)自動(dòng)化系統通常采用可編程邏輯控制器(PLC)或者分布式控制系統(DCS)作為控制大腦。PLC以及DCS通過(guò)工業(yè)現場(chǎng)總線(xiàn)與現場(chǎng)層的傳感器與執行器連接形成傳感器數據->控制邏輯->執行器指令的閉環(huán)結構。PLC主要應用于機器設備的實(shí)時(shí)控制、運動(dòng)控制、過(guò)程控制等領(lǐng)域,而DCS則主要應用在復雜過(guò)程控制中。IEC 61131-3國際標準定義了五種PLC 的編程語(yǔ)言,分別包括圖形化編程語(yǔ)言L(fǎng)adder Diagram(LD),Sequential Function Chart(SFC)以及Function Block Diagram(FBD),以及文本型編程語(yǔ)言Structure Text(ST)和Instruction List(IL)。連接PLC與DCS的是監控層,通常監控數據采集系統(SCADA)會(huì )部署在每個(gè)工廠(chǎng),允許用戶(hù)從PLC與DCS采集過(guò)程數據,提供歷史數據趨勢、實(shí)時(shí)與歷史警報、圖表報告、人機交互界面等功能,并且支持下載參數到PLC與DCS上。在監控層之上的是管理層,生產(chǎn)執行管理系統(MES)負責工廠(chǎng)制造數據管理、生產(chǎn)計劃排程、生產(chǎn)調度管理、倉庫管理、質(zhì)量管理等功能。金字塔的頂層是企業(yè)資源管理系統(ERP)系統,通過(guò)對企業(yè)全方位信息的匯總與優(yōu)化,提升企業(yè)管理效率,降低成本,有著(zhù)較大的經(jīng)濟價(jià)值。
圖1 工業(yè)系統框架
根據ISA-95標準制定的金字塔結構同樣存在許多弊端。首當其中的是不同層級間的信息傳遞十分困難。例如,當ERP系統需要讀取一個(gè)工廠(chǎng)內傳感器的數據時(shí),需要經(jīng)過(guò)一個(gè)復雜的數據交互過(guò)程,首先ERP系統向MES系統發(fā)送請求,MES轉而向現場(chǎng)SCADA系統請求數據,SCADA系統則需要從相應的PLC或者DCS系統查詢(xún)變量,而PLC或者DCS系統則負責從傳感器獲取最新數據返回給SCADA系統,進(jìn)而傳遞給MES系統,最后才能抵達ERP系統。試想一下在大型系統中當數千個(gè)參數以這種方式傳遞時(shí),整個(gè)信息的傳遞過(guò)程不但耗時(shí)且效率非常低下,造成大量計算與通訊資源的浪費。
其次,固化的軟件結構無(wú)法適應工業(yè)互聯(lián)網(wǎng)時(shí)代下大規模定制生產(chǎn)的需求。在工業(yè)互聯(lián)網(wǎng)平臺的支撐下,客戶(hù)可以根據原料、工藝、功能等多方面的因素自定義產(chǎn)品需求。邊緣端需要根據不同的訂單要求動(dòng)態(tài)地配置組合本地資源以完成生產(chǎn)任務(wù),而現有的構架需要對軟件進(jìn)行長(cháng)時(shí)間停機調試,造成停工時(shí)間大幅度增加。
除此之外,邊緣端設備與設備間缺乏有效協(xié)作手段,無(wú)法應對不斷變化的生產(chǎn)狀態(tài)。ISA-95框架僅僅提供了縱向集成手段,而對橫向集成,尤其是設備間與系統間的協(xié)作并未涉及?,F實(shí)情況是每家廠(chǎng)商擁有自己的標準與技術(shù)手段,使得不同邊緣端平臺間協(xié)作十分困難, 缺乏統一的有效手段來(lái)解決兼容性問(wèn)題。因此,工業(yè)互聯(lián)網(wǎng)對邊緣計算軟件提出了全新的需求。
因此,邊緣端的軟件智能化就變得尤其重要。如果說(shuō)邊緣計算是智能制造的基石,那靈活的軟件體系就是支撐邊緣智能計算的核心。邊緣計算同時(shí)也是傳統工業(yè)由自動(dòng)化向信息化與智能化發(fā)展的重要手段。在邊緣計算的推動(dòng)下,傳統工業(yè)現場(chǎng)設備的軟件系統勢必發(fā)生翻天覆地的變化。
2 邊緣計算下的軟件構架需求
軟件定義一切(Software-Defined Everything,SDX)的概念已經(jīng)深入企業(yè),正如許多人所認同的,將來(lái)所有的工業(yè)企業(yè)都是軟件企業(yè),也都是數據企業(yè)。軟件定義的核心特征是靈活性(Flexibility),靈活性可以體現為軟件的功能行為能夠根據需求進(jìn)行動(dòng)態(tài)調整而無(wú)需重新編程。軟件定義的邊緣計算賦予工業(yè)互聯(lián)網(wǎng)對未來(lái)無(wú)限可能性(Future-Proof)的拓展可能,為現有的工業(yè)轉型帶來(lái)活力。
圖2 邊緣計算下的軟件構架需求
靈活的體系也對邊緣計算軟件提出了許多新的需求。首先,邊緣計算下的工業(yè)軟件必須具備動(dòng)態(tài)重構(Dynamic Reconfigurability)的特征。動(dòng)態(tài)重構能幫助系統針對需求變更做出實(shí)時(shí)自我調整生產(chǎn)過(guò)程。動(dòng)態(tài)重構的成熟度可以分為多個(gè)等級:低級的動(dòng)態(tài)重構可以根據需求變更調整工藝參數,受限于固化的生產(chǎn)過(guò)程,低級的動(dòng)態(tài)重構僅能滿(mǎn)足一部分簡(jiǎn)單的定制要求,例如調整過(guò)程控制中各種參數;中級的動(dòng)態(tài)重構在調整工藝參數的基礎上,應具備從預先設定的功能集合中動(dòng)態(tài)組合更新生產(chǎn)過(guò)程從而滿(mǎn)足定制需求,比如在離散制造過(guò)程中選擇所需的工位,雖然通過(guò)選擇功能可以一定程度上實(shí)現產(chǎn)品定制,仍然缺乏學(xué)習新的生產(chǎn)工藝流程的能力,無(wú)法做到真正的“隨心所欲”;高級的動(dòng)態(tài)重構則不但能完全按照客戶(hù)需求對軟件動(dòng)態(tài)組態(tài),而且能創(chuàng )造新的功能與定義新的工藝流程。在無(wú)需人工干預的情況下,產(chǎn)線(xiàn)上的每個(gè)產(chǎn)品都能做到定制而不用人工干預調整軟件,才是真正的智能制造。
邊緣計算下的工業(yè)軟件必須實(shí)現可移植(Portability),具備從一個(gè)平臺向另一個(gè)平臺遷移的能力。工業(yè)軟件兼容性是多年來(lái)一直困擾著(zhù)業(yè)界的難題,以工控軟件為例,雖然絕大數廠(chǎng)商聲稱(chēng)支持IEC61131-3標準,但是這些廠(chǎng)商的軟件產(chǎn)品相互之間并不兼容,假設如果一家企業(yè)基于西門(mén)子Step7開(kāi)發(fā)了大量的應用庫,這些代碼很難被移植到羅克韋爾或者施耐德的平臺上。各家廠(chǎng)商一方面為了保護自己的知識產(chǎn)權與客戶(hù)資源設置壁壘,另一方面是對標準的理解并不相同使語(yǔ)言的解析各不相同,造成看起來(lái)完全一樣的代碼在不同的平臺上運行也可能產(chǎn)生多種結果,從而造成軟件執行結果的不確定。
邊緣計算下的工業(yè)軟件必須能夠互聯(lián)互通相互操作(Interoperability)?,F有的工業(yè)系統通常使用工業(yè)現場(chǎng)總線(xiàn)來(lái)進(jìn)行通訊,而每家廠(chǎng)商都有研發(fā)了專(zhuān)屬的總線(xiàn)協(xié)議與標準。目前,常用的工業(yè)現場(chǎng)總線(xiàn)協(xié)議就有四十余種,如此多的總線(xiàn)協(xié)議造成設備間無(wú)法正常進(jìn)行信息交互。即使設備與設備間使用相同的現場(chǎng)總線(xiàn),也存在信息模型交互困難。OPC UA的出現為實(shí)現設備間的互操作提供了通用信息模型,且定義了訪(fǎng)問(wèn)方式。在此基礎上,邊緣端仍需要進(jìn)一步結合知識經(jīng)驗進(jìn)行實(shí)時(shí)決策,從而實(shí)現真正的智能制造。
在工業(yè)互聯(lián)網(wǎng)與邊緣計算的共同推動(dòng)下,軟件定義的工業(yè)軟件須向新的體系構架進(jìn)化來(lái)滿(mǎn)足大規模定制的需求。
3 面向服務(wù)的邊緣計算軟件框架
服務(wù)化的軟件系統在計算機領(lǐng)域已經(jīng)得到了廣泛的應用。相對面向對象(Object-OrientedProgramming)等其他編程范式,面向服務(wù)的構架(Service-Oriented Architecture,SOA)有著(zhù)松散耦合的特性,極大提升了系統的靈活性。SOA主要分為三個(gè)部分:分別是服務(wù)提供方、服務(wù)需求方以及服務(wù)源(Service Repository)。服務(wù)提供方將自己所提供的服務(wù)內容、訪(fǎng)問(wèn)方式等內容寫(xiě)入服務(wù)合約(ServiceContract)中,并將服務(wù)合約發(fā)布到服務(wù)源。服務(wù)需求方當需要某項服務(wù)時(shí),會(huì )先向服務(wù)源發(fā)送查詢(xún)請求,當服務(wù)源匹配到合適的服務(wù)提供方時(shí),會(huì )將此服務(wù)合約發(fā)送給服務(wù)需求方。需求方根據服務(wù)合約內的所約定的訪(fǎng)問(wèn)方式動(dòng)態(tài)創(chuàng )建與服務(wù)提供方的連接。SOA最大的特點(diǎn)就是遲綁定(Late Binding),即當需要請求軟件服務(wù)時(shí),供需雙方才建立實(shí)時(shí)連接,當執行完成時(shí),綁定會(huì )立即解除。
面向服務(wù)構架的松散耦合特性能滿(mǎn)足邊緣計算下軟件實(shí)時(shí)變更的需求,然而有些最基本的問(wèn)題必須要解決,例如:
·服務(wù)提供方如何讓需求方了解所提供的服務(wù);
·服務(wù)需求方如何發(fā)現他們所需要的服務(wù);
·服務(wù)提供方如何授權給需求方服務(wù)的執行權限;
·服務(wù)需求方如何通過(guò)服務(wù)編排來(lái)組合調用多個(gè)服務(wù)。
邊緣計算的軟件服務(wù)必須包含兩個(gè)部分:核心服務(wù)以及擴展服務(wù)。核心服務(wù)回答了以上問(wèn)題:
·發(fā)現其他服務(wù)的能力;
·實(shí)現服務(wù)提供方與需求方之間松散耦合的數據交換;
·授權服務(wù)使用;
·自動(dòng)編排服務(wù)功能。
而擴展服務(wù)完全取決于服務(wù)提供方,只需符合服務(wù)標準接口協(xié)議即可。在邊緣計算中,每個(gè)節點(diǎn)都可以作為服務(wù)的提供方,同時(shí)也是服務(wù)的需求方。每個(gè)節點(diǎn)根據自身硬件條件限制將不同服務(wù)分門(mén)別類(lèi),例如傳感器可以提供各種溫濕度、振動(dòng)、到位等信息,控制器則可以根據各種傳感信息提供反饋控制信號,而執行器(變頻器、電機等)則根據指令驅動(dòng)硬件??刂品?wù)則同時(shí)需要傳感服務(wù)提供的數據以及調用執行服務(wù)來(lái)實(shí)現實(shí)時(shí)控制。在邊緣計算系統中,存在著(zhù)多個(gè)基礎型服務(wù)提供節點(diǎn)間基本信息交互,同時(shí)也有組合型服務(wù),即通過(guò)對基礎型服務(wù)的編排實(shí)現復雜功能,例如嵌入式機器學(xué)習服務(wù)可以根據傳感器數據來(lái)對產(chǎn)品質(zhì)量進(jìn)行實(shí)時(shí)分類(lèi)。復雜的服務(wù)編排在非功能性需求中有著(zhù)廣泛的應用前景,例如系統安全、實(shí)時(shí)性或者可靠性需求等。邊緣計算軟件服務(wù)化的實(shí)現路徑有很多,例如COAP、XMPP或者OPC-UA協(xié)議都可以滿(mǎn)足服務(wù)化的需求。
圖3 面向服務(wù)的邊緣計算軟件框架
在復合型服務(wù)之上,更多的軟件服務(wù)通過(guò)編排共同完成工藝流程,我們稱(chēng)為應用(Application)。這幾年工業(yè)互聯(lián)網(wǎng)與工業(yè)App的概念隨處可見(jiàn),工業(yè)App的本質(zhì)是工業(yè)軟件的服務(wù)化,與傳統手機App終端與云端互動(dòng)的構架所不同的是,工業(yè)App的形式不僅僅是簡(jiǎn)單的一對一連接,也可以由多個(gè)不同設備與云端協(xié)作完成。而邊緣計算則是工業(yè)App的落腳點(diǎn),僅靠云端的工業(yè)App是瘸了腿的兔子,無(wú)法對生產(chǎn)系統做出實(shí)時(shí)優(yōu)化,同樣也無(wú)法產(chǎn)生更大的經(jīng)濟價(jià)值。因此邊緣計算應用可以小到一個(gè)工位的控制與人機界面操作,也可以大到整條產(chǎn)線(xiàn)的控制系統。邊緣計算應用之間通過(guò)協(xié)作也可以形成更大的子系統(System of Systems),使用統一構架的邊緣計算子系統相對現有的ISA-95構架擁有更強的延展性、靈活性與較強的兼容性。
4 邊緣計算通用建模語(yǔ)言
實(shí)現服務(wù)化邊緣計算系統的一大障礙是多種編程語(yǔ)言的共存?,F有工業(yè)系統內各種嵌入式軟件五花八門(mén),例如C/C++語(yǔ)言、IEC 61131-3所包含的五種PLC編程語(yǔ)言,各種.Net/HTML5/JavaScript等人機界面編程語(yǔ)言,甚至于使用python作為嵌入式機器學(xué)習等等。除此之外,設備與設備之間的信息通訊也不暢,單控制器與傳感器之間所使用的工業(yè)互聯(lián)網(wǎng)總線(xiàn)就有二十余種。最后,可視化的模型同樣也是必不可少的??梢暬UZ(yǔ)言能夠提供給用戶(hù)直觀(guān)的系統設計,特別是對高復雜性的系統,抽象化模型可以提升系統設計的效率。因此,目前邊緣計算缺乏能夠涵蓋感知、控制、通訊、監控、數據處理等多種用途的通用可視化建模語(yǔ)言。
如上一章節所敘述的,邊緣計算服務(wù)框架能夠賦予邊緣計算系統可移植、可重構與互操作等特性。結合邊緣計算編程語(yǔ)言的實(shí)際情況,模塊化的設計(Component-Based Design)是實(shí)現服務(wù)化框架的最佳選擇。模塊化設計的基本元素是功能塊(Function Block)本體與通用軟件接口(Interface)。使用基于IEC 61499功能塊標準封裝IEC 61131-3 ST、LD、C/C++、HTML5/JS等編程語(yǔ)言,并且將功能塊的輸入與輸出接口分別映射成為軟件服務(wù)的輸入參數與返回參數,是實(shí)現邊緣計算軟件服務(wù)化的有效手段。
圖4 邊緣計算通用建模語(yǔ)言
IEC 61499作為可執行的建模語(yǔ)言提供了標準的功能塊接口定義、分等級的功能塊網(wǎng)絡(luò )、部署模型以及管理協(xié)議為模塊化抽象系統設計提供了強有力的支持?;A型服務(wù)可以使用IEC 61499基礎功能塊表述,每個(gè)基礎功能塊可以定義多個(gè)邏輯(Algorithm),IEC 61499標準并未指定編程語(yǔ)言,因此每個(gè)邏輯可以使用不同的編程語(yǔ)言編寫(xiě)。在此基礎上,每個(gè)邏輯可以單獨作為一個(gè)服務(wù)入口羅列到服務(wù)合約中,當此軟件服務(wù)被調用時(shí),服務(wù)需求方將更新輸入變量,而服務(wù)提供方則將執行相應的邏輯代碼并且返回結果(輸出變量)。IEC 61499標準同時(shí)也提供了復合功能塊類(lèi)型,每個(gè)復合功能塊則內含功能塊網(wǎng)絡(luò ),結構化分層級的服務(wù)編排有了用武之地。IEC 61499標準的部署模型允許在同一個(gè)系統內設置多個(gè)并行的應用,并且多個(gè)應用可以分別運行在不同的設備上,而每個(gè)應用中的功能塊網(wǎng)絡(luò )也可以分別部署到不同的設備上。此部署模型將復雜的設備間數據交互與部署工作抽象化,并且可以通過(guò)管理協(xié)議動(dòng)態(tài)部署且直接執行,減少了人工配置造成的錯誤,大幅度提升了系統開(kāi)發(fā)的效率。
5 邊緣計算數據驅動(dòng)的智能管控
得益于芯片技術(shù)的發(fā)展,邊緣節點(diǎn)的計算與儲存能力得到大大增強,在滿(mǎn)足實(shí)時(shí)控制的同時(shí),剩余的算力與儲存能力還沒(méi)得到充分挖掘。隨著(zhù)工業(yè)互聯(lián)網(wǎng)的推廣,數據采集與分析的需求成爆炸式增長(cháng)。毫秒級的傳感器數據采集頻率能夠產(chǎn)生大量的生產(chǎn)過(guò)程數據,若將數據完全搬到云端會(huì )造成極大的計算與儲存壓力,造成企業(yè)云計算成本直線(xiàn)上升。在邊緣計算對數據進(jìn)行驗證、清洗、過(guò)濾、緩存能夠大幅度緩解云端的壓力。此外,高實(shí)時(shí)性的警報、機器學(xué)習模型判斷、甚至于機器學(xué)習模型訓練等任務(wù)可以通過(guò)云端分發(fā)到邊緣端,在數據源頭直接進(jìn)行判斷,基于工業(yè)多軟件智能體、知識推理等以往需要大量計算與儲存資源的技術(shù)滿(mǎn)足高實(shí)時(shí)性系統決策的需求,在邊緣計算系統中也有大量發(fā)揮的余地。邊緣-云協(xié)作模式下,能突破以往系統的邊界,激發(fā)更多新的業(yè)務(wù)模式創(chuàng )新與工藝水平提升。
6 結語(yǔ)
相對于云計算的低實(shí)時(shí)性與高性能計算的特點(diǎn),邊緣計算善于處理高實(shí)時(shí)性小數據。結合邊緣計算與云計算的特點(diǎn),工業(yè)互聯(lián)網(wǎng)應采取云計算與邊緣計算相輔相成的閉環(huán)策略。相對于云計算的成熟體系,邊緣計算建立完整的語(yǔ)言、工具與標準體系刻不容緩也勢在必行。
作者簡(jiǎn)介:
戴文斌,上海交通大學(xué)電子信息與電氣工程學(xué)院自動(dòng)化系副教授,教育部系統控制與信息處理重點(diǎn)實(shí)驗室成員。分別于2007年與2012年在新西蘭奧克蘭大學(xué)獲得榮譽(yù)學(xué)士與博士學(xué)位。近年來(lái)主要從事基于分布式工業(yè)自動(dòng)化系統軟件架構體系設計與應用、工業(yè)信息物理系統信息化與知識自動(dòng)化、醫療物理信息融合系統與知識推理等方向的研究工作。以第一作者身份在IEEE Transactions和國際重要學(xué)術(shù)會(huì )議上發(fā)表SCI/EI論文40余篇,合作出版英文專(zhuān)著(zhù)1部。作為子課題負責人,參與完成了歐盟最大物聯(lián)網(wǎng)與自動(dòng)化項目Arrowhead;參與個(gè)性化硬組織精準醫療器械的智能設計及增材制造體系構建、智能電網(wǎng)運行及交易理論、工業(yè)控制系統自動(dòng)軟件構造等科技部國家重點(diǎn)研發(fā)計劃;獲得2013和2014 IEEE IES年會(huì )最佳報告獎。目前,為IEEE高級會(huì )員, IEC SC65B WG15標準以及IEEEP2660.1標準制定工作小組成員, 擔任IEEE IES工業(yè)智能體、工業(yè)信息學(xué)技術(shù)委員會(huì )成員,IEEE-IES上海分會(huì )秘書(shū),IEEE SMC智能工業(yè)系統技術(shù)委員會(huì )成員。
摘自《自動(dòng)化博覽》2018年增刊《邊緣計算2018專(zhuān)輯》