基于IPSec的MATLAB与组态王的数据通信
2017-11-09杜才亮宋小静中国民航大学电子信息与自动化学院
杜才亮 宋小静 中国民航大学电子信息与自动化学院
基于IPSec的MATLAB与组态王的数据通信
杜才亮 宋小静 中国民航大学电子信息与自动化学院
针对组态王远程监测与控制实现困难问题,提出了一种基于IPSec的MATLAB与组态王数据通信实例。方法使用IPSec提供了一条保密数据链路,并使用一个公网服务器与若干内网客户端实现内网穿透。通过此链路使用OPC协议实现组态王和MATLAB的连接。实验表明,此方法可以有效地实现远程监控。
IPSec 组态王 OPC
1 引言
互联网技术的发展为远程监控提供了快捷方便的途径,IPSec(Internet Protocol security)作为一种网际层的协议被广泛应用。此协议为一组协议集,包括数据加密、源地址验证、数据完整性检查和防攻击等[1]。组态王是一种组态软件,并提供多种驱动,方便上位机与控制系统进行连接。但是组态王无法快捷的加入复杂控制算法。MATLAB作为一个专业科学语言可以方便的实现复杂控制算法。PCT-II型实验设备体积大且重量大,在实践中跨校区两实验室只能单实验室教学,利用率低。为了解决这个问题,本文提出一种基于IPSec的MATLAB与组态王通信链路,实现跨局域网远程监控PCT-II型实验设备。
2 数据链路
数据需要跨两个局域网,由于一些安全无法实现基于公网IP的IPSec互联。为此需要增加一个带有公网IP的服务器作为中转。L2TP作为一种虚拟局域网具有转发速度快和建立方便的优势,但是安全性较差,IPSec安全性好,但是操作系统需要对等连接[2]。因此两地实验室采用L2TP-VPN分别和服务器连接,然后再次使用IPSec隧道加强安全性。
2.1 路由拓扑
两个实验室分别在不同的内网中,两内网没有互通。本文设计一个链路,数据首先从A校区上位机经过A校区内网路由器、A校区网关、A校区防火墙,经过公网传输到公网服务器,然后经过公网、B校区防火墙、B校区网关、B校区内网路由器传输到B校区上位机,路由拓扑如图1所示。
图1 网络拓扑
图2 .a L2TP服务器
图2 .b IPSec
2.2 链路连接
两内网路由器和公网服务器均使用Router OS操作系统。L2TP服务器使用Router OS内建L2TP服务器搭建,如图2所示。A、B两校区路由器使用L2TP隧道和公网服务器连接,形成两条虚拟链路。两内网路由器分别通过建立好的L2TP隧道建立IPSec连接,并在公网服务器内设置防火墙规则,转发两网段数据。至此链路连接建立完毕。
3 组态王与MATLAB连接
OPC(OLE for Process Control)是一种由微软提出并推动的一种软件接口,分为OPC Server和OPC Client。OPC服务器分为三层,分别为server层,group层和item层,三层成树状关系[3]。OPC客户端使用标准协议和OPC连接,客户端通过group操作item层数据。
组态王集成OPC服务端[4]。为了可以远程连接,本文设置了组态王所在计算机的远程读写权限。MATLAB集成OPC客户端,可以使用GUI或者API接入OPC服务器。在基于MATLAB的控制系统中,只需读写组态王的寄存器数据即可,因此采用API方式。为了方便程序调用,本文创建了三个函数分别完成连接、读取、写入功能。
%%%%%连接
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));
如函数所示,连接OPC服务器后先取得group键,然后读取group键下的item键并返回。因组态王使用single数据类型,所以在读写函数中主要完成数据类型转换功能。
4 实验和结果
为了验证此通信方法的有效性,进行了链路实验以及PCTII、组态王连接实验。
4.1 链路实验
L2TP 链路使用192.168.1.0/24网段,A 校区路由器设置 IP:192.168.1.3,B 校区路由器设 置 IP:192.168.1.6,使用Router OS内Ping工具测试。测试时间为晚上8点,为网络最拥堵时间。测试结果如表1所示。
表1 L2TP链路测试
增加IPSec隧道并在服务端添加转发之后,A、B两校区电脑之间测试结果如表2所示。
表2 IPSec隧道测试
因PCT-II实验设备采样时间为1s,由表1-2可知,此链路满足要求。
4.2 PCT-II、组态王连接实验
此实验为单容水箱液位控制实验,需要实时获取液面位置、流量信息,实时写入阀门开度信息。在链路畅通之后即可使用连接、读取、写入函数读写操作,可实现和本地相同的效果。如图3所示实时液位控制,其中参数为Kp=1.8、Ki=0.13、Kd=0
图 3 液位控制实验
图中蓝红色曲线为实时液面,红色曲线为阀门开度,绿色曲线为误差。和本地控制效果相同。
5 结论
IPSec隧道为远程控制提供了可能,internet延迟的降低为远程实时监控提供了条件。利用OPC协议可实现组态王和MATLAB之间的数据交互。针对组态王复杂算法实现困难和实验设备利用率地下的问题,本文设计了一个基于IPSec的MATLAB与组态王的数据通信方案。实验证明,基于IPSec的链路可靠通畅,基于OPC的数据交换方案稳定有效。
[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实时通信在过程控制实验装置中应用[J]. 工业仪表与自动化装置,2015(5):55-58
[4]冯道宁, 于生. 基于OPC技术的多现场总线工业系统的研究和实现[J]. 工业控制计算机, 2012, 25(11):9-10