史運濤 董廣亮 雷振伍
(北方工業大學電氣與控制工程學院 北京 100144) (現場總線技術與自動化北京市重點實驗室 北京 100144)
近年來工業互聯網發展日趨成熟,它融合了先進制造技術以及互聯網、云計算、物聯網、大數據等信息技術,實現制造需求和社會化資源的高質高效對接, 是一種新型的網絡化制造服務模式,是工業互聯的信息中樞,是制造業與互聯網融合的新型基礎設施[1-2]。因此,以底層工業設備為基礎,與云平臺對接融合,打造自動化運營技術(Operation Technology,OT)層與信息技術(Information Technology, IT)層融合的“云+端”架構將成為工業互聯網發展的方向,而云網關是實現上述融合的關鍵。但是,工業生產數據具有協議復雜、實時可靠性要求高、安全加密難等特點[3],目前還沒有一個通用的云網關架構來解決OT與IT數據融合問題。
首先,在工業生產數據方面,傳統的工業傳感器系統具有協議復雜、互相兼容性差等問題,難以實現工業數據向云端的統一上傳。近年來,國內外學者在工業物聯網數據解析及協議轉換方面進行了大量的研究,其中以Zigbee為代表的無線傳感網絡的數據采集及協議轉換,實現了傳感網絡數據的采集、解析、傳輸到物聯網平臺的問題[4-6]。文獻[7]提出一種基于開源架構的多協議物聯網平臺,但是這一研究方向還局限在解決傳統物聯網環境下的數據解析與傳輸問題,難以解決于工業總線、工業以太網環境下的數據采集、協議轉換和數據上云問題;另一類研究方向是針對特定的工業通信協議間的協議轉換與數據解析問題[8-10],但是這類研究還停留在傳統工業自動化的層面,沒有考慮不同的工業協議與云平臺的互通問題。
在網關的實時可靠性方面,文獻[11]提出了一種基于μC/OS-II實時操作系統的數據采集方案,但是μC/OSII系統面向的是可靠性要求低且數據量有限的小型數據傳輸設備[12],因此難以滿足高并發狀態的多協議工業互聯網云網關需求。文獻[13]提出一種融入緩存機制的任務卸載策略,它只適用于下行控制場景,并不適用于數據實時采集傳輸。文獻[14]利用FPGA技術實現下位機數據的快速采集,并將采集的部分數據傳輸至ARM處理器對數據進行進一步處理,但是該技術不能解決多種協議設備接入時的數據并發問題,處理性能也不滿足實時協議轉換的需求,也沒有考慮通信故障時可能發生的數據丟失問題。
在網關安全性方面,相關的研究成果尚處于初步研究階段,大部分研究成果較少考慮云網關的安全性問題[15]。由于工業物聯網平臺和云端的開放性,工業數據一旦在與云平臺交互過程中被破壞或者篡改,將會帶來嚴重的安全風險。因此,云網關架構的數據安全性問題是研究重點與難點。文獻[16-17]通過區塊鏈技術的數據庫來保證數據存儲的安全性,但數據采集傳輸過程的安全性沒有考慮。文獻[18]提出一種針對局域異構網絡的數據安全模型,可以增強數據保密性及完整性,但是該模型沒有涉及數據上云過程的安全傳輸問題。有一些研究利用SM4加密算法提高數據傳輸的安全性[19-22], 但是SM4密鑰擴展算法與加密算法具有結構相似性,輪密鑰生成算法參數具有固定性, 這些特性都會導致網關安全性的降低[23]。文獻[24]提出一種改進的SM4加密算法,提高了數據傳輸過程中的安全性,但是該算法需要GPU提供并行計算能力支持,并不適合應用在工業互聯網云網關的相關場景中。
綜上所述,研究集多協議數據解析、實時可靠性、安全性于一體的工業互聯網云網關架構是當前學術研究的前沿問題。本文提出一種工業互聯網云網關架構。首先,針對傳輸協議復雜多樣的異構性,特別是針對缺乏規范的工業設備和云平臺之間通信協議標準問題,提出一種數據采集及協議轉換方法,該方法一方面通過工業以太網、工業總線、工業無線接入不同現場設備,通過協議解析兼容不同的工業通信協議實現底層設備數據的接入;另一方面將上述數據轉化為具有物聯網標準的消息隊列遙測傳輸協議的數據格式(MQTT協議),利用Wi-Fi、NB-IoT、以太網等通信技術將數據傳送到云平臺。同時,該方法能夠實現不同協議設備的數據交換。其次,針對協議轉換中的實時可靠問題,提出一種具有斷點續傳能力的快速處理并發任務的異步處理機制,通過斷點續傳機制來保證數據的完整性,異步處理機制保證數據傳輸的實時性。最后,在保證實時可靠的基礎上,提出一種三層加密方式實現了數據的高安全性傳輸,這種加密機制分別從網絡層、傳輸層、應用層三個層面設計了相應的算法解決數據安全性問題。同時,本文在軟硬件上實現了上述云網關架構并進行了相關的實驗。
工業互聯網是指具有感知、傳輸計算等功能的云端一體化智能系統,是工業數據、硬件、軟件相互融合的基礎設施。底層的工業設備具有異構性強、耦合度高、通信協議紛雜、可擴展性差等問題,導致云端的應用難以快速整合協議紛雜的物理設備數據。而云網關是實現底層設備數據傳輸、云端數據處理分析的核心設備,是解決上述問題的關鍵。基于云網關的工業互聯網架構如圖1所示。

