工控网首页
>

应用设计

>

VPN+OPC实现污水处理提升泵站远程通讯

VPN+OPC实现污水处理提升泵站远程通讯

2009/12/30 10:47:00
Use VPN and OPC to access remote data of the Sewage Treatment Pump Station
Wu Xiaoyu
Abstract:Use VPN to let the dynamic dial’s PC get the certain IP address of Local Aera Network,set DCOM security settings appropriately,and use OPC to get remote data of the Sewage Treatment Pump Station. Transmit the data in a high efficiency、safety and trusty way,can remote maintenance,and saving cost.
Keywords:VPN Firewall config Creat VPN connection OPC DCOM config Develop OPCClient
项目背景:
金华市秋滨污水处理厂是浙江省重点工程,于2002年7月投入运行,由金华市自来水总公司负责管理,作为配套设施,金龙湾提升泵站于2005年1月建成,距离厂区约7公里。秋滨污水处理厂位于城市西郊,而金龙湾提升泵站位于城市中心,如果铺设光缆,不仅投资大,而且施工也很麻烦,如果采用无线通讯,安全性和可靠性也不是很高,考虑到金华市自来水总公司已有防火墙(秋滨污水处理厂已采用VPN接入防火墙),且金龙湾提升泵站采用的Modicon Compact 系列PLC自带Modbus端口,所以采用Modbus OPC Server获取泵站的实时运行数据,拨号接入ADSL宽带,二次VPN拨号接入自来水总公司防火墙,秋滨污水处理厂中控室的上位机则利用OPC接口监控泵站运行。

一、VPN的实现

1.1、VPN简介
即Virtual Private Network,是利用IP网络来传输私有信息而形成的逻辑网络,从而为用户提供高安全性,且比专线价格低廉的资源共享和互连服务。它具有同客户原有的私有网络相同的安全性、优先级特性、易管理性和稳定性。它可以满足客户对原企业内部局域网与远程办公室、移动用户间无缝连接的要求,将网络连接扩展到客户、供货商、合作者和关键用户以形成外部网(Extranet),来降低商业运作开支和提升服务质量(包括速度、简便性和保密性上的提升)。实施VPN时,较多使用的隧道协议包括二层隧道协议MPLS、L2TP和三层隧道协议IPsec等,常见VPN有:MPLS VPN、VPDN、IPsecVPN等。
由于VPN是在Internet上临时建立的安全专用虚拟网络,节省了租用专线的费用,在运行的资金支出上,除了购买VPN设备,所付出的仅仅是向当地的ISP支付一定的上网费用,这就是VPN价格低廉的原因。

1.2、自来水总公司防火墙配置
自来水总公司采用华为3COM 100F防火墙,一条10M光纤接入 Internet,固定IP地址;决定采用L2TP协议的IPsec VPN,部分配置如下:
sysname Quidway
#
l2tp enable //使能L2TP
dvpn service enable //使能VPN服务
#
local-user abcde //创建移动用户帐号和密码
password simple abcde
service-type ppp
#
interface Virtual-Template4 //建立用于提升泵站VPN的虚拟端口4
ppp authentication-mode pap //设置认证模式
ip address 192.168.40.1 255.255.255.0 //指定提升泵站IP
remote address 192.168.40.2
#
add interface Virtual-Template4 //添加虚拟端口4
set priority 5 //设置优先级
#
l2tp-group 5
undo tunnel authentication //取消通道认证
mandatory-lcp //lcp自协商
allow l2tp virtual-template 4 remote jhwsjlw
//接受网络标识为jhwsjlw的计算机(即提升泵站计算机)的l2tp请求,并绑定到虚拟端口4
#

1.3、创建VPN连接
金龙湾提升泵站电脑采用的是Win2000SP4操作系统,自带VPN拨号功能,使用方法如下:(XP系统中设置方法类似)
1.3.1在注册表中添加以下子项后并重新启动
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
"ProhibitIpSec"=dword:00000001
1.3.2 “网络和拨号连接”---“新建连接”---“通过internet连接到专用网络(V)”---“首先拨此初始连接”(选择ADSL拨号程序)---“主机名或IP地址”(输入防火墙IP),键入VPN连接名称后就可以了。
1.3.3创建完成后,还需要设置虚拟连接,选择该连接---“属性”:
u 常规栏中设置拨号和重拨选项;
u 安全栏中选择“高级”后,点击“设置”按钮进入“高级安全设置”;
u “数据加密”选项选择“可选加密”(因为防火墙中没有使用加密),并将“不加密的密码(PAP)(U)”打勾;
u 网络栏设置:选 L2TP IPSec VPN。
1.3.4另外,通过该方法创建的VPN连接不能访问外网,这很大程度上保证了数据和电脑的安全。

