集中上机2(组态软件的学习及应用)
成绩:
题目: 自动搜救系统
姓名: 邹婷
学号: 201021299 9
班级: 0821003
指导教师:李老师、张老师
实习时间: 20##-2013学年第一学期(第 3 和第 4 周)
一、实验目的
集中上机2旨在16学时时间内帮助学生了解、熟悉并掌握组态软件的使用及应用方法,为今后的监控系统的设计打下初步基础。本次上机使用的平台是组态王6.53及以上版本。通过组态软件设计的监控系统可广泛应用于电力、通讯、制冷、化工、石油、钢铁、煤炭、水泥、纺织、机械制造、造纸、食品、水处理、建材、环保、智能楼宇、实验室、交通等多种工程领域,在本次集中上机中,我们将通过对软件的学习掌握监控系统的设计方法和应用技巧,为以后的工作、学习奠定坚实的基础。
二、实验内容
1、实验目标;
自动搜救系统(学号尾号为9号需要完成)。设计要求:使用机器人自动搜索生存者,发送生存者位置信息并以指示灯显示,抢救贵重物品,寻找火源并进行扑灭。实时显示机器人所处的位置的温度、烟雾浓度等信息,有搜寻到的人、财、物指示信息等。
2、设计思路;
先设计一个机器人,然后画一个着火的餐厅场景,画出伤员,贵重财物,火源以及救护人员,火警警报开关警示灯,伤员位置指示器,伤员数和财物数报表,温度和烟雾浓度实时曲线图。过程是这样的:当有火警警报时,有人奔走着喊“着火啦”,然后这个人因为火势大走错路所以受伤了,这时机器人在同一时间开始出动,并同时出现“有火灾发生,立即出动救援”的话语;当机器人走到伤员位置旁时,显示“发生伤员,立即抢救”的指示,同时伤员位置指示器显示伤员位置,而救护人员马上出动救援;然后机器人继续走,当发现贵重财物时,显示“发现财物,抢救财物”,然后财物消失,表示已经抢救;最后就是机器人发现火源,最终灭火。整个过程中,温度和烟雾浓度实时曲线图记录抢救过程中的温度和烟雾浓度的变化,报表统计抢救的伤员数和财物数。
3、任务模块划分;
(1)指挥室部分:火警警报开关,伤员位置指示器,报表,温度和烟雾浓度实时曲线图
(2)机器人
(3)场景设计:伤员,贵重财物,火源
(4)救护人员
4、各子模块功能;
(1)火警警报开关控制全局,警报响了才有后来机器人的一系列行动,伤员位置指示灯表示发现伤员位置并予以通知指挥室,报表统计伤员数和财物数,温度和烟雾浓度实时曲线图显示火灾现场实时温度和烟雾浓度。
(2)机器人是整个过程核心,参与抢救伤员、财物和灭火,统计相关伤员数和财物数,记录火灾现场实时温度和烟雾浓度并发回指挥室。
(3)场景设计只是提供一个场景
(4)救护人员只是当机器人发现伤员并发出救援命令后参与救援。
三、实验步骤
1.主界面设计及实施
主界面设计;用一个动画流程来实现所有的功能,在系统启动之后,实现协调的模拟过程。
实施过程; 根据组态王的基本操作,先新建一个工程,定好名字,然后在工程里面新建一个画面。之后在画面上开始按设计思路作图,画出相关场景和各个模块,做好总体布局。
2.各子模块的设计与实现
对做好的最初画面,对各小部分进行动画链接,用不同的按键来控制不同的模块,以方便实际的操控。并对相关语句命令按程序设置显示和隐含的表达式范围,还有指示灯闪烁时间通过设置总控制变量的范围来隐含,这样就能实现相关对话显现并隐含的效果了。
四、实验结果
按下火警警报开关,表示火警发生,然后有人奔走着喊“着火啦”,一会儿之后出现一段对话,表示人受伤了,接着机器人出动。当机器人走到伤员躺下位置时,伤员指示器亮,并显示“发现伤员,立即抢救”命令,同时左边一对救护人员出动救援,当其向右走到伤员位置时,这一对救护人员把伤员抬着往下抢救去了;然后机器人继续走,当发现贵重财物,显示“发现财物,立即抢救”;最后在向上走发现火源,在相关命令出现后立即灭火,火源消失,同时温度和烟雾浓度下降至正常水平。源程序如下:
if(c==1)
{
a=a+1;
if(a>1&&a<18)
{s=s+3;
w=w+2;
}
if(a>=18&&a<=23)
{
x=x+1;
s=s+2;
w=w+3;
}
if(a>=24&&a<=32)
{b=1;
f=f+1;
s=s+2;
w=w+4;
}
if(a>32&&a<=36)
{
g=g+1;
s=s+1;
w=w+2;
}
if(a>=38&&a<44)
{b1=2;
x=x+1;
}
if(a>=44&&a<49)
{
y=y+1;
s=s+1;
w=w+2;
}
if(a>58)
{
s=s-4;
w=w-5;
}
if(a>73)
{s=25;
w=5;}
}
else
c=0;
五、写出本次实验的实验心得
通过这次集中上机,我熟悉并掌握了组态王这个软件的使用及应用方法,我觉得这对我以后从事的相关工作会有很大的用处。学习过程中,我对c语言的运用有了更深刻的体会,同时巩固了我对c程序相关知识的理解和掌握。虽然这个过程中我犯了不少错误,做出的系统也不是特别好,但是毕竟是初学,还有在老师和同学的帮助下我好歹也是通过自己的努力成功做出了搜救系统,我为自己所得到的收获感到高兴。
第二篇:组态王课程设计实验报告
目录
一、 组态王软件概述. 1
二、 设计背景. 1
三、 设计题目以及要求. 1
1 题目. 1
2 对象描述. 1
3 测量信号. 1
4 控制要求. 1
5 对象模拟. 1
6 设计内容. 1
四、 实验目的. 1
五、 系统需求分析. 1
六、 功能描述. 1
七、 实验步骤. 1
(一) 创建组态画面. 1
(二) 程序设计. 1
八、 结束语. 1
九、 参考书目. 1
十、 附表:. 1
超链接模块组 变量定义
一、 组态王软件概述
组态王软件是一种通用的工业监控软件,它融过程控制设计、现场操作以及工厂资源管理于议题,将一个企业内部的各种生产系统和应用以及信息交流汇集在一起,实现最优化管理。它给予Microsoft Windows XP/NT/2000/7操作系统,用户可以在企业网络的所有层次的各个位置上都可以及时获得系统的实时信息。采用组态王软件开发工业监控工程,可以极大地增强用户生产控制能力、提高工厂的生产力和效率、提高产品的质量、减少成本以及原材料的消耗。它适用于从单一设备的生产运营管理和鼓掌诊断,到网络结构的分布式大型集中监控管理系统的开发。
组态王软件结构由工程管理器、工程浏览器及运行系统组成。
工程管理器:工程管理器用于新工程的创建和已有工程的管理,对一游工程进行搜索、添加、备份、恢复以及实现数据词典的导入和导出等功能。
工程浏览器:工程浏览器是一个工程开发设计工具,用于创建监控画面、监控的设备及相关变量、动画链接、命令语言以及设定运行系统配置等的系统组态工具。
运行系统:工程运行界面,从采集设备中获得通讯数据,并依据工程浏览器的动画设计显示动态画面,实现人与控制设备的交互操作。
图一 组态王软件
二、 设计背景
某小区建筑面积约为5万平方米,小区内包括七栋小高层住宅、一个地下车库和两栋两层的临街商铺。住宅楼中1#~4#楼为十四层,5#~7#楼为十二层 。为简便起见,住宅楼每层楼有五个单元,每个单元二户,商铺每层十个铺面。
小区中央有一个约1千平方米的方形中心广场,大门入口在两栋两层的临街商铺之间,商铺后面有一个50个车位的地面停车场,中心广场处有一个约1000个车位的地下停车场。
小区各楼之间的空地有小型花园。
(注:*小区布局请自行设计)
三、 设计题目以及要求
1 题目:恒压供水系统
2 对象描述:引入管处水压为0.16Mpa,临街商铺和地下车库生活用水市政供水管网直接供给,住宅楼部分生活用水采用市政供水管网——地下不锈钢生活水池——生活加压泵——屋顶不锈钢生活水箱——住户的供水方式。每栋楼设置一组地下生活水池和2台生活加压泵,水管出口装设一电磁阀。
3 测量信号:流量,水管压力,生活水池液位
4 控制要求:水管压力小于0.13MPa 时自动开启水泵,一台不够,自动开启第二台,开泵后自动开启电磁阀;关泵前,先关阀。生活水池水位低于水位满量程20%时,自动开启进水电磁阀;水位达到满量程,自动关闭电磁阀。
图二 某栋楼供水系统的工艺原理图
5 对象模拟:用户用水以按按钮表示开启用水阀,水量关系:两个泵的输水等于所有用户的用水量,压力、水位与水量之间满足开方关系。(可以选择一栋住宅楼,每层一个用户来进行演示)
6 设计内容:
a) 绘制主画面,模拟整个供水系统;主、分画面方便切换;
b) 设计操作按钮,可以手动启动和关闭水泵、开关电磁阀;
c) 画面显示压力、流量、水位实时数据;
d) 绘制趋势曲线,显示压力、流量和水位;
e) 设计指示灯,指示电磁阀、水泵、用水阀的开关状态;
f) 设置报警指示,指示水位低、水压低,水压高;
g) 设计日、月报表,汇总压力、水位、流量等数据。
四、 实验目的
1 认识、熟悉组态王软件,能够熟练使用软件常用工具。
2 分析实际情况,学会并完成组态工程的设计。
3 锻炼动手能力,学会如何去学习一个新软件。
五、 系统需求分析
在本次设计中,分别考虑了地下水水池和屋顶水池。使用水泵作为动力源往高处送水。在地下水水池进入口、水泵以及用户采用电磁阀来控制管道的流动状态,并且每个电磁阀处安装流量计监控水管的水量状态。在动态链接之前首先要定义程序中用到的变量,在组态王的数据词典中定义I/O变量、内存变量和中间变量,数据是用来描述工控对象的属性,组态王定义的各种变量组成数据库。本次设计中我们共考虑了电磁阀、流量计、生活水池水位(地下水池)、屋顶生活水池水位,水泵用来完成画面的链接和控制水池水位。同时建立报警画面当也为过高或者过低时产生报警信息。设置实时曲线和历史曲线。
随时人们生活水平的提高,逐渐用机器替代人力的操作。本次实验设计课题能够有效的降低人工成本,自动化的完成地下水水池和生活水水池的注水。同时,两个生活水池的储水是按照居民用水量进行控制,对有效的节水等也有一定的好处。
六、 功能描述
本系统有10户住户,每户用水单位量1.5则生活屋顶水池最大的出水单位量为1.5*10,要保证生活屋顶水池的压强在0.13~0.16之间,再根据压强公式,推算出屋顶生活水池水位在65~80之间即:水位>80水泵1,2全关;水位<65水泵1,2全开,在这之间水泵1开,。两个水泵出水单位量为20(20>1.5*10);地下生活水池水位在设置在20~80之间,当水位>80时电池阀1关闭,水位<20时电池阀1开启。以上这些都是电池阀工作的条件,当条件出现时,电池阀会做出相应的状态变化来应对。两个水池水位在20~80之外都会产生报警。
七、 实验步骤
(一) 创建组态画面
1 启动浏览器,新建工程
2 设备定义:把地理上分散的物理硬件在软件上变成集中的逻辑硬件。
3 变量定义(定义变量见附表)。
图五 变量定义画面
4 画面绘制:完成各种需要画面的绘制。
5 完成动画连接。
图六 完成连接的画面
6 报警窗口显主要显示地下水池水位和屋顶水池水位是否在设定值范围内,如果不在就能实时的显示当前的液位值。
图七 报警出口画面
6 实时趋势曲线图显示当下时刻地下水池水位和屋顶水池水位。
7 历史趋势曲线图显示过去时刻地下水池水位和屋顶水池水位。
图九 历史趋势曲线图
8 实时数据报表动态显示当下时刻地下水池水位和屋顶水池水位。
图十 实时数据报表
9 显示一天24小时中正点时刻地下水池水位和屋顶水池水位。
图十一 日报表
10 月报表。
图十二 月报表
11 信息窗口。
图十一 信息窗口
(二) 程序设计
1 程序设计思路简介
1.1 设定屋顶水池水位变化范围:屋顶水池水位设置:当水位>80,两个水泵全关;当水位>70,水泵1开,水泵2关,当水位<65,水泵1,2都关闭。
1.2 设定住户用水为1.5。
1.3 设定地下水池水位变化范围:生活水池水位>80,进水开关(电池阀1)关闭;生活水池水位<20,进水开关(电池阀1)开启。
1.4 设定每个水泵进出水位=10
1.5 设定电池阀1进水为=25
1.6 屋顶水位压强=屋顶水池水位*0.002。
2 附:程序
\\本站点\压强=\\本站点\屋顶水池水位*0.002;
if(\\本站点\电磁阀4==0)
{
\\本站点\电磁阀5=0;
\\本站点\电磁阀6=0;
\\本站点\电磁阀7=0;
\\本站点\电磁阀8=0;
\\本站点\电磁阀9=0;
\\本站点\电磁阀10=0;
\\本站点\电磁阀11=0;
\\本站点\电磁阀12=0;
\\本站点\电磁阀13=0;
\\本站点\电磁阀14=0;
}
if(\\本站点\水泵1电磁阀==0 && \\本站点\水泵2电磁阀==0 && \\本站点\水泵1==0 && \\本站点\水泵2==0)
{
\\本站点\屋顶水池水位=\\本站点\屋顶水池水位-(\\本站点\电磁阀5+\\本站点\电磁阀6+\\本站点\电磁阀7+\\本站点\电磁阀8+\\本站点\电磁阀9+\\本站点\电磁阀10+\\本站点\电磁阀11+\\本站点\电磁阀12+\\本站点\电磁阀13+\\本站点\电磁阀14)*1.5;
}
if(\\本站点\水泵1电磁阀==1 && \\本站点\水泵2电磁阀==0 && \\本站点\水泵1==1 && \\本站点\水泵2==0)
{
\\本站点\屋顶水池水位=\\本站点\屋顶水池水位-(\\本站点\电磁阀5+\\本站点\电磁阀6+\\本站点\电磁阀7+\\本站点\电磁阀8+\\本站点\电磁阀9+\\本站点\电磁阀10+\\本站点\电磁阀11+\\本站点\电磁阀12+\\本站点\电磁阀13+\\本站点\电磁阀14)*1.5;
}
if(\\本站点\水泵1电磁阀==1 && \\本站点\水泵2电磁阀==1 && \\本站点\水泵1==1 && \\本站点\水泵2==1)
{
\\本站点\屋顶水池水位=\\本站点\屋顶水池水位+20-(\\本站点\电磁阀5+\\本站点\电磁阀6+\\本站点\电磁阀7+\\本站点\电磁阀8+\\本站点\电磁阀9+\\本站点\电磁阀10+\\本站点\电磁阀11+\\本站点\电磁阀12+\\本站点\电磁阀13+\\本站点\电磁阀14)*1.5;
}
if(\\本站点\电磁阀4==0 && \\本站点\水泵1电磁阀==1 &&\\本站点\水泵2电磁阀==0)
{
\\本站点\屋顶水池水位=\\本站点\屋顶水池水位+10;
}
if(\\本站点\电磁阀4==0 && \\本站点\水泵1电磁阀==1 &&\\本站点\水泵2电磁阀==1)
{
\\本站点\屋顶水池水位=\\本站点\屋顶水池水位+20;
}
if(\\本站点\屋顶水池水位>=80)
{
\\本站点\水泵1电磁阀=0;
\\本站点\水泵2电磁阀=0;
\\本站点\水泵1=0;
\\本站点\水泵2=0;
}
if(\\本站点\屋顶水池水位<=70)
{
\\本站点\水泵1电磁阀=1;
\\本站点\水泵1=1;
\\本站点\水泵2=0;
\\本站点\水泵2电磁阀=0;
}
if(\\本站点\水泵1电磁阀==1 && \\本站点\水泵1==1)
{
if(\\本站点\屋顶水池水位<=65)
{
\\本站点\水泵2电磁阀=1;
\\本站点\水泵2=1;
}
}
if(\\本站点\生活水池水位<=20)
{
\\本站点\电磁阀1=1;
}
if(\\本站点\生活水池水位>=80)
{
\\本站点\电磁阀1=0;
}
if(\\本站点\电磁阀1==1 && \\本站点\水泵1电磁阀==0 && \\本站点\水泵2电磁阀==0 && \\本站点\水泵1==0 && \\本站点\水泵2==0)
{
\\本站点\生活水池水位=\\本站点\生活水池水位+25;
}
if(\\本站点\电磁阀1==1 && \\本站点\水泵1电磁阀==1 && \\本站点\水泵1==1 && \\本站点\水泵2电磁阀==0 && \\本站点\水泵2==0)
{
\\本站点\生活水池水位=\\本站点\生活水池水位+15;
}
if(\\本站点\电磁阀1==1 && \\本站点\水泵1电磁阀==1 && \\本站点\水泵2电磁阀==1 && \\本站点\水泵1==1 && \\本站点\水泵2==1)
{
\\本站点\生活水池水位=\\本站点\生活水池水位+5;
}
if(\\本站点\电磁阀1==0 && \\本站点\水泵1电磁阀==1 && \\本站点\水泵1==1 && \\本站点\水泵2==0 && \\本站点\水泵2电磁阀==0)
{
\\本站点\生活水池水位=\\本站点\生活水池水位-10;
}
if(\\本站点\电磁阀1==0 && \\本站点\水泵1电磁阀==1 && \\本站点\水泵2电磁阀==1 && \\本站点\水泵1==1 && \\本站点\水泵2==1)
{
\\本站点\生活水池水位=\\本站点\生活水池水位-20;
}
3 使用的其他命令语言
ShowPicture()
八、 结束语
本次实验是我们第一次真正意义上的接触组态王软件。通过本次实验,我们小组成员对组态王的知识了解掌握了很多,对以前学习的知识也有了进一步的拓展和延伸。本次课程设计第一次接触组态王软件是在实验室。实验伊始我们认为前面的步骤过于简单,就不断跳跃直接进入到画面绘制部分,但画面绘制完成之后却发现所有的模块不能有效的连在一起,最后经过查看网络视频仔细翻阅书籍才发现问根源并解决。在本次课程设计中我们也遇到了很多其他的问题,比如程序编写、画面模块的选择,但经过网络视频的学习,以及向同学请教,举一反三,相互讨论,最终收获颇丰。通过本次实验我们认识到如何根据实际情况去构架我们需要的实验模型,利用组态王软件合理的实时显示过程控制情况。本次实验除了对组态王软件的学习外,我们也在日常生活中学会了怎样去跟团队成员进行协调,提高工作效率;如何最大化利用身边资源去学习和认识新的事物,增强自己的学习能力。当然由于我们能力有限,在我们的实验设计中也还存在着很多的不足,希望老师能够给我们指出。我们必将努力修改,以期完善。
九、 参考书目
[1]组态王 King View. (2011年6月). 6.5初级培训教程. 北京: 北京亚控科技发展有限公司.
[2]组态王软件学习视频http://i.youku.com/u/UNDYxOTAzNzY4
[3]百度百科对组态王介绍http://baike.baidu.com/view/181916.htm