组态王串级液位流量控制系统1.docx
《组态王串级液位流量控制系统1.docx》由会员分享,可在线阅读,更多相关《组态王串级液位流量控制系统1.docx(12页珍藏版)》请在冰豆网上搜索。
![组态王串级液位流量控制系统1.docx](https://file1.bdocx.com/fileroot1/2022-11/30/01b1098c-4cc3-4db2-b484-fa7b0e971351/01b1098c-4cc3-4db2-b484-fa7b0e9713511.gif)
组态王串级液位流量控制系统1
1.问题描述
基于组态软件的串级液位流量控制系统。
其中要求如下:
(1)按照实际题目设计监控画面及动态模拟。
(2)在数据字典中定义需要的内存变量和I/O变量。
(3)实现监控系统的实时、历史曲线显示
(4)实现参数报表打印功能。
(5)根据自己能力进行其余功能的扩展(比如登陆界面,报警信息的显示及提示等)。
2.系统需求分析
系统由多级串联构成,比如多级水箱,其液位和流量都是不定的。
在此,通过一定的控制方式,选择一定的控制策略,使其液位和流量实现控制,达到一定的限制。
并通过实时、历史曲线,显示当前和一段时间内的液位和流量变化趋势以及变化值,实现系统监控。
同时,通过报警信息的显示及提示,实现实时监控和及时给出相应的操作。
3.系统方案论证
题中要求设计的为一串级系统,在此选择三级水箱控制系统为例。
在系统中有三级水箱每个水箱,会通过相应的阀门控制其水流和液位。
其中,要求将水箱1的液位控制在60厘米,水箱2的液位控制在50厘米,水箱3的液位控制在40厘米。
并且,当水箱3的液位高于40时,阀门3关闭,同时阀门4打开。
当其液位低于40时,阀门4关闭,同时阀门3打开。
当水箱2的液位高于50时,阀门2关闭,同时阀门3打开。
当其液位低于50时,阀门3关闭,同时阀门2打开。
当水箱1的液位高于60时,阀门1关闭,同时阀门2打开。
当其液位低于60时,阀门2关闭,同时阀门1打开。
通过PI控制,实现水流和液位的调节。
在此,选择增量式算法,其计算公式为
,其中
为当前偏差,
为前一个偏差,通过调节
和
的值实现快速相应和消除静差,即实现流量和液位有效控制。
4.系统设计步骤
4.1设计监控画面及动态模拟
4.1.1监控画面
(1)打开组态王工程管理器如图1所示。
在组态王工程管理器中新建题中要求设计的工程。
图1工程管理器窗口
(2)在工程管理器中选择“工具”菜单中的“切换到开发系统”命令,进入工程浏览器窗口如图2所示,此时组态王自动生成初始的数据文件。
图2工程浏览器窗口
(3)在工程浏览器中建立新画面,创建完成后如图3所示。
双击所创建的画面图标,通过使用图形工具箱,调色板以及图库管理器中的相关快捷小图标,生成所要制作的监控画面。
通过重复以上的操作在工程浏览器中建立实时数据报表画面,报警画面,实时及历史曲线。
图3监控界面
4.1.2动态模拟
(1)液位示值动画设置
1、在画面上双击“水箱1“图形,弹出该对象的动画连接对话框对对话框进行相应的设置,单击“确定”按钮,完成水箱1的动画连接。
这样建立连接后水箱1液位的高度随着变量“水箱1”的值变化而变化。
用同样的方法设置水箱2和水箱3的动画连接。
作为一个实际可用的监控程序,操作者可能需要知道液面的准确高度而不仅是形象的表示,这个功能由“模拟值动画连接”来实现。
2、在工具箱中选择
工具,在水箱1旁边输入字符串“xx”,这个字符串是任意的,当工程运行时,字符串的内容将被您需要输出的模拟值所取代。
3、双击文本对象“xx”,弹出动画连接对话框,在此对话框中选择“模拟量输出”选项弹出模拟量输出动画连接对话框,对对话框进行相应的设置。
4、单击“确定”按钮完成动画连接的设置。
当系统处于运行状态时在文本框“xx”中将显示水箱的实际液位值。
用同样的方式建立水箱2、水箱3的动画连接。
(2)阀门动画设置
1、在画面上双击“阀门1”图形,弹出该对象的的动画连接对话框,对对话框进行相应的设置。
2、单击“确定”按钮后阀门动画设置完毕。
用同样方法设置阀门2、阀门3的动画连接。
3、单击“文件”菜单中的“全部存”命令,保存您所作的设置。
(3)实现画面切换功能
利用系统提供的“按钮”工具和ShowPicture()函数能够实现在主画面中切换到其他任一画面的功能。
选择工具箱中的按钮小图标,将鼠标放到监控画面的任一位置并按住鼠标左键画一个按钮大小的菜单对象,双击弹出对话框,单击“命令语言”按钮,弹出命令语言编辑框,在编辑框中输入如下命令语言:
ShowPicture("实时曲线");等,就可建立相应的动画连接。
如图3中所示。
单击“确认”按钮关闭对话框,当系统进入运行状态时单击其中的每一项,即可进入相应的画面。
单击“文件”菜单中的“切换到VIEW”命令,进入运行系统,在画面中可看到液位以及控制量的变化值,从而达到了监控现场的目的。
运行画面如图4所示。
图4运行监控画面
4.1.3应用程序命令语言
组态王除了在定义动画连接时支持连接表达式,还允许用户编写命令语言来扩展应用程序的功能,极大地增强了应用程序的可用性。
命令语言的格式类似C语言的格式,工程人员可以利用其来增强应用程序的灵活性。
组态王的命令语言编辑环境已经编好,用户只要按规范编写程序段即可。
各种命令语言通过“命令语言编辑器”编辑输入并进行语法检查,在运行系统中进行编译执行。
应用程序如下:
\\本站点\KP=0.72;
\\本站点\KI=0.23;//PI控制参数初始化
//水箱1液位控制//
\\本站点\水箱1E1=\\本站点\水箱1E0;//前一个偏差
\\本站点\水箱1E0=60-\\本站点\水箱1;//计算当前偏差
\\本站点\控制1=\\本站点\KP*(\\本站点\水箱1E0-\\本站点\水箱1E1)+\\本站点\KI*\\本站点\水箱1E0;//PID计算控制量
if(\\本站点\控制1>=0)//控制量1大于0说明当前水位低于设定值,让阀门1打开进水,阀门2关闭
{
\\本站点\阀门1=\\本站点\控制1;
\\本站点\阀门2=0;
}
elseif(\\本站点\控制1<0)//控制量1小于0说明当前水位高于设定值,让阀门1关闭,阀门2打开出水
{
\\本站点\阀门1=0;
\\本站点\阀门2=-\\本站点\控制1;
}
//水箱2液位控制//
\\本站点\水箱2E1=\\本站点\水箱2E0;//前一个偏差
\\本站点\水箱2E0=50-\\本站点\水箱2;//计算当前偏差
\\本站点\控制2=\\本站点\KP*(\\本站点\水箱2E0-\\本站点\水箱2E1)+\\本站点\KI*\\本站点\水箱2E0;//PID计算控制量
if(\\本站点\控制2>=0)//控制量2大于0说明当前水位低于设定值,让阀门2打开进水,阀门3关闭
{
if(\\本站点\阀门2==0)//判断阀门2是否打开
{
\\本站点\阀门2=\\本站点\控制2;//若阀门2是关闭的让他打开,否则不操作
}
\\本站点\阀门3=0;
}
elseif(\\本站点\控制2<0)
{
\\本站点\阀门3=-\\本站点\控制2;//控制量2小于0说明当前水位高于设定值,让阀门3打开出水,对阀门2不操作
}
//水箱3液位控制//
\\本站点\水箱3E1=\\本站点\水箱3E0;//前一个偏差
\\本站点\水箱3E0=40-\\本站点\水箱3;//计算当前偏差
\\本站点\控制3=\\本站点\KP*(\\本站点\水箱3E0-\\本站点\水箱3E1)+\\本站点\KI*\\本站点\水箱3E0;//PID计算控制量
if(\\本站点\控制3>=0)//控制量3大于0说明当前水位低于设定值,让阀门3打开进水,阀门4关闭
{
if(\\本站点\阀门3==0)//判断阀门3是否打开
{
\\本站点\阀门3=\\本站点\控制3;//若阀门2是关闭的让他打开,否则不操作
}
\\本站点\阀门4=0;
}
elseif(\\本站点\控制3<0)//控制量3小于0说明当前水位高于设定值,让阀门4打开出水,对阀门3不操作
{
\\本站点\阀门4=-\\本站点\控制3;
}
\\本站点\水箱1=\\本站点\水箱1+\\本站点\阀门1-\\本站点\阀门2;//计算水箱当前液位
\\本站点\水箱2=\\本站点\水箱2+\\本站点\阀门2-\\本站点\阀门3;
\\本站点\水箱3=\\本站点\水箱3+\\本站点\阀门3-\\本站点\阀门4;
if(\\本站点\阀门1>0.000005)
{
\\本站点\管道1=1;
}
else
{
\\本站点\管道1=0;
}
if(\\本站点\阀门2>0.00005)
{
\\本站点\管道2=1;
}
else
{
\\本站点\管道2=0;
}
if(\\本站点\阀门3>0.00005)
{
\\本站点\管道3=1;
}
else
{
\\本站点\管道3=0;
}
if(\\本站点\阀门4>0.001)
{
\\本站点\管道4=1;
}
else
{
\\本站点\管道4=0;
}
4.2在数据字典中定义需要的内存变量和I/O变量
在工程浏览器的左侧选择“数据词典”,在右侧双击“新建”图标,弹出“变量属性”对话框,在对话框中添加相应的变量,设置完成后单击“确定”。
此外,建立三个离散型内存变量阀门1,阀门2,阀门3和阀门4,为了实现PI控制建立了六个偏差量和三个控制量。
如图5所示。
注意在组态王中,英文字母的大小写无关紧要。
在该演示工程中使用的设备为仿真的PLC。
图5数据词典窗口
4.3监控系统的实时、历史曲线显示
趋势曲线用来反应变量随时间的变化情况。
趋势曲线有两种:
实时趋势曲线和历史趋势曲线。
这两种曲线外形都类似于坐标纸,X轴代表时间,Y轴代表变量的量程百分比。
所不同的是,在您的画面程序运行时,实时趋势曲线随时间变化自动卷动,以快速反应变量的新变化,但是不能时间轴“回卷”,不能查阅变量的历史数据;历史趋势曲线可以完成历史数据的查看工作,但它不会自动卷动,需要通过带有命令语言的功能按钮来辅助实现查阅功能。
(1)建立实时曲线,如图6所示。
图6实时曲线
(2)当系统进入运行状态时,实时曲线会绘出各个水箱液位的变化趋势。
如图7所示。
图7运行时的实时曲线
(3)建立历史曲线如图8所示。
图8历史曲线
(4)当系统进入运行状态时,历史曲线会绘出各个水箱液位在一定时间段内的变化趋势。
如图9所示。
图9运行时的历史曲线界面
4.4参数报表打印
数据报表是反应生产过程中的过程数据、运行状态等,并对数据进行记录、统计的一种重要工具,是生产过程必不可少的一个重要环节。
它既能反应系统实时的生产情况又能对长期的生产过程数据进行统计、分析,使管理人员能够掌握和分析生产过程情况。
(1)建立参数报表界面如图10所示。
图10参数报表
(2)当系统运行时,点击“监控界面”上的“实时数据报表”按钮,弹出如图实时数据报表界面如图11所示。
图11运行时的参数报表画面
4.5报警信息的显示及提示
组态王中的报警和事件主要包括变量报警事件、操作事件、用户登录事件和工作站事件。
通过这些报警和事件用户可以方便地记录和查看系统的报警和各个工作站的运行情况。
当报警和事件发生时,在报警窗中会按照设置的过滤条件实时地显示出来。
(1)建立报警窗口如图12所示。
图12报警界面
(2)使用系统提供的“$新报警”变量可以实现当系统产生报警信息时将报警窗口自动弹出,
单击“确认”按钮关闭编辑框。
当系统有新报警产生时即可弹出报警窗口。
相应的程序如下:
if(\\本站点\$新报警)
ShowPicture("报警界面");
\\本站点\$新报警=0;
(3)当系统进入运行状态时,当水箱的液位高度到达相应的报警线时,系统将产生报警,报警信息将显示在报警组中,如图13所示。
图13报警界面
5.心得体会
通过这次应用软件实训,使我对组态王软件的认识,由开始的陌生变得逐渐熟悉。
并且,在通过这次实训中对组态王的应用,使我对组态王的功能以及作用有了更加具体和深入的了解。
而且,在此过程中不仅掌握了组态王的一些基本功能,比如监控画面的设计以及动态模拟,数据字典的含义作用以及在数据字典中定义需要的内存变量和I/O变量,监控系统的实时、历史曲线显示,参数报表打印等,而且还学会了报警信息的显示及提示这些重要功能。
同时,也使我逐步掌握了组态王命令语言的编写,因为类似C语言的格式所以相对比较容易学习和掌握。
参考文献
[1]王善斌.组态软件应用指南[M].北京:
化学工业出版社.2011.
[2]王淑红,魏建生.组态软件控制技术及应用[M].北京:
中国电力出版社.2011.[3]翟庆一.典型工业过程的组态控制[M].天津:
天津大学出版社.2011.