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