基于OPC的组态王和MATLAB的数据交换接口设计

合集下载

基于OPC的Matlab与组态王的数据通信

基于OPC的Matlab与组态王的数据通信
2基于OPC的Matlab与组态王的数据通信
MathWorks公司推出的Matlab 7.0以上版本中 集成了OPC工具箱——Matlab 0PC T001box[6。8].它 是一个客户端软件.提供了一种服务器和客户端互访 的通用机制,应用于OPC客户端数据访问,通过 0PC工具箱不需了解OPC服务器的内部配置和具 体操作,就能连接任何一个0PC数据访问服务器[9], 可以方便地对连接的0PC服务器数据进行读写, 每个0PC数据访问服务器由唯一的ID号确定,每 台主机的服务器ID号是唯一的,由服务器所在机器 的主机名和ID号组成,使其在网络中能唯一地确 定身份。建立连接后的0PC客户端和OPC服务器之
制,应用于0PC客户端数据访问,通过OPC Toolbox可以连接任何一个OPC数据访问服务器,方
便地对连接的0PC服务器的数据进行读写,每个0PC数据访问服务器由唯一的ID号来确定,每
个OPC数据访问服务器。由0PC数据访问服务器所在机器的主机名和ID号组成其在网络中唯
一确定的身份。
关键词:OPC;Matlab;组态王;数据通信
%Matlab读取组态王OPC数据服务器数据程序
clear
da=opcda(‘10calhost’,‘KingView.View.1’); connect(da); grp=addgroup(da); itml=additem(grp,‘水箱1液位值’); itm2=additem(grp,‘水箱2液位值’); set(grp,‘UpdateRate’,0.5); set(grp,‘RecordsToAcquire’,60); set(grp,‘RecordsAcquiredFcnCount’,2); set(g印,‘RecordsAcquiredFcn’,@mydisplay); start(grp) wait(grp) %显示子程序

基于组态王和MATLAB的温度监控系统设计

基于组态王和MATLAB的温度监控系统设计

目录第1章绪论 (3)1.1 研究课题的背景和意义 (3)1.2 过程控制的发展历史和现状 (4)1.3 设计的内容 (4)第2章锅炉过热蒸汽系统的介绍 (6)2.1 过热蒸汽系统设备简介 (6)2.2 锅炉的三种能量转换过程 (7)2.3 影响过热蒸汽温度的因素 (7)2.4 对过热蒸汽温度的控制 (8)2.5 本章小结 (8)第3章课题设计方案的选择 (9)3.1 过热蒸汽温度控制系统功能概述 (9)3.2 生产过程控制模块的选择 (10)3.3 控制方案选择 (11)3.3.1 过程控制概述 (11)3.3.2 过程控制方案的选择 (11)3.3.3 串级调节系统概述 (12)3.3.4 串级调节调节器的选型和整定方法 (12)3.4 本章小结 (13)第4章组态王的设计过程 (14)4.1 组态画面的设计 (15)4.1.1 过热蒸汽温度监控画面的设计 (15)4.1.2 动画连接 (17)4.1.3 画面命令语言的编写 (17)4.1.4 系统调试 (18)4.1.5 VIEW调试 (18)4.2本章小结 (18)第5章 MATLAB的设计过程 (19)5.1 MATLAB的设计过程 (19)5.2 本章小结 (23)第6章结论与展望 (24)6.1 结论 (24)6.2 展望 (24)参考文献 (25)致谢 ................................................... 错误!未定义书签。

附录 ................................................... 错误!未定义书签。

附录A 外文翻译...................................... 错误!未定义书签。

A.1 英文文献 ...................................... 错误!未定义书签。

A.2 中文文献 ...................................... 错误!未定义书签。

智能控制基于组态王和MATLAB的模糊PID控制的应用

智能控制基于组态王和MATLAB的模糊PID控制的应用

1.1 内容摘要:为了充分利用组态王良好的可视化界面功能与MATLAB强大的数值分析和控制系统仿真功能的各自优势来实现更好的工业控制,本文利用了一种编写MATLAB的S函数来实现组态王与MATLAB的动态数据交换(DDE)的方法,运用组态软件生成复杂友好的交互式人机界面(HMI),MATLAB的模糊控制工具箱完成模糊PID控制算法的运算,这样充分发挥二者优势,使得用户能够方便快捷地开发出复杂算法的控制系统,并将Mailab所附带的工具箱Fuzzy助gicTooIBox和Simulink有机地结合起来进行系统仿真,结果证明该方法具有良好的控制效果,效率高,通用性强,更换仿真模型中的控制算法模块就可实现各种复杂的工业控制过程,这大大增强了组态王的实时监控功能。

