2023年11月30日发(作者:)

36 4 36(4):677680

20067 July,2006

PERIODICALOFOCEANUNIVERSITYOFCHINA

利用OPC实现WINCC与监控系统的动态数据交换

高德欣

1,211

,张文武,

(中国海洋大学信息科学与工程学院,山东青岛266071;2.青岛科技大学自动化与电子工程学院,山东青岛266042)

: 利用OPC(OLEforprocesscontrol)接口实现了SIEMENSWinCC与上位机开发软件组态王力控VB之间动态

据的交换,解决了不同监控系统之间实时数据交换难,实现不同监控系统开发软件间的即插即用以及控制系统的集成和数

据共享,为企业生产管理信息化打下基础,最后给出了具体的实现步骤及成功应用案例

关键词: OPC接口;西门子WinCC;组态王;力控;动态数据交换

中图法分类号: TP273 文献标识码: A 文章编号: 1672-5174(2006)04-677-05

随着组态软件在生产过程监控系统中的广泛应

,以及企业信息管理系统建设的不断发展,再也不能

希望完全由同一套组态软件或ERP软件构成整个企

业的信息管理系统,组态软件的开放和协同以及与各

ERPMIS系统的连接正在逐步成为企业生产管理

信息化进程中不得不考虑的1个重要内容由于过程

级的,(

WinCC,IFIX,,),线(CC-

LINK,PROFIBUS,422/485总线等)并存,要与这些系

统交换数据编写接口程序比较复杂,而且一般来说各

组态软件的数据库均经过加密封装,用户无法从外部

直接访问其中数据,即使像WinCC软件虽然其数据库

未加密,但是数据库中表名,表的结构表的字段定义

等等都是保密的,所以这给系统集成数据共享带来很

大困难

目前比较好的解决方案是:(1)利用DDE(Dynam-

icDataExchange)技术实现开放式数据交互;(2)利用

OPC技术实现开放式数据交互二者都可使出自不同

公司的系统能组成1个有机的整体但是DDE技术

只适用于小数据量的交互,目前在工控行业基本被淘

OPC技术由于通讯稳定,传输速度快,适于大

据交,现在新的

OPC技术允许客户程序从不同的OPC服务器甚至运

行在不同节点上的OPC服务器存取数据现在有实

力的远端SCADA,DCS,PLC,远端I/O模块供应商等

等都提供OPC服务器,:Intellution公司的iFIX,

国西WinCC,

(Kingview)和大庆三维集团的力控(ForceControl)

利用OPC技术,可将ERP系统HMI系统PLC和现

场设备系统集成一体化

基金项目:山东省自然科学基金项目(Y2000G02)资助

1 OPC规范

OPC规范包括OPC服务器和OPC客户端2个部

,其实质是在硬件供应商和软件开发商之间建立了1

套完整的规则,只要遵循这套规则,数据交互对两者

来说都是透明的OPC服务器由3类对象组成:服务

[1]

(Server)(Group)和数据项(Item)

,相当于3

层次上的接口

(1)服务器(Server)拥有服务器对象的所有信息,同时也

是组对象(Group)的容器,1个服务器对应于1OPC-

Server,1OPCServer,可以有若干个组对象

(2)(Group)拥有本组对象的所有信息,同时包容并

逻辑组织OPC数据项(Item)

(3)数据项(Item)是读写数据的最小逻辑单位,1个项

1个具体的位号相连,通常指向设备的1个寄存器

单元

OPC体系结构如图1所示

OPC技术扩展了设备的概念,只要符合OPC服务

器的规范,OPC客户便可与之方便地实现数据交互

OPC客户和OPC服务器有2种不同方式进行数据交

[2-5]

,即同步方式和异步方式同步方式实现较为简

,当客户数目较少而且同服务器交互的数据量不大

的时候可以采用这种方式;异步方式实现较为复杂,

要在客户程序中实现服务器回调函数,然而当有大量

客户和大量数据交互时,异步方式能提供高效的性能,

尽量避免阻塞客户数据请求,并最大可能地节省CPU

和网络资源

收稿日期:2005-03-21;修订日期:2005-04-27

作者简介:高德欣(1978-),,博士,讲师E-mail:gaodexin@ouc.edu.cn

678 2006

通过该数据管理应用软件同时访问多套系统中的数

