關於PLC虛擬化的思考-當下及未來

“軟件正在吞噬世界,所有過去特定硬件實現的功能,現在都會通過軟件實現”,傳統封閉的工業控制系統,其通過特定硬件實現的功能在工業互聯網或工業4.0時代都將被軟件所取代。

一、關於PLC虛擬化

我一直在關注當前和未來PLC虛擬化發展狀態的演進,虛擬化技術的偉大之處在於,在過去六十年的IT中,沒有任何其他進步能提供比虛擬化更多的可量化優勢。從歷史來看,PLCPC的祖宗是一家人,他們都是經歷繼電器時代發展演變而來。既然IT在虛擬化中取得巨大成功,同是一家人的PLC爲什麼不能享受虛擬化的巨大優勢?

值得再次強調的是,本文所指PLC虛擬化絕非軟件版本PLC或安裝運行在虛擬機裏面的PLC軟件。軟件PLC或者“SoftPLC”其實是一種失敗品,這些僅僅是控制系統廠家在控制系統和信息系統之間進行整合嘗試的失敗品,他們看到了信息系統通用平臺巨大的好處和成功,但是很可惜推出的系列“SoftPLC”嘗試並未能進入市場。

本文所指PLC虛擬化,我認爲可以這樣定義:PLC虛擬化,是將傳統專用的PLC硬件功能解耦,利用軟件化的方法和通用的標準模塊化硬件仿真或模擬看起來和行爲類似於特定PLC硬件的系統。本質上來說,基於PLC的特殊專用硬件環境,PLC虛擬化最好的途徑是PLC供應商主動提供PLC的虛擬化版本,即擁抱現有的虛擬化技術。實質上,有些PLC供應商也會在一些大型的項目中,爲了降低客戶的控制器成本或維持控制器的高性能要求而給客戶部署虛擬化版本的控制器,這些控制器可以運行在商用IT硬件環境上。這是PLC供應商針對自身的控制器進行虛擬化以適配IT虛擬化技術的結果。通常來說,這些能夠虛擬化版本的控制器不會出現在市面上,也不會出現在供應商的產品目錄中,甚至都不會有任何產品編號。

回到我們的第一個疑問,PLC能享受虛擬化的巨大優勢嗎?答案當然是肯定的,之所以我們看不到,是因爲任何事物的誕生和發展一定有其前提條件和土壤,PLC虛擬化亦是如此。

 

二、PLC虛擬化發展的前提條件和土壤

科學技術的革新始終在推動時代巨輪轟鳴向前。PLC虛擬化的發展也終將會隨着相關軟硬件技術、社會價值和商業模式的發展成熟而瓜熟蒂落。

2.1.發展PLC虛擬化的軟硬件技術

隨着虛擬化PLC的軟硬件技術的成熟,比如在技術和工程層面,通過軟件能夠實現針對PLC系統的處理器、ISA總線、各種專用硬件卡、網絡IO等的仿真和模擬實現,這些基礎能力構成了PLC虛擬化實現和發展的技術前提。

2.1.1.PLC的硬件重構和軟件定義

那麼,現目前我們如何針對PLC進行虛擬化運作,業界在通過什麼技術在進行PLC虛擬化的技術嘗試呢?在舊文《工業控制系統的發展趨勢-PLC虛擬化和軟件定義》中,我們描述了目前包括西門子等在內的控制系統供應商在進行的研究項目,他們將PLC執行環境與I/O模塊解耦,並將PLC執行環境標準化、模塊化、虛擬化的實現。並通過軟件定義將PLC的邏輯抽象出來,利用軟件定義網絡的實現思路,通過一個應用程序實現針對PLC執行邏輯的程序開發和管理,讓應用程序定義硬件PLC的功能。也就是將PLC的邏輯控制、程序存儲和IO模塊分離,利用應用程序實現邏輯控制部分。從技術角度來講,這是針對PLC系統的“硬件重構和軟件定義”。硬件重構和軟件定義是基於虛擬化技術之上更高級、更抽象的資源和數據自動化。控制系統廠商試圖彎道超車,直接進行PLC設備的硬件重構和軟件定義,推出具備適應工業互聯網或工業4.0時代的新型PLC設備以替代傳統PLC設備在新時代浪潮下的適應性問題。在舊文《ALC--軟件定義架構的PLC》一文中,我簡單介紹了目前業界基於上述研究推出的一系列過渡成品。

2.1.2.傳統PLC設備的虛擬化

那麼爲什麼控制系統廠商會直接忽略虛擬化現有PLC設備,而推出新的架構形態的PLC設備呢?虛擬化現有PLC設備很難嗎?

從技術實現的可行性角度分析,我們如果需要實現PLC的虛擬化,需要做到以下幾點:

1、能夠在通用架構上運行虛擬化的PLC CPU

2、能夠解決交換以太網的時效性問題;

3、能夠針對PLC的專用硬件虛擬化成標準化的IO卡運行在通用架構上;

4、能夠支持現在的商用電源,比如220V