1.2 内容简介:近年来,随着计算机技术及应用的飞速发展,各个领域对自动控制系统控制精度、响应速度、系统稳定性与适应能力的要求越来越高,所研究的系统也日益复杂多变。

然而在工业生产和其他领域中,由于被控对象常具有非线性、不确定性及参数时变等复杂因素,难以建立被控对象的简单精确的模型,因而给控制系统的设计带来了极大的困难。

模糊控制在一定程度上模仿了人的控制,它不需要有准确的控制对象模型,这种控制方法既可用于简单的控制对象也可用于复杂的对象。

因此,模糊控制系统在工业控制中获得了广泛的应用。

组态软件作为一个开放型的通用工业监控系统,支持工控行业中大部分国内常见的测量控制设备,并遵循工控行业的标准采用开放接口提供第三方软件的连接(DnE/oPe/Ae皿vEE等)〔4],用户无须熟悉复杂的通信协议源代码、无须编写大量的图形生成、数据统计处理程序代码就可以方便快捷地进行画面开发、简单的程序编写、函数调用、设备连接。

但其缺点是计算能力不强,难以实现复杂的控制算法。

而MATLAB(Matri、Laboratory)应用软件拥有丰富的多学科工具箱、强大的工程计算和图像图形处理功能。

()基于OPC的组态软件和MATLAB的通信实现

()基于OPC的组态软件和MATLAB的通信实现

基于OPC的组态软件和MATLAB的通信实现摘要:MCGS作为优秀的国产组态软件,具有实用性强、组态灵活等优点,但它的数据处理能力较弱。

MATLAB被广泛应用于科学计算、数学建模与仿真上,始终未能应用于实际的控制系统中。

如果使用MATLAB实现复杂的控制算法,再结合工控组态软件作为系统的主控,在实际的工程项目中必将达到非常理想的控制效果。

本文以OPC技术为例,实现了MATLAB和组态软件MCGS的数据通信。

该方法具有编程简单、实现方便等特点。

关键词:MATLAB;OPC;工控组态软件MCGSCommunication Design between MATLAB and Industrial Configuration Softwarebased on OPCFENG Jiang-taoAbstract:As popular configuration software at present,MCGS possesses the advantages of powerful practicability and flexible configuration,but its ability of data processing is weak。

MATLAB has been widely used in scientific calculation,mathematic modeling and emulation because of its strong algorithm function。

But it has not been applied for practical control systems。

However,it will get extremely satisfying control results if we can use MATLAB to realize complicated control algorithms and consider Industrial configuration software as system's primary controller in the real engineering projects.。

基于组态王与MATLAB的监控软件实现

基于组态王与MATLAB的监控软件实现