,对数据进行交互和统一管理还可按这种数据交

互方式实现异构现场总线系统之间的数据集成

3 WinCCOPC服务器设置

WinCC(5.x-6.0)OPC服务器遵循OPC数据

访问规范2.0当在计算机上安装WinCC,系统会

自动添加下列OPC组件:(1)OPC服务器;(2)OPC

通讯驱动程序;(3)OPC条目管理器

WinCCOPC服务器是1DCOM应用程序,通过

dcomcnfg.exe程序可以为其设置DCOM组态方法:

单击开始”-运行,输入程序名dcomcnfg.exe,启动

该程序,Applications页选择OPCServer.WinCC

条目,设置属性;安全标签中选择使用自定义访

1 OPC体系结构

Fig.1 StructureoftheOPCsystem

许可权选项钮;标识标签中选择交互式用户

选项,完成DCOM组态

然后WinCC项目,名为:WinCCOPC-

Server在该项目中,创建3个数据类型为16位有符

号的内部变量:aa,bb,cc于演示数据交换(:也可

建立其它类型,16位无符号,32位无符号,浮点型

);创建WinCC画面,在其中通过3个智能对象I/O

域来可视化刚创建的3个内部变量,设置3I/O

的属性;量的更新设置为一旦改变,其余保留缺省

为了成功地建立OPC通讯,必须注意下列2:

(1)WinCCOPC服务器的WinCC项目必须激活;

(2)WinCCOPC服务器必须与WinCCOPC客户机位

于相同的网络上

2 监控系统间的OPC连接

设计监控系统方法很多,如可采用VB,VCDel-

phi等可视化语言编写,也可直接采用组态软件设计,

各有优缺点目前,国外比较有名的组态软件有iFIX,

INTOUCH,西门子WinCC,国产的如组态王力控

开物昆仑工控等

WinCCSIEMENS公司推出基于Windows

功能强大的监控系统,具有良好的开放性和灵活

既可以用来完成小规模的简单的过程监控系统,也可

以用来设计复杂的应用它全面支持OPC标准,既可

以作OPC客户端,也可以作OPC服务器通过OPC

接口,WinCC可以与其他支持OPC接口的组态软件如

组态王力控或iFIX等通讯,组成工业监控网络,同时

能保持良好的响应性能和系统负荷,这样极大方便了

工程设计人员在开发系统时进行合理的性能和价格选

各监控软件的OPC连接网络如图2所示

4 WinCC与监控系统的动态数据交换

4.1WinCC与力控的动态数据交换

WinCCOPC服务器,力控作OPC客户端使用,

操作步骤如下:

1 建立力控OPC客户端在力控导航器窗口

中选则I/O设备驱动项中的OPC设备,选择3.1

OPCClient,设备名称中输入逻辑设备的名称(

OPC),数据更新周期中指定采集周期

2 OPC服务器设置,OPC服务器中,因为通

过网络访,OPCSever

2 控系统的OPC连接

Fig.2 OPCconnectionamongsupervisorysystems

WinCC的计算机名或IP地址;OPC服务器名称中

选择OPCServer.WinCC,若无OPC服务器选项时点

刷新按钮,可以自动搜索计算机系统中已经安装

的所有OPC服务器然后设置OPC组名称,刷新时

,死区和数据读写方式等配置完毕如图3所示

2中监控软件内数据库之间的数据交换称之为

横向数据交换,主要通过OPC客户端程序进行以所

有客户端程序为基,1数据管理应用软

4高德欣,:利用OPC实现WINCC与监控系统的动态数据交换679

(如本文中定义的aa,bb,cc变量等),然后选定变量关

,并设定数据类型和读写属性,即可

在运行系统中,组态王中OPC客户端和WinCC

OPC服务器建立连接,自动完成二者之间的动态数据

交换

4.3WinCCVB/VC的动态数据交换

WinCCOPC服务器,VB/VCOPC客户端,

3 力控OPC客户端配置图

Fig.3 TheOPCclientsettingofforcecontrol

开发设计步骤如下:

1 VB中安装OPC自动化接口,保证机器的

系统(OPCDAAuto.dll),

OPC基金会的网站(网址:www.OPCfoundation.org)

下载

2 VB中新建一工程设名为VBOPCClient,

