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