基于组态王的水塔自动供水系统.docx
《基于组态王的水塔自动供水系统.docx》由会员分享,可在线阅读,更多相关《基于组态王的水塔自动供水系统.docx(11页珍藏版)》请在冰豆网上搜索。
基于组态王的水塔自动供水系统
自动化应用软件实训设计
专业:
班级:
姓名:
学号:
指导教师:
评语:
平时(40)
修改(30)
报告(30)
总成绩
兰州交通大学自动化与电气工程学院
2012年7月1日
目录
1引言1
2界面设计1
2.1总体方案设计1
2.2内存变量定义1
2.3登录界面设计1
2.4水塔自动供水系统主界面的设计2
2.5实时曲线与历史曲线2
2.6实时报表与历史报表2
2.7报警窗口设计2
总结3
附录A4
附录B7
1引言
组态王Kingview是一种通用的工业监控软件,它融过程控制设计、现场操作及工厂资源管理于一体,将一个企业内部的各种生产系统和应用以及信息交流汇集在一起,实现了最优化管理。
它适用于从单一设备的生产运营管理和故障诊断,到网络结构分布式大型集中监控管理系统的开发。
在生活及生产供水中,通常是通过建造水塔以维持水压。
但是,建造水塔费用高,还会造成水的二次污染。
因此,通常采用的方法是:
当用水量增大时,增加水泵数量或提高水泵的运转速度以保持供水管网中的水压不变;用水量减小时,做出相反的调节。
这就是恒压供水的基本思路。
本文介绍了基于组态王的水塔供水系统的设计,在设计过程中通过模块化编程,完成了水塔的自动供水和水塔的液位保持,基本达到实际工程要求。
2界面设计
本章从控制系统的总体构成及原理框图对系统进行了总体分析说明。
2.1总体方案设计
根据软件监控的需要,要对水塔储水箱以及站点水箱的液位实行监控,但由于是模拟设计,没有真正的对象,于是构造一个虚拟对象,即设计一个基于组态王的水塔液位的模拟控制,通过对模拟水箱液位的控制来模拟现场真正的运行情况,一边进行监控。
2.2内存变量定义
系统主要有温度测量模块、湿度测量模块、显示模块、及按键模块。
其原理框图如图2.1所示。
2.3登录界面设计
新建一画面,命名为:
登录界面,绘制两按钮,分别为进入系统和退出系统如图2.2所示。
2.4水塔自动供水系统主界面的设计
水塔自动供水系统主界面包括画面间切换和返回按钮的设计、供水管道及水塔、报警的设计等几方面内容,总体运行效果如图2.3所示。
2.5实时曲线与历史曲线
实时趋势曲线的创建过程:
新建一画面,名称为实时曲线,选择工具中的
工具,在画面中绘制一实时曲线窗口,如图2.4所示。
历史趋势曲线的创建为:
新建一画面,命名为:
历史曲线,在画面中插入通用控件窗口中的“历史趋势曲线”控件,如图2.5所示。
2.6实时报表与历史报表
实时报表的创建过程:
新建一画面,名称为实时报表,选择工具中的工具
,在画面中绘制一实时报表窗口,并在对应行连接变量如图2.6所示。
历史报表的创建过程:
新建一画面,名称为历史报表,选择工具中的工具
,在画面中绘制一历史报表窗口,如图2.7所示。
2.7报警窗口设计
新建一画面,命名为:
报警窗口,选择工具箱中的
工具,在画面中绘制一报警窗口,如图2.8所示。
总结
在这次的组态王软件的实训中,通过自己不断的摸索,感觉到收获很多。
此次课程设计,按照设计的要求首先对组态王的指导教材进行了仔细的阅读和研究,力争每个步骤都不出现不应有的错误,然后才进行画图的设计。
因为我坚持做任何程序都要认真细心,任何一个小小的失误都会造成整个设计的失败,更懂得了没有足够的耐力和信心就很难坚持对课程设计每一步的顺利进行。
课程设计的过程中遇到错误时很多的,当遇到错误时,我总是仔细寻找错误的根源,从根本上明白自己犯错误的原因,从而真正的解决问题,真正明白自己的不足之处。
对编程环节中出现的错误解决的同时,加深了我们对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的结构在运行中能够充分的发挥程序的功能。
结构设计的合理性决定了这个程序的价值。
附录A
图2.1内存变量定义截图
图2.2登录界面设计截图
图2.3主界面截图
图2.4实时曲线界面截图
图2.5历史曲线界面截图
图2.6实时报表界面截图
图2.7历史报表界面截图
图2.8报警画面截图
附录B
if(\\本站点\自动运行==1)
{if(\\本站点\水塔液位<=60)
{\\本站点\井泵1=1;\\本站点\井泵2=1;}
if(\\本站点\水塔液位>60&&\\本站点\水塔液位<=80)
{\\本站点\井泵1=0;\\本站点\井泵2=1;}
if(\\本站点\水塔液位>=95)
{\\本站点\井泵1=0;\\本站点\井泵2=0;}
if(\\本站点\用户水箱2<=80)
{\\本站点\供水阀门=1;\\本站点\供水泵=1;\\本站点\用户阀门2=1;}
if(\\本站点\用户水箱1<=80)
{\\本站点\供水阀门=1;\\本站点\供水泵=1;\\本站点\用户阀门1=1;}
if(\\本站点\用户水箱2>=80)
{\\本站点\用户阀门2=0;}
if(\\本站点\用户水箱1>=80)
{\\本站点\用户阀门1=0;}
if(\\本站点\用户水箱2>=80&&\\本站点\用户水箱1>=80)
{\\本站点\供水阀门=0;\\本站点\供水泵=0;\\本站点\用户阀门2=0;\\本站点\用户阀门1=0;}
if(\\本站点\用户阀门1==1)
{\\本站点\用户水箱1=\\本站点\用户水箱1+3;\\本站点\水塔液位=\\本站点\水塔液位-3;}
if(\\本站点\用户阀门2==1)
{\\本站点\用户水箱2=\\本站点\用户水箱2+4;\\本站点\水塔液位=\\本站点\水塔液位-4;}
if(\\本站点\水龙头1==1)
{\\本站点\用户水箱1=\\本站点\用户水箱1-2;}
if(\\本站点\水龙头2==1)
{\\本站点\用户水箱2=\\本站点\用户水箱2-3;}
//扬程定义)
if(\\本站点\井泵1==1)
{\\本站点\水塔液位=\\本站点\水塔液位+10;}
if(\\本站点\井泵2==1)
{\\本站点\水塔液位=\\本站点\水塔液位+5;}}
if(\\本站点\自动运行==0)
{if(\\本站点\水龙头1==1)
{\\本站点\用户水箱1=\\本站点\用户水箱1-3;}
if(\\本站点\水龙头2==1)
{\\本站点\用户水箱2=\\本站点\用户水箱2-4;}}
if(\\本站点\供水阀门==1&&\\本站点\供水泵==1&&\\本站点\用户阀门1==1)
{\\本站点\水塔液位=\\本站点\水塔液位-3;\\本站点\用户水箱1=\\本站点\用户水箱1+3;}
if(\\本站点\供水阀门==1&&\\本站点\供水泵==1&&\\本站点\用户阀门2==1)
{\\本站点\水塔液位=\\本站点\水塔液位-4;\\本站点\用户水箱2=\\本站点\用户水箱2+4;}
生成本系统历史报表需要如下命令语言
longrow;
row=\\本站点\$秒+1;
ReportSetCellString("Report2",row,6,\\本站点\$日期);
ReportSetCellString("Report2",row,1,\\本站点\$时间);
ReportSetCellValue("Report2",row,2,\\本站点\水塔液位);
ReportSetCellValue("Report2",row,3,\\本站点\水压);
ReportSetCellValue("Report2",row,4,\\本站点\用户水箱1);
ReportSetCellValue("Report2",row,5,\\本站点\用户水箱2);
if(row==1)
ReportSetCellString2("Report2",4,1,63,2,"");
转换界面按钮:
ShowPicture("实时曲线");
退出界面按钮:
Exit(0);
打印报表按钮:
ReportPrintSetup("report1");
\\本站点\井泵1==1
\\本站点\井泵2==1
\\本站点\供水阀门==1
\\本站点\用户阀门1==1
\\本站点\用户阀门2==1
\\本站点\水龙头1==1
\\本站点\水龙头2==1
水塔液位报警:
\\本站点\水塔液位<=30||\\本站点\水塔液位>=90
用户水箱报警:
\\本站点\用户水箱1<=20||\\本站点\用户水箱1>=75||\\本站点\用户水箱2<=20||\\本站点\用户水箱2>=75