5、能夠支持冗餘的商用IO/控制器。

也就是我們需要將PLC架構中專用的部分通過仿真或模擬,將其運行於標準架構之上。首先我們需要創建虛擬機一樣的一個虛擬PLC軟件容器,將PLC裝進去。這個虛擬PLC軟件容器和虛擬機一樣,具備特定控制系統供應商的CPUISA總線、IO卡等PLC特殊的虛擬硬件設備。

PLC處理器架構層次的虛擬化上來看,PLC虛擬化首要要解決的就是在通過架構上運行PLC CPU的仿真和模擬。由於西門子S7-400已經被社區廣泛研究和逆向,因此本文采用西門子S7-400 PLC進行舉例說明。西門子S7-400採用兩個英飛凌TriCore處理器用於運行PLC的處理邏輯。而現有的仿真模擬器QEMU就支持對TriCore處理器的仿真和模擬,那麼是不是意味着利用QEMU可以運行仿真西門子S7-400呢?如果是西門子官方來做這件事情,我相信只需要西門子研發部門對西門子S7-400的固件進行重新編譯,或者對QEMU添加特定的西門子S7-400配置文件支持,即可在QEMU中運行西門子S7-400,我也相信西門子內部會存在這樣類似的模擬器。從外部廠商的實現角度上來說,由於不知道這種架構是否經過西門子的特別修改,因此實現起來會特別困難,但是在技術角度上是可以實現的。如果西門子對西門子S7-400的英飛凌TriCore處理器進行過特別的處理和修改,那麼外部廠商在QEMU實現仿真和模擬西門子S7-400的時候,需要在QEMU中構建一個擴展現有QEMU TriCore配置的新配置文件來適配西門子S7-400的特殊修改項。

PLC ISA架構層次的虛擬化上來看,S7-400TriCore架構之上運行一種虛擬機。這個虛擬機實現了針對西門子機器代碼與處理器機器代碼的翻譯和轉換。在TriCore ISA中,無條件跳轉以機器代碼字節0x1d開始,而PLC虛擬機內部的類似無條件跳轉以機器代碼字節0x70 0x0b開始。虛擬機內的機器代碼稱爲MC7,目前MC7還沒有在公網上出現或泄露過固件版本,尚未被外部各方完全進行逆向掌握。因此實現ISA的虛擬化是無比困難的。除非找到一種很好的設計能夠解決他們之間的翻譯和轉換,並通過軟件對其進行翻譯和轉換進行虛擬化或反轉。或者通過設計硬件級別的ISA來解決。這個就有點類似於IT虛擬化技術中的二進制翻譯技術、半虛擬化技術和硬件輔助虛擬化技術。但是由於PLC設備各個廠家的ISA的標準設計不一,世界上現目前都還不可能出現一種標準化的ISA虛擬化技術能夠完全的虛擬化大部分控制系統廠家的設備。在IT環境中,這些虛擬化技術之所以成功,是因爲IT硬件的標準已經趨於統一,具備足夠的技術條件來實現虛擬化的翻譯和轉換。

PLC 運行程序架構層次的虛擬化上來看,我們需要將S7-400固件完全克隆成爲QEMU映像,並通過QEMU TriCore處理器和專門的S7-400 QEMU虛擬機配置文件進行虛擬PLC機器的創建和運行。這些虛擬機配置文件的包括S7-400的輔助硬件設備(如以太網和I/O等)。但是由於缺乏相應的資料,獲得包含完整固件的克隆(包括引導加載程序和完整的RTOS)也很困難。因此,除了CPUISA之外,構建西門子-S7-400 PLC虛擬化的還需構建西門子S7-400的輔助硬件設備(如以太網和I/O)的配置文件。

綜合來說,如果我們需要在現有的虛擬化架構之上構建PLC的虛擬化技術,我們需要解決的問題有很多,並且針對每一款PLC型號的PLC系統我們都會構建相對應的虛擬PLC虛擬機和虛擬硬件。整體的仿真或模擬流程如下圖所示:

image.png

但是在PLC型號衆多的現狀下,試圖採用這種方式貌似是一種吃力不討好的解決方案。

2.1.3.OpenPLC的純軟件仿真

那麼還沒有其他的PLC虛擬化解決方案?除了上述技術路線比較陡峭之外,目前業界的另外一種方式是通過純軟件的方式實現PLC的軟件化模擬,開源OpenPLC就是其中的一個典型代表。OpenPLC的概念也是在實際的產業應用中產生的。1995年,在中國的馬鞍山鋼鐵公司的動力調度中心,面臨一個題目,動力調度中心要監控馬鋼來自發電廠、水廠、煤氣廠和動力廠(負責電力輸送)的各類能源和動力信號,但這四個數據來源,包括這些能源與動力的輸送的管網所涉及的上百個變電所、增壓站和泵站的自身的控制系統是不兼容的,有的還是專用系統,不僅沒有協議,連開發人都已經無法找到。除了通訊不兼容外,連這幾個系統的控制結構也大相徑庭,電廠是類似於DCS的結構,水廠和氣廠是PLC結構,動力廠是SCADA結構,對集成職員理解系統也形成了較大的困難。該項目最後固然沒有用OpenPLC解決(當時還沒有),但該項目的需求導致了OpenPLC的誕生。

