容器化應該是今后虛擬化的重要手段
“軟件正在吞噬世界”的說法蘊含了軟件在系統中發揮著“基礎設施化”的作用,而云計算軟件開發方法成為軟件開發的主要方向。經過幾年的摸索,云計算開發方法在工業自動化軟件開發應用的虛擬化方向有了很大進展,實際運用的結果驗證了容器化在開發工業自動化軟件中所顯現的優越性。
同樣是虛擬化的技術,容器化較之虛擬機(VM)明顯有著以下優點(見圖1):

圖1 容器化應用軟件與虛擬機相比,APP顆粒度更小
◆APP的顆粒度更細,有利于形成輕量級的容器;
◆所需的硬件開銷要小得多;
◆應用代碼及其相關的軟件環境打包后安排在操作系統基礎架構上的容器引擎執行運行,無需其它任何支持;
◆容器中各個應用程序相互隔離,這種分割保證了信息安全;
◆應用代碼的更新升級可以遠程部署。
◆總之,容器是獨立的,可以通過特定的平臺按照需要來選擇和部署,給予使用者很大的靈活性;同時一個單獨而且封閉的容器又提供了原生的信息安全。
流程自動化工業對軟件容器有著其特殊的需要
流程自動化需要能在很大范圍容納各種各樣的應用軟件,諸如先進流程控制APC、流程優化和資產管理等,同時能通過標準化的接口(如OPC UA)交換數據。另外,流程自動化的容器需要在不同的物理地點和不同的主計算機硬件中移動。另外對于大型的操作來講,像Kubernetes這樣的編排工具,可以用來維護、組織和管理容器庫,按照資源的可用性自動平衡計算負載。下面列舉若干容器化技術應用在不同公司的表現。
1、Honeywell運用虛擬化的實例
Honeywell在容器化技術的應用結合需求,步子穩,進展大。不但在服務器層級運用于HMI和應用程序中,而且也開始擴充到流程自動化的其它方面,如用于I/O的軟組態。Honeywell Process Solution正在考慮讓軟件和硬件解耦的可能性,不僅僅在服務器中運用容器化技術,也包括控制器和I/O層級運用容器化技術。Honeywell開發Experion LCN(ELCN)有效地仿真了TDC 3000這樣的老系統,使得公司的老客戶得以將其在知識產權上的投資“無限地延壽”。它可與老系統100%的二進制兼容和互操作。2018年6月在Honeywell的用戶組織的大會上向公眾宣布,TDC 3000相同的代碼可以不加修改運行在虛擬環境中,大大減少了可能產生技術風險。TDC環境的虛擬化帶來許多附加的利益,包括使工程師具有應用Honeywell云基的虛擬工程平臺(Virtual Engineering Platform)的能力去提供TDC的解決方案。自此以后,Honeywell一直在繼續其虛擬化的版本,在2019年的用戶大會上宣稱其Experion PKS HIVE用于高度集成的虛擬環境。簡言之就是具有虛擬化的特性的解決方案以及硬件與軟件的解耦已經在應用程序這一級和控制器和I/O這一級實現。
2、流程工業中另一個容器化應用實例-Module Type Package(MTP)
由德國流程工業用戶組織NAMUR發起的模塊化類型包MTP利用現有的DCS和PLC的部件無縫集成為流程裝置的自動化單元,強調在優化性價比的同時將工程量降至最低、加快工程交付進度。MTP本質上是運用容器技術創建易于集成、并運用預定義的自動化模塊單元實現模塊化的流程裝置。這種預定義的自動化模塊化單元,易于按照生產的需要添加、安排和調整。每個MTP都符合標準化的方法論和框架,包括將它整合到一個模塊化的裝置中所有必要的信息(如通信服務、HMI描述、維護信息等)。例如ABB的MTP提供清單中包括ABB Ability系統800xA操作流程和編排的智能模塊,由一個開放架構的骨干網通過OPC UA通信將編排層與模塊層鏈接(見圖2)。

