杜才亮 宋小靜 中國民航大學(xué)電子信息與自動化學(xué)院
基于IPSec的MATLAB與組態(tài)王的數(shù)據(jù)通信
杜才亮 宋小靜 中國民航大學(xué)電子信息與自動化學(xué)院
針對組態(tài)王遠(yuǎn)程監(jiān)測與控制實現(xiàn)困難問題,提出了一種基于IPSec的MATLAB與組態(tài)王數(shù)據(jù)通信實例。方法使用IPSec提供了一條保密數(shù)據(jù)鏈路,并使用一個公網(wǎng)服務(wù)器與若干內(nèi)網(wǎng)客戶端實現(xiàn)內(nèi)網(wǎng)穿透。通過此鏈路使用OPC協(xié)議實現(xiàn)組態(tài)王和MATLAB的連接。實驗表明,此方法可以有效地實現(xiàn)遠(yuǎn)程監(jiān)控。
IPSec 組態(tài)王 OPC
互聯(lián)網(wǎng)技術(shù)的發(fā)展為遠(yuǎn)程監(jiān)控提供了快捷方便的途徑,IPSec(Internet Protocol security)作為一種網(wǎng)際層的協(xié)議被廣泛應(yīng)用。此協(xié)議為一組協(xié)議集,包括數(shù)據(jù)加密、源地址驗證、數(shù)據(jù)完整性檢查和防攻擊等[1]。組態(tài)王是一種組態(tài)軟件,并提供多種驅(qū)動,方便上位機與控制系統(tǒng)進(jìn)行連接。但是組態(tài)王無法快捷的加入復(fù)雜控制算法。MATLAB作為一個專業(yè)科學(xué)語言可以方便的實現(xiàn)復(fù)雜控制算法。PCT-II型實驗設(shè)備體積大且重量大,在實踐中跨校區(qū)兩實驗室只能單實驗室教學(xué),利用率低。為了解決這個問題,本文提出一種基于IPSec的MATLAB與組態(tài)王通信鏈路,實現(xiàn)跨局域網(wǎng)遠(yuǎn)程監(jiān)控PCT-II型實驗設(shè)備。
數(shù)據(jù)需要跨兩個局域網(wǎng),由于一些安全無法實現(xiàn)基于公網(wǎng)IP的IPSec互聯(lián)。為此需要增加一個帶有公網(wǎng)IP的服務(wù)器作為中轉(zhuǎn)。L2TP作為一種虛擬局域網(wǎng)具有轉(zhuǎn)發(fā)速度快和建立方便的優(yōu)勢,但是安全性較差,IPSec安全性好,但是操作系統(tǒng)需要對等連接[2]。因此兩地實驗室采用L2TP-VPN分別和服務(wù)器連接,然后再次使用IPSec隧道加強安全性。
兩個實驗室分別在不同的內(nèi)網(wǎng)中,兩內(nèi)網(wǎng)沒有互通。本文設(shè)計一個鏈路,數(shù)據(jù)首先從A校區(qū)上位機經(jīng)過A校區(qū)內(nèi)網(wǎng)路由器、A校區(qū)網(wǎng)關(guān)、A校區(qū)防火墻,經(jīng)過公網(wǎng)傳輸?shù)焦W(wǎng)服務(wù)器,然后經(jīng)過公網(wǎng)、B校區(qū)防火墻、B校區(qū)網(wǎng)關(guān)、B校區(qū)內(nèi)網(wǎng)路由器傳輸?shù)紹校區(qū)上位機,路由拓?fù)淙鐖D1所示。
圖1 網(wǎng)絡(luò)拓?fù)?/p>
圖2 .a L2TP服務(wù)器
圖2 .b IPSec
兩內(nèi)網(wǎng)路由器和公網(wǎng)服務(wù)器均使用Router OS操作系統(tǒng)。L2TP服務(wù)器使用Router OS內(nèi)建L2TP服務(wù)器搭建,如圖2所示。A、B兩校區(qū)路由器使用L2TP隧道和公網(wǎng)服務(wù)器連接,形成兩條虛擬鏈路。兩內(nèi)網(wǎng)路由器分別通過建立好的L2TP隧道建立IPSec連接,并在公網(wǎng)服務(wù)器內(nèi)設(shè)置防火墻規(guī)則,轉(zhuǎn)發(fā)兩網(wǎng)段數(shù)據(jù)。至此鏈路連接建立完畢。
OPC(OLE for Process Control)是一種由微軟提出并推動的一種軟件接口,分為OPC Server和OPC Client。OPC服務(wù)器分為三層,分別為server層,group層和item層,三層成樹狀關(guān)系[3]。OPC客戶端使用標(biāo)準(zhǔn)協(xié)議和OPC連接,客戶端通過group操作item層數(shù)據(jù)。
組態(tài)王集成OPC服務(wù)端[4]。為了可以遠(yuǎn)程連接,本文設(shè)置了組態(tài)王所在計算機的遠(yuǎn)程讀寫權(quán)限。MATLAB集成OPC客戶端,可以使用GUI或者API接入OPC服務(wù)器。在基于MATLAB的控制系統(tǒng)中,只需讀寫組態(tài)王的寄存器數(shù)據(jù)即可,因此采用API方式。為了方便程序調(diào)用,本文創(chuàng)建了三個函數(shù)分別完成連接、讀取、寫入功能。
%%%%%連接
function [a,b,c]=linkopc(obj)
da=opcda(obj,'KingView.View.1');
connect(da);
grp=addgroup(da);
a=additem(grp,'IN01.Value');
b=additem(grp,' IN02.Value');
c=additem(grp,' OUT01.Value');
%%%%%讀取
function a=read_opc(obj)
tmp=read(obj);
a=double(tmp.Value);
%%%%%%寫入
function write_opc(obj,v)
writeasync(obj,single(v));
如函數(shù)所示,連接OPC服務(wù)器后先取得group鍵,然后讀取group鍵下的item鍵并返回。因組態(tài)王使用single數(shù)據(jù)類型,所以在讀寫函數(shù)中主要完成數(shù)據(jù)類型轉(zhuǎn)換功能。
為了驗證此通信方法的有效性,進(jìn)行了鏈路實驗以及PCTII、組態(tài)王連接實驗。
L2TP 鏈路使用192.168.1.0/24網(wǎng)段,A 校區(qū)路由器設(shè)置 IP:192.168.1.3,B 校區(qū)路由器設(shè) 置 IP:192.168.1.6,使用Router OS內(nèi)Ping工具測試。測試時間為晚上8點,為網(wǎng)絡(luò)最擁堵時間。測試結(jié)果如表1所示。
表1 L2TP鏈路測試
增加IPSec隧道并在服務(wù)端添加轉(zhuǎn)發(fā)之后,A、B兩校區(qū)電腦之間測試結(jié)果如表2所示。
表2 IPSec隧道測試
因PCT-II實驗設(shè)備采樣時間為1s,由表1-2可知,此鏈路滿足要求。
此實驗為單容水箱液位控制實驗,需要實時獲取液面位置、流量信息,實時寫入閥門開度信息。在鏈路暢通之后即可使用連接、讀取、寫入函數(shù)讀寫操作,可實現(xiàn)和本地相同的效果。如圖3所示實時液位控制,其中參數(shù)為Kp=1.8、Ki=0.13、Kd=0
圖 3 液位控制實驗
圖中藍(lán)紅色曲線為實時液面,紅色曲線為閥門開度,綠色曲線為誤差。和本地控制效果相同。
IPSec隧道為遠(yuǎn)程控制提供了可能,internet延遲的降低為遠(yuǎn)程實時監(jiān)控提供了條件。利用OPC協(xié)議可實現(xiàn)組態(tài)王和MATLAB之間的數(shù)據(jù)交互。針對組態(tài)王復(fù)雜算法實現(xiàn)困難和實驗設(shè)備利用率地下的問題,本文設(shè)計了一個基于IPSec的MATLAB與組態(tài)王的數(shù)據(jù)通信方案。實驗證明,基于IPSec的鏈路可靠通暢,基于OPC的數(shù)據(jù)交換方案穩(wěn)定有效。
[1]Lien C H. Network device, IPsec system and method for establishing IPsec tunnel using the same[J]. 2017
[2]Dayananda M S, Kumar A. Architecture for Inter-cloud Services Using IPsec VPN[J]. 2012:463-467
[3]陳宏希, 鄒益民. 基于 OPC的 Matlab與 S7-200 PLC實時通信在過程控制實驗裝置中應(yīng)用[J]. 工業(yè)儀表與自動化裝置,2015(5):55-58
[4]馮道寧, 于生. 基于OPC技術(shù)的多現(xiàn)場總線工業(yè)系統(tǒng)的研究和實現(xiàn)[J]. 工業(yè)控制計算機, 2012, 25(11):9-10