第29卷 第2期2005年4月武汉理工大学学报(交通科学与工程版)Jou rnal of W uhan U n iversity of T echno logy(T ran spo rtati on Science &Engineering )V o l .29 N o.2A p r .2005基于组态王与M A TLAB 的监控软件实现3 收稿日期:20041224 胡大斌:男,41岁,博士,副教授,主要研究领域为机舱自动化与计算机仿真 3国防预研项目资助胡大斌 胡锦晖 吴 峰(海军工程大学船舶与动力工程学院 武汉 430033)摘要:提出了一种编写M A TLAB 的S 函数的方法来实现组态王与M A TLAB 的DD E 通信.通过在某型舰船主动力监控系统仿真研究中的应用,具体描述了组态王与M A TLAB 的DD E 通信实现过程.该方法由组态王生成友好的交互式人机界面(HM I ),M A TLAB 完成复杂算法的运算.实践证明其具有编程效率高、通用性强、实现方便等特点.关键词:动态数据交换(DD E );M A TLAB ;组态王中图法分类号:T P 391.90 引 言目前各类监控系统中普遍采用通用的监控组态软件来设计人机界面(HM I ).较为流行的监控平台软件有H eu ristics 公司的ON SPEC ,In tellu 2ti on 公司的F ix 以及亚控公司的组态王(K I N GV IE W )等.这些软件易于实现复杂的图形界面,组态灵活而且支持多种硬件接口板,但是它们实现复杂控制算法的能力较弱.在某型舰船主动力监控系统的仿真研究中,采用亚控公司的组态王(K I N GV IE W 6.5)作为开发监控软件的基本平台.由于柴油机主动力系统的仿真算法较为复杂,仅利用组态王来实现所有仿真算法较为困难,文中利用M A TLAB 语言能方便地构造出复杂控制算法的特点,通过DD E 技术来实现组态王与M A TLAB 之间的数据交换,充分发挥各自的优点.在W indow s 环境下,动态数据交换(DD E )是应用程序之间实时交换数据的有效方法,它是不同应用程序之间共享数据的一个协议[1].DD E 技术是应用程序间数据交换的主流技术,因此可以通过DD E 协议将组态王与M A TLAB 结合起来,如图1所示.其中,组态王工控软件显示友好的图形界面,操作人员可以在界面上直接操作.上位机主控程序通过板卡将采集到的数据一方面可送到组态王进行动态显示,另一方面可送到M A T 2LAB 进行复杂的运算处理,处理后的结果再送回组态王进行显示.图1 DD E 通信框图1 组态王工控软件与M atlab 的DD E 特性1.1 动态数据交换简介DD E 应用程序分为四类:客户程序、服务程序、客户 服务器程序、监视器.客户程序与服务器程序之间的数据交换称为会话,发起会话者称为客户程序(C lien t ),它从服务器获得数据,响应者称为服务器程序(Server ),它维护其他应用程序可能使用的数据,客户 服务器程序表示既是客户程序也是服务程序,监视器主要用于调试.1.2 组态王中DD E 的使用方法组态王软件包由Touch M ak 和TouchV iew 两大部分组成.Touch M ak 为画面制作系统,用于完成所有界面设计,变量和动画连接的定义.TouchV iew则用于显示动画图形,负责数据库与服务器程序数据交换,并把数据的变化用动画形象地表示出来.组态王的DD E对话的内容是通过应用程序名、主题、项目3个标识名来约定的(K I N GV IE W versi on6.5使用手册,北京亚控科技发展有限公司).应用程序名(app licati on) 它是进行DD E 对话的双方名称.主题(top ic) 是被讨论的数据域.项目(item) 是被讨论的特定数据对象.为了建立DD E连接,需要在TouchV iew的数据词典里建立一个DD E变量,并登记3个标识名.组态王运行系统的程序名是“V IE W”,主题规定为“TA GNAM E”,项目是在定义DD E变量时定义的项目名称.1.3 M AT LAB提供的DD E功能M A TLAB作为客户程序,它支持文本格式的数据传送,可以使用M A TLAB中的DD E客户端模块所提供的函数与服务器应用程序进行数据通信[2].M A TLAB的DD E客户函数共有7个,它们是ddein it,ddeter m,ddereq,ddepoke, ddeadv,ddeunadv,ddeexec.使用ddein it函数建立与服务器的对话,建立成功则该函数返回一个通道号.以后的操作均对这个通道号进行.ddereq 函数向服务器所要数据,返回值是存有数据的矩阵.ddepoke函数向服务器发送数据.ddeadv和ddeunadv的功能分别是建立热链的请求和删除请求.ddeexec函数发出命令给服务器应用程序; ddeter m函数终止与服务器之间的DD E会话.在实际应用中,组态王主控程序不断将采集到的数据送到M A TLAB程序中,M A TLAB计算完成后将结果返回主程序.这种方式属于热链(ho t link)方式.DD E热链工作方式需要用到ddeadv函数.ddeadv函数调用的格式是rc=ddeadv(channel,item,callback,upm tx,fo r m at,ti m e2 out)其中:rc是返回值;0表示操作失败;1表示成功. channel是由ddein it函数得到的通道号.item是DD E会话的主题.callback是回调函数,即服务器端一旦数据变化要调用的函数,upm tx是一个矩阵,它保存服务器送来的数据,如果这个矩阵名字是一个空字符串,则建立一个温链.如果矩阵名字是非空字符串,则建立一个热链.fo r m at是传送的数据格式.默认值为[10].ti m eou t是建立热链的超时设定,默认值为3s.以下是M A TLAB以热链方式与服务器通信的程序清单.channel=ddeinit(’Server’,’Top ic’);%建立DD E对话,返回通道号channelrc=ddeadv(channel,’text1’,’m y—func’,’x’,[10]);%与服务器建立热链接pause;%暂停rc=ddepoke(’channel’,’text2’,result);%向服务器发送数据rc=ddeunadv(channel,’text1’,[10]);%取消与服务器的热链接rc=ddeter m(channel);%终止与服务器的DD E对话该程序运行时与服务器建立热连接,然后进入暂停状态.服务器程序中一旦tex t1的内容有变化,则x矩阵获得变化后的数据,而后在函数m y—func中进行运算,并返回结果至主程序tex t2控件中.在实际应用中,m y—func函数可以换成任意复杂的数据处理函数和控制算法函数.2 用M A TLAB与组态王开发软件以某型舰船主动力监控系统仿真模拟软件的开发为例[3].利用组态王软件编制的图形界面见图2.它是在Touch M ak开发环境中建立的,功能是建立动画显示窗口.通过它提供的工具箱可建立历史趋势曲线、实时趋势曲线、报警记录显示.图2 组态王软件开发的人机交互界面在组态王中首先要建立标记名,构造数据库词典,再利用Touch M ak的图形功能制作被控对象的动画画面,然后将变量名与图形进行连接,当变量值改变时,其对应的图形状态也随之发生变化.同时组态王还提供了丰富的命令语言及函数,用户可以方便地使用这些类C语言对画面进行控制,以及实现一些简单的算法.・532・ 第2期 胡大斌等:基于组态王与M A TLAB的监控软件实现仿真模型主要用到M A TLAB 中的Si m u link 工具,并辅以DD E 通信程序.Si m u link 工具箱提供了一种交互式模型输入与仿真环境.用户只要在模型窗口上调出各个系统环节,并用连线将它们串接起来,即可对系统进行仿真和分析,整个过程不需要编程.改变某个环节的参数时,仿真结果随之变化.该系统为柴油机动力系统,其数学建型主要由如下几个部分组成:柴油机本体、调速器、供油装置、涡轮增压器、集气器、进气管、排气管、空气冷却器等. 改变模型求解方法及相对容差设定值,可改变仿真速度与精度.改变相应环节参数,可以进行各种故障模拟.系统模型采用模块化方式,根据其准稳态仿真数学模型和理论推导及试验所得的数据建立,并模拟柴油机的动态运行过程.利用组态王编制的仿真软件通过DD E 将主机各种工况的参数传递到M A TLAB 中,经过仿真计算后的结果以同样的方式传递给组态王.同时组态王还支持众多硬件设备(例如研华PC I 21756s 数采卡等),可将开关量信号或模拟量信号采集到计算机进行处理,然后输出控制量.整个DD E 通信部分的软件设计可以使用M A TLAB 语言编写灵活的S 函数来实现[4],以M 文件形式存在.S I M UL I N K 提供了一个M 文件形式的S 函数模板,包括定义一些必要函数的语句和一些注释,因此,程序编写简单,修改起来也容易,有利于对算法的分析和改进.M A TLAB与组态王通信的的仿真框图如图3所示.图3 M A TLAB 与组态王通信仿真框图 这里仅以2输入3输出仿真模型为例.其中,m odel 模块是仿真对象模型,见图4.In it —DD E ,V iew —O u tp u t ,V iew —Inp u t ,是实现DD E 通信的S 函数,现分别描述如下.1)DD E 初始化的S 函数In it —DD E%DD E 初始化,M A TLAB 作为客户clear ;functi on Init —DD E =Init —DD E ()global channel ;%建立组态王与M A TLAB 之间的通道channel =ddeinit (’view ’,’tagnam e’);%初始化失败if channel ==0 disp (’DD E initializati on failed !’);else%初始化成功 disp (’DD E initializati on is ready !’);end其中:channel 是DD E 初始化返回的一个标识通道的值,如果是0则表示没有建立与组态王的DD E 通道,否则,表示通道已准备好,可以进行数据交换.2)Si m u link 仿真模型从组态王接收数据的S 函数V iew —O u tput图4 m odel 模块・632・武汉理工大学学报(交通科学与工程版) 2005年 第29卷functi on [sys ,x 0,str ,ts ]=V iew —O utput (t ,x ,u ,flag )%定义变量case 0,%变量初始化case 2,sys =[ ];%数据交换case 3,if channel ==0 disp (’DD E failed !’);else%从组态王接收数据 m v (1)=ddereq (channel ,’data 1’); m v (2)=ddereq (channel ,’data 2’); fo r i =1:2 sys [i ]=m v (i );end end %结束case 9,……其中:data 1,data 2是服务器所对应的项目名.3)Si m u link 仿真模型向组态王发送数据的S 函数V iew —Inpu tfuncti on [sys ,x 0,str ,ts ]=V iew —Input (t ,x ,u ,flag )%定义变量case 0,%变量初始化case 2,sys =[ ];%数据交换case 3,if channel ==0 disp (’DD E failed !’);else ddepoke (channel ,’data 3’,u (1)); ddepoke (channel ,’data 4’,u (2)); ddepoke (channel ,’data 5’,u (3));end %结束case 9,……其中:data 3,data 4,data 5是服务器对应的项目名.3 结束语通过在舰船主动力系统仿真研究中的实际应用,利用编写M A TLAB 的S 函数的方法实现M A TLAB 与组态软件的DD E 通信,取得了较好的效果.该方法具有程序实现简单、方便的特点.如果更换仿真模型中的控制算法模块,就可实现各种复杂的工业控制过程,通用性较强.这种结构使得监控系统软件的开发可由多人分工进行.其高效、易扩充等突出优点,使其成为开发各种监控软件平台的一种很好的方法.参考文献1 马国华.监控组态软件及其应用.北京:清华大学出版社,2001.166~1962 刘志俭.M A TLAB 应用程序接口用户指南.北京:科学出版社,2001.351~3623 汤旭晶,李鹤鸣,金华标等.船舶中速柴油主机遥控系统的研制.武汉理工大学学报(交通科学与工程版),2003,27(5):625~6284 王沫然,陈怀琛.Si m ulink 4建模及动态仿真.北京:电子工业出版社,2002.185~194R ealizati on of Con tro l Softw areBased on K I N GV IEW and M A TLABHu Dab i n Hu J i nhu i W u Feng(N ava l U n iversity of E ng ineering ,W uhan 430033)AbstractT h is p ap er p ropo ses a DD E comm un icati on m ethod u sing M A TLAB S 2functi on .It describes a m ethod of DD E comm un icati on based on K I N GV IE W and M A TLAB th rough the app licati on to a study of som e w arsh i p’s m ain pow er con tro l system .In th is m ethod ,K I N GV IE W m akes com p licated and friendly hum an 2m ach ine in terface .M A TLAB calcu lates the resu lts w ith com p licated arithm etic .It p roveds that th is m ethod has advan tages fo r p rogramm ing efficien tly ,w ide u sage and conven ien t re 2alizati on .Key words :DD E ;M A TLAB ;k ingviem・732・ 第2期 胡大斌等:基于组态王与M A TLAB 的监控软件实现。