圖2 ABB在流程自動化MTP運用容器化技術的框圖
3、施耐德的動態
施耐德正在向越來越接近邊緣的場合運用容器化技術,在預置的數據中心或云端運用容器,或者在嵌入設備中的嵌入式系統運用容器技術。施耐德已經在產品注冊平臺、云端的歷史數據庫、云端工程軟件和云端分析軟件中運用了容器技術。這些系統受到微軟和Red Hat等公司的支持,因為它們都是原生的云基平臺。
施耐德預測,基于容器的流程自動化OPA愿景的實現將始于采用像IEC 61499這樣的標準,因為IEC 61499支持以應用軟件為中心的自動化設計,而與其下層的硬件設備獨立無關。61499圍繞功能塊建立事件驅動的模型,可以用來解決在不同的供應商之間確保可移植性、可組態性和可互操作性的問題,同時解決硬件與軟件解耦的問題。同時,61499允許獨立地開發具有跨平臺功能的容器。
4、SICK公司的實例
德國SICK公司以生產傳感器聞名。他們新近推出的TDC(Telematic Data Collection)網關就是運用Docker容器技術的典一個產品案例(見圖3)。TDC可以在智能制造、工業物聯網等場景作為邊緣網關,采集來自各種傳感器、PLC的數據,它支持I/O Link和其他現場總線(見圖4)。

圖3 SICK的TDC邊緣網關
容器化技術在工業自動化工程應用的一些優點
盡管容器化技術在工業自動化領域的應用還剛剛開始,但已經顯現出一些引人注目的優點:
1、過去用傳統的方法做項目要花一年半的時間,現在只要先在云數據中心用虛擬化的方法進行工程設計,等完成后,只要把虛擬化的軟件拷貝到物理設備中,僅交付一個帶有應用程序的容器就可以了,節省了許多調試時間。而且容器技術使靈活性達到新的水平,通過構建樣板庫,其內存儲許多事先準備好的應用程序。使用時只要進行部署就行,不用從頭開發。
2、由于容器處在實際的操作系統之外,因此當操作系統升級時對容器內的應用軟件不會產生顯著的影響。在運用容器化技術后,原來專門設計的相互配合運行的軟件和硬件表現了越來越多的獨立性,以致最后導致硬件、操作系統和應用軟件全都呈現相互無關的獨立特性。
3、運用容器化技術,當軟件和操作系統需要升級和替代時,不會產生許多難以克服的痛點。即使實現不了“無停車的替代”,運用容器化技術可以做到顯著快的替代。從最終用戶的角度看,這可是一件很有用的事情。
4、容器化也給予制造商對知識產權和領域知識的保護,以及在技術升級期間維持生產繼續而不致停頓。由于硬件從應用軟件中抽象出來,也可以想象這樣的場景:把應用軟件移植到更可靠的平臺所需停機的時間最短。
有關容器化應用發展問題的討論
1、隨著基于Linux的開源容器和編排技術選項其實際的表現越來越引人注意,有理由提出如下問題:是否這樣的技術將是促使開放流程自動化論壇OPAF邁向互操作性和即插即用的流程控制的路徑?簡短的回答:是的,確實如此。運用容器使得應用軟件從硬件中抽象出來,或者從另一個角度說,同樣的應用軟件可以在不同的硬件中執行,這只取決于特定的安裝方式。如果界面是適當設計的和定義的(例如基于國際標準IEC 61499),那么容器化可移植應用軟件,或者不同供應商所提供的的應用軟件是能夠實現互操作性的。
2、當前還沒有適合于確定性控制任務的實時的容器化/編排的方案。如果有更多的自動化公司一起來參與創建實時的Dockers和Kubernets的實現,這樣的結果完全可以期待。
3、每個公司可以持續地開發最佳適合于其產品系列的軟件包,而這些軟件由于有IEC 61499的支持可不斷提升其可互操作性。由此可見,容器化和編排技術一定能推進互操作性和開放性。
4、虛擬化的策略也可以以專有的方式提升和推進。美國自動化咨詢集團ARC雖然認同這一正交性(orthogonality),不過他們主張:正像把知識產權從控制語言和專用語言中解放出來,容器化和編排也需要成為工業方法的一部分,而不是專為某一種機型準備具有高度的專用性。讓容器和編排進行標準化,這才是走出死胡同的出路。
在下一個五年或更多一些時間內,云軟件開發技術相比其它形式的軟件開發,顯然會成為主要的形式。而且企業軟件、嵌入式軟件和云軟件這三種軟件開發將會極大地融合匯聚。有理由期望用于云計算業務的開源軟件技術將會快速發展和推廣,所有軟件的開發將會使用云軟件開發的方法。值得關注的是,這一融合匯聚將會被迅速發展的開源軟件的步伐所推動,而不是由目前工業自動化行業所采用的軟件開發方法邁著緩慢的步伐在前行。