单击主菜单的工程”-“引用,在弹出的引用选项中选

OPCAutomation2.0,保证系统加载OPC自动化

接口

3 编写VBOPCClient户端程序VB

OPC客户端与OPC服务器之间数据互相通讯的主要

源代码如下:

'//声明

OptionExplicit

'//定义OPC服务器

DimmOpcSvrAsOPCServer

'//定义OPC服务器中的组

DimmOpcGrpsAsOPCGroups

DimmOpcGrpAsOPCGroup

'//定义OPC服务器中的项目名

DimmOpcItmsAsOPCItems

DimlItemSvrHdls()AsLong

DimlCltHdls(1000)AsLong

DimlNumItemAsLong

DimpErrors()AsLong

'//定义OPC客户端中的项目名

DimszItemIDs(1000)AsString

DimreqDataType(1000)AsInteger

DimaccPath(1000)AsString

PrivateSubFormload()

'//连接OPC服务器

SetmOpcSvr=NewOPCServer

mOpcSvr.ConnectOPCServer.WinCC,

192.168.1.20 '//设定OPC服务器的地址

MsgBoxconnectsuccessful!

'//连接OPC

SetmOpcGrps=mOpcSvr.OPCGroups

SetmOpcGrp=mOpcGrps.Add(1)

'//连接OPC项目

3 在力控的OPC客户端定义与服务器端相关

联的力控变量本文在WinCCOPC服务器端中定义

的通信变量aa,bb,cc,力控变量要与之关联上当在

力控中定义变量时连接设备选择OPCServer.WinCC

,WinCCOPC服务器端所有变量都会显示,根据需

要选择要关联的变量

运行系统中,力控中OPC客户端和WinCC

OPC服务器建立连接,自动完成二者之间的动态数据

交换

4.2WinCC与组态王的动态数据交换

WinCCOPC服务器,组态王作OPC客户端使

,操作步骤如下:

1 建立组态王OPC客户端在组态王工程浏

览器的设备项目中选中OPC服务器,新建OPC

户端设备,组态王自动搜索本局域网络的系统中所有

已经安装的OPC服务器,然后在列表中选择服务器端

OPCServer.WinCCOPC服务在网络节点名

填写服务器端的计算机名IP地址,现服务器端

WinCCOPC服务器与组态王OPC客户端的挂

配置完毕如图4所示

4 组态OPC客户端配置图

Fig.4 TheOPCclientsettingofkingview

2 OPC服务器中定义数据项

3 设置WinCCOPC服务器与组态王OPC

户端的数据词典中变量的连接PLC或板卡等外

围设备与组态王数据词典的连接一样在组态王中新

I/O,

OPCServer.WinCCOPC服务器设备在寄存器下

拉式菜单中会列出该服务器中定义过的所有数据项

680 2006

szItemIDs(1)=″aa'WinCC中变量名来采用力控组态软件开发的监控系统,电机测试试验

szItemIDs(2)=″bb'WinCC中变量名室采用VB自主开发的监控软件,而压铸车间由于采

szItemIDs(3)=″cc'WinCC中变量名集参数多,通讯要求高,所以计划采用西门子WinCC

SetmOpcItms=mOpcGrp.OPCItems开发软件由于这些生产车间之间密切相关,许多重

mOpcItms.AddItems3,szItemIDs,lCltHdls,要的工艺参数如浸漆温度,定子压铸温度,试验电流等

lItemSvrHdls,pErrors,reqDataType,accPath要求能够互相传输调用,所以必须保证三者的监控系

EndSub统之间能够实现动态的数据交互,而且为实现生产参

'//WinCCOPC服务器的变量

PrivateSubcmdRedClick()统采集的数据能够统一传送到公司的ERP统中

DimplcVal()AsVariant根据本文提供的方法,OPC技术对其进行了改

mOpcGrp.SyncReadOPCCache,3,,很好的实现了各监控系统间的数据交互,满足了厂

lItemSvrHdls,plcVal,pErrors方要求,效果良好

Text1.Text=plcVal(1)

Text2.Text=plcVal(2)

Text3.Text=plcVal(3)

EndSub