组态王与OPC技术的MATLAB的数据交换步骤

组态王与OPC技术的MATLAB的数据交换步骤

组态王与OPC技术的MATLAB的数据交换步骤组态与OPC技术的MATLAB的数据交换步骤:1、下载matlab7.0以上版本,最好别用7.0,matlab7.0虽然有opc工具箱,但没有opc仿真模块,我用的是matlab2010。

2、下载组态王6.53,我是在亚控科技官网下载的组态王6.53。

3、为保证OPC T oolbox 中对象和OPC 服务器对象连接起来,下载并安装客户端开发工具包OPC CoreComponents 2.00 Redistributable 2.20.msi控件。

打开matlab 安装路径D:\ProgramFiles\MATLAB\R2010b\toolbox\opc\opc\private,找到该文件双击安装。

(有些版本这个控件已经损坏了,考一下别人的也可以安装)4、打开matlab,在command window 输入命令opcregister('install'),注册OPC 服务器和客户端用到的来安装能在网络上浏览其他计算机并能与之通讯的核心组件,分别是:OPC 通讯接口组件OPCcomn_ps.dllOPC 自动化接口组件OPCdaAuto.dllOPC 代理占位组件OPCProxy.dll还有opc_aeps.dll。

这个很关键!好多破解版本不能注册成功的,我分别用了matlab7.1 ,matlab,7.6都注册不成功,若注册不成功的话,可以试一下自己手动注册,点击开始--运行,分别注册:opcenum.exe /serviceregsvr32 opc_aeps.dllregsvr32 opcproxy.dllregsvr32 opcdaauto.dllregsvr32 opccomn_ps.dll还是不行就用matlab2010,我用这个能注册。