圖1 基于云網關的工業互聯網架構
本文提出的工業互聯網云網關架構在OT層通過多協議采集解析設備的各種通信協議,為IT層面的數據分析與場景應用提供數據源;IT層面通過MQTT實現多協議數據的協議統一;利用Wi-Fi、NB-IoT、以太網等通信技術將數據傳送到云平臺。
本文提出的工業互聯網云網關架構如圖2所示。在協議轉換層,將OT網絡層復雜的設備協議解析并轉換成統一的上云接口;在實時可靠性方面,提供了數據緩存能力保證數據不丟失,同時利用非阻塞通信和斷點續傳方法保證數據的可靠性;在安全加密方面,分別實現了網絡層、傳輸層、應用層的加密機制。

圖2 云網關架構
本文所述的工業互聯網云網關架構提出一種多協議轉換模型如圖3所示。該多協議轉換模型可以解析數據類型各異、通信標準不統一的工業協議,并且能夠將解析的工業數據轉換成統一上云的數據格式。同時,通過MQTT可以實現不同協議設備的數據交換。

圖3 多協議轉換模型
具體來說,該多協議轉換模型通過數據接口接入不同工業設備,通過協議解析單元解析并讀取不同的工業通信協議,實現底層設備數據的接入并將多協議數據放入異步緩存區等待協議轉換。其次,需要將上述緩存區多協議數據轉化為具有物聯網標準的消息隊列遙測傳輸協議的數據格式(MQTT協議),并統一成標準數據格式,利用Wi-Fi、NB-IoT、以太網等通信技術將數據傳送到云平臺。
針對多協議數據解析與傳輸的實時性問題,本云網關架構提出能快速處理并發任務的異步任務處理機制,該機制可支持實時任務處理和任務調度,可用來處理分布式任務隊列,以保證數據處理的實時性。數據轉換原理如下:利用內存數據庫讀寫數據的高效率特性,把內存數據庫作為任務隊列即協議轉換任務的中間件,把網關要處理的多協議工業數據協議轉換任務的數據緩存到異步任務隊列;通過異步任務調度機制將多個協議轉換任務分發給多個Worker并行處理,完成協議轉換任務。Worker協議轉換任務執行完成后,將處理好的數據存儲在任務結果緩存單元,等待數據傳輸到云端。云網關架構的實時傳輸機制如圖4所示。

圖4 實時性傳輸機制
在可靠性方面,為了解決數據上云傳輸過程中可能會出現的網關與云端通信異常問題,通過設計數據傳輸故障檢測機制來實現數據斷點續傳功能,從而保證數據傳輸的可靠性和數據的連續性。云網關系統斷點續傳流程如圖5所示。

