基于OPENVPN异地调试PLC的方法

2020-08-11 09:39王兴宇
中国电气工程学报 2020年4期

王兴宇

摘要:提出一种基于openvpn软件将现场PLC和现场笔记本通过INTERNET将远程调试工作员站连接到一个虚拟专用网中并进行异地远程跨网段调试的方法。

关键词:PLC,远程调试,虚拟局域网,OPENVPN。

背景

现场调试和维护在PLC项目执行过程中是很重要的一环,决定了项目是否能够准时正确的验收及通过,现场装置是否能长期无故障运行。在项目调试阶段,除一些不可或缺的長周期现场调试外,在一些较为简单的PLC项目调试中或是项目投运后的小BUG及流程优化过程中,经常会碰到现场地处非常偏远,工程师出差的路途时间远远超过调试时间的情况出现,为了更加精细的管理项目,节约双方的经济及时间成本,此时可通过远程调试的方式来解决问题,本文以我公司宝丰改造二期项目袋滤器防爆PLC控制系统为例,探讨一下远程调试的方法。

由于工业生产的安全考虑,PLC均是局域网内操作,工程师站必须和PLC在同一局域网内才可调试,这意味着如果希望进行远程调试只要将远程工程师站和PLC通过技术手段放入同一局域网内即可。

现有解决方案如下:

1) 现场PC安装调试软件,远程PC使用远程桌面连接现场PC进行调试。

2) 现场提供专用的VPN路由器,由网线或无线等手段连接到INTERNET之后连接远程PC。

上述方案缺点如下:

1) 远程桌面方式要求现场PC安装调试软件,有远程需求的小项目业主一般基于成本考虑项目中不会配现场调试PC,大项目基本上都需要现场调试无远程需求,调试软件文件体积基本都很大,传到现场PC安装存在传输时间及授权的问题。

2) 现场不会有专用的VPN路由器,邮寄的话赶不上项目进度,还需要考虑成本及回收问题,且这些路由器均为商业产品不开源,如果跨区出现网络问题,无法实时调试及优化。

本文给出解决方案使用远程工程师站直接调试PLC,现场PC及手机只是用来传输数据,不用安装大型组态软件,仅采用开源的OPENVPN和现场PC自带的软件来组网,方便网络调试,克服了以上缺点。

基于项目现场情况,本文方案仅需现场提供1台普通笔记本、1台手机和1个现场人员配合,实现了最小设备需求,并且远程PC是经由公司公网域名或IP连接公司服务器后再连接现场PLC,这样工程师即使在另外的项目现场出差时也可调试,最大程度节约了设备和时间成本。

方案

一、 项目介绍

宁夏宝丰能源集团循环化改造二期项目中共6套袋滤器控制箱用于已可编程的方式顺序或间断控制2~18个不等的脉冲电磁阀的反吹。控制箱防护等级IP65,放在防爆区,zone2+zone22,ExDIICT4+ExtbIIIBT4,铸铝,为控制成本,现场控制器不能太大,所以PLC考虑西门子LOGO!系列加扩展模块,控制方式为按钮+西门子KP400按键屏,平时采用按钮操作,按键屏显示电磁阀工作状态等实时显示界面,需调整脉冲喷吹时间、周期时打开控制箱面板,脉冲宽度35~280ms,周期2~120s。考虑到继电器的使用寿命,PLC数字量输出通过固态继电器接控制脉冲电磁阀。

LOGO!和KP400之间通过CAT5电缆通讯,分别使用LOGOComfort和TIA winCC组态,且均可以通过以太网下装程序和调试。

二、 Openvpn介绍

OpenVPN是一种用来创建虚拟专用网络加密通道的开源VPN(虚拟专用网络)软件,分为服务端和客户端两部分,允许客户端使用密钥、用户名\密码、电子证书等身份认证登录服务端,并可以使服务端和客户端处于同一局域网段内。

OpenVPN主要采用虚拟网卡技术,安装后会在主机上增加一个和真实网卡一样进行配置的虚拟的网卡。另外由于虚拟网卡技术在不同的操作系统中普遍存在,这使OpenVPN可以更容易的跨平台使用。

选用OPENVPN作为本项目远程调试连接软件的主要原因有:

1) 可以跨省使用。 由于国内的网络环境比较复杂,一般的VPN协议如PPTP等无法跨省或跨网络运营商使用,经实验OPENVPN在多种情况下均可使用。

2) 适用范围广。 OpenVPN当前在Windows、Linux、Mac OS、Android、iOS、Solaris、OpenBSD、FreeBSD和NetBSD等绝大部分操作系统上均可以部署和运行,并且服务端和客户端可以跨平台连接。

3) 开源。 OPENVPN是遵循GNU通用公共许可协议的开源软件,无需付费,开源的特性使得它可以保持迭代和更新,性能也会也来越稳定。

4) 安全。 OPENVPN大量使用OpenSSL函数库,客户端和服务端间通讯使用SSL连接同时提供HMAC功能以提高连接的安全性。

三、 网络拓扑结构

根据项目实际情况,实现PLC远程调试所在的网络拓扑结构如下:

OPENVPN服务器为:

