基于组态王和MATLAB的液位串级控制系统1关业伟1鲁凯生11武汉理工大学能源与动力工程学院(430063)E-mail:kwanyw@tom.com摘要:运用组态王和MATLAB混合编程的方法设计了一个双容(两个水箱串联)液位串级在线控制系统,由组态王编制人机交互界面,用MATLAB完成控制算法,二者通过DDE进行实时数据交换;采用串级控制策略,明显减小二次干扰的影响,系统具有较好的控制品质。运行结果证明了方法的有效性。关键词:组态王;MATLAB;DDE;串级控制1.系统设计该系统为一双容液位串级控制系统。对象硬件部分主要有变频器、水泵、电动调节阀、流量计、上位水箱、下位水箱、各种传感器、以及数据采集、转换模块——牛顿智能模块7017、7024、7520等。其中,变频器采用三菱FR-S520变频器,4~20mA控制信号输入;智能电动调节阀是系统的执行机构,输入4~20mADC;流量传感器、转换器都是电磁式的,4~20mA标准信号输出;液位传感器用来对上位和下位水箱的液位进行检测,采用扩散硅压力变送器,按标准的二线制传输;7017是模拟量转换数字量模块,7024是数字量转换模拟量模块,7520是RS-232转485通讯模块,RS-232/RS-485双向协议转换。系统控制软件部分用组态王和MATLAB混合编程实现,其中,组态王主要实现人机交互界面,是系统主控,功能包括:现场界面显示、控制数据的输入输出、历史趋势曲线绘制、实时趋势显示等。其开发过程是[1]:(1)启动组态王工程浏览器(TouchExplorer)。(2)制作图形画面。根据系统监控需要建立了四个画面:主界面,PID调节界面,实时趋势记录曲线,历史趋势记录曲线。(3)配置I/O设备。这实际是在组态王中加载相应设备的驱动程序,并定义其虚拟设备名,只需按照“设备配置”向导的提示一步步完成安装即可。这里需要用到一个模拟量转数字量模块7017(用于采集现场水位测量值),一个数字量转模拟量模块7024(用于向执行机构输出控制信号)和RS232/RS485转换模块7520。定义7017的虚拟设备名为“AD”,其用于模拟量输入的寄存器是AI,定义7024的虚拟设备名为“DA”,其用于模拟量输出的寄存器是“AO”。(4)构造数据库。根据需要建立内存变量和I/O变量,配置变量的类型和各种属性,并1本课题得到高等学校博士学科点专项科研基金(项目编号:20030497005)资助-1-http://www.paper.edu.cn将I/O变量与相应的I/O设备寄存器连接。这一过程在“变量属性”对话框中完成。将下水箱液位变送器的检测值(即下水位测量值)定义为I/O变量pv1(数据类型float),并将其输入至7017的AI0通道,即在“变量属性”----“连接设备”对话框中将pv1连接至“AD”设备的“AI0”寄存器,定义时还要选择允许DDE链接;同理,上水位测量值定义为pv2,连接至“AD.AI1”。电动调节阀的开度值定义为uk2,将uk2连接至“DA.AO0”,这样便完成了I/O变量的配置。其它内存变量和离散变量的定义与此类似,只是不需要连接具体的I/O设备。(5)定义动画连接。将相关变量按要求与画面建立动画连接。这样便完成了组态王主控程序的开发,在这一过程中,可以随时将程序投入试运行(即开启TouchView)以检测其是否符合要求。整个系统的数据流向如图1所示。MATLAB控制算法模块组态王运行系统主控图1系统数据流向2.组态王与MATLAB的数据交换组态王和MATLAB混合编程实现系统控制的关键是二者之间的实时数据交换的实现。组态王和MATLAB的数据交换技术主要有DDE、ActiveX、OPC等,本系统采用DDE方式。DDE(DynamicDataExchange,动态数据交换)是Windows环境提供的一种基于消息的进程间通信(InterProcessCommunication,IPC)的方法,它采用客户/服务器模式。DDE应用程序采用3层识别系统:应用程序名(Application)、主题(Topic)和项目名(Item)。应用程序名位于层次结构的顶层,用于指出特定的DDE服务器应用程序名;主题名更深刻地定义了服务器应用程序会话的主题内容,服务器应用程序可支持一个或多个主题名;项目名更进一步确7520RS232/RS4857024D/A输出模块变频器7024A/D输出模块压力液位流量调节阀-2-http://www.paper.edu.cn定了会话的详细内容。服务器和客户端的连接方式有三种:冷链接(coldlink)——客户申请数据,服务器发送数据;...