本文主要介绍胜利油田集输公司下属的大型站库的实时数据采集及WEB发布系统的建设,包括整个系统建设的方案设计、所应用到的技术介绍、碰到的问题以及解决的方法。采用的上位组态软件是北京三维力控的PCAUTO,应用的主要技术有OPC、DDE、NETDDE、分布式实时数据库、RS485总线读智能表。
关键字: 数采系统 PCAUTO OPC DDE
1.1基本情况介绍
集输公司下属的孤岛压气站,年处理天然气2亿立方米,年产轻烃约一万三千吨以上,是一个比较大型的压气站。下设50万、SW64、二次增压、离心机、配气、热煤炉、配电等岗位。其中:50万岗位是用的霍尼威尔HOWNIWELL的S9000型号的DCS控制系统、上位组态是IFix6.0、操作系统是WIN98; SW64岗位是用的美国库伯公司的RR控制器、上位组态软件是INTouch、操作系统是WINNT4.0; 二次增压岗位是用的日本Omron的控制器,上位组态是IFix6.0、操作系统是WIN98;离心机岗位是用的恒河的CS1000型号的DCS控制系统、上位是用恒河自带的组态软件、操作系统是WINNT4.0;配气岗位是用的美国SIXNET公司的ST-GT-1210控制器、上位组态软件是北京三维力控的PCAUTO、操作系统是WIN2000;热煤炉岗位控制系统是三菱的PLC,上位组态软件是北京昆仑通态的MCGS、操作系统是WIN2000;配电岗位设有许继的配电保护系统以及监控系统。
1.2实时数采系统功能设计
采用北京三维力控公司的PCAUTO做为数采系统的组态软件,把各个岗位控制系统的实时数据通过架设的以光纤为传输介质的站内局域网采集到位于压气站调度室的力控服务器上,这台服务器装有双网卡,同时连接着胜利油田广域网,在油田网上,然后进行实时数据的WEB发布,同时还可以把实时的数据定点存储到油田正在建设的源头数据系统里,生成各种报表。
1.3数采系统功能、方案设计
选用北京三维力控的PCAUTO做为系统的组态软件。负责采集IFix、INTouch、MCGS、恒河CS1000、许继、力控PCAUTO等组态软件以及支持485的智能仪表读数;
1.4系统应用技术介绍
1.4.1OPC介绍
OPC是以Microsoft公司的OLE/COM技术为基础,采用客户/服务器模型,制定的一种工业控制领域的开放式标准。OPC在工业控制设备与应用软件之间建立了统一的软件接口标准。主要解决监控程序与其数据源的交互问题。
利用OPC技术,可以对现场设备及其驱动程序进行封装,形成OPC服务器。OPC服务器向下对设备数据进行采集,向上与OPC客户应用程序通信完成数据交换,如图1所示。OPC服务器屏蔽了现场层的设备驱动程序;客户应用程序开发人员看到的,只是OPC服务器提供的统一接口,而不必再去关心现场设备的驱动程序。只要客户应用程序符合OPC接口规范,就可以与OPC服务器进行数据交换。
同样地,硬件厂商只需要为生产的硬件设备开发一个驱动程序,然后按照OPC标准编写一个OPC服务器,那么,所有按照OPC标准开发的客户应用程序都可以与该硬件设备进行数据交互,而无须编写额外的设备驱动程序。
这样,在工业现场的监测控制系统中,过程或设备监控程序(或者是监控组态软件),通过工业以太网,可以方便地与现场设备的OPC服务器进行数据交互,获得所需的现场数据。一方面,监控程序可以读取OPC服务器缓冲区(Cache)中的数据,获得过程或设备运行参数,实施有效地监视;另一方面,对于实时性要求比较高的设备数据,监控程序可以直接读取设备(Device)中的数据。如果用户需要扩充监控软件的功能,可以直接将定制的OPC软件包组态进现有软件中,而不必担心底层的设备驱动程序,使软件的布署变得更加容易。
1.4.2 DDE介绍
动态数据交换(DDE),即Dynamic Data Exchange的缩写。它是又微软公司提出的,目前主要还是应用在win98和winnt4.0的操作系统上,在新的操作系统上只是给予了兼容。DDE是基于WINDOWS的消息机制,两个WINDOWS应用程序通过相互之间传递消息进行“对话”,从而完成数据的请求、应答、传输,这两个程序分别被称为“Server”和“Client”。Server是数据的提供者,Client是数据的请求和接受者。DDE的Server是一个维护着其他WINDOWS程序可能使用的数据的程序,而DDE的Client则是从Server获得这些数据的程序。
一旦“Server”和“Client”建立了连接关系,则当“Server”中的数据发生变化后就会马上通知“Client”。通过DDE方式建立的数据连接通道是双向的,即“Client”不但能读取“Server”中的数据,还能对其进行修改。
DDE方式的通讯,主要是建立在2个WINDOWS应用程序之间,当前的大多数基于Windows应用程序仍然支持DDE,但是DDE的缺点也很明显,那就是通信效率低下,当通信数据量大时数据的刷新慢。
1.4.3力控区域实时数据库的分布式应用。
实时数据库是组态软件的核心部件,实时数据库运行系统完成对数据库的各种操作,包括:实时数据处理、历史数据存储、统计数据处理、报警处理、数据服务请求处理等。力控 的实时数据库系统同时也是一个分布式数据库系统。由于许多情况要求将数据库存储在地理上分布在不同位置的不同计算机上,通过计算机网络实现物理上分布,逻辑上集中的数据库,即具有分布式的透明性。用力控创建的数据库,数据在物理上分布在不同的地理位置或同一位置的不同的计算机上,但在用户操作时感觉不到数据的分布。用户看到的似乎不是一个分散的数据库,而是一个数据模式为全局数据模式的集中式数据库。在构建力控分布式数据库时,力控系统支持的网络通信方式有:TCP/IP网络、串行通信(RS232/422/485)、电话拨号网络等。
力控的数据库及管理系统的性能介绍:
真正的分布式结构,同时支持C/S 、B/S应用;分布式数据库结构可任意组建各种规模的企业应用;实时数据库系统具有高可靠性和数据的完整性;提供功能强大的企业级实时信息系统客户端应用工具;灵活的扩展结构可满足用户的各种需求;告诉的数据存储和检索功能;实时数据库是单独的进程,可以与HMI分离运行;实现了毫秒级数据采集和采集器的时间同步;以高压缩比保存数据,实现了历史数据的海量存储;支持OPC、DDE、ODBC、ActiveX等标准;可以从DCS、PLC、以及其他SCADA系统中读写过程数据。
1.4.4 RS485总线上的智能仪表数据读取
有些岗位安装了许多的智能仪表,比如气体流量计等,这类仪表内部集成了数字电路,可以完成部分的数据处理功能,并把数据保存在仪表的寄存器里,并支持RS485方式的数据传输,所以我们就把这类智能仪表分类组成一个或几个485网络,把力控服务器也连在485网络里,做为485网络的主机,总线上的其它仪表,做为从机,主机通过总线按照通讯协议向从机发命令,把从机寄存里里的数据读过来。如果485网络超过2个的话,就在服务器上安装多串口卡来解决。
然后在力控PCAUTO里设置智能仪表的I/O驱动,如果找不到这类仪表的驱动,可以按照仪表厂家提供的RS485通讯协议,仿照力控提供的驱动格式,自己编写仪表的驱动。然后就可以在力控PCAUTO里简单的进行组态设置,读取智能仪表的读数。
-
-
jhlu3 发表于 2009/8/19 19:27:08
1.5系统建设过程2楼 回复本楼
1.5.1 横河CS1000系统取数
OPC客户和OPC服务器进行数据交互有2种访问方式:同步和异步方式。同步方式实现较为简单,客户向服务器发出读写请求,然后等待服务器返回信息,当客户数据较少而且同服务器交互的数据量比较少的时候可以采用这种方式,然而当网络堵塞或大量客户访问时,会造成系统的性能效率下降。
异步方式实现较为复杂,客户向服务器发出读写请求后,服务器立刻返回信息表示请求已接受,客户可以进行其他处理,当服务器完成读写操作后,通过调用回调函数,通知客户程序操作完成,并传递相应的信息,因此异步方式的效率更高,能够避免多客户大数据请求的阻塞,并可以最大限度地节省CPU和网络资源。
横河的opc数据交互属于异步方式,需要在客户端计算机上注册几个相关的动态连接库文件到操作系统,这样才能完成opc的Client和Server的数据交互。
然后在力控PCAUTO里定义I/O设备,添加一个OPC的Client,配好IP地址后,刷新就可以找到对应IP的CS1000的计算机系统里的OPC Server, 配置好OPC的Client后,在力控的数据库组态里面,添加相应的数据点,这样就完成了横河CS1000的OPC在力控PCAUTO里的配置,可以同步横河CS1000系统里的数据了。
1.5.2热媒炉岗三菱PLC的OPC取数过程
三菱的PLC比较通用,支持这个硬件的OPC Server程序很多,我们选择的是KepServer软件。这个程序支持很多硬件,可以在和硬件建立通讯后,把底层设备实时的数据取数以OPC Server的形式发布和其它软件进行数据交互,完成上位监控、参数设置等功能。配置好OPC Server后,同样在力控PCAUTO里面添加I/O设备
再在力控PCAUTO的实时数据库组态里面添加数据库点。
1.5.3DDE方式取IFIX的数
IFIX软件支持微软的DDE动态数据交换,我们设计的是在岗位的从监控机上安装一套力控,用力控通过DDE方式和IFIX进行数据交互,然后利用力控PCAUTO的网络数据源功能,从服务器上间接取到IFIX的实时数据。
首先必须启动IFIX里面的一个DDE Server模块,把这个模块设置成随IFIX同时启动,这样IFIX才能在运行中,支持DDE的程序。
然后在力控PCAUTO里面添加一个DDE的I/O设备:再在力控PCAUTO的实时数据库组态里面添加数据库点。
1.5.4NETDDE方式取INTouch的数据
Netdde是通过网络借助DDE进行数据交互的一种方式,在使用Netdde之前,必须对2台计算机进行DDE的一些相关配置,添加DDE共享、信任共享设置等,具体设置见下图:[img]2006958595857965.gif[/img]
再在力控PCAUTO的实时数据库组态里面添加数据库点。
1.5.5取智能仪表的读数
取智能仪表读数的关键是找到合适I/O驱动,如果是比较常见的仪表,力控一般都支持,然后在力控的I/O设备里添加此仪表的驱动,然后在数据库里面组点即可。有一些不常见的仪表,可以找到它的485通讯协议原文,按照力控提供的驱动开发SDK包,自己进行开发。
引用 jhlu3 2009/8/19 19:27:08 发表于2楼的内容