1.4、VPN的优点
通过VPN使动态拨号的电脑获得局域网的固定IP,既保证了数据传输的安全性和可靠性,还节约了成本,配合PCAnywhere等软件实现远程维护,给维护工作带来了很大的方便。

二、OPC

2.1、OPC简介
即OLE for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,总而言之,OPC是作为工业标准定义的特殊的COM接口。
  COM是Component Object Model的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。在Windows NT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(Distributed COM)。
通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来,提高了系统的开放性和可互操作性,通常在系统设计中采用OLE自动化标准接口。

2.2、DCOM配置
在OPC客户端与OPC服务器连接时,需要由OPC服务器的计算机对OPC客户应用程序的计算机进行身份验证。如果双方的计算机同时隶属于计算机域时,身份验证可以由域控制器进行,但是现状是运行在自动控制系统的控制计算机大多数并没有隶属于计算机域,而是运行在工作组(WorkGroup)中。按照windows的安全机制,对于不隶属于计算机域的另外的计算机上用户,一般无法进行身份验证。但是唯一的例外是:如果在二台计算机上存在用户名和密码都相同的用户,可以互相进行身份验证。所以需要在OPC服务器和OPC客户端计算机上添加具有相同用户名(比如:opc-user)和相同密码(比如:password)的用户,并且都以该用户身份登陆。
完成后在“开始”-“运行”中输入dcomcnfg进入DCOM安全机制设置:
a) 首先,启用分布式COM。(服务器和客户端都需要设置)
b) 其它设置详见下表:



c) 如果OPC服务器使用的是winXPSP2操作系统,还需要对防火墙进行设置:
即:例外栏中添加名称为DCOM的TCP135端口;并解除对OPC Server和OPCEnum程序的阻止。
d) OPC客户端计算机无需其它设置。

2.3、OPC客户端的开发
秋滨污水处理厂中控室上位机使用的组态软件是Intouch8.0,自带OPCLINK ,但是在使用过程中发现OPCLINK存在一个很大的问题:无法枚举远程OPC Server!以我厂为例,提升泵站电脑的IP是192.168.40.2,污水处理厂中控室电脑的IP是192.168.2.2,使用VB编写的客户端可以正常枚举远程OPC Server,但是使用OPCLINK时,只要输入节点名,一点击“浏览”按钮,程序就无响应,FSGateway也是如此,所以决定用VB自行开发OPC客户端,利用DDE与Intouch互相通信。
DDE是由微软开发的一个通讯协议,它允许windows下的应用程序之间互相传递数据,服务器应用程序响应客户端应用程序的数据请求并发送相应数据,很多的应用程序(比如:EXCEL,VB等)都既可以作为DDE服务器,也可以作为DDE客户端。
考虑到需要采集的数据比较多,利用VB自带的label等控件实现DDE的通信效率不高,且代码数量较大,所以自行开发了DDE Server的动态链接库,机制比较复杂,这里不再详细叙述,有兴趣的朋友可以与我联系。
一般OPC服务器供应商都会提供VBClient代码,所以有关连接OPC服务器,添加OPC组等代码这里不在叙述,在OPC客户端开发中,有以下问题需要注意:
2.3.1、 由于OPC标签的数量比较多,应该使用一次性添加所有标签,示例如下:(“[]”内参数可选,MyOPCGroup为添加的OPC组,下同)
call MyOPCGroup.OPCItems.AddItems(NumItems As Long, ItemIDs() As String, ClientHandles() As Long, ServerHandles() As Long, Errors() As Long, [RequestedDataTypes], [AccessPaths])
2.3.2、 为了提高数据传输的效率,OPC客户端可以采用订阅方式采集数据,异步写入,示例如下:
MyOPCGroup.IsActive = True //激活OPC组
MyOPCGroup.IsSubscribed = True //订阅方式采集数据
投诉建议

提交

查看更多评论