5、在OPC 服务器和OPC 客户端进行分布式COM的环境设置,这个步骤有些麻烦,有个名为“dcom配置”的文件步骤很详细,上面有好几个系统的dcom配置,看准了我们需要的XP系统的。

iFIX与MATLAB间的数据交换技术及其应用

iFIX与MATLAB间的数据交换技术及其应用

收稿日期:2008-03-24作者简介:盛 凯(1985-),男,湖北武汉人,硕士生,研究方向为电厂化学过程自动控制与故障诊断。

i FI X 与MAT LAB 间的数据交换技术及其应用盛 凯,曹顺安,李 睿(武汉大学动力与机械学院,湖北武汉430072) 摘要:介绍了iFI X 与MAT LAB 的3种数据交换技术DDE 、OPC 和ActiveX,详细阐述了用DDE 和OPC 技术实现iFI X 与MAT LAB 间数据交换的具体过程,并结合电厂水汽化学过程监控系统,介绍了工控组态软件iFI X 与MAT LAB 之间3种数据交换技术的设计、实现和应用,具有重要的应用价值。

关键词:iF I X;MAT LAB;数据交换中图分类号:T M769 文献标识码:A 文章编号:1000-0682(2008)06-0066-05Da t a exchange technology between i F I X and M ATLAB and its appli ca ti onSHE NG Kai,CAO Shun 2an,L I Rui(College of Po w er &M achine underW uhan U niversity,Hubei W uhan 430072,China ) Abstract:This paper describes three kinds of data exchange technol ogies bet w een iF I X and MAT 2LAB ,which are DDE 、OPC and ActiveX .Both DDE and OPC are used t o i m p le ment the s pecific p r ocess of the data exchange bot w een iF I X and MAT LAB ,which is discussed in detail and de monstrated in a mo 2nit oring syste m f or water and stea m che m istry p r ocess in power p lant .The design and realizati on of these data exchange technol ogies and their app licati on are als o p resented in the paper,which have great p racti 2cal value .Key words:iF I X;MAT LAB;data exchange0 引言 工业PC +P LC 控制器是常见的分布式监控系统结构,P LC 作为现场控制站来完成过程参数的数据采集并将采集的数据传送到操作站,同时实现闭环过程控制,或接受操作站发出的控制策略,实现控制信号输出等功能;操作站的工业PC 机通常运行组态软件,接收控制站传递过来的各种过程参数信号,并进行处理、分析和储存,实现数据、曲线、报警和报表的实时显示,或进一步进行数据挖掘实现过程设备的故障诊断,通过人机对话对下位机的过程控制参数进行修改调整。

