推广 热搜: 电机  PLC  变频器  服务机器人  培训  变送器  危化品安全,爆炸  西门子PLC  触摸屏  阀门 

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

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:27    评论:0    
1  引言

    金华市秋滨污水处理厂是浙江省2002年7月投入运行的重点工程。配套设施金龙湾提升泵站于2005年1月建成,距离厂区约7公里。秋滨污水处理厂位于城市西郊,而金龙湾提升泵站位于城市中心,如果铺设光缆,不仅投资大,而且施工也很麻烦,如果采用无线通讯,安全性和可靠性也不是很高,考虑到金华市自来水总公司已有防火墙(秋滨污水处理厂已采用vpn接入防火墙),且金龙湾提升泵站采用的modicon compact系列plc自带modbus端口,所以采用modbus opc server获取泵站的实时运行数据,拨号接入adsl宽带,二次vpn拨号接入自来水总公司防火墙,秋滨污水处理厂中控室的上位机则利用opc接口监控泵站运行。

2  安全专用虚拟网络vpn的实现

2.1  vpn简介

    即virtual private network,是利用ip网络来传输私有信息而形成的逻辑网络,向用户提供高安全性且比专线价格低廉的资源共享和互连服务。它具有同客户原有的私有网络相同的安全性、优先级特性、易管理性和稳定性。它可以满足客户对原企业内部局域网与远程办公室、移动用户间无缝连接的要求,将网络连接扩展到客户、供货商、合作者和关键用户以形成外部网(extranet),来降低商业运作开支和提升服务质量(包括速度、简便性和保密性上的提升)。实施vpn时,较多使用的隧道协议包括二层隧道协议mpls、l2tp和三层隧道协议ipsec等,常见vpn有:mpls vpn、vpdn、ipsecvpn等。 

    由于vpn是在internet上临时建立的安全专用虚拟网络,节省了租用专线的费用,在运行的资金支出上,除了购买vpn设备,所付出的仅仅是向当地的isp支付一定的上网费用,这就是vpn价格低廉的原因。

2.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
#

2.3  创建vpn连接

    金龙湾提升泵站电脑采用的是win2000sp4操作系统,自带vpn拨号功能,使用方法如下:(xp系统中设置方法类似)

(1) 在注册表中添加以下子项后并重新启动
hkey_local_machine\system\currentcontrolsetservices\rasman\parameters
"prohibitipsec"=dword:00000001

(2) “网络和拨号连接”——“新建连接”——“通过internet连接到专用网络(v)”——“首先拨此初始连接”(选择adsl拨号程序)——“主机名或ip地址”(输入防火墙ip),键入vpn连接名称后就可以了。

(3) 创建完成后,还需要设置虚拟连接,选择该连接——“属性”:
●常规栏中设置拨号和重拨选项;
●安全栏中选择“高级”后,点击“设置”按钮进入“高级安全设置”;
●“数据加密”选项选择“可选加密”(因为防火墙中没有使用加密),并将“不加密的密码(pap)(u)”打勾;
●网络栏设置:选 l2tp ipsec vpn。

(4) 通过该方法创建的vpn连接不能访问外网,这很大程度上保证了数据和电脑的安全。

2.4  vpn的优点

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

3  过程控制接口opc

3.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自动化标准接口。

3.2  dcom配置

    在opc客户端与opc服务器连接时,需要由opc服务器的计算机对opc客户应用程序的计算机进行身份验证。如果双方的计算机同时隶属于计算机域时,身份验证可以由域控制器进行,但是现状是运行在自动控制系统的控制计算机大多数并没有隶属于计算机域,而是运行在工作组(workgroup)中。按照windows的安全机制,对于不隶属于计算机域的另外的计算机上用户,一般无法进行身份验证。但是唯一的例外是:如果在二台计算机上存在用户名和密码都相同的用户,可以互相进行身份验证。所以需要在opc服务器和opc客户端计算机上添加具有相同用户名(比如:opc-user)和相同密码(比如:password)的用户,并且都以该用户身份登陆。

    完成后在“开始”-“运行”中输入dcomcnfg进入dcom安全机制设置:

(1) 首先启用分布式com。(服务器和客户端都需要设置)

其它设置详见附表。

(2) 如果opc服务器使用的是winxpsp2操作系统,还需要对防火墙进行设置。
即:例外栏中添加名称为dcom的tcp135端口;并解除对opc server和opcenum程序的阻止。opc客户端计算机无需其它设置。      

3.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客户端开发中,有以下问题需要注意:

(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) 为了提高数据传输的效率,opc客户端可以采用订阅方式采集数据,异步写入,示例如下: 
myopcgroup.isactive = true //激活opc组
myopcgroup.issubscribed = true      
//订阅方式采集数据
myopcgroup.asyncwrite(numitems as long, serverhandles() as long, values()
as variant, errors() as long, transactionid as long, cancelid as long)    
//异步写入多个opc标签

(3) 为了方便调试和维护,可以采用listview控件列出所有opc标签名称、数值和质量标签,而此时opc组已经采用订阅方式采集数据,为了保证写入listview的效率,避免受到datachange事件的影响,可以采用以下方法:
dim withevents callbackgroup as opcgroup
//当listview写入完成后
set callbackgroup = myopcgroup
之后采用callbackgroup的datachange事件就可以了。

(4) 还有一个很重要的问题,由于采用订阅方式采集数据,一旦vpn连接异常断开,opc客户端并没有相应通知,还认为是通讯正常!比较好的解决办法是:在plc中设置一个位,其值定时在0和1之间跳变(一般为1秒),程序只要监视该值就可以了。dde相关部分这里不再叙述。

4  结束语

    随着城市建设的发展,污水处理厂提升泵站的数量越来越多,且大多分布在城市各地由于各种原因,很难铺设光缆到污水处理厂区。与污水处理厂的通讯通常采用无线方式,而无线通讯比较容易受到干扰,数据的安全也不能保障,gprs等方式不能提供大数据量的稳定传输。在这种情况下,采用vpn+opc的方式是一个较为理想的选择,vpn具有价格低廉、安全、稳定且容易管理等优点;opc则可以提供高速的数据传输性能、具有分布式com的安全管理机制、并且开发也简单,结合两者开发的应用程序,不仅代码数量少、而且可以远程维护,非常适合类似情况的用户使用。项目现正常运行于金华市秋滨污水处理厂中控室。

 
打赏
 
更多>同类环保知识
0相关评论

推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON