2023年11月30日发(作者:)
第36卷 第4期 36(4):677~680
2006年7月 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软件构成整个企
业的信息管理系统,组态软件的开放和协同以及与各
种ERP、MIS系统的连接正在逐步成为企业生产管理
信息化进程中不得不考虑的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个服务器对应于1个OPC-
Server,在1个OPCServer中,可以有若干个组对象。
(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 WinCC的OPC服务器设置
WinCC(5.x-6.0)的OPC服务器遵循OPC数据
访问规范2.0。当在计算机上安装WinCC时,系统会
自动添加下列OPC组件:(1)OPC服务器;(2)OPC
通讯驱动程序;(3)OPC条目管理器。
WinCCOPC服务器是1个DCOM应用程序,通过
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个内部变量,设置3个I/O域
的属性;变量的更新设置为一旦改变,其余保留缺省
值。
为了成功地建立OPC通讯,必须注意下列2点:
(1)WinCCOPC服务器的WinCC项目必须激活;
(2)WinCCOPC服务器必须与WinCCOPC客户机位
于相同的网络上。
2 监控系统间的OPC连接
设计监控系统方法很多,如可采用VB,VC或Del-
phi等可视化语言编写,也可直接采用组态软件设计,
各有优缺点。目前,国外比较有名的组态软件有iFIX,
INTOUCH,西门子WinCC等,国产的如组态王、力控、
开物、昆仑工控等。
WinCC是SIEMENS公司推出的基于Windows
功能强大的监控系统,具有良好的开放性和灵活性。
既可以用来完成小规模的简单的过程监控系统,也可
以用来设计复杂的应用。它全面支持OPC标准,既可
以作OPC客户端,也可以作OPC服务器。通过OPC
接口,WinCC可以与其他支持OPC接口的组态软件如
组态王、力控或iFIX等通讯,组成工业监控网络,同时
能保持良好的响应性能和系统负荷,这样极大方便了
工程设计人员在开发系统时进行合理的性能和价格选
择。各监控软件的OPC连接网络如图2所示。
4 WinCC与监控系统的动态数据交换
4.1WinCC与力控的动态数据交换
WinCC作OPC服务器,力控作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.3WinCC与VB/VC的动态数据交换
WinCC作OPC服务器,VB/VC作OPC客户端,
图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.Connect″OPCServer.WinCC″,
″192.168.1.20″ '//设定OPC服务器的地址
MsgBox″connectsuccessful!″
'//连接OPC组
SetmOpcGrps=mOpcSvr.OPCGroups
SetmOpcGrp=mOpcGrps.Add(1)
'//连接OPC项目
第3步 在力控的OPC客户端定义与服务器端相关
联的力控变量。本文在WinCCOPC服务器端中定义
的通信变量aa,bb,cc,力控变量要与之关联上。当在
力控中定义变量时连接设备选择“OPCServer.WinCC”
后,WinCCOPC服务器端所有变量都会显示,根据需
要选择要关联的变量。
在运行系统中,力控中的OPC客户端和WinCC
OPC服务器建立连接,自动完成二者之间的动态数据
交换。
4.2WinCC与组态王的动态数据交换
WinCC作OPC服务器,组态王作OPC客户端使
用,操作步骤如下:
第1步 建立组态王OPC客户端。在组态王工程浏
览器的“设备”项目中选中“OPC服务器”,新建OPC客
户端设备,组态王自动搜索本局域网络的系统中所有
已经安装的OPC服务器,然后在列表中选择服务器端
的“OPCServer.WinCC”OPC服务器。在网络节点名
填写服务器端的计算机名或IP地址,实现服务器端
WinCC的OPC服务器与组态王OPC客户端的挂接。
配置完毕如图4所示。
图4 组态王OPC客户端配置图
Fig.4 TheOPCclientsettingofkingview
第2步 在OPC服务器中定义数据项。
第3步 设置WinCC的OPC服务器与组态王OPC客
户端的数据词典中变量的连接。如PLC或板卡等外
围设备与组态王数据词典的连接一样。在组态王中新
建I/O类型变量,在连接设备处选择已经定义的
“OPCServer.WinCC”OPC服务器设备。在寄存器下
拉式菜单中会列出该服务器中定义过的所有数据项
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统之间能够实现动态的数据交互,而且为实现生产参
'//读WinCC中OPC服务器的变量
PrivateSubcmdRedClick()统采集的数据能够统一传送到公司的ERP系统中。
DimplcVal()AsVariant根据本文提供的方法,利用OPC技术对其进行了改
mOpcGrp.SyncReadOPCCache,3,造,很好的实现了各监控系统间的数据交互,满足了厂
lItemSvrHdls,plcVal,pErrors方要求,效果良好。
Text1.Text=plcVal(1)
Text2.Text=plcVal(2)
Text3.Text=plcVal(3)
EndSub
'//写WinCC中OPC服务器的变量
)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
责任编辑 陈呈超


发布评论