基于OPC技术的MATLAB与组态王通信模块设计

基于OPC技术的MATLAB与组态王通信模块设计
3 组 态 王 65作 为 OP 服 务器 . C
工 程 计 算 的 高级 语 言 , 由 于它 具 有 强 大 的数 值 处 理 能 力 和 丰 富 的工 具 箱 ,使 得 它 在 许 多 学 科 领 域 中成 为 计 算 机 辅 助 设 计 与 分
徐联贵 梁岚珍 史 颖 ( 新疆大学电气工程学院, 新疆 乌鲁木齐 80 0 ) 30 8
摘 要
组 态王 是 目前 较 为 流 行 的 工业 组 态软 件 , 态便 捷但 难 以 编程 实现 复 杂控 制 算 法 ; M T A 科 学 工程 计 算 软 件 包进 组 而 A LB 行 复 杂 运 算 的 效 率很 高 可 以很 容 易地 实现 复 杂 控 制 算 法 。 采 用 OP 技 术 设 计 了 MA L B 和 组 态王 的 通 信 程 序 , 发 挥 C TA MA L B科 学计 算 特 长 和 组 态 王人 机 交互 优 点 。 TA
MATL B n h man— a ie n e a t e f nci f n A a d u m chn it r c i u t v on o KigViw e co bied e ar m n
K y rsOP OL o rc s o t 1MA L B,ig i c niuain s f r e wod : C( E frPo e s C nr ) T o , A Kn Ve o f rt ot e w, g o wa
e i , t e asl By h de i o OPC ba ed omm u ia in bewe M AT y sgn f s c nc to t en LAB a d KigViw . e ce t i cac ltn f ci of n n e t s in ic h f lua ig un t on
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第19卷 第10期长 春 大 学 学 报V o.l 19 N o .10 2009年10月J OU RNAL OF CHANGCHUN UN I VER SI TYO ct .2009收稿日期:2009 05 12基金项目:吉林省教育厅教研项目(SJ YB08-03)作者简介:李学军(1968 ),女,山东临沂人,副教授,博士,主要从事控制理论与控制应用方面研究。

基于OPC 的组态王和MATLAB 的数据交换接口设计李学军,张化勋,张玲霞(长春大学 电子信息工程学院,吉林 长春 130022)摘 要:采用OPC 技术设计MAT LAB 和组态王的数据交换接口程序,解决组态王数据处理能力弱,以及MAT LAB 未能应用于实际控制系统的问题。

充分利用M ATLA B 实现复杂的控制算法,结合工控组态软件达到较好的控制效果。

关键词:OPC 技术;组态王;M ATLAB ;数据交换中图分类号:TP274+2 文献标志码:A文章编号:1009-3907(2009)10-0033-03由于 自动控制原理 、 控制技术与系统 等控制类课程涉及复杂的控制理论和数学推导,控制机理比较抽象难懂,学生对控制系统的动态和稳态特性的理解不深刻。

