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