公司内网服务器,通过公网IP(设为58.X.X.X)或域名的1297端口发布。

OPENVPN客户端有:

现场笔记本电脑(登录使用用户名PLC_SITE,指定IP为192.168.7.219);

远程工程师站(登录使用用户名PLC_TIA,指定IP为192.168.7.215);

项目现场网络环境:

由于现场PLC直连笔记本电脑,网络结构中没有独立的路由,只能使用笔记本电脑作为路由,而且由于PLC底层数据对网络环境有要求,多次实验后这里采用了最容易操作的在OPENVPN通道中嵌套一个系统自带的PPTP协议VPN实现。

PPTP VPN服务器:

现场笔记本电脑,发布网段为192.168.0.0/24的PPTP通道,并作为路由共享自身有线网卡连接的局域网。

PPTP VPN客户端:

远程工程师站,连接到OPENVPN专用网IP(192.168.7.219)1297端口上发布的PPTP服务器,并访问PPTP服务器所在局域网。

四、 物理连接

服务器端:windows sever2012系统,通过公司网关正常连接INTERNET。

现场笔记本电脑、手机、PLC及HMI:手机通过移动网络连接INTERNET并开启WIFI热点;现场笔记本电脑无线网卡连接手机WIFI热点上网,有线网卡通过网线连接现场HMI或PLC(如HMI有两个网口,PC可仅连接HMI第1网口,然后通过HMI第2网口连接PLC)。

远程工程师站:使用各种方式正常连接INTERNET。

五、 软件实现

Openvpn服务端配置文件如下:

port 1297 #监听端口,可以指定

proto udp #OpenVPN建议使用UDP协议

dev tun #创建一个路由IP隧道

topology subnet #采用通用局域网段

server 192.168.7.0 255.255.255.0 # 通道使用网段

client-to-client # 客户端互联

client-config-dir ccd #客户端定制,对不同的用户推送指定IP

#然后需要在 /ccd/用户名称 的配置文件中加入

# "ifconfig-push 192.168.7.X 255.255.255.0"

SSL及其他参数默认,略。

由于跨网段情况复杂,服务端配置文件中加入优化参数如下:

#减小MTU值防止丢包。

mssfix 1200

fragment 1200

push "fragment 1200"

#增加缓冲区的大小以提升网络性能,正常情况下不需要。

;rcvbuf xxxxxx #UDP方式仅需增加接收缓冲区,默认65536。

;sndbuf xxxxxx #默认65536。

;txqueuelen xxx #默认100。

Openvpn客户端配置文件如下:

Client #客户端

dev tun #路由IP隧道

proto udp #使用UDP协议

remote 58.X.X.X 1297 #连接到服务器公网IP地址或域名+端口

cert PLC_TIA.crt #分配的.crt文件,现场笔记本替换为PLC_SITE.crt

key PLC_TIA.key #分配的.key文件,现场笔记本替换为PLC_SITE.key

SSL及其他参数默认,略。

系统PPTP VPN配置如下:

现场笔记本做服务器:

Windows系统到控制面板\网络和 Internet\网络连接页面,组织>布局>菜单栏(勾选),在页面菜单栏中>文件>新建传入连接>添加用户名(PLC/***)>下一步>通过INTERNET(勾选)>下一步>IPv4属性>允许呼叫方访问我的局域网(勾选)>指定IP地址从(192.168.0.10)到(192.168.0.20)>确定>允许访问。防火墙设置略。

远程工程师站做客户端:

Windows系统到控制面板\网络和 Internet\网络和共享中心页面,设置新的连接或者网络>连接到工作区>创建新连接>使用我的INTERNET连接到VPN>IP地址(192.168.7.215)>名称(PLC)>连接>PPTP>用户名密码(PLC/***),在控制面板\网络和 Internet\网络连接中找到新建PLC连接>属性>安全>MS-CHAP v2(勾选)>网络>IPv4属性>高级>在远程网络上使用默認网关(取消勾选)。防火墙设置略。

六、 PLC调试

由于PLC和工程师站openvpn网卡(PPTP网卡无法被PLC使用)不在一个网段,PLC需选择跨网段调试,PLC使用现场笔记本物理网卡IP作为网关(192.168.0.3)

PLC(LOGO!)在LOGOComfort中具体组态如下:

按键屏(KP400)在TIA WINCC中的具体组态如下:

搜索到设备后按正常步骤下载组态到PLC或在线调试即可,如需现场人员配合可通过电话或其他网络通讯工具。

总结

本文提出一个基于OPENVPN的PLC免费远程调试方案用于节省项目成本及资源,并已在文中所提项目成功应用。在实际操作过程中,需要通过调整参数来优化网络。以上方法不仅限于PLC调试,还可以扩展到基于局域网的所有控制系统或设备的远程调试中。

参考文献:

[1] James Yonan. Reference manual for OpenVPN 2.4 [EB/OL]. https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/, 2018.

[2] Siemens. TIA下如何访问不同IP网段中的PLC [EB/OL]. https://cache.industry.siemens.com/dl/files/734/109739734/att_889622/v1/PLC_IPRoute_9090.pdf, 2016-8-3.