因此,利用计算机仿真技术,将抽象化为形象,将复杂的数学公式化为曲线、图表,生动直观地显示控制决策的生成、各种控制变量的作用以及控制系统的运行状态,这有助于学生对控制理论的理解。

而且也可通过调整控制器参数或改变控制策略,来增强学生的分析问题的能力,为使理论知识和工程应用相结合奠定基础。

图形组态软件[1]可提供友好的人机交互界面,强大的通信功能,已广泛应用于控制系统的实时监控中。

但是它实现复杂控制算法的能力较弱,复杂工业对象、高水平的自动控制算法及高精度的控制要求无法直接在通用的组态软件中实现。

而MATLAB 语言提供了强大的科学运算能力,运用它的各种工具箱可进行复杂算法的实现。

但MATLAB 自身的人机界面设计[2]不方便、没有提供与计算机硬件的接口、无法获取现场的实时数据,不能实现实时监控。

随着OPC 技术的广泛应用[3],国内流行的监控组态软件全面支持OPC 技术;另一方,MATLAB 在其推出的7.0版本中提供OPC 工具箱[4],支持OPC 基金会数据访问标准的设备中读取、写入和记录OPC 数据,该工具箱允许将对象数据采集到MATLAB 环境中用于分析、仿真和快速算法开发。

因此本文以图形组态作为OPC 服务器采集数据,通过OPC 接口传给作为OPC 客户端的MATLAB 应用程序。

采集到的数据通过MATLAB 算法程序处理后(即控制决策量)再通过OPC 接口写入MCGS ,从而实现对现场的控制。

这种将MATLAB 和组态软件相结合,利用OPC 作为二者的数据交换载体来搭建的虚拟实验平台(如图1所示),完成数据的实时采集和处理,实现人机对话和以动画的方式显示控制设备的运行状态等监控功能。

采用MATLAB 语言作为后台程序扩充组态王的编程功能,实现系统的控制算法。

图1基于OPC 数据交换框图1 OPC 技术OPC 是OLE for Process Control 的缩写,即把OLE 应用于工业控制领域。

它采用客户/服务器体系,其标准是在客户和服务器之间建立一种通信和数据交换的工业标准机制。

其实质是在硬件供应商和软件开发商之间建立了一套完整的!规则∀,只要准守规则,数据交换对两者而言是透明的。

OPC 由OPC 服务器与OPC 客户组成,OPC 服务器是数据的供应方,负责为OPC 客户提供所需的数据;OPC 客户是数据的使用方,处理OPC 服务器提供的数据。

OPC 服务器一般并不知道它的客户来源。

由OPC 客户根据需要,接通或断开与OPC 服务器的连接。

OPC 数据访问接口(OPC DA,OPC Data A ccess I n terface)是OPC 3类接口中的一种,它用于客户端与服务器之间的数据存取。

OPC 数据存取服务器主要由服务器对象(Ser ver)、组对象(G roup)和数据项对象(Ite m )组成。

组对象拥有本组的所有信息,同时包容并在逻辑上组织OPC 数据项。

OPC 数据项是服务器端定义的对象,通常指向设备的一个寄存器单元。

客户不能直接对OPC 数据项进行操作,所有操作都通过组对象进行。

客户可对组对象进行读写,还可设置客户端的数据更新速率。

当服务器缓冲区内数据发生改变时,OPC 将向客户发出通知,客户得到通知后再进行必要的处理。

2 基于OPC 实现组态王与MATLAB 的通信控制系统中的MATLAB 和组态软件实时进行交换数据,通过OPC 把组态软件获取的硬件设备的实时数据及时传给作为OPC 客户端的MATLAB 应用程序[5],在MATLAB 中进行计算,把结果通过OPC 接口回传给组态显示,同时通过组态板卡送到底层的执行机构对被控对象进行控制。

2.1 组态王的OPC 实现组态王充分利用了OPC 服务器的强大性能,在作为OPC 服务器的组态王中定义相关的变量并和采集数据的硬件进行连接;然后在充当客户端的其他应用程序中与OPC 服务器建立连接,添加数据项目。

在应用程序运行时,客户端将按照指定的采集频率对组态王的数据进行采集。

OPC 实现的是系统中进程间的通讯,其采用VC 中的COM 和DCOM 技术实现接口,调用非常方便。

OPC 之间的通讯以变量为单位。

组态王作为服务器其所有变量都可对外部的客户端进行访问,访问的对象是变量和变量的域。

启动组态王将自动启动OPC 服务器功能。

服务器标志是K i n g V ie w.V ie w .1(K i n gV ie w .V ie w ),当用户选择此对象就可与之建立连接。