圖5 斷點續傳流程
在數據傳輸過程中,為防止出現假連接,網關定時向云端發送心跳數據包并監測連接的狀態,一旦連接斷開則重新建立連接。在網關數據傳輸異常斷開故障(如網絡異常斷開)時,即網關檢測到該節點數據上云通道已經意外離線后,立即采取斷點續傳,將數據包存儲在網關本地數據庫中,待連接恢復之后,將數據存儲單元中的數據包上傳給云端數據中心。這樣當網關與云端數據中心通信有異常時,不會造成重要數據的丟失,當通信恢復正常時即可將這段緩存的數據補傳到上方設備,保證數據的完整性。
在數據的安全性方面,綜合考慮網絡層、傳輸層、應用層三個層面的安全保障機制,在考慮安全性的同時兼顧數據傳輸的實時性不受影響,解決了數據傳輸的安全性問題,加密方法如圖6所示。

圖6 三層加密機制
網絡層。MQTT協議數據發送給云平臺的過程中,通過加密隧道技術實現智能云網關與所述云平臺數據傳輸的安全性。
傳輸層。采用非對稱加密握手機制來交換對稱加密密鑰,進行客戶端到服務器的身份認證,在身份認證通過后,使用對稱算法生成對稱密鑰,并利用對稱密鑰加密所述MQTT協議數據,用非對稱公鑰對所述對稱密鑰進行非對稱加密;將加密后的MQTT協議數據和對稱密鑰傳送至云平臺,以供所述云平臺利用非對稱私鑰解密得到所述對稱密鑰,并利用所述對稱密鑰對所述MQTT協議數據進行解密。
應用層。在傳輸層建立連接后,通過用戶名和密碼, MQTT服務端能夠對所有MQTT客戶端進行鑒權,采用通用唯一識別碼實現網關設備身份認證,兩者配合實現所述云平臺對所述工業互聯網云網關的權限校驗;同時在應用層對消息體進行加密,避免數據在MQTT broker被破解,消息體加密機制如圖7所示。

圖7 消息體加密機制
在網絡層、應用層、傳輸層分別采用輕量級的加密或者認證方式,避免了高復雜加密算法對GPU計算資源的依賴,這種加密架構不僅保證了數據傳輸的安全性,還兼顧數據實時性不受影響。
本節根據所提出的工業互聯網云網關架構實現了云網關實例。該網關負責適配不同的工業設備、不同工業協議接入云平臺,實現了物理設備和云平臺的橋接;并具備相應的管理和安全功能,在指定訪問權限下能夠配置、更新網關接入的設備信息。
本文由樹莓派和網關擴展板實現網關硬件系統。樹莓派基于Linux操作系統,提供Wi-Fi、以太網等通信接口;網關擴展板設計有NB-IoT通信模塊、時鐘保持單元和供電模塊,分別實現通信、時鐘和供電功能。NB-IoT通信模塊選用高新興物聯網科技的ME3136模組,通過串口與樹莓派實現通信功能。時鐘保持單元選擇DS1302模塊,使能引腳(CE)、數據引腳(I/O)、時鐘引腳(SCLK)分別與樹莓派對應引腳連接,實現網關時鐘功能。供電模塊為網關各部分提供所需電壓。云網關硬件結構和實物分別如圖8、圖9所示。

圖8 云網關硬件結構

圖9 云網關實物圖
云網關與工業設備之間通過Wi-Fi、以太網模式連接到不同工業設備,實現設備數據的匯聚、協議解析、協議轉換。網關處理好的數據通過Wi-Fi、以太網、NB-IoT等多種模式將數據傳輸到云平臺,實現工業設備與云平臺的通信。
軟件方面采用Python和Flask搭建網關架構,開發網關功能軟件,實現工業設備多協議數據解析、數據加密、數據上云傳輸及斷點續傳。本網關采用Tornado Web服務器與Flask Web服務器相結合的B/S架構開發,結合Tornado服務器的并發處理能力與異步特性和Flask微架構的可擴展性為一體實現非阻塞性能;同時采用Celery和內存數據庫Redis管理分布式任務隊列,對多協議數據的協議轉換進行實時調度,所有的復雜業務邏輯處理、數據庫操作、IO等各種耗時的同步任務由Celery Worker處理,待這個任務隊列異步處理完后,再返回給Tornado。因此只要保證Tornado和Celery的交互是異步的,網關的整個多協議數據采集與協議轉換任務便實現了完全異步。基于以上軟件技術架構開發的云網關軟件系統功能如圖10所示。

