01?PLC與虛擬化
我一直在關(guān)注當(dāng)前和未來PLC虛擬化發(fā)展?fàn)顟B(tài)的演進(jìn),虛擬化技術(shù)的偉大之處在于,在過去六十年的IT中,沒有任何其他進(jìn)步能提供比虛擬化更多的可量化優(yōu)勢。從歷史來看,PLC和PC的祖宗是一家人,他們都是經(jīng)歷繼電器時代發(fā)展演變而來。既然IT在虛擬化中取得巨大成功,同是一家人的PLC為什么不能享受虛擬化的巨大優(yōu)勢?
值得再次強(qiáng)調(diào)的是,本文所指PLC虛擬化絕非軟件版本PLC或安裝運(yùn)行在虛擬機(jī)里面的PLC軟件。軟件PLC或者“SoftPLC”其實(shí)是一種失敗品,這些僅僅是控制系統(tǒng)廠家在控制系統(tǒng)和信息系統(tǒng)之間進(jìn)行整合嘗試的失敗品,他們看到了信息系統(tǒng)通用平臺巨大的好處和成功,但是很可惜推出的系列“SoftPLC”嘗試并未能進(jìn)入市場。
本文所指PLC虛擬化,我認(rèn)為可以這樣定義:PLC虛擬化,是將傳統(tǒng)專用的PLC硬件功能解耦,利用軟件化的方法和通用的標(biāo)準(zhǔn)模塊化硬件仿真或模擬看起來和行為類似于特定PLC硬件的系統(tǒng)。本質(zhì)上來說,基于PLC的特殊專用硬件環(huán)境,PLC虛擬化最好的途徑是PLC供應(yīng)商主動提供PLC的虛擬化版本,即擁抱現(xiàn)有的虛擬化技術(shù)。
實(shí)質(zhì)上,有些PLC供應(yīng)商也會在一些大型的項目中,為了降低客戶的控制器成本或維持控制器的高性能要求而給客戶部署虛擬化版本的控制器,這些控制器可以運(yùn)行在商用IT硬件環(huán)境上。這是PLC供應(yīng)商針對自身的控制器進(jìn)行虛擬化以適配IT虛擬化技術(shù)的結(jié)果。通常來說,這些能夠虛擬化版本的控制器不會出現(xiàn)在市面上,也不會出現(xiàn)在供應(yīng)商的產(chǎn)品目錄中,甚至都不會有任何產(chǎn)品編號。
回到我們的第一個疑問,PLC能享受虛擬化的巨大優(yōu)勢嗎?答案當(dāng)然是肯定的,之所以我們看不到,是因?yàn)槿魏问挛锏恼Q生和發(fā)展一定有其前提條件和土壤,PLC虛擬化亦是如此。
2?PLC虛擬化與仿真
2.1.發(fā)展PLC虛擬化的軟硬件技術(shù)
隨著虛擬化PLC的軟硬件技術(shù)的成熟,比如在技術(shù)和工程層面,通過軟件能夠?qū)崿F(xiàn)針對PLC系統(tǒng)的處理器、ISA總線、各種專用硬件卡、網(wǎng)絡(luò)IO等的仿真和模擬實(shí)現(xiàn),這些基礎(chǔ)能力構(gòu)成了PLC虛擬化實(shí)現(xiàn)和發(fā)展的技術(shù)前提。
2.1.1.PLC的硬件重構(gòu)和軟件定義
那么,現(xiàn)目前我們?nèi)绾吾槍LC進(jìn)行虛擬化運(yùn)作,業(yè)界在通過什么技術(shù)在進(jìn)行PLC虛擬化的技術(shù)嘗試呢?在舊文《工業(yè)控制系統(tǒng)的發(fā)展趨勢-PLC虛擬化和軟件定義》中,我們描述了目前包括西門子等在內(nèi)的控制系統(tǒng)供應(yīng)商在進(jìn)行的研究項目,他們將PLC執(zhí)行環(huán)境與I/O模塊解耦,并將PLC執(zhí)行環(huán)境標(biāo)準(zhǔn)化、模塊化、虛擬化的實(shí)現(xiàn)。
并通過軟件定義將PLC的邏輯抽象出來,利用軟件定義網(wǎng)絡(luò)的實(shí)現(xiàn)思路,通過一個應(yīng)用程序?qū)崿F(xiàn)針對PLC執(zhí)行邏輯的程序開發(fā)和管理,讓應(yīng)用程序定義硬件PLC的功能。也就是將PLC的邏輯控制、程序存儲和IO模塊分離,利用應(yīng)用程序?qū)崿F(xiàn)邏輯控制部分。
從技術(shù)角度來講,這是針對PLC系統(tǒng)的“硬件重構(gòu)和軟件定義”。硬件重構(gòu)和軟件定義是基于虛擬化技術(shù)之上更高級、更抽象的資源和數(shù)據(jù)自動化??刂葡到y(tǒng)廠商試圖彎道超車,直接進(jìn)行PLC設(shè)備的硬件重構(gòu)和軟件定義,推出具備適應(yīng)工業(yè)互聯(lián)網(wǎng)或工業(yè)4.0時代的新型PLC設(shè)備以替代傳統(tǒng)PLC設(shè)備在新時代浪潮下的適應(yīng)性問題。在舊文《ALC--軟件定義架構(gòu)的PLC》一文中,我簡單介紹了目前業(yè)界基于上述研究推出的一系列過渡成品。
2.1.2.傳統(tǒng)PLC設(shè)備的虛擬化
那么為什么控制系統(tǒng)廠商會直接忽略虛擬化現(xiàn)有PLC設(shè)備,而推出新的架構(gòu)形態(tài)的PLC設(shè)備呢?虛擬化現(xiàn)有PLC設(shè)備很難嗎?
從技術(shù)實(shí)現(xiàn)的可行性角度分析,我們?nèi)绻枰獙?shí)現(xiàn)PLC的虛擬化,需要做到以下幾點(diǎn):
1、能夠在通用架構(gòu)上運(yùn)行虛擬化的PLC CPU;
2、能夠解決交換以太網(wǎng)的時效性問題;
3、能夠針對PLC的專用硬件虛擬化成標(biāo)準(zhǔn)化的IO卡運(yùn)行在通用架構(gòu)上;
4、能夠支持現(xiàn)在的商用電源,比如220V;
5、能夠支持冗余的商用IO卡/控制器。
也就是我們需要將PLC架構(gòu)中專用的部分通過仿真或模擬,將其運(yùn)行于標(biāo)準(zhǔn)架構(gòu)之上。首先我們需要創(chuàng)建虛擬機(jī)一樣的一個虛擬PLC軟件容器,將PLC裝進(jìn)去。這個虛擬PLC軟件容器和虛擬機(jī)一樣,具備特定控制系統(tǒng)供應(yīng)商的CPU、ISA總線、IO卡等PLC特殊的虛擬硬件設(shè)備。
從PLC處理器架構(gòu)層次的虛擬化上來看,PLC虛擬化首要要解決的就是在通過架構(gòu)上運(yùn)行PLC CPU的仿真和模擬。由于西門子S7-400已經(jīng)被社區(qū)廣泛研究和逆向,因此本文采用西門子S7-400 PLC進(jìn)行舉例說明。西門子S7-400采用兩個英飛凌TriCore處理器用于運(yùn)行PLC的處理邏輯。
而現(xiàn)有的仿真模擬器QEMU就支持對TriCore處理器的仿真和模擬,那么是不是意味著利用QEMU可以運(yùn)行仿真西門子S7-400呢?如果是西門子官方來做這件事情,我相信只需要西門子研發(fā)部門對西門子S7-400的固件進(jìn)行重新編譯,或者對QEMU添加特定的西門子S7-400配置文件支持,即可在QEMU中運(yùn)行西門子S7-400,我也相信西門子內(nèi)部會存在這樣類似的模擬器。
從外部廠商的實(shí)現(xiàn)角度上來說,由于不知道這種架構(gòu)是否經(jīng)過西門子的特別修改,因此實(shí)現(xiàn)起來會特別困難,但是在技術(shù)角度上是可以實(shí)現(xiàn)的。如果西門子對西門子S7-400的英飛凌TriCore處理器進(jìn)行過特別的處理和修改,那么外部廠商在QEMU實(shí)現(xiàn)仿真和模擬西門子S7-400的時候,需要在QEMU中構(gòu)建一個擴(kuò)展現(xiàn)有QEMU TriCore配置的新配置文件來適配西門子S7-400的特殊修改項。
從PLC ISA架構(gòu)層次的虛擬化上來看,S7-400在TriCore架構(gòu)之上運(yùn)行一種虛擬機(jī)。這個虛擬機(jī)實(shí)現(xiàn)了針對西門子機(jī)器代碼與處理器機(jī)器代碼的翻譯和轉(zhuǎn)換。在TriCore ISA中,無條件跳轉(zhuǎn)以機(jī)器代碼字節(jié)0x1d開始,而PLC虛擬機(jī)內(nèi)部的類似無條件跳轉(zhuǎn)以機(jī)器代碼字節(jié)0x70 0x0b開始。虛擬機(jī)內(nèi)的機(jī)器代碼稱為MC7,目前MC7還沒有在公網(wǎng)上出現(xiàn)或泄露過固件版本,尚未被外部各方完全進(jìn)行逆向掌握。
因此實(shí)現(xiàn)ISA的虛擬化是無比困難的。除非找到一種很好的設(shè)計能夠解決他們之間的翻譯和轉(zhuǎn)換,并通過軟件對其進(jìn)行翻譯和轉(zhuǎn)換進(jìn)行虛擬化或反轉(zhuǎn)?;蛘咄ㄟ^設(shè)計硬件級別的ISA來解決。這個就有點(diǎn)類似于IT虛擬化技術(shù)中的二進(jìn)制翻譯技術(shù)、半虛擬化技術(shù)和硬件輔助虛擬化技術(shù)。
但是由于PLC設(shè)備各個廠家的ISA的標(biāo)準(zhǔn)設(shè)計不一,世界上現(xiàn)目前都還不可能出現(xiàn)一種標(biāo)準(zhǔn)化的ISA虛擬化技術(shù)能夠完全的虛擬化大部分控制系統(tǒng)廠家的設(shè)備。在IT環(huán)境中,這些虛擬化技術(shù)之所以成功,是因?yàn)镮T硬件的標(biāo)準(zhǔn)已經(jīng)趨于統(tǒng)一,具備足夠的技術(shù)條件來實(shí)現(xiàn)虛擬化的翻譯和轉(zhuǎn)換。
從PLC 運(yùn)行程序架構(gòu)層次的虛擬化上來看,我們需要將S7-400固件完全克隆成為QEMU映像,并通過QEMU TriCore處理器和專門的S7-400 QEMU虛擬機(jī)配置文件進(jìn)行虛擬PLC機(jī)器的創(chuàng)建和運(yùn)行。這些虛擬機(jī)配置文件的包括S7-400的輔助硬件設(shè)備(如以太網(wǎng)和I/O等)。
但是由于缺乏相應(yīng)的資料,獲得包含完整固件的克?。òㄒ龑?dǎo)加載程序和完整的RTOS)也很困難。因此,除了CPU和ISA之外,構(gòu)建西門子-S7-400 PLC虛擬化的還需構(gòu)建西門子S7-400的輔助硬件設(shè)備(如以太網(wǎng)和I/O)的配置文件。
綜合來說,如果我們需要在現(xiàn)有的虛擬化架構(gòu)之上構(gòu)建PLC的虛擬化技術(shù),我們需要解決的問題有很多,并且針對每一款PLC型號的PLC系統(tǒng)我們都會構(gòu)建相對應(yīng)的虛擬PLC虛擬機(jī)和虛擬硬件。整體的仿真或模擬流程如下圖所示:
但是在PLC型號眾多的現(xiàn)狀下,試圖采用這種方式貌似是一種吃力不討好的解決方案。
2.1.3.OpenPLC的純軟件仿真
那么還沒有其他的PLC虛擬化解決方案?除了上述技術(shù)路線比較陡峭之外,目前業(yè)界的另外一種方式是通過純軟件的方式實(shí)現(xiàn)PLC的軟件化模擬,開源OpenPLC就是其中的一個典型代表。OpenPLC的概念也是在實(shí)際的產(chǎn)業(yè)應(yīng)用中產(chǎn)生的。
1995年,在中國的馬鞍山鋼鐵公司的動力調(diào)度中心,面臨一個題目,動力調(diào)度中心要監(jiān)控馬鋼來自發(fā)電廠、水廠、煤氣廠和動力廠(負(fù)責(zé)電力輸送)的各類能源和動力信號,但這四個數(shù)據(jù)來源,包括這些能源與動力的輸送的管網(wǎng)所涉及的上百個變電所、增壓站和泵站的自身的控制系統(tǒng)是不兼容的,有的還是專用系統(tǒng),不僅沒有協(xié)議,連開發(fā)人都已經(jīng)無法找到。
除了通訊不兼容外,連這幾個系統(tǒng)的控制結(jié)構(gòu)也大相徑庭,電廠是類似于DCS的結(jié)構(gòu),水廠和氣廠是PLC結(jié)構(gòu),動力廠是SCADA結(jié)構(gòu),對集成職員理解系統(tǒng)也形成了較大的困難。該項目最后固然沒有用OpenPLC解決(當(dāng)時還沒有),但該項目的需求導(dǎo)致了OpenPLC的誕生。
從OpenPLC的論文中,OpenPLC針對過程控制和離散制造業(yè)普遍存在的,各類控制要求不同的系統(tǒng)的互連的題目,作者提出了設(shè)計一個新型的開放式控制系統(tǒng)的構(gòu)想。由于該系統(tǒng)的目的是要盡可能地適用各類不同的應(yīng)用場合,因此,定名為開放式可編程控制系統(tǒng),而英文則是Open Programmable Logic Controller,縮寫為OpenPLC。該系統(tǒng)從1995年開始構(gòu)思,到1997年基本明確設(shè)計思想,幾條主要的設(shè)計原則如下:
1、OpenPLC應(yīng)該是一種以PC技術(shù)為基礎(chǔ)的系統(tǒng),尤其是在能夠發(fā)揮出PC特色的場合(如網(wǎng)絡(luò),與外界的連接,優(yōu)化,專家系統(tǒng),操縱界面,數(shù)據(jù)監(jiān)測,文件記錄和打印等),工作由以PC為基礎(chǔ)的系統(tǒng)來承擔(dān);
2、在底層,需要高可靠和實(shí)時控制時,由分散控制系統(tǒng)承擔(dān),但它不同于現(xiàn)場總線,它不是基于儀表的系統(tǒng),而是基于系統(tǒng)的系統(tǒng),儀表還是普通儀表,只是將I/O和控制單元放在了現(xiàn)場,傳回中心控制室的是數(shù)字信號,而不是模擬的4—20mA信號,要求原來的儀表仍然可用;
3、在I/O點(diǎn)較集中的場合,可以采用類似于DCS或PLC的機(jī)柜或機(jī)架,內(nèi)部模塊用總線或網(wǎng)絡(luò)連接,整個系統(tǒng)應(yīng)該具有較高的可靠性,同時有較好的兼容性和開放性;
4、系統(tǒng)應(yīng)該具有真正的分布性,前端可集中,也可以延續(xù)幾百米、幾公里甚至幾千公里(在地球的另一端),為此,系統(tǒng)必須具備與TCP/IP兼容的協(xié)議和WEB服務(wù)器;
5、規(guī)模也可以從小至幾十點(diǎn),大至幾千點(diǎn)甚至幾十萬點(diǎn)。系統(tǒng)I/O規(guī)模的增加不應(yīng)該導(dǎo)致系統(tǒng)的大的改變。
OpenPLC是一個開源實(shí)現(xiàn),可以在Linux上模擬PLC,可以在通用的架構(gòu)上使用。在現(xiàn)有的虛擬化技術(shù)中實(shí)現(xiàn)OpenPLC非常簡單,因?yàn)樗梢暂p松地在Linux和x86架構(gòu)上進(jìn)行編譯和安裝。目前的OpenPLC經(jīng)過多年的發(fā)展日益成熟,已經(jīng)逐漸的應(yīng)用在一些領(lǐng)域中。
綜上所述,不管基于新型“硬件重構(gòu)和軟件定義”的新型PLC虛擬化還是基于傳統(tǒng)的PLC設(shè)備進(jìn)行虛擬化,亦或者純軟件實(shí)現(xiàn)的OpenPLC等虛擬化技術(shù),無不昭示PLC的發(fā)展趨勢需要在新的架構(gòu)下面臨的蛻變與重生。隨著技術(shù)的發(fā)展,PLC虛擬化的軟硬件技術(shù)成熟度趨近于產(chǎn)品或技術(shù)解決方案的工程化應(yīng)用,構(gòu)建PLC虛擬化的條件開始陸續(xù)具備,PLC的虛擬化就一定會到來,只不過不一定叫PLC虛擬化,或者那個時候回是一個嶄新的概念。
2.2.產(chǎn)生的巨大社會價值和商業(yè)模式
PLC虛擬化技術(shù)的實(shí)現(xiàn),能夠帶來的優(yōu)勢和好處顯而易見,在此我無需贅述。而基于PLC虛擬化技術(shù)所產(chǎn)生的巨大的社會價值和商業(yè)模式,才是工業(yè)互聯(lián)網(wǎng)或工業(yè)4.0時代,工業(yè)行業(yè)取之不竭的源動力。
所謂的巨大社會價值,指的是從用戶角度出發(fā),PLC虛擬化的采用使任意組織和個人得以站在巨人的肩膀上開展業(yè)務(wù),避免重復(fù)造輪,極大提高了軟件與服務(wù)構(gòu)建各環(huán)節(jié)效率,加速了各類應(yīng)用的架構(gòu)和落地,而云端按需啟用和隨意擴(kuò)展的資源彈性,也能夠?yàn)槠髽I(yè)節(jié)省巨大成本。
所謂偉大的商業(yè)模式,指的是PLC虛擬化技術(shù)出現(xiàn)后,基于PLC虛擬化的產(chǎn)品和服務(wù)形態(tài)非常適合新時代的工業(yè)互聯(lián)網(wǎng)或工業(yè)4.0需要,標(biāo)準(zhǔn)化、模塊化、人工智能和軟件定義的控制系統(tǒng)核心大腦大幅降低了客戶的進(jìn)入門檻,而技術(shù)基礎(chǔ)設(shè)施架構(gòu)方面的穩(wěn)定性、靈活性和便捷性又帶來了較高的客戶粘性,再加上云計算、大數(shù)據(jù)中心所能帶來的規(guī)模效應(yīng),這些因素使得基于PLC虛擬化的物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)能夠成為一門好的生意,對應(yīng)著一個極佳的 B 端商業(yè)模式。
?03?總結(jié)
PLC虛擬化不僅僅在業(yè)務(wù)層面取得成功,也會在根本上改變現(xiàn)有工業(yè)控制系統(tǒng)的安全架構(gòu)和安全治理模式。就像傳統(tǒng)信息系統(tǒng)的虛擬化取得的優(yōu)勢一樣,PLC虛擬化堆棧在網(wǎng)絡(luò)安全的優(yōu)勢無與倫比,我們可以基于SDN網(wǎng)絡(luò)構(gòu)建PLC的網(wǎng)絡(luò)IO,通過對東西網(wǎng)絡(luò)流量進(jìn)行精細(xì)控制,構(gòu)建精細(xì)化的全流量檢測、全功能轉(zhuǎn)發(fā)以及“零信任網(wǎng)絡(luò)”環(huán)境的安全網(wǎng)絡(luò)鏈路,甚至可構(gòu)建基于區(qū)塊鏈的工業(yè)安全區(qū)塊體系。
此外,在PLC的內(nèi)部和前端,我們可以從容的放置和定義工控軟件防火墻對進(jìn)出PLC的流量進(jìn)行安全防護(hù)。因此,PLC虛擬化的架構(gòu)應(yīng)用在網(wǎng)絡(luò)安全角度看來,會比現(xiàn)在的工業(yè)控制系統(tǒng)健壯。
審核編輯:劉清
評論
查看更多