孫勝兵
隨著工業(yè)4.0 以及中國制造2025 的持續(xù)升溫[1],互聯(lián)網(wǎng)、物聯(lián)網(wǎng)技術(shù)與制造業(yè)深度融合,工業(yè)企業(yè)對于工業(yè)互聯(lián)網(wǎng)與數(shù)據(jù)資產(chǎn)等方面的認知逐漸加強[2]。工業(yè)互聯(lián)網(wǎng)將連接對象延伸到工業(yè)全系統(tǒng)、全產(chǎn)業(yè)鏈、全價值鏈,可實現(xiàn)人、物品、機器、車間、企業(yè)等全要素,以及設(shè)計、研發(fā)、生產(chǎn)、管理、服務(wù)等各環(huán)節(jié)的深度互聯(lián)[3]。4G、5G 移動技術(shù)的發(fā)展為無線訪問提供必要的網(wǎng)絡(luò)基礎(chǔ)設(shè)施和網(wǎng)絡(luò)服務(wù)質(zhì)量。網(wǎng)絡(luò)安全技術(shù)的發(fā)展為工業(yè)網(wǎng)絡(luò)的遠程訪問提供可靠的保證。應(yīng)用工業(yè)網(wǎng)絡(luò)的遠程訪問技術(shù)可以方便地對分布在不同區(qū)域、不同工廠、不同設(shè)備的數(shù)據(jù)進行訪問、存儲與分析;可以迅速發(fā)現(xiàn)設(shè)備的問題;可以遠程調(diào)試、下載程序,降低維護成本。
PLC 遠程訪問方案有基于Modbus Tcp、MQTT、OPC UA 及4G 的云網(wǎng)關(guān)等。其中,Modbus 是一種工業(yè)環(huán)境中廣泛應(yīng)用的網(wǎng)絡(luò)協(xié)議,可以在設(shè)備之間傳輸離散或模擬的IO 數(shù)據(jù)或寄存器數(shù)據(jù),其Modbus Tcp 協(xié)議可以使工業(yè)設(shè)備在任何地方通過Internet 進行尋址;MQTT 是當今最受歡迎的物聯(lián)網(wǎng)協(xié)議,是一種客戶/服務(wù)器架構(gòu)的發(fā)布/訂閱模式的消息傳輸協(xié)議,它輕巧、開放、簡單、規(guī)范,易于實現(xiàn),MQTT 最初是為低帶寬、高延遲、不可靠的網(wǎng)絡(luò)設(shè)計的;OPC UA 是在傳統(tǒng)的OPC 技術(shù)取得成功后的又一突破,在被確立為工業(yè)4.0 標準通信協(xié)議后,在工業(yè)上應(yīng)用越來越廣泛,由于OPC UA 具有多種網(wǎng)絡(luò)安全特性,如授權(quán)、加密、認證、數(shù)字簽名等,使其較不易受到網(wǎng)絡(luò)攻擊,OPC UA 具有客戶/服務(wù)器和發(fā)布者/訂閱者兩種實現(xiàn)機制,但它并沒有提供自定義的通信協(xié)議來實現(xiàn)它們,而是基于現(xiàn)有協(xié)議[4],OPC UA 組件可以以不同形式存在于不同平臺,從嵌入式設(shè)備到各種機器利用網(wǎng)關(guān)提供OPC UA 功能;4G 云網(wǎng)關(guān)可以將采集到的PLC 等設(shè)備的信息通過4G 網(wǎng)絡(luò)傳送到企業(yè)私有云或云服務(wù)供應(yīng)商的服務(wù)器上。
筆者針對幾種不同的訪問方案,分別進行Modbus Tcp、MQTT、OPC UA、4G 云網(wǎng)關(guān)遠程監(jiān)測與數(shù)據(jù)透傳實驗,來進行PLC 的遠程訪問。
做Modbus Tcp 實驗時需了解協(xié)議報文的組成,了解功能碼及其作用。Modbus Tcp 協(xié)議是把Modbus 協(xié)議中的CRC 校驗去掉,增加MBAP 報文頭。協(xié)議中并無IP 地址及端口號,這是因為它只是一個應(yīng)用層協(xié)議,需要和Tcp 協(xié)議一起使用才能傳輸數(shù)據(jù)。它由MBAP 報文頭、功能碼(見表1)[5]、數(shù)據(jù)組成。本文以西門子PLC S7-1200 為例說明Modbus Tcp 指令的使用方法。首先,在博圖編程軟件中加入Modbus Tcp 指令MB_SERVER(見圖1),設(shè)置指令參數(shù),指定其做為服務(wù)器,設(shè)置緩沖區(qū)位置及大小,并指定TCON_IP_v4 類型的連接描述結(jié)構(gòu)的指針。在數(shù)據(jù)塊中的TCON_IP_v4結(jié)構(gòu)中指定硬件標志符、客戶機的IP 地址及端口號等(見圖2)。
表1 功能碼作用
圖1 MB_SERVER 指令
圖2 數(shù)據(jù)塊的設(shè)置
然后通過Modbus Poll 軟件與PLC 建立連接,之后可以嘗試各種功能碼的作用。 選擇communication 菜單項,觀察發(fā)出及返回的數(shù)據(jù)。
通過MQTT 協(xié)議訪問西門子PLC 有多種方案,比如通過西門子WINCC 或IOT2050 網(wǎng)關(guān)產(chǎn)品用MQTT 協(xié)議訪問PLC,也可以用西門子MQTT CLIENT 指令庫實現(xiàn)。本文以指令庫實現(xiàn)方案進行實驗。首先,在博圖軟件中引入MQTT 指令庫,在程序中加入LMQTT_client 指令并設(shè)置相應(yīng)的數(shù)據(jù)塊,在connParam 參數(shù)中設(shè)置MQTT 服務(wù)器地址、端口號等,在設(shè)置消息內(nèi)容、主題后通過publish 和subscribe 參數(shù)來發(fā)布和訂閱消息。通過MQTT.fx 等軟件和PLC 交互,通過互發(fā)消息驗證信息的正確性(見圖3)。
圖3 建立的數(shù)據(jù)塊
4G 云網(wǎng)關(guān)遠程監(jiān)測與數(shù)據(jù)透傳實驗采用有人物聯(lián)網(wǎng)技術(shù)有限公司的PLCNET210 產(chǎn)品,PLCNET210 通過網(wǎng)口連接PLC[6],在采集PLC 數(shù)據(jù)后通過4G 網(wǎng)絡(luò)傳送至云端。除在有人云進行組態(tài),將數(shù)據(jù)以圖形、表格等方式直觀的呈現(xiàn)出來以外,還可以設(shè)置報警條件、報警方式,比如溫度值高于60 ℃時通過短信、微信等方式發(fā)送通知。也可以通過有人云將不同區(qū)域的工業(yè)設(shè)備接入,以便于監(jiān)控和管理。如,在有人云端設(shè)計的組態(tài)畫面中的“開關(guān)”連接到M2.0 位存儲器上,“指示燈”連接在過程映像輸出Q0.0 上。在博圖軟件中寫一個啟保停和一個每秒增1 的計數(shù)程序。“溫度計”連在一個計數(shù)器上,每秒增1?!霸O(shè)備狀態(tài)”負責顯示設(shè)備是否在線及設(shè)備是否有報警(見圖4)。利用PLCNET210 還可以進行云端的透傳。在安裝有人產(chǎn)品配置軟件USR-PLCNET 后會產(chǎn)生一個虛擬網(wǎng)卡VirtualBox,開啟透傳選項后,在博圖軟件里選擇該網(wǎng)卡即可遠程下載、調(diào)試程序(見圖5)。
圖4 有人云端組態(tài)手機端畫面
做OPC UA 實驗時可以將S7-1200 作為OPC UA 服務(wù)器,以UA Expert 作為OPC UA 客戶端。首先,在PLC 上編寫一個簡單的啟保停程序,在博圖WINCC 上組態(tài)一個畫面以便于調(diào)試。組態(tài)好IP 地址后激活OPC UA 服務(wù)器,Secure channel 選擇默認設(shè)置,設(shè)置許可證為SIMATIC OPC UA S7-1200 Basic,設(shè)置完成后在OPC UA 通信中新建一個接口,將PLC 變量加入接口后把程序下載進PLC。服務(wù)器端準備完畢。
在UA Expert 上增加一個服務(wù)器,添加PLC 上OPC UA 服務(wù)器的地址。瀏覽到OPC UA 服務(wù)器后選擇對應(yīng)安全策略,本文以無安全策略、訪客權(quán)限登錄。驗證證書后訪問OPC UA 服務(wù)器上的接口的節(jié)點(見圖6)。
圖6 UA Expert 訪問OPC UA 服務(wù)器
Modbus Tcp 可以經(jīng)由TLS 來保證安全傳輸,稱為Modbus Tcp Security。Modbus Tcp Security 在系統(tǒng)中的端口號由傳統(tǒng)的502 改為802,它與Modbus Tcp 的關(guān)系類似http 與https 的關(guān)系,由TLS 提供證書進行身份驗證。MQTT 協(xié)議不是雙向信任的,它沒有提供客戶端驗證服務(wù)端身份的機制,但在使用TLS 時,客戶端可以使用服務(wù)端發(fā)送的SSL 證書驗證服務(wù)端的身份。在驗證身份時,由于CONNECT 報文中包含了用戶名和密碼,實驗者可以選擇自己的身份驗證機制,或者使用操作系統(tǒng)的認證機制。OPC UA 具有完善的分層安全模型,能保證數(shù)據(jù)通信和數(shù)據(jù)訪問的安全。通過使用證書可以驗證建立連接的應(yīng)用程序和主機的合法性,以此保證數(shù)據(jù)通信的安全。通過用戶身份驗證確定用戶是否有權(quán)訪問特定資源,保證數(shù)據(jù)和系統(tǒng)訪問的安全。通過將安全模式設(shè)置為簽名并加密,保證數(shù)據(jù)的機密性和完整性。
本文通過Modbus Tcp、MQTT、OPC UA、4G云網(wǎng)關(guān)技術(shù)分別訪問西門子S7-1200 PLC 工程實驗,介紹遠程訪問PLC 的安全機制。實際使用時可根據(jù)與PLC 通信設(shè)備的通信接口和安全需求選擇不同的訪問方案。