圖10 云網關功能結構
在網關軟件系統中,包括MQTT Client、工業協議驅動程序(OPC UA協議、Modbus協議、西門子S7協議)和其他功能,主要任務是完成工業數據與MQTT數據之間的雙向傳輸和根據相關協議進行數據格式轉換。實現數據通過MQTT協議與云平臺進行交互。協議參數配置模塊負責工業協議數據的接入參數配置,數據解析模塊負責對上行和下行的數據進行標準和格式的轉換,網關日志模塊負責對云網關運行過程中的動作進行記錄,數據同步模塊負責數據的本地備份存儲。開發完成的網關軟件運行界面如圖11所示。

圖11 云網關軟件運行界面
本文以過程控制平臺工業實驗場景為例,基于所提出的云網關架構和軟硬件原型設計了相應實驗,驗證了云網關架構的有效性。實驗環境如圖12所示,在OT層采用了模擬實際工業現場設備的過程控制實驗平臺,IT層選用百度天工平臺,通過云網關連接OT網絡和IT網絡層搭建通信實驗場景。整個場景由工業局域網、運營商通信網和工業云平臺網絡組成,工業局域網與工業云平臺網絡通過云網關實現互聯互通。

圖12 工業互聯網云網關架構驗證實驗環境
工業過程控制平臺的數據由控制器、執行器、WirelessHART工業無線傳感儀表產生。該平臺可采集系統溫度、壓力、液位、流量等真實物理量數據,并通過OPC UA、西門子S7等通信協議與網關進行信息交互。系統運行如圖13所示。

圖13 OT層工業設備運行數據
云平臺以百度云平臺為例,所提出的云網關能夠實現多協議設備的云端接入。數據接入到云平臺后,可以利用云端強大的計算能力和存儲能力,根據特定行業需求進行數據的處理分析與應用。云平臺接收數據結果如圖14所示。可以看到壓力(FT_1)、流量(FT_2)、溫度(TT_1)等數據成功上傳到了百度云平臺上。

圖14 IT層云平臺接收數據
在實驗室條件下,分別測試不同網絡通信方式與云端成功連接后的數據傳輸性能。測試的方法是云網關每隔5 s向云平臺通信1次,每次發送一條不大于1 KB字節的消息,連續測試12 h,查看云端接收數據的情況。表1是不同網絡方式通信測試的實驗數據。由于Wi-Fi網絡連接不穩定,導致數據丟失,其他兩種網絡方式通信丟包為零。

表1 丟包率測試
工業互聯網云網關是工業互聯網應用系統中重要的組成部分,不僅實現了不同設備、不同工業協議的解耦,還起到了傳統工業網絡與工業互聯網云平臺之間的橋接作用,是實現工控系統、信息系統和信息化系統數據智能化融合的核心。本文提出一種新的工業互聯網云網關架構及實現方法,從數據的多協議解析轉換、數據傳輸的實時可靠性、安全性三個角度給出了工業互聯網云網關的解決方案。并且根據所提出的云網關架構設計了網關實例對該架構進行驗證。該網關實例向下兼容工業領域應用較為廣泛的OPC UA協議、Modbus協議、西門子S7協議;向上支持MQTT協議。所提出的云網關實現了傳統工業網絡與云平臺的數據轉發、協議轉換和數據加密功能,解決了協議復雜的OT網絡與IT網絡融合的問題,能夠廣泛應用于工業監控、智慧社區、智能電網等物聯網應用領域。