目录
1 小区恒压供水系统详细设计(对象1)………………... 3
(1) 功能设计图(功能图)…………………………………………………………. 3
(2) 软件界面设计部分(图,以及设计的过程)…………………………………. 4
(3) 变量实际部分(几个变量,定义原因)………………………………………. 6
(4) 软件设计(程序流程图,关键代码描述) ……………………………………7
(5)系统测试部分(遇到的问题,如何解决)………………………………………... 8
2 石化企业储油罐的详细设计(对象2)………………… 8
(1)功能设计(画功能图)…………………………………………………………….. 8
(2)软件界面设计部分(图,以及设计的过程)…………………………………….. 9
(3)变量实际部分(几个变量,定义原因)…………………………………………...9
(4)软件设计(程序流程图,关键代码描述)……………………………………… 10
(5)系统测试部分(遇到的问题,如何解决)……………………………………… 11
3混合配料监控系统的详细设计(对象5)……………11
(1)功能设计(画功能图)…………………………………………………………… 12
(2)软件界面设计部分(图,以及设计的过程)…………………………………… 12
(3)变量实际部分(几个变量,定义原因)………………………………………… 13
(4)软件设计(程序流程图,关键代码描述)……………………………………… 14
(5) 系统测试部分(遇到的问题,如何解决)………………………………….. 15
4 总结 ………………………………………………………………………...15
1 小区恒压供水系统详细设计(对象1)
(1) 功能设计图(功能图)
否
是
否
是
否
是
(2) 软件界面设计部分(图,以及设计的过程)
根据设计要求要实现一系列控制和相关的数据显示,需要多个画面相会配合,我的设计主要由主界面,实时曲线,数据查询和水流量四部分组成。主界面是软件设计的总体图,即功能设计模块,除此而外自己加的实时曲线主要是显示水位状况,水流量的使用情况和压力值变化,数据查询是水流量,压力值和水位的数字显示,当然为了更直接的知道水流量的使用情况,还特别设置了水流量界面。以下分别是主界面,实时曲线,数据查询和水流量的界面设计:
图 1.1 主界面
图 1.2 实时曲线
图 1.3 历史数据查询
图 1.4 水流量
(3) 变量实际部分(几个变量,定义原因)
因为主界面所有的泵和及电磁阀都是开关量,因此根据实际的设计要求,按图1.1所示的画面,需要泵以及电磁阀共15个,流量计变量13个。此外因为设置了启动按钮,所以有一个运行系统的变量,还有水位的显示,就需要水位变量,根据实训要求,需要判断管道压强,因此压力值也是一个变量。综上所述,变量如下图:
图 1.5 变量设置
(4) 软件设计(程序流程图,关键代码描述)
主界面的控制程序如下:
// 控制一开始的水位,先抽水至满液位,小于20%开始自动送水//
if(\\本站点\运行状态==1)
{
if(\本站点\水位<20)
{\\本站点\电磁阀1=1;}
if(\\本站点\电磁阀1==1)
{
\\本站点\流量计1=\\本站点\流量计1+4;
\\本站点\水位=\\本站点\水位+30;
}
else
{\\本站点\流量计1=\\本站点\流量计1;}
if(\\本站点\水位==100)
{
\\本站点\电磁阀1=0;
\\本站点\电磁阀2=1;
}
if(\\本站点\电磁阀2==1)
{\\本站点\泵1=1;
\\本站点\流量计2=\\本站点\流量计2+2;
\\本站点\水位=\\本站点\水位-10;
\\本站点\压力值=\\本站点\水位*0.0047;
}
else
{
\\本站点\流量计2=\\本站点\流量计2;
}
// 判断压强///
if(\\本站点\压力值<0.3)
{
\\本站点\电磁阀3=1;
\\本站点\泵2=1;
}
else
{
\\本站点\电磁阀3=0;
\\本站点\泵2=0;
}
if(\\本站点\电磁阀3==1)
{
\\本站点\水位=\\本站点\水位-7;
\\本站点\压力值=\\本站点\水位*0.0047;
}
}
(5)系统测试部分(遇到的问题,如何解决)
恒压供水系统前一部分的抽水与送水控制很容易实现,但是要利用管道压强控制第二个泵进行抽水就有点难想了,一开始想利用十户人用水来计算压强,但是很难控制,程序也不好实现,最后转变思路利用储水罐的水位来测试压强,如果储水罐亚强值小于0.3,那么第二个泵就开始抽水,这样就方便利用压强控制了。
2 石化企业储油罐的详细设计(对象2)
(1)功能设计(画功能图)
图 2.1 功能图
(2)软件界面设计部分(图,以及设计的过程)
如上图所示,需要四个储油罐以及相关的开关和泵和起停按钮,界面设计如下:
图 2.2 界面设计
(3)变量实际部分(几个变量,定义原因)
根据设计要求,需要相关阀门和泵,以及一个总开关,即运行系统变量,油罐液位需要显示,即液位变量开关和泵共需要15个,具体变量清单如下:
图 2.3 变量设置
(4)软件设计(程序流程图,关键代码描述)
界面控制程序如下:
if(\\本站点\运行系统==1)
{
if(\\本站点\液位1<10)
{\\本站点\阀门1=1;}
if(\\本站点\阀门1==1)
{
\\本站点\泵1=1;
\\本站点\液位1=\\本站点\液位1+5;
}
if(\\本站点\液位1>20)
{
\\本站点\阀门1=0;
\\本站点\阀门2=1;
}
if(\\本站点\阀门2==1)
{
\\本站点\液位2=\\本站点\液位2+5;
}
if(\\本站点\液位2>=20)
{
\\本站点\阀门2=0;
\\本站点\阀门3=1;
\\本站点\阀门4=1;
\\本站点\阀门5=1;
}
if(\\本站点\阀门5==1 && \\本站点\阀门1==0 && \\本站点\阀门2==0 )
{
\\本站点\泵2=1;
\\本站点\液位2=\\本站点\液位2-7;
}
if(\\本站点\泵2==1)
{
\\本站点\阀门6=1;
}
if(\\本站点\阀门6==1)
{
\\本站点\泵3=1;
\\本站点\液位3=\\本站点\液位3+7;} // 这部分是控制油量和储油罐的交替进出 //
if(\\本站点\液位3>=20)
{
\\本站点\阀门7=1;
\\本站点\液位3=\\本站点\液位3-9;
}
if(\\本站点\阀门7==1)
{
\\本站点\泵4=1;
\\本站点\泵5=1;
\\本站点\阀门8=1;
}
if(\\本站点\阀门8==1)
{\\本站点\液位4=\\本站点\液位4+8;}
if(\\本站点\液位4>25)
{
\\本站点\泵6=1;
\\本站点\阀门9=1;
\\本站点\液位4=\\本站点\液位4-12; // 这部分设计是三号罐和四号罐的油量交换 //
}
}
(5)系统测试部分(遇到的问题,如何解决)
开始设计时交替输油给三号罐,但一号罐油上升到条件值时不会因为三号罐的抽油而降低液位,之后通过修改程序,调整代码位置,即可实现石油的交替运输,后面的三号和四号油罐的控制笔比较简单,通过条件语句就可以实现对液位的控制。
3混合配料监控系统的详细设计(对象5)
(1)功能设计(画功能图)
图 3.1
(2)软件界面设计部分(图,以及设计的过程)
根据设计要求,应有相应的液位显示,温度显示,报警功能。设计的相关的界面有主界面,半成品罐监控,混合罐监控,数据实时显示界面四部分组成。对应界面如下图所示:
图 3.1 主界面
图 3.2 半成品罐监控界面
图 3.3 混合罐监控界面
图 3.4 数据查询界
(3)变量实际部分(几个变量,定义原因)
根据要求设计,需要变量16个,分别有泵,流量计,液位,阀门和报警指示灯,因为设计题目要求有控制,有输入和输出,还有报警和数据查询等功能,所以上变量能满足设计要求。变量列表如下:
图 3.5 定义变量
(4)软件设计(程序流程图,关键代码描述)
主界面的程序控制:
if(\\本站点\阀门1==1)
{\\本站点\水泵1=1;}
else
{\\本站点\水泵1=0;}
if(\\本站点\阀门2==1)
{\\本站点\水泵2=1;}
else
{\\本站点\水泵2=0;}
if(\\本站点\水泵1==1)
{\\本站点\流量1=\\本站点\流量1+1;}
else
{\\本站点\流量1=\\本站点\流量1;}
if(\\本站点\水泵2==1)
{\\本站点\流量2=\\本站点\流量2+3;}
else
{\\本站点\流量2=\\本站点\流量2;}
if(\\本站点\阀门3==0)
{\\本站点\液位1=\\本站点\液位1+4;
\\本站点\温度1=\\本站点\温度1+1;}
if(\\本站点\阀门3==1)
{\\本站点\液位1=\\本站点\液位1-2;
\\本站点\温度1=\\本站点\温度1-1;}
if(\\本站点\液位1>=80)
{\\本站点\阀门3=1;\\本站点\阀门1=0;\\本站点\阀门2=0;}
if(\\本站点\液位1<12)
{\\本站点\阀门3=0;\\本站点\阀门1=1;\\本站点\阀门2=1;}
if(\\本站点\液位2<12)
{\\本站点\阀门4=1;\\本站点\阀门5=0;}
if(\\本站点\液位2>=80)
{\\本站点\阀门4=0;\\本站点\阀门5=1;}
if(\\本站点\液位3<12)
{\\本站点\阀门6=1;\\本站点\阀门7=0;}
if(\\本站点\液位3>=80)
{\\本站点\阀门6=0;\\本站点\阀门7=1;}
if(\\本站点\阀门4==1&&\\本站点\阀门5==0)
{\\本站点\液位2=\\本站点\液位2+4;
\\本站点\温度2=\\本站点\温度2+1;}
if(\\本站点\阀门4==0&&\\本站点\阀门5==1)
{\\本站点\液位2=\\本站点\液位2-2;
\\本站点\温度2=\\本站点\温度2-1;}
if(\\本站点\阀门6==1&&\\本站点\阀门7==0)
{\\本站点\液位3=\\本站点\液位3+5;
\\本站点\温度3=\\本站点\温度3+1;}
if(\\本站点\阀门4==0&&\\本站点\阀门5==1)
{\\本站点\液位3=\\本站点\液位3-2;
\\本站点\温度3=\\本站点\温度3-1;}
if(\\本站点\阀门5==1||\\本站点\阀门7==1)
{\\本站点\水泵3=1;}
if(\\本站点\液位1>=50)
{\\本站点\指示灯=1;}
if(\\本站点\液位1<40)
{\\本站点\指示灯=0;}
页面转换控制:
Showpicture();
(5) 系统测试部分(遇到的问题,如何解决)
原料混合控制最难的是比例控制开关,需要判断比例值,之后的交替出液已经在对象2的设计过程中实现了,还有数据页面的查询部分,需关联相应的变量,如液位,流量,温度等变量。
4 总结
经过连续两周的实训,让我对组态王有了更深刻的认识,通过对题目的理解,然后分析所需要的变量,设计相应画面,以及最终的调试和排错都使自己的能力有了个很大的提高,对组态王的认识也不再仅仅提留在书本上了。经过软件设计也是自己巩固了不少老师之前讲过的知识点。本次实训最有意思的是第一个和第三个,第一个做的时间最长,也算是比较成功的一个,从界面设计到程序编写都是自己一点点做的,虽然在压强控制那处理的不是太好,但总体功能还是可以实现的;第三个就是比例控制和比较的部分程序有点难写,其它像交替运输还是容易实现的,比如第二个就是交替输液,这与第三个的后半部分相似。总体看,这次实训还是比较接近我们的真实水平的,可以做出来的,而且软件也是我们熟悉的,所以做起来会比较有信心。最后感谢老师对我的悉心指导,还有同学对我的帮助,有时候很多小问题都是同学的及时提醒才能及早发现并解决。
第二篇:7任务书--基于组态王的实训设备的开发
河北建筑工程学院
毕业设计(论文)任务书
系别: 电气工程系
专业: 电气工程及其自动化
班级:
姓名:
学号:
起迄日期:201 年 0 月日 ~ 201 年 0 月日
设计(论文)地点:
指导教师: 赵艳秋 职称:
填表日期: 20 年 月 日