作为OPC 服务器,组态运行环境的服务器名为K i n g V ie w.V ie w .1;组对象的创建和管理由组态在后台进行,用户只需指定服务器,就可以通过直接浏览来查看所有可用的数据项。

其项目名就是各个变量的名字,即在组态王6.5数据字典中建立内存变量Fro mk0、Fro mk1、Fro mk2、Fr o m k3和Tok0、Tok1、Tok2、Tok3,分别表示供MATLAB 读和写的数据变量。

2.2 MATLAB 作为OPC 客户端与组态王的通信设计在MATLAB 7.0以上版本中,MATLAB 为OPC 提供了专门的接口程序,创建和配置OPC 对象,读写和记录数据。

它是一个客户端软件,提供了一种服务器和客户端互访的通用机制,应用于OPC 客户端数据访问,通过OPC 工具箱不需了解OPC 服务器的内部配置和具体操作,就能连接任何一个OPC 数据访问服务器[3],可以方便地对连接的OPC服务器数据进行读写,每个OPC 数据访问服务器由唯一的I D 号确定。

建立连接后的OPC 客户端和OPC 服务器之间的关系如图2所示。

借助于MAT LAB OPC Too lbox 可以方便地实现MATLAB 客户端与组态王服务器端之间的数据通信。

图2 OPC 客户端和OPC 服务器之间的关系图利用MATLAB OPC Too l b ox 实现MATL AB 与MCGS 实时通讯的准备工作是:1)安装OPC 的核心组件。

在MATLAB 环境中使用opcreg ister(#i n stall ∃)来安装能在网络上浏览其他计算机并能与之通讯的核心组件。

2)环境设置。

为使OPC Too lbox 中的对象和OPC 服务器对象之间建立连接,还需要在OPC 服务器和OPC 客户端进行分布式COM 的环境设置。

3)在组态王的工程中建立一个M CGS 工程,创建工程的数据输入、输出对象后,在设备窗口中选择相应的设备,建立相应的通道连接。

4)在MATLAB 客户端利用MATLAB OPC Too l box 实现MATLAB 与MCSG 的实时数据通讯。

利用MATLAB OPC toolbox ,建立MATLAB 客户端和组态王OPC 服务器数据交换流程图,如图3所示。

与组态王通信的MATLAB 客户应用程序如下:1)MATLAB 获取组态王OPC 实时数据程序clear ;Da =opcda (#l o calhost ∃,#K i n gV ie w .V ie w .1∃);%创建一个OPC 服务器对象,可以选择本站点也可选择某个网络节点,在服务器端的组态王软件下先进行DCOM 设置;connect(Da);%建立连接,如果组态王没有事先运行现在会自动启动;grp=addgroup(Da);%创建组对象;it m 1=addite m (grp ,#v1∃);%创建数据项;it m 2=addite m (grp ,#v2∃);%创建数据项;%it m n=addite m (grp ,#vn ∃);34长 春 大 学 学 报 第19卷图3 MATLAB 与组态王数据交换流程图it m V ec=[it m 1,it m 2,%,it m n];%创建向量;set(g r p ,#Update ∃,0.1);%属性设置函数,设置保存间隔;set(g r p ,#Records To A cquire ∃,30);%设置保存次数;set(g r p ,#Logg i n g M ode ∃,#d isk &m e m ory ∃);%设置保存位置和类型set(g r p ,#LogF ile N a m e ∃,#d .olf ∃);set(g r p ,#LogTo D isk M ode ∃,#over w rite ∃);set(g r p ,#LogTo D isk M ode ∃,#append ∃);start(grp);%开始记录w a it(grp);%上述程序将组态王采集到的实时数据传送到d .o lf 文件中,供MATLAB 仿真程序调用该数据进行仿真、运算。

2)组态王获取MATLAB 运算结果程序grp1=addgroup(da);%创建项目组it m =addite m (grp1,∃i n ∃);%把变量元素添加到组中w rite(g r p1,it m );%MATLAB 运算结果送回组态王实时数据库中上述程序基本实现了组态王OPC 与MATLAB OPC 动态实时数据交换,在此基础上还可添加状态变量变化曲线的传输等其他功能。

除了可以扩展组态软件的复杂控制算法功能外,也能够使MATLAB 获得现场实时数据,实现MATL AB 的在线仿真功能。

3 结 语本文基于OPC 技术研究MATLAB 与组态王之间的动态数据交换方法,给出了二者之间数据交换流程及程序设计。

该方法实现了组态OPC 服务器采集的现场实时数据,与MATLAB 仿真运算所得数据的交换。

相关文档
最新文档