基于IPSec的MATLAB与组态王的数据通信

2017-11-09 09:44杜才亮宋小静中国民航大学电子信息与自动化学院
数码世界 2017年9期
关键词:组态王内网公网

杜才亮 宋小静 中国民航大学电子信息与自动化学院

基于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

猜你喜欢
组态王内网公网
浅析大临铁路公网覆盖方案
某IP端口映射在外网打不开
如何迎接公网对讲的春天
企业内网中的数据隔离与交换技术探索
内外网隔离条件下如何实现邮件转发
液压系统电气控制虚拟实验系统的开发
基于组态王和PLC的实验室通风监控系统
基于公网的人民防空应急警报通信系统及应急通信保障工作策略研究