OpenPLC的論文中,OpenPLC針對過程控制和離散製造業普遍存在的,各類控制要求不同的系統的互連的題目,作者提出了設計一個新型的開放式控制系統的構想。由於該系統的目的是要儘可能地適用各類不同的應用場合,因此,定名爲開放式可編程控制系統,而英文則是Open Programmable Logic Controller,縮寫爲OpenPLC。該系統從1995年開始構思,到1997年基本明確設計思想,幾條主要的設計原則如下:

1OpenPLC應該是一種以PC技術爲基礎的系統,尤其是在能夠發揮出PC特色的場合(如網絡,與外界的連接,優化,專家系統,操縱界面,數據監測,文件記錄和打印等),工作由以PC爲基礎的系統來承擔;

2、在底層,需要高可靠和實時控制時,由分散控制系統承擔,但它不同於現場總線,它不是基於儀表的系統,而是基於系統的系統,儀表還是普通儀表,只是將I/O和控制單元放在了現場,傳回中心控制室的是數字信號,而不是模擬的420mA信號,要求原來的儀表仍然可用;

3、在I/O點較集中的場合,可以採用類似於DCSPLC的機櫃或機架,內部模塊用總線或網絡連接,整個系統應該具有較高的可靠性,同時有較好的兼容性和開放性;

4、系統應該具有真正的分佈性,前端可集中,也可以延續幾百米、幾公里甚至幾千公里(在地球的另一端),爲此,系統必須具備與TCP/IP兼容的協議和WEB服務器;

5、規模也可以從小至幾十點,大至幾千點甚至幾十萬點。系統I/O規模的增加不應該導致系統的大的改變。

OpenPLC是一個開源實現,可以在Linux上模擬PLC,可以在通用的架構上使用。在現有的虛擬化技術中實現OpenPLC非常簡單,因爲它可以輕鬆地在Linuxx86架構上進行編譯和安裝。目前的OpenPLC經過多年的發展日益成熟,已經逐漸的應用在一些領域中。

綜上所述,不管基於新型“硬件重構和軟件定義”的新型PLC虛擬化還是基於傳統的PLC設備進行虛擬化,亦或者純軟件實現的OpenPLC等虛擬化技術,無不昭示PLC的發展趨勢需要在新的架構下面臨的蛻變與重生。隨着技術的發展,PLC虛擬化的軟硬件技術成熟度趨近於產品或技術解決方案的工程化應用,構建PLC虛擬化的條件開始陸續具備,PLC的虛擬化就一定會到來,只不過不一定叫PLC虛擬化,或者那個時候回是一個嶄新的概念。

2.2.產生的巨大社會價值和商業模式

PLC虛擬化技術的實現,能夠帶來的優勢和好處顯而易見,在此我無需贅述。而基於PLC虛擬化技術所產生的巨大的社會價值和商業模式,纔是工業互聯網或工業4.0時代,工業行業取之不竭的源動力。

所謂的巨大社會價值,指的是從用戶角度出發,PLC虛擬化的採用使任意組織和個人得以站在巨人的肩膀上開展業務,避免重複造輪,極大提高了軟件與服務構建各環節效率,加速了各類應用的架構和落地,而云端按需啓用和隨意擴展的資源彈性,也能夠爲企業節省巨大成本。

所謂偉大的商業模式,指的是PLC虛擬化技術出現後,基於PLC虛擬化的產品和服務形態非常適合新時代的工業互聯網或工業4.0需要,標準化、模塊化、人工智能和軟件定義的控制系統核心大腦大幅降低了客戶的進入門檻,而技術基礎設施架構方面的穩定性、靈活性和便捷性又帶來了較高的客戶粘性,再加上雲計算、大數據中心所能帶來的規模效應,這些因素使得基於PLC虛擬化的物聯網、工業互聯網能夠成爲一門好的生意,對應着一個極佳的 B 端商業模式。

 

三、總結

PLC虛擬化不僅僅在業務層面取得成功,也會在根本上改變現有工業控制系統的安全架構和安全治理模式。就像傳統信息系統的虛擬化取得的優勢一樣,PLC虛擬化堆棧在網絡安全的優勢無與倫比,我們可以基於SDN網絡構建PLC的網絡IO,通過對東西網絡流量進行精細控制,構建精細化的全流量檢測、全功能轉發以及“零信任網絡”環境的安全網絡鏈路,甚至可構建基於區塊鏈的工業安全區塊體系。此外,在PLC的內部和前端,我們可以從容的放置和定義工控軟件防火牆對進出PLC的流量進行安全防護。因此,PLC虛擬化的架構應用在網絡安全角度看來,會比現在的工業控制系統健壯。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章