'//WinCCOPC服务器的变量

)PrivateSubComWrtClick(

DimplcVal1(3)AsVariant

plcVal1(1)=Text1.Text

plcVal1(2)=Text2.Text

plcVal1(3)=Text3.Text参考文献:

mOpcGrp.SyncWrite3,lItemSvrHdls,

plcVal1,pErrors

EndSub

在服务器上启动WinCC程序并执行上述的可视

,在客户机上运VBOPCClient,VB

OPC客户端与OPC服务器连接成功会弹出Connect

successfu1的信息框WinCC中改变与变量aa,bb

cc对应的I/O域中值,VB的客户端程序中,点击

读取按钮,对应文本框的值会随着变化,点击写入按

,可将VB客户端程序中的数据,传送到WinCC,

实现了动态数据交换

采用VC,Delphi等可视化语言编写的代码与VB

类似,仅有语法上的区别,不再详述

数的最优分析,为建立数字化工厂需要,要求各监控系

6 结语

OPC技术设计的客户端数据接口,输可靠,

实时性好,能够完成大批量数据的交换,解决了不同监

控系统之间实时数据交换难题,实现了不同监控系统

间的即插即用以及控制系统的集成和数据共享目前

OPC技术已经成为新的工控通讯标准,并成功的应用

于很多企业,具有极大的实用价值

[1] HongXu,JianhuaWang.AnextendabledataenginebasedonOPC

specification[J].ComputerStandardsandInterfaces,2004,26(6):

515-525.

[2] 薛福珍,林盛荣,唐琰.基于opc数据访问规范的客户端软件研究

与开发[J].计算机工程,2002,28(4):229-231.

[3] 孙敏,顾德,.基于opc技术的监组态序的

[J].仪器仪表学报,2003,24(4):104-106.

[4] 李正兵,楼佩煌.对象技术与opc技术在监控组态软件中的应

[J].计算机应用,2003,23(12):140-142.

[5] 贾智平,李新.基于opc技术的分布式监控系统研究[J].计算

工程与应用,2004,20(40):208-210.

(下转670)

5 应用实例

广州某生产电机集团,其电机的定子浸漆车间原

670 2006

AStudyontheRelationshipoftheFishBiodiversityandtheFaunal

DistributionintheSouthChinaSea

MACai-Hua,YOUKui,LIFeng-Qi,ZHANGMei-Zhao

(CollegeofEnviromentalScienceandEngineering,OceanUniversityofChina,Qingdao266003,China)

Abstract: Thispapermainlystudiesthefeaturesofthefisheryfaunalbasedonthefishbiodiversityandfaunal

distributionbiogeographicalconditions,fisherydiversityfeatures,ecotypeandgeographydistributioninthe

SouthChinaSea.2,321speciesoffishesinhabitintheSouthChinaSeabelongingto35orders.Fishesinthe

orderperciformesalmostdominatethefishspeciesinthisregion(979species).Labridae,representativeof

warmwaters,inhabitingamongthecorals,formthedominatingfamilies(117species).YetChaetodon(34

species)andEpinephelus(31species)absolutelypredominateinthisarea.Allthesecompriseapotentiallyrich

communitystructure.Theresultsfurtherindicatethatthefish.

Keywords: theSouthChinaSea;biodiversityoffishes;faunaldistribution

责任编辑

(上接680)

DynamicData-ExchangeBetweenWinCCandSupervisory

SystemsbytheOPCInterfaces

GAODe-Xin

1,211

,ZHANGWen-Wu,YANGQing

(1.CollegeofInformationScienceandEngineering,OceanUniversityofChina,Qingdao266071,China;2.CollegeofAutomation

andElectronicEngineer,QingdaoUniversityofScience&Technology,Qingdao266042,China)

Abstract: ThispaperdiscussesthedynamicdataexchangeissuebetweenSiemensWinCCandtheothersSu-

pervisorysystemssuchasForceControl,KingviewandVisualBasic,etc.ByusingtheOPC(OLEforprocess

control)interfaces,wehavesolvedtheproblemofdynamicdataexchangingamongSupervisorysystems,and

realizedboththefunctionofPlug&PlayamongdifferentSupervisorysystems,andtheintegrationanddata

shareofthecontrolsystems,providingafoundationforenterprisecommunication.Finally,theconcretesteps

andasuccessfulapplicationarepresented.

Keywords: OPCinterfaces;SiemensWinCC;kingview;forcecontrol;dynamicdataexchange

责任编辑 陈呈超