基于DDE机理的组态王与MATLAB通信技术及应用
- 格式:pdf
- 大小:353.54 KB
- 文档页数:3
山西电子技术2010年第4期软件技术 收稿日期:2010-06-01作者简介:樊剑峰(19762),男,河南安阳人,工程师,本科,主要从事冶金及相关行业的控制系统研究和应用工作。
文章编号:167424578(2010)0420052202基于DDE 机理的组态王与MAT LAB 通信技术及应用樊剑峰,王新彦(安阳钢铁集团有限责任公司,河南安阳455004)摘 要:为了充分发挥组态王6.0的可视化界面功能与MAT LAB 强大的数值分析和图形绘制功能的各自优势,利用DDE 技术,实现了组态王6.0与MAT LAB 的通信,开发了一种过程控制实验装置的实时监控系统。
该监控系统具有实时监测、控制系统分析、控制系统设计等功能。
应用表明:该实时监控系统运行可靠,操作方便,而且使得实时监控功能更加强大、灵活。
关键词:组态王6.0;MAT LAB;实时监控;DDE 技术中图分类号:TP222 文献标识码:A0 引言近年来,随着计算机技术及应用的飞速发展,PC 机作为上位机在工业控制领域占据了主导地位,W indows 系统下的组态软件,如组态王(KI N G V I E W ),应用也越来越广泛。
组态软件提供了强大的人机界面和通讯功能,而且开发周期短,但其计算能力不强,难以实现复杂的控制算法。
MAT 2LAB (M atrix Laborat ory )应用软件拥有丰富的多学科工具箱、强大的工程计算和图像图形处理功能[1]。
因此,在监控系统软件的开发中应协同应用组态软件和MAT LAB 。
以组态软件作为系统主控,进行动态工艺图显示、P LC 参数设置、实时数据采集等操作;以MAT LAB 作为后台应用程序实现控制系统分析、控制系统设计、曲线绘制等功能[2]。
这样,有利于发挥组态软件和MAT LAB 的各自优势,使得编程更加高效灵活,功能更加强大。
1 过程控制实验装置的实时监控系统过程控制实验装置由上位机、P LC 、电动调节阀、交流变频器、交流电机、三相水泵、液位传感器、流量变送器、温度变送器、压力变送器、加热器、双容贮水罐及若干数字显示仪表组成。
其实时监控系统是基于组态王6.0和MAT LAB 开发的,结构见图1。
图1 基于DDE 机理的通信结构上位机利用组态王6.0与P LC 的串口通讯,实现对下位机P LC 的实时数据采集和监控器参数设置。
MAT LAB 通过与组态王6.0的通信,实现了对过程控制装置的控制系统分析、控制系统设计功能。
因此,该实时监控系统有以下几方面功能:工艺流程的动态显示;P LC 的参数设置和显示;实时数据的采集和存储,以及实时曲线的显示;历史数据的显示查询,以及历史曲线的显示;报警事件的产生、处理、保存及查询;控制系统的分析;控制系统的设计。
2 组态王6.0与MAT LAB 的通讯组态王6.0与MAT LAB 均支持动态数据交换(DDE )技术,使得二者能够通过数据交换实现互相通讯。
在通讯过程中,发起方的应用程序称为客户端(client ),响应方的程序称为服务器(server ),Matlab 和组态王6.0都是既作客户端又作服务器程序。
当客户端应用程序发起DDE 时,他必须确认三个DDE 参数[3]。
这三个参数由服务器提供,分别是服务器应用程序的名称(Server )、交换的主题(T op ics )和DDE 过程中传递的数据(Ite m s ),例如组态王6.0的这三个参数分别为:vie w 、tabna me 和链接设备寄存器。
当服务器端应用程序接受到一个主题的交换请求时,它将回应请求并建立一个DDE 。
当Matlab 作为客户端应用程序时,为完成与组态王6.0的通信,M atlab 提供了以下函数[4]:初始化函数channel =ddeinit (service,t op ic ),连接建立函数rc =ddeinit (channel,ite m,callbak,upm tx,for mat,ti m e 2out ),数据请求函数data =ddereq (channel,ite m,f or mat,ti m eout ),数据发送函数rc =ddepoke (channel,ite m,data,f or mat,ti m eout ),链接释放函数rc =ddeunadv (channel,ite m,for mat,ti m eout ),通信终止函数rc =ddeter m (channel )。
3 工程简化实例及过程参数辨识3.1 过程描述控制对象由两个串联的液体储罐组成(见图2),图中LT 、LC 分别表示液位变送器和液位控制器,Q 1、Q 0、R 分别表示输入流量、输出流量和液位二的设定值。
在该控制系统中,液位二的信号由LT 传送给LC,LC 根据液位信号和设定值的偏差操纵电机,从而通过调整电机转速来调节Q 1,最终实现对液位二的控制。
该过程为自衡非震荡,具有相互影响的双容过程,其数学模型可以用如下传递函数描述:G (s )=K p T p s +1e -τ.其中:K p 、T p 、τ分别指过程的增益、时间常数和时间滞后。
图2 双容液位系统单回路控制结构简图3.2 过程参数的估计及程序实现过程参数可使用M atlab中的Isqcurvefithan函数进行估计。
根据阶跃信号作用下过程的输出曲线的形状,先确定过程的模型属于哪一种类型的过程结构,然后采用非线性最小二乘法进行曲线的拟合,从而确定过程的参数Kp 、Tp和τ。
而组态王6.0只是用来编制窗体,以及调用M atlab命令,具体操作步骤如下[5]:(1)使控制器处于手动操作,设置参数使得控制器输出单位阶跃变化;(2)由组态王6.0采集阶跃响应数据,并实时传送给Matlab;(3)Matalb在获得数据后,利用L sqcurvefit函数进行参数估计,并拟合曲线输出;(4)Matlab将被辨识的参数过程传递给组态王6.0,以便显示。
以下将给出响应程序,并附有详细注释。
(1)Matlab:①编制函数文件fun(含有时滞一阶惯性过程的阶跃响应函数),以备调用[7]。
Functi on y=onedt(x0,tt)%tt为时间,X0为曲线拟合的估计值,X0(1),X0(2),X0(3)分别为K p、T p、tDd=(tt-x0(3))3(tt>x0(3));y=x0(1)3(1-exp(-dd/x0(2)));②Matlab接受和发送数据,进行过程参数估计,并命名该文件为p r oc_iden.m clear;f or mat short g;Channel=ddeinit(‘vie w’,’tagna me’);%初始化DDE 通信%向过程发送命令,使MV发生单位阶跃变化Rc1=ddepoke(channel,’P LC200.V116’,x(0));%P LC200.V116为MV的项目名%MAT LAB以T=3为周期,接收120个P V数据For i=1:120 Tic Data(i)=ddereq(channel,P LC200.V20);% P LC200.V20为P V的项目名 Pause(3-t oc);End T=0:3:357; T=t(1,[1:2:40,40:4:120]);h=data(2,[1:2: 40,40:4:120]); X0=[22020];%曲线拟合时的初始值,也可用其他值 X=lsqcurvefit(‘onedt’,x0,t,h);%曲线拟合 Y=onedt(x,t); Err=su m((h-y).^2; X=[x,err]; Pl ot(t,h,‘r3’,t,y,‘k’);grid;axis([03600 1.2]); Xlabel(‘时间t’);legend(‘阶跃响应的采样值‘,‘拟合曲线’,2); Set(gcf,‘Na me’,‘过程参数辨识’); %MAT LAB向组态王6.0发送数据。
Rc21=ddepoke(channel,‘P LC200.V100’,x(1)); Rc22=ddepoke(channel,‘P LC200.V104’, x(2)); Rc23=ddepoke(channel,‘P LC200.V108’,x(3)); Rc24=ddepoke(channel,‘P LC200.V112’,x(4)); Rc3=ddeter m(channel);%终止DDE通信(2)在组态王6.0运行界面调用M atlab应用程序:start A pp(“C:\MAT LAB6p5\bin\win32\matlab.exe”);在过程控制装置“手动”操作稳态运行,且组态王6.0处于“view状态时,按“打开Matlab”键启动Matlab应用程序,然后在其命令窗口中输入文件名“p r oce_iden”,按回车键即可完成对过程参数的辨识。
组态王6.0和Matlab运行界面分别如图3和图4所示。
图3中的err为过程输出拟合值与实际抽样数据之间的误差平方和。
图3 组态王6.0运行界面图4 matlab运行界面简图另外,在获得过程参数后,对于较简单的过程,可采用P I D控制。
在M atlab中依据相应的公式计算P LC控制器的P I D参数,随后即可对被控对象实施P I D控制。
另外,由于该实时监控系统可实现组态王6.0实时数据采集和M alab 实时数据接收和发送,对于较复杂的过程,如大时间滞后、时变、非线性过程,则可以实现过程的在线辨识和实时控制。
4 结束语本文描述了一种新的过程控制实验装置的实时监控系统。
在该监控系统中,利用DDE技术,实现了组态王6.0与Matlab的通信,充分发挥了组态王6.0可视化界面功能与Matlab强大的数值分析和图形绘制功能的各自优势,从而实(下转第62页)35 第4期 樊剑峰,等:基于DDE机理的组态王与MAT LAB通信技术及应用图2 大台阶输出和大小台阶同时输出时的波形3 用“小台阶”改善音频指标的原理由于“二进制台阶”放大模块的开关控制信号,是用数字音频代码的低6位来控制,具体控制对应关系见表1。
表1 “二进制台阶”放大模块控制对应关系数字代码位B7B8B9B10B11B12二进制模块1/21/41/81/161/321/64 从表中可知,“二进制台阶”放大模块是由数字音频代码的单个数字位来分别控制的。
如果数字代码位为逻辑高电平,则对应的“二进制台阶”放大模块就开通;若数字代码位为逻辑低电平,则相应的“二进制台阶”放大模块就被关断。
由于数字音频代码是由连续变化的音频信号转换得来,其二进制代码的数值就不可能出现跃变,所以“二进制台阶”放大模块输出的射频电压最大跃变量为1/64的“大台阶”射频输出电压。