Java课程设计------电梯控制系统

合集下载

电梯课程设计---电梯模拟控制系统设计

电梯课程设计---电梯模拟控制系统设计

电气控制技术课程设计任务书20 11 -20 12 学年第 2学期第 19 周- 19 周题目电梯模拟控制系统设计内容及要求运行要求:运行程序时,电梯停在一楼。

如按下A3,电梯从一楼到二楼,并等待再按选择楼层按钮,如再按A6按钮则电梯从二楼到四楼,然后再按A1按钮电梯会从四楼到一楼。

其它情形实验者可多做几次,其具体效果与实际电梯相类似。

根据运行要求,画出控制系统线路图、列输入输出分配表、编写梯形图并逐条加注释,且写出程序流程图。

完成课程设计说明书与课程设计报告。

进度安排1、讲授课程设计的要求、任务和方法,布置设计题目(0.5天);2、查阅资料,确定设计方案(1天);3、设计、实验调试并完成课程设计报告(2.5天);4、当场个人答辩及报告评阅(1天)。

学生姓名:蔡系海指导时间 2012 年6月 18日至2012年6月 22日指导地点: F楼 212室任务下达2012 年 6月 15日任务完成2012年6月 22日考核方式 1.评阅□ 2.答辩□ 3.实际操作□ 4.其它□指导教师系(部)主任摘要随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,电梯也已成为人类现代生活中广泛使用的运输工具。

随着人们对电梯运行的安全性、舒适性等要求的提高,电梯得到了快速发展,其拖动技术已经发展到了调频调压调速,其逻辑控制也由 PLC 代替原来的继电器控制。

可编程控制器(PLC)因为稳定可靠、结构简单、成本低廉、简单易学、功能强大和使用方便已经成为应用最广泛的通用工业控制装置,成为当代工业自动化的主要支柱之一。

电梯控制要求接入设备使用简便,对应系统组态的编程简单,具有人性化的人机界面,配备应用程序库,加快编程和调试速度。

通过 PLC 对程序设计,提高了电梯的控制水平,并改善了电梯的电梯运行的舒适感。

本文争对以上优点,对电梯运行进行了改进,使其达到了比较理想的控制效果。

关键词 PLC 电梯控制系统目录前言.......................................................... .5一. 四层电梯控制上下行主电路 (7)二. 四层电梯控制电路图 (7)三. 四层电梯门电机控制电路原理 (7)四. 程序流程图 (8)五. 输入/输出的分配表 (8)六.四层电梯控制程序梯形图 (9)七. 心得体会 (13)八. 参考文献 (14)前言伴随着工厂自动化程度的提高,PLC可编程控制器在工厂中的应用也越来越广泛,而且几乎涉及到工厂的各个方面,包括供电、生产、物料管理、运输等等。

电梯控制系统

电梯控制系统

计算机科学与技术学院硬件课程设计报告姓名:杨明明学号: 08113391 专业:计算机科学与技术班级:计算机11-2班设计题目:电梯控制系统成员:杨明明、杨童指导教师:王莉2013年10月徐州课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日摘要这个报告主要介绍一个基于TPC-ZK教学实验箱设计的模拟电梯控制系统,系统用数字键盘1-8输入楼层号,通过八段数码管显示楼层以及演示楼层变化过程,使用直流电机的正转、反转、停止动态演示楼梯的运行过程。

系统基本上模拟了现实生活中的电梯。

系统硬件部分主要使用了8254芯片、8255芯片、0832数模转换、八段数码管、直流电机等功能模块。

系统软件部分使用C语言编写,主要包括直流电机转动子程序、八段数码馆控制子程序、数字键盘扫描输入子程序等功能模块等。

通过此次模拟实验,加深了对硬件课程内容的理解和增强了知识的应用性,对将来从事电梯等控制系统设计有极大的裨益之处。

关键词:模拟电梯、直流电机、八段码显示器、8255、8254、0832、C语言目录一.设计目的 (5)二.需求分析 (5)三.设计任务要求 (5)四.分工情况 (6)五.实验所需芯片和原件 (7)5.1 8253/8254 (7)5.2可编程并行接口芯片8255 (8)5.3 八段码 (11)5.4直流电机 (13)5.5 DA0832数模转换器 (14)六.分部设计与方案 (16)6.1 分步设计框图 (16)6.2系统功能模块图 (17)七.软件功能 (18)八.软件流程图 (19)九.实验连接图及运行结果图 (22)十.详细代码 (23)十一.运行结果与错误分析 (27)十二.设计总结 (28)十三.参考资料 (30)一.设计目的《硬件课程设计》微机课程综合设计用于检验和提高学生在原理与接口综合应用方面分析问题与解决问题的能力,同时也给学生提供更多、更好的训练机会,课程给出了十几道微机硬件应用综合测试题。

电梯控制系统(Java课程设计)内容

电梯控制系统(Java课程设计)内容
当电梯正在上行时,如果上行队列的队列头改变时,系统将同时将这个新的队列头发送给电梯作为它的新目的地。有两种原因引起队列头的改变。
(1)新的请求插入到上行队列头。
(2)电梯到达某个楼层将这个楼层的请求从上行队列的队列头删除,后继的更高楼层号成为对列头。
当电梯正在下行时,如果下行队列的队列头改变时,系统将同时将这个新的队列头发送给电梯作为它的新目的地。有两种原因引起下行队列头的改变。
(2)M被插入到上行队列的合适位置。
(3)如果M被插到上行队列头。
如果电梯正处于上行状态。将M发送给电梯作为目的地。
如果电梯处于停止状态。将M发送给电梯作为目的地。
(4)电梯到达此楼层。
(5)电梯自动打开门(用例9)。
(6)乘客进入电梯。
(7)超重测试(用例6)。
用例2按下某楼层的下行按钮(go down stair)。
用例8打开某层电梯锁(open floor)
此层的楼层请求按钮和电梯内的楼层按钮恢复正常。
用例9自动打开电梯门(auto open door)
(1)电梯到达某楼层。
(2)电梯自动开门。
用例10自动关闭电梯门(auto close door)
(1)电梯门打开的状态达到设置的时限。
(2)关闭电梯门。
A3 类模型
根据分析,我们可以得到下面这些类。
乘客类(Passenger)、管理员类(Manager)、电梯类(Elevator)、电梯门类(ElevatorDoor)、楼层的上行请求按钮类(Go Up Request)、楼层的下请求按钮类(Gequest)、楼层锁类(lock)、指示灯类(Indicate Light)、队列类(Queue)、定时器类(Timer)、异常处理类(Expection)。

电梯控制课程设计方案模板

电梯控制课程设计方案模板

一、项目背景随着城市化进程的加快,高楼大厦不断涌现,电梯作为现代建筑的重要组成部分,其安全性、可靠性和智能化水平越来越受到人们的关注。

为提高学生对电梯控制系统的了解和掌握,培养其动手能力和创新精神,特制定本课程设计方案。

二、课程目标1. 使学生掌握电梯控制系统的基本原理和组成;2. 培养学生运用PLC(可编程逻辑控制器)进行电梯控制系统的设计和编程能力;3. 提高学生分析问题和解决问题的能力;4. 增强学生的团队协作和沟通能力。

三、课程内容1. 电梯控制系统概述1.1 电梯控制系统的发展历程1.2 电梯控制系统的基本组成1.3 电梯控制系统的功能与特点2. PLC基础知识2.1 PLC的基本结构2.2 PLC的工作原理2.3 PLC的编程语言3. 电梯控制系统设计3.1 电梯控制系统的设计原则3.2 电梯控制系统的硬件设计3.3 电梯控制系统的软件设计3.4 电梯控制系统的调试与测试4. 电梯控制系统案例分析4.1 单层电梯控制系统4.2 多层电梯控制系统4.3 智能电梯控制系统四、教学手段与方法1. 讲授法:教师讲解电梯控制系统的基本原理、组成、功能与特点,使学生建立初步的认识。

2. 实验法:通过PLC编程和电梯控制系统设计实验,使学生掌握电梯控制系统的实际操作技能。

3. 案例分析法:通过分析典型案例,使学生了解电梯控制系统的实际应用。

4. 小组讨论法:鼓励学生积极参与讨论,提高团队协作和沟通能力。

五、课程考核1. 平时成绩:包括课堂表现、实验报告、小组讨论等,占总成绩的30%。

2. 期末考试:考察学生对电梯控制系统的掌握程度,占总成绩的70%。

六、教学资源1. 教材:《电梯控制系统》、《PLC编程与应用》等;2. 实验设备:PLC实验箱、电梯控制系统实验平台等;3. 教学课件:电梯控制系统相关教学课件。

七、教学进度安排1. 电梯控制系统概述:2课时2. PLC基础知识:4课时3. 电梯控制系统设计:6课时4. 电梯控制系统案例分析:4课时5. 实验与课程设计:8课时八、预期成果通过本课程的学习,学生能够掌握电梯控制系统的基本原理、组成、功能与特点,具备运用PLC进行电梯控制系统设计和编程的能力,为今后的实际工作打下坚实的基础。

java课程设计报告(模拟电梯系统)

java课程设计报告(模拟电梯系统)

Java课程设计报告组号:第四组课题名称:模拟电梯调度班级:09计一课题组成员姓名及学号:09030101课程设计日期:2011.6.20-2011.6.24地点:秋白楼B720一.正文1)[课程设计目的与要求]○1目的掌握线程的应用及线程在多媒体中的使用,了解线程的运行机制和线程的新建、就绪、运行、挂起、死亡五种状态,对线程由新的认识和巩固。

熟练java的动画编程,理解repaint()方法的调用过程及如何通过改写update()方法和双缓冲技术消除动画中出现的闪烁现象。

理解java的容器和组件的应用。

掌握java的事件处理机制:实现ActionListener接口,对事件源添加侦听器,实现actionPerformed()方法用以处理事件源所产生的事件。

另外使组员能够针对具体的有一定代表性的小型综合应用类课题设计、分析,全面掌握面向对象的思想、JAVA语言的应用技巧、方法,从而使组员进一步理解和掌握利用JAVA开发综合系统的过程,学会用java开发工具,同时培养组员的合作意识和团队精神,培养学生对实际系统的采用面向对象的方法进行分析与设计能力,从而使学生提高JAVA语言运用与开发的综合能力。

○2需求分析模拟电梯调度:有一栋三层的楼房,楼内有三个电梯。

要求电梯实现可以正常上下,和到达目的楼层后即停留并且实现开门及关门动作。

电梯需有多层停留功能即:当对同一个电梯需要其在多层都有下客时,电梯要在有下客动作的楼层停留然后自动去下一个有下客动作的楼层,而不需要乘客在次发出请求。

电梯具有距离发出请求的楼层最近的电梯响应请求的功能即:当某一楼层有乘客需要使用电梯时,由距离该楼层最近的电梯去响应,而不是任意一个电梯都可以响应。

(注:当存在距离该楼层最近的电梯且该电梯正在远离该楼层运动时该电梯不响应,当存在多个电梯距离该楼层最近时由编号低的电梯响应而不是全都响应。

2)[本人在课程设计中承担的任务]在课程设计中我主要负责事件处理,并判断该事件是何种事件,需要做出怎样的响应。

电梯控制系统的课程设计

电梯控制系统的课程设计

电梯控制系统的课程设计一、课程目标知识目标:1. 学生能理解电梯控制系统的基本构成和原理,掌握电梯运行过程中涉及的关键技术。

2. 学生能够描述电梯控制系统中的传感器、执行器、控制单元等组件的作用及相互关系。

3. 学生了解电梯控制系统的安全规范和行业标准。

技能目标:1. 学生能够运用所学知识,分析并解决电梯运行过程中可能出现的故障问题。

2. 学生通过小组合作,设计并搭建一个简单的电梯控制系统模型,提高动手实践能力。

3. 学生能够运用相关软件对电梯控制系统进行仿真测试,优化系统性能。

情感态度价值观目标:1. 学生通过学习电梯控制系统,培养对现代智能交通系统的兴趣,提高科学素养。

2. 学生在课程学习中,树立安全意识,关注电梯乘坐安全问题,提高社会责任感。

3. 学生通过小组合作,培养团队协作精神,提高沟通与交流能力。

课程性质:本课程为高二年级电子技术及应用课程的一部分,旨在让学生了解电梯控制系统的基本原理,提高学生的实际操作能力和创新能力。

学生特点:高二学生在电子技术方面已有一定的基础,对实际操作和创新活动有较高的兴趣。

教学要求:结合学生的特点和课程性质,注重理论与实践相结合,提高学生的动手实践能力和解决实际问题的能力。

在教学过程中,关注学生的个体差异,鼓励学生积极参与,培养团队协作精神。

通过本课程的学习,使学生能够将所学知识应用于实际生活,提高学生的综合素质。

二、教学内容本章节教学内容主要包括以下几部分:1. 电梯控制系统概述:介绍电梯控制系统的基本概念、发展历程、应用领域及未来发展趋势。

2. 电梯控制系统组成:详细讲解电梯控制系统的各个组成部分,包括传感器、执行器、控制单元、人机交互界面等,并分析各部分的功能和相互关系。

3. 电梯控制原理:阐述电梯运行过程中的控制原理,包括速度控制、位置控制、群控系统等,结合教材案例分析实际应用。

4. 电梯控制系统设计:介绍电梯控制系统设计的基本流程、方法和注意事项,引导学生运用所学知识进行实际设计。

六层电梯控制系统程序设计课程设计

六层电梯控制系统程序设计课程设计

六层电梯控制系统程序设计课程设计信息与电气工程学院课程设计说明书(2014 /2015 学年第二学期)课程名称:《可编程序控制器应用》课程设计题目:六层电梯控制系统程序设计专业班级:学生姓名:学号:指导教师:设计周数:2周设计成绩:2014年6月25日一、课程设计目的1、对PLC和变频器等部件进行选型设计。

2、绘制I/O地址分配表及相关图纸。

3、绘制PLC的程序,并利用实验室设备进行模拟实验。

4、对课程设计进行总结,撰写课程设计说明书。

二、设计内容1、技术要求(1)设计控制系统应符合故障安全原则;(2)设计应符合国家相应标准;(3)应有楼层和方向数码显示;(4)电梯应有维修控制功能;(5)应具有自动调整功能;(6)电梯的运行应符合方向优先等原则;2、系统结构和组成采用TVT—2000E组合式多层电梯控制模型由曳引系统、导向系统、门系统、轿厢系统、重量平衡系统、电力拖动系统、电气控制系统、安全保护系统等组成。

曳引系统由曳引系统机(带减速器三相异步电动机)或一相永磁同步机、曳引钢丝绳、导向轮等组成,是电梯的动力源。

导向系统由导轨、导轮和导轨架等组成。

它的作用是限制轿厢和对重的活动自由度,使轿厢和对重只能沿着导轨作稳定升降运动。

门系统由轿厢门、开门机、联动机构等组成。

轿厢门设在轿厢入口、由门扇和门导轨架等组成。

轿厢的厢体由厢底、厢壁、厢顶等组成,轿厢内部设有轿厢控制器,其操纵按钮设在轿厢外部。

电力拖动系统由曳引电机、变频器等构成,具有速度反馈的调速控制系统,实现对电梯的速度控制。

电气控制系统由操纵装置、位置显示装置、平层装置、PLC(选用松下最新产品FP∑)、触摸屏、传感器、光电编码器等组成。

对电梯的运行方式实行操纵和控制。

电梯模型上设有机械缓冲器,具有撞底的保护作用。

电气上还设有平层限位的各种保护功能。

3、电梯程序设计3.1、控制要求(1)、开始时,电梯处于任意一层。

(六层电梯为-1~5层)(2)、当有外呼梯信号到来时,轿厢响应该呼梯信号,到达该楼层时,轿厢停止运行,轿厢门打开,无人操作时,延时一定时间后自动关门。

软件工程专业课程设计项目-电梯控制课程设计报告

软件工程专业课程设计项目-电梯控制课程设计报告

课程设计课程名称___专业课程设计项目 _学生学院___计算机学院___________ 专业班级___软件工程0804_________ 学号、姓名_201X年 1 月2 日目录1.引言 (2)1.1编写的目的 (2)1.2软件产品的作用范围 (2)1.3背景 (2)2、一般性描述 (3)2.1、产品与其环境之间的关系 (3)2.2、产品功能 (3)2.3、用户特征 (3)2.4、限制与约束 (3)2.5、假设与前提条件 (3)4.详细需求 (4)4.1功能需求 (4)4.1.1功能需求:电梯上下运动控制 (4)4.1.2功能或行为需求:优先级控制 (5)4.2 外部界面需求 (5)4.2.1用户界面 (5)4.3 性能需求 (6)4.3.1精度 (6)4.3.2时间特征 (6)4.3.3灵活性 (7)4.4 属性 (7)4.4.1 可用性 (7)4.4.2 安全性 (7)4.4.3 可维护性 (7)4.4.4可移植性 (7)5.代码设计 (8)5.1概要设计 (8)5.2详细设计 (11)6.运行结果 (11)7.总结 (17)参考资料 (17)1.引言1.1编写的目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。

1.2软件产品的作用范围近年来,随着计算机技术日新月异的发展,编程语言及自动控制都有了很大的进步。

这为人们的学习和生活提供了极大的便利。

电梯技术的发展也离不开这一切。

现在无论是在办公大楼或者是企业,或者是公司内部,都离不开电梯的身影。

对于电梯的自动控制技术的研究也越来越多。

电梯控制系统程序

电梯控制系统程序
if(call_floor[i]||call_floordown[i]) call_floor[i],call_floordown[i]逻辑或 (即其中有一个为1,则结果为1)
{cf=i;return;}
for(i=nf-1;i>=1;i--)
AIC23#include<reg51.h> 头文件
#include<INTRINS.H> 头文件
#define MAXFLOOR 4 宏定义 令MAXFLOOR=4
#define MOTOR_UP MOTOR_L=0, MOTOR_R=0; 宏定义 MOTOR_UP,令 MOTOR_L=0, MOTOR_R=0
{ if(timer1==20)
{
timer1=0;
if(dir==1)
nf++;
else
{nf--;
}
flag=0;
TR0=0;
P0=LED_CODES[nf];
if(cf==nf)
{TR0=0;ledu=ledd=1;stop=1;return;}
if(call_floor[i]||call_floorup[i])
{cf=i;return;}
for(i=nf+1;i<=MAXFLOOR;i++)
if(call_floor[i]||call_floordown[i])
}
}
void time0_int() interrupt 1 设置定时中断方式1 (当满足一定的条件时,就进入此定时计数器进行定时计数)
{
TH0=0x3C;
TL0=0xB0;

Java课程设计------电梯控制系统

Java课程设计------电梯控制系统
如closeDoor.setFont(new Font(“TimesRoman”,Font.BOLD,12));
这个语句将closeDoor上显示的文字颜色设置成红色。
Java.awt包还提供了用户绘图操作的类Graphics,其中包括了许多绘制文字和图形的相关方法。使用Graphics类可以绘制线、圆和椭圆、矩形和多边形、显示图像、动画和各种字体。
为了保证电梯系统的安全,在任何不安全的情况下,紧急制动就会被促发,电梯被强制停止。
A2用例模型
1.角色识别
根据前面系统的描述,可以确定与该系统交互的两个角色:电梯管理员(elevator manager)和乘客(passenger),其中乘客是电梯的主要使用者,电梯管理员的责任是对电梯进行维护(见图A1)。
用例8打开某层电梯锁(open floor)
此层的楼层请求按钮和电梯内的楼层按钮恢复正常。
用例9自动打开电梯门(auto open door)
(1)电梯到达某楼层。
(2)电梯自动开门。
用例10自动关闭电梯门(auto close door)
(1)电梯门打开的状态达到设置的时限。
(2)关到上行队列头。
(2)电梯到达某个楼层将这个楼层的请求从上行队列的队列头删除,后继的更高楼层号成为对列头。
当电梯正在下行时,如果下行队列的队列头改变时,系统将同时将这个新的队列头发送给电梯作为它的新目的地。有两种原因引起下行队列头的改变。
(1)新的请求插入到下行队列头。
(2)电梯到达某个楼层将这个楼层的请求从下行队列的队列头删除,后继的更高楼层号成为对列头。
6.指示灯类(Indicate Light)
指示灯分为楼层指示灯和电梯状态指示灯,其中State属性表示指示灯的状态(亮或灭)。楼层指示灯有Show(Floor)方法用于显示电梯所在楼层数,电梯状态指示灯有Show(UporDown)方法用于显示电梯上行或下行。

数字电子技术课程设计简易电梯控制系统

数字电子技术课程设计简易电梯控制系统

目录一、电路系统总体设计方案以及设计原理二、系统总电路图三、单元电路(子模块、子程序)分析四、电路的安装和调试五、元件清单六、总结与体会课程设计的任务要求1.1、任务:设计一个可用于四层楼的简易电梯控制系统,楼层标记用0-3表示。

要求具有以下功能:(1)假设每次只有一层楼有呼叫,按下呼叫按钮后,呼叫楼层指示灯亮,电梯将从当前楼层运行到呼叫楼层,指示灯熄灭;(2)当电梯超重时,报警灯亮,电梯拒绝运行;(3)系统能手动复位,复位后,电梯停在第0层;(4)可根据实际情况,设计其它功能。

1.2、要求:(1)思路清晰,给出整体设计框图和总电路图;(2)单元电路设计,给出具体设计思路和电路;(3)写出设计报告。

一、电路系统总体设计方案以及设计原理1.1、设计思路和方案(1)主体思路:此电路系统核心元器件为74ls192芯片,我们通过利用与非门和非门以及其他的芯片来实现由系统中25HZ的函数发生器产生的时钟脉冲信号来控制74ls192芯片的加减计数功能。

(2)此电路系统分为两个模块,上半部分由开关、显示器、74ls148芯片、74ls85芯片、74ls192芯片、与非门和非门所组成,用以控制简易电梯的用开关控制的要去的楼层显示以及楼层升降显示(相比前一个显示器有延时,由函数发生器的脉冲信号决定)。

并且能通过74ls192芯片的置数功能管脚来实现电梯楼层的置零功能。

第二个模块即下半部分由单次脉冲源、显示器、74ls192芯片、74ls00芯片、非门和发光二极管所组成,用以控制实现简易电梯的超重报警功能,由单次脉冲源(有上升沿与下降沿)来表示电梯里面人数的增减,依旧还是以74ls192芯片来控制加减计数功能。

电路系统中设置为电梯中超过四人便会有超重报警,此时发光二极管便会发光,同时第二模块的信号通过一个非门使得第一模块的74ls192芯片停止置数,换而实现保持功能,电梯就停止运作,不再上下楼层。

(3)两个模块均由25HZ的函数发生器的脉冲信号实现功能。

java电梯模拟系统

java电梯模拟系统

目录第一章问题描述 (3)第二章使用语言及涉及的知识 (3)第三章界面设计 (3)第四章模块设计 (7)1.启动界面: (7)2.管理界面(主界面): (7)3.情境模拟界面 (7)4.更改用户楼层: (7)5.设置电梯信息: (8)6.关于: (8)第五章详细设计 (8)1.本程序总共有15个类: (8)2.各类之间的关系:(如下图) (8)3.主要类的属性和主要方法图: (9)第六章程序测试 (10)第七章关键代码段 (15)1.启动电梯: (15)2.电梯载人: (22)3.电梯到达目标层停止: (22)4.电梯门开关: (23)第八章程序缺点及其扩展 (24)1.程序的缺点: (24)2.程序扩展: (25)第一章问题描述电梯管理算法某一幢楼20层,有两部互联的电梯。

基于线程思想,编写一个电梯调度程序。

要求:a)每个电梯里面应该有一些按键:数字键,开门键,关门键等。

b)每层楼的每部电梯门口,应该有上行和下行按钮。

c)两部电梯门口的按钮是互联的,即当一个电梯的按钮按下去的时候,其他电梯的相应按钮也同时点亮,表示也按下去了。

d)调度算法是根据这两部电梯的状态,寻找离当前楼层最近的且和请求同方向的电梯予以响应。

e)所有电梯初始状态都在第一层。

每个电梯如果在它的上层或者下层没有相应请求情况下,则应该停在原地不动。

第二章使用语言及涉及的知识使用语言:Java涉及的知识: java基础知识,Java界面编程,Java绘图技术,Java多线程编程第三章界面设计程序启动界面:程序主界面:情境模拟界面电梯外面:电梯里面更改用户楼层初始化电梯信息界面:版本信息界面:第四章模块设计1.启动界面:在程序启动时,首先启动一个闪屏,显示程序的基本信息,使用户对程序的名称及功能有个大致的印象。

2.管理界面(主界面):管理界面主要分为两大部分,即AB电梯的按钮及显示屏,而每部电梯都包括外面版和内面板。

外面版由上下行按钮和液晶屏组成,内面板包括数字键(楼层号)和开关门键。

大学毕业设计---电梯控制系统的设计

大学毕业设计---电梯控制系统的设计

2015届本科生毕业论文(设计)本科生毕业论文(设计)题目:电梯控制系统的设计与实现学院计算机学院学科门类工科专业计算机科学与技术学号姓名指导教师年月日摘要随着当前时代的进步和发展,单片机技术已经普及到我们生活、工作、科研以及各个领域,已经成为一种比较成熟的技术。

本文主要介绍了一个基于STC89C52单片机的电梯控制系统,详细描述了一个电梯控制系统的调度模块,即根据每个楼层不同用户的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务,重点是对整个电梯控制系统在单片机下的软件编程、硬件连接和各个控制模块系统流程进行的一步步透彻分析,同时对各部分硬件电路也进行了一一介绍。

整个电梯控制系统,以单片机为核心,再辅以各楼层按键和控制程序来控制整个电梯的运行,并通过数码管和发光二极管来显示电梯的实时运行状态,具有成本低、通用性强、灵活性大及易于实现复杂控制等优点,适合于我们的日常生活中的电梯控制,应用前景较广泛。

关键词:单片机;电梯控制;调度模块AbstractWith the progress and development of the current era, microcontroller technology has spread to our life, work, scientific research and various fields, has become a relatively matu -re technology. This paper introduces an elevator control system based on STC89C52 micro -controller, a detailed description of the scheduling module of an elevator control system,ac -cording to different user needs buttons on each floor, the elevator to make a reasonable jud-gment, know correctly and efficiently finish the passenger elevator, key is connected and eac -h module of the system for the control process a thorough analysis of the elevator control s -ystem under the singlechip software programming and hardware at the same time, each par -t of the hardware circuit were introduced in one one. The elevator control system, singlechi-p microcomputer as the core, supplemented by the floor buttons and the control program co -ntrol the operation of the elevator, and through the digitaltube and the light emitting diod-e to display the realtime operation state of elevator, has the advantages of low cost, versat -ility, flexibility and has the advantages of easy to implementcomplex control, control of the elevator is suitable for us in daily life, wide application prospect.Key Words:single chip microcomputer; elevator control system;scheduling module目录摘要.............................................. I I Abstract........................................... I II1.引言 (1)2.设计目的及功能需求 (2)2.1 设计目的 (2)2.2 设计功能需求 (2)3.课题的开发环境简介 (3)3.1 电路仿真图制作软件 (3)3.2 C51的程序开发软件 (3)4.系统方案论证与设计 (5)4.1 主控制器模块的选用 (5)4.2 电梯楼层显示模块的选择 (5)4.3 电梯楼层按键模块的设计 (6)5.系统的硬件设计 (7)5.1主控制模块的设计 (7)5.1.1 单片机STC89C52概述 (7)5.1.2 单片机时钟电路 (10)5.1.3 单片机复位电路 (10)5.2 显示模块的设计 (11)5.3 按键模块的设计 (12)5.4 蜂鸣器鸣响模块的设计 (13)6.系统的软件设计 (14)6.1程序设计思路 (14)6.2系统主程序框图 (14)6.3系统程序流程图 (15)7.系统实物的焊接与调试 (16)7.1系统焊接步骤 (16)7.2系统电路的调试 (16)7.3系统实物展示 (16)8. 结语 (17)参考文献 (18)附录 (19)致谢 (27)1. 引言近年来我国的经济飞速发展,人民生活水平的迅速提高,座座高楼大厦崛地而起,工作居住条件得到了巨大的改善。

数字逻辑课程设计-电梯控制系统【范本模板】

数字逻辑课程设计-电梯控制系统【范本模板】

华中科技大学课程设计报告数字电路与逻辑设计课程设计报告题目:电梯控制器的设计与实现专业:班级:学号:姓名:电话:邮件:分组:完成日期:指导教师:华中科技大学课程设计报告团队成员:姓名班级学号贡献百分比实验部分完成情况(亮点、完成、基本完成、未完成、时间)总分:实验部分70% + 报告30%)检查老师签名:华中科技大学课程设计报告目录1课程设计概述。

.。

..。

.。

.。

.。

...。

.。

.。

.。

.。

...。

...。

.。

.。

..。

..。

.。

..。

.。

.。

..。

...。

.....。

..。

..。

..。

..。

...。

.。

....。

.。

.。

..。

..。

.。

.。

.。

..1.1课设目的。

..。

.。

.。

.。

...。

.。

..。

..。

...。

.。

.。

.。

.....。

.。

..。

..。

..。

.。

.。

...。

.....。

...。

..。

.。

...。

.。

..。

.。

.........。

...。

...。

1.2课设要求 .。

...。

..。

.。

..。

.。

.。

.。

.....。

....。

..。

...。

..。

.。

...。

.。

..。

.。

..。

.。

.。

.。

.。

..。

.。

.。

.。

....。

...。

.。

...。

...1.3课设任务。

..。

..。

.。

....。

.。

.。

..。

.....。

.。

.。

.。

.。

..。

.。

.。

.。

.。

...。

..。

.。

.。

.。

.。

.。

.。

...。

.。

.。

...。

.。

.。

.。

.。

....。

.。

.。

1.4实验环境 .。

....。

.。

..。

.。

.。

.....。

...。

.。

.。

.。

.。

.。

..。

.。

.。

.。

...。

.。

.。

..。

.。

.。

..。

.。

.。

.。

.....。

..。

.。

..。

.。

.。

..。

.。

.。

.。

2基本方案设计 ..。

.。

..。

.。

....。

.。

.。

.。

...。

...。

.。

..。

.。

...。

..。

.。

.。

.。

.。

.....。

.........。

.。

..。

...。

..。

..。

...。

.。

.。

...。

....。

2.1设计需求。

...。

电梯控制系统课程设计

电梯控制系统课程设计

电梯控制系统课程设计一、课程目标知识目标:1. 让学生理解电梯控制系统的基础知识,掌握其工作原理和关键部件的功能。

2. 使学生掌握电梯控制系统的设计流程,了解不同类型电梯的控制策略。

3. 帮助学生了解电梯控制系统相关的安全规范和标准。

技能目标:1. 培养学生运用所学知识分析和解决实际电梯控制问题的能力。

2. 提高学生设计电梯控制系统的方案并进行模拟调试的能力。

3. 培养学生查阅资料、团队协作和沟通表达的能力。

情感态度价值观目标:1. 培养学生对电梯控制系统及工程技术领域的兴趣,激发他们的求知欲。

2. 培养学生严谨认真、一丝不苟的科学态度,提高他们的工程素养。

3. 引导学生关注电梯安全,增强社会责任感和使命感。

分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 学生能够描述电梯的基本结构、工作原理及关键部件的作用。

2. 学生能够根据实际需求,设计合适的电梯控制方案并进行模拟调试。

3. 学生能够通过查阅资料、团队协作,撰写电梯控制系统设计报告。

4. 学生能够在课堂上积极参与讨论,主动分享自己的观点和经验。

5. 学生能够关注电梯安全,提高安全意识,自觉遵守相关规范和标准。

二、教学内容本章节教学内容依据课程目标,紧密结合课本,确保科学性和系统性。

具体安排如下:1. 电梯基本结构与原理- 介绍电梯的组成部分,如曳引机、导轨、轿厢、对重等。

- 阐述电梯的工作原理,包括曳引、导向、轿厢和对重平衡等。

2. 电梯控制系统设计流程- 分析电梯控制系统的设计步骤,如需求分析、方案设计、硬件选型、软件编程等。

- 结合教材章节,讲解不同类型电梯的控制策略。

3. 电梯控制系统的安全规范与标准- 引导学生了解我国电梯安全规范和相关标准。

- 分析电梯控制系统在设计过程中应考虑的安全因素。

4. 电梯控制系统设计与模拟调试- 指导学生运用所学知识,设计简单的电梯控制方案。

- 组织学生进行模拟调试,验证方案的可行性。

电梯调度编写(oo-java编程)

电梯调度编写(oo-java编程)

电梯调度编写(oo-java编程)第⼆单元的问题是写⼀个关于电梯调度的程序。

需要模拟⼀个多线程实时电梯系统,从标准输⼊中输⼊请求信息,程序进⾏接收和处理,模拟电梯运⾏,将必要的运⾏信息通过输出接⼝进⾏输出。

主要锻炼学⽣的多线程程序编写能⼒。

由于需要实时的输⼊和输出,我们不得不采⽤多线程。

在这个单元中任务仍然被分为三个⼩任务:①完成单电梯(随时允许输⼊)②单电梯+(楼层增加负层,必须使⽤⽐先来先服务更加⾼效的算法)③多电梯调度(增加重量限制、楼层停靠限制、换乘)⼀、调度算法设计单电梯的调度算法:我在⽹上寻找调度算法后发现,⽹上⼤多的算法采⽤的都是静态算法,⼏乎没有动态算法。

所以,我⾃⼰设计⼀个算法(或者说是参照实际使⽤中电梯的运转⽅式设计的算法),如下:①查看该楼层是否有请求(包括进电梯和出电梯),有则开门转②,否则转③②让请求的⼈进出,并进⾏输出,所有请求进的⼈将这些⼈的出电梯请求同时加⼊电梯的请求序列中。

关门转③③沿电梯运动⽅向查看是否有任意类型的请求,如果有请求则向该⽅向运动⼀层转④,否则改变⽅向查看请求。

如果在另⼀⽅向上有请求,则想这⼀⽅向移动⼀层转④。

如果两个⽅向都没有请求则进程休息(wait),等待唤醒,唤醒后转④。

④如果不在输⼊任何需求则结束,否则转①。

多电梯的调度算法:多电梯我觉得可以在原来的基础上进⾏修改,在调度器分配请求时通过某种⽅式将请求分给不同的电梯,然后每台电梯按照单电梯的调度算法进⾏运⾏即可。

由于本⼈的多电梯的调度算法效率⽐较低,所以这⾥就不多赘述,可以参考其他同学的多电梯调度算法。

⼆、程序分析对每次的程序使⽤进⾏oo度量,使⽤描绘类图重要符号意义说明:ev(G)基本复杂度是⽤来衡量程序⾮结构化程度的.Iv(G)模块设计复杂度是⽤来衡量模块判定结构,即模块和其他模块的调⽤关系。

v(G)是⽤来衡量⼀个模块判定结构的复杂程度,数量上表现为独⽴路径的条数。

LOC: Line of CodeNCLOC:Non-Commented Line Of CodeP1oo度量LOC NCLOC⽅法个数属性个数Elevator18316952Main9910Midlist262652OrderClass464227diagram类图Sequence DiagramP2oo度量LOC NLOC⽅法个数属性个数Elevator219206107Main111110Midlist333362OrderClass466225diagram类图Sequence DiagramP3oo度量LOC NLOC⽅法个数属性个数Chart 626251Elevator 3072781314Entry 8810Main 121210Midlist 3673222119Orderlist 46 4225类图Sequence Diagram前⾯的时序图看着太复杂,⽽三次作业的结构⼤致⼀致,于是我做了⼀个简易版的sequence diagram。

电梯控制系统设计_毕业设计

电梯控制系统设计_毕业设计

电梯控制系统毕业设计摘要随着经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速发展,交流变频调速技术已经进入一个崭新的时代,其应用越来越广。

电梯是现代高层建筑的垂直交通工具,其设计要求稳定性、安全性及高。

随着人们生活水平的不断提高,对电梯的要求的也相应提高,电梯得到了快速发展,我国国产电梯多为继电器,本次设计的软件控制部分由Verilog来实现,研究、分析电梯的逻辑关系,进而实现控制。

通过合理的选择和设计,提高了电梯的控制水平,并改善了电梯运行的舒适感,使电梯达到了较为理想的控制效果。

关键词:电梯硬件描述语言编译仿真AbstractWith the high-speed development of economy, microelectric technique , technology of the computer and automatic control technology have been developed rapidly, exchange frequency conversion and adjust speed technology and already enter a brand-new era, its application is wider and wider. The lift is the vertical means of transportation of the modern skyscraper, its designing requirement stability , security and high. Living standard constant to raise with people, requisition for lift too corresponding to improve, the lift has got the fast development, the domestic lift of our country is mostly relay control method, the software designed this time is controlled some to realize by Verilog, the logic relation of studying , analysing the lift , and then realize control. Through rational choice and design , have improved the control level of the lift , has improved the comfort that the lift operates, make the lift reach the comparatively ideal control result.Keywords: lift Hardware Description Language Compiler Simulator目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1概述 (1)1.2原始参数 (1)1.3电梯性能指标及控制要求 (2)1.3.1 电梯的主要性指标 (2)1.3.2 电梯的控制要求 (2)第2章硬件控制 (3)2.1 主拖动回路的设计 (3)2.1.1 电梯机房里的主要部件 (3)2.1.2电梯的安全保护装置 (5)2.2 电梯拖动 (5)2.2.1电梯参数的计算 (5)2.2.2变频器的工作原理 (8)2.2.3 电机与变频器配置及容量的选择 (11)2.3 电梯门控制系统 (14)2.3.1 开关门过程 (14)2.3.2 门的拖动系统 (14)2.4第3章控制系统软件控制回路 (16)3.1 控制系统比较 (16)3.2 电梯控制回路设计 (17)3.2.1 Verilog HDL及其特点 (17)3.2.2 Verilog HDL的特点 (17)3.2.3控制系统 (18)3.2.4紧急停靠模块 (20)3.2.4 主控模块的设计 (26)3.2.5 信号消除控制实现 (28)3.2.6判断响应 (29)3.2.7管脚分配 (30)第4章经济效益分析 (30)结论 (31)致谢 (32)参考文献 (33)附录1 (33)附录2 (36)附录3 (40)第1章绪论电梯是标志现代物质文明的垂直运输工具、是机—电一体化的复杂运输设备。

电梯控制系统软件设计

电梯控制系统软件设计

四、电梯控制系统软件设计(一)程序设计思路所设计的电梯模型共四层,电梯的每一层均有电梯升降指示灯,每层的搂厅均设有按钮召唤电梯;电梯内部设有按钮以便乘客选择要到达的楼层,还设有开关门按钮,方便乘客进出电梯。

工作中的电梯控制系统的主要任务是对各种呼梯信号和当前电梯运行状态进行综合分析,再确定下一个工作状态。

为实现电梯自动控制,要求控制系统具有自动定向,顺向截梯,反向保号,外呼指令记忆,停梯销号,自动开关门,自动报警,手动开关门,到层指示功能二)主要程序设计流程图图五:开关门程序流程图开关门程序流程简介:当停层信号到达时,电梯停层,门电机正转,轿箱门打开,系统等待开门到位信号到达,接受到信号后,箱门保持打开延时状态;开门延时完毕后电梯开始关门,首先判断有无红外信号,若有,电梯延时 2 秒,没有信号则继续关门,直到关门到位,然后响应接下来的信号。

主程序流程图简要介绍:电梯系统上电后,系统首先判断,电梯处于哪个楼层,若电梯处于一楼,然后判断电梯是否有向上召唤信号,若有响应信号,若没有,则保持电梯门关闭状态。

当电梯处于二楼时,首先判断电梯处于上升状态还是下降状态,若处于上升状态时,记忆向下呼叫信号,响应上升信号;若电梯处于下降状态时,它将记忆向上呼叫的信号,响应向下呼叫的信号;若无呼叫信号存在,电梯则将保持门毕状态。

当电梯处于三楼时,首先判断电梯处于上升状态还是下降状态,若处于上升状态时,记忆向下呼叫信号,响应上升信号;若电梯处于下降状态时,它将记忆向上呼叫的信号,响应向下呼叫的信号;若无呼叫信号存在,电梯则将保持门毕状态。

当电梯处于四楼时,首先判断有无向下呼叫信号;有向上呼叫信号,向上运行灯亮;没有电梯将保持门毕状态。

图六:主程序简易图(三)主要程序设计1.电梯开关门控制基本控制要求:,电梯运行至某呼叫层活乘客需要去的某层后,电梯门打开,乘客进,出完毕后,电梯门自动关闭,也可以手动开,关电梯门。

根据以上要求,设计出 4 层电梯开,关门的控制梯形图如下:图七:电梯开关门梯形图图八:电梯开关门指令流程图A :手动开门时,当电梯运行到位后,按下SB1,X000 闭合,Y001 得电,电动机正转,轿箱门打开,开门到位后,行程开关SQ1动作,X002常闭触点断开,Y001失电,电梯开门过程结束。

基于Java的电梯系统实现过程

基于Java的电梯系统实现过程

基于Java的电梯系统实现过程⼀、思路写⼀个简单的电梯系统,⾸先根据⽼师提供的需求,写⼀下基础思路:电梯有最⾼层和最低层,输⼊数字选择正确楼层数输⼊数字⼤于当前楼层,则为上⾏;⼩于当前楼层,则为下⾏每次输⼊数字的时候,需要对同为上⾏的数字或者同为下⾏的数字,进⾏排序所输⼊的⽬标楼层⽤集合存放,循环最低层到最⾼层,如果当前层在集合中存在,显⽰开门,若还有⽬标楼层,则关门,继续到下⼀⽬标楼层。

当选择⼀个⽬标楼层,会⽣成随机重量记录在⽬标楼层,上⾏⽤原来重量加上⽬标楼层重量,下⾏则⽤原来重量减去⽬标楼层重量⼆、实现2.1 电梯类package Ele;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Random;public class Elevator {private List<Integer> upFloorList = new ArrayList<Integer>(); // 上升楼层private List<Integer> downFloorList = new ArrayList<Integer>(); // 下降楼层private int[] storeyWeight; // ⽬标层重量private int capacity; // 电梯最⼤重量private int topFloor; // 电梯最⾼层private int bottomFloor; // 电梯最底层private int nowFloor = 1; // 当前层public Elevator(int bottomFloor, int topFloor, int capacity) { //有参构造⽅法this.topFloor = topFloor;this.bottomFloor = bottomFloor;this.capacity = capacity;// 当前楼层减最低层,就是当前层重量的下标假如当前楼层为5楼,5楼下标就是 5-1 = 4// 初始化⽬标楼层重量,数组⼤⼩ = 最⾼层 - 最低层 + 1storeyWeight = new int[(topFloor - bottomFloor + 1)];}// 设置楼层public void SetFloor(int floorNum) {//如果所选楼层与所在楼层相同,则提⽰if (floorNum == nowFloor) {System.out.println("请选择其它楼层");return;}// ⽣成90-500之间的随机重量Random random = new Random();int thisFloorWeight = random.nextInt(500 - 90 + 1) + 90;int sum = 0;//⽬标楼层增加的重量for (int i = 0; i < storeyWeight.length; i++) {sum += storeyWeight[i];}//原重量+增加重量=当前重量System.out.println(floorNum + "层上来重量:" + thisFloorWeight + ",此时总重:" + (sum + thisFloorWeight));// 如果⽬标楼层总重量 > 最⼤重量,提⽰if (sum + thisFloorWeight > this.capacity) {System.out.println("超重了哟");return;}// 当前输⼊楼层重量加上该楼层新增加重量后的重量storeyWeight[floorNum - bottomFloor] += thisFloorWeight;//如果输⼊楼层数已经在上升或下降楼层的集合中,则只新增重量,不添加楼层if (!upFloorList.contains(floorNum) && !downFloorList.contains(floorNum)) {if (floorNum > nowFloor) {upFloorList.add(floorNum);// 上升楼层升序排序Collections.sort(upFloorList);} else {downFloorList.add(floorNum);// 下降楼层降序排序downFloorList.sort(Collections.reverseOrder());}}}// 上升:从所在层到所选楼层中的最⾼层// 下降:从所在层到所选楼层中的最低层// 获得集合中最后⼀个元素:list.get(list.size()-1);// 启动电梯public void StartElevator() throws InterruptedException {System.out.println("当前第 < " + nowFloor + " > 层");// 上⾏if (upFloorList.size() > 0) {System.out.println("---电梯上⾏---");for (int i = nowFloor + 1; i <= upFloorList.get(upFloorList.size() - 1); i++) {Thread.sleep(500);System.out.println("---第" + i + "层---");if (upFloorList.contains(i)) {System.out.println(" ☆开门☆");nowFloor = i;upFloorList.remove(upFloorList.indexOf(i));storeyWeight[i - bottomFloor] = 0;if (upFloorList.size() > 0) {System.out.println("剩余所选层数为:");Iterator it = upFloorList.iterator();while (it.hasNext()) {int floor = (int) it.next();System.out.print(floor + "层重量:" + storeyWeight[floor - bottomFloor] + " "); }System.out.println();}return;}}}// 下⾏if (downFloorList.size() > 0) {System.out.println("---电梯下⾏---");for (int i = nowFloor - 1; i >= bottomFloor; i--) {Thread.sleep(500);System.out.println("---第" + i + "层---");if (downFloorList.contains(i)) {System.out.println(" ☆开门☆");nowFloor = i;downFloorList.remove(downFloorList.indexOf(i));storeyWeight[i - bottomFloor] = 0;if (downFloorList.size() > 0) {System.out.println("剩余所选层数为:");Iterator it = downFloorList.iterator();while (it.hasNext()) {int floor = (int) it.next();System.out.print(floor + "层重量:" + storeyWeight[floor - bottomFloor] + " "); }System.out.println();}return;}}}System.out.println("⽆客");}}2.2 程序⼊⼝package pany;import Ele.Elevator;import java.util.Scanner;public class Main {public static void main(String[] args) throws InterruptedException {// 创建⼀个电梯int bottomFloor = 1; // 最低层1楼int topFloor = 12; // 最⾼层12楼int capacity = 1000; // 最⼤承重1000Elevator elvator = new Elevator(bottomFloor, topFloor, capacity);System.out.println("当前电梯可选择" + bottomFloor + "-" + topFloor + "层,请选择楼层数(输⼊-1表⽰关闭电梯门):");//输⼊内容Scanner scanner = new Scanner(System.in);while (scanner.hasNextLine()) {//如果输⼊不是数字,提⽰后,再次输⼊if (!scanner.hasNextInt()) {System.out.println("请输⼊数字!");scanner.next();}//输⼊是数字则进⾏以下操作else {int num = scanner.nextInt();//若输⼊数字为-1,意为结束输⼊,启动电梯if (num == -1) {System.out.println("------------------------");System.out.println("电梯门关闭,开始启动");elvator.StartElevator();} else if (num > topFloor || num < bottomFloor || num == 0) {//若输⼊数字不符合楼层数,则提⽰并再次输⼊System.out.println("请选择1-12楼层。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.乘客类(Passenger)
Passenger
Press()
2.管理员类(Manager)
Manager
LockFloor()
OpenFloor()
3.电梯类(Elevator)
属性State表示电梯的状态(停止、上行、下行),Position表示电梯所在的楼层(1-N),IsOverWeight标识电梯是否超重,IsNormal用于标识电梯是否正常。
根据分析,我们可以得到下面这些类。
乘客类(Passenger)、管理员类(Manager)、电梯类(Elevator)、电梯门类(ElevatorDoor)、楼层的上行请求按钮类(Go Up Request)、楼层的下请求按钮类(Go Down Request)、电梯里的楼层按钮类(Go To Floor Request)、楼层锁类(lock)、指示灯类(Indicate Light)、队列类(Queue)、定时器类(Timer)、异常处理类(Expection)。

draeLine(int x1,int y1,int x2,int y2),在坐标(x1,y1)、(x2,y2)之间画一条直线。
drawRect(int x,int y,int width,int height)方法和fillRect(int x,int y,int width,int height)方法分别用当前颜色在指定位置绘制一个矩形框和一个填充的矩形,其中参数x,y分别是矩形的左上角坐标;width,height分别用语指定矩形的宽和高。
(3)按钮除了第一层和顶层,每一层都有两个按钮(上行、下行),乘客可以呼叫上楼或下楼,顶楼只有一个下楼按钮,而第一层只有一个上楼按钮。
电梯里面具有:
(1)标示从“1”到“N”的N个按钮,用于让乘客选择所要的层数;
(2)关门按钮当乘客按下此按钮时,电梯门如果开着将关上,否则不执行任何操作;
(3)开门按钮当乘客按下此按钮时,电梯如果停在某一层,电梯门将打开,否则不执行任何操作;
(1)乘客按下电梯内L层的按钮。
(2)如果被按下的楼层号L比电梯当前所在的楼层号高。
将此楼层号插入到上行队列的合适位置。
如果L被插入到上行队列头。
如果电梯正处于上行状态。
将L发送给电梯作为电梯的目的地。
(3)如果被按下的层号L比电梯当前所在的楼层低。
将此楼层号L插入到下行队列的合适位置。
如果L被插入到下行队列头。
为了保证电梯系统的安全,在任何不安全的情况下,紧急制动就会被促发,电梯被强制停止。
A2用例模型
1.角色识别
根据前面系统的描述,可以确定与该系统交互的两个角色:电梯管理员(elevator manager)和乘客(passenger),其中乘客是电梯的主要使用者,电梯管理员的责任是对电梯进行维护(见图A1)。
方法StartUp(Floor)表示启动电梯上行到Floor层,StartDown(Floor)表示启动电梯下行到Floor层,Stop表示电梯停下来,Warn()启动电梯超重警报,CancelWarn取消电梯超重警报。
Elevator
State
Position
IsOverWeight
IsNormal
A1系统描述
1.功能描述
本电梯系统用来控制一台运行于一个具有N层的大楼电梯,它具有上升、下降、开门、关门、载客的基本功能。
大楼的每一层都有:
(1)两个指示灯这两个指示灯分别用于指示当前所在的层数和电梯的当前状态(上行、下行或停止);
(2)电梯锁用于将本层的电梯门锁住,并使本楼层的电梯按钮失效,电梯里相应的按钮也失效,使得电梯不能也不可能停在本层;
StartUp(Floor)
StartDown(Floor)
Stop()
Warn()
CancelWarn()
4.梯门类(ElevatorDoor)
属性State表示电梯门的状态(开或关),方法Open()表示打开电梯门,Close()表示关闭电梯门。
ElevatorDoor
State
Open()
Close
如果电梯门关着。打开电梯门。
如果电梯门开着。保持电梯门开状态。
用例6超重测试(overweight test)
(1)乘客进入电梯。
(2)如果电梯超重感应装置检测到超重。
电梯发出超重警报,并拒绝关闭电梯门。
乘客走出电梯。
电梯解除超重警报,并允许关闭电梯门。
用例7锁住某层电梯锁(lock floor)
此层的楼层请求按钮和电梯内的楼层按钮失效。
下面是程序的实现部分。
import java.awt.*;
import java.applet.*;
public class Applet1 extends java.applet.Applet {
Button closeDoor=new Button("关门");
按下关门按钮(close door)。
按下开门按钮(open door)。
超重测试(overweight test)。
电梯管理员的用例:
锁住某层电梯锁(lock floor)。
打开某层电梯锁(open floor)。
用例的描述如下:
用例1按下某楼层的上行按钮(go up stair)
(1)乘客按下第M层的上行按钮。
图A1
2.用例识别
在角色的基础上,可以确定系统的用例,做法是针对每一个角色考查它要求系统提供的功能,它使用系统的哪些功能,经过分析,可得到如下的用例。
乘客相关的用例:
按下某楼层的上行按钮(go up stair)。
按下某楼层的下行按钮(go down stair)。
按下某电梯内的某一层楼按钮(go to floor request)。
(2)M被插入到上行队列的合适位置。
(3)如果M被插到上行队列头。
如果电梯正处于上行状态。将M发送给电梯作为目的地。
如果电梯处于停止状态。将M发送给电梯作为目的地。
(4)电梯到达此楼层。
(5)电梯自动打开门(用例9)。
(6)乘客进入电梯。
(7)超重测试(用例6)。
用例2按下某楼层的下行按钮(go down stair)。
6.指示灯类(Indicate Light)
指示灯分为楼层指示灯和电梯状态指示灯,其中State属性表示指示灯的状态(亮或灭)。楼层指示灯有Show(Floor)方法用于显示电梯所在楼层数,电梯状态指示灯有Show(UporDown)方法用于显示电梯上行或下行。
7.楼层锁类(lock)
属性State表示楼层锁的状态(关或开),OnFloor表示锁所在的楼层数,方法On()表示开锁,Off()表示关锁。
(2)掌握简单的图形动画效果。
实训要求
创建Applet程序,实现土5-1(a)所示简单的电梯二维图形,并当单击“开门“、“关门”按钮时实现图形上的关门、开门动作。如图5-1(b)就是单击开门后正在开门的过程中。
实训指导
java.awt包提供了控制字体的Font类、控制颜色的Color类。通过这两个类的属性的设置可以实现对界面上的字体和颜色的控制。
DrawOval(int x,int y,int width,int height)方法和fillOval(int x,int y,int width,int height)方法可以在指定的矩形区域内绘制椭圆,其中的参数x、y、width、height分别表示矩形的左上角x、y坐标、宽和高。
要实现以上自定义成分,还要借助于Applet类的paint()方法,由该方法画出实际的图形。当Applet运行时,将自动创建一个Graphics类的对象g,并把这个对象参数传递给paint()方法。在paint()方法中,就可以调用Graphics类提供的绘制图形和文字的方法了。
如果电梯正处于下行状态。
将L发送给电梯作为目的地。
(4)电梯到达目的楼层。
(5)电梯自动开门(用例9)。
用例4按下关门按钮(request close door)
(1)如果电梯门关着。
保持电梯门关闭状态。
(2)如果电梯门开着。
关闭电梯门。
用例5按下开门按钮(request open door)
如果电梯停在某一层。
(1)新的请求插入到上行队列头。
(2)电梯到达某个楼层将这个楼层的请求从上行队列的队列头删除,后继的更高楼层号成为对列头。
当电梯正在下行时,如。有两种原因引起下行队列头的改变。
(1)新的请求插入到下行队列头。
(2)电梯到达某个楼层将这个楼层的请求从下行队列的队列头删除,后继的更高楼层号成为对列头。
在电梯上行过程中,当上行队列中没有比电梯当前所在的楼层更高的楼层号时,发送电梯目的地的开始从下行队列中取得。同样,在电梯下行过程中,当下行队列中没有比电梯当前所在的楼层更低的楼层号时,发送电梯目的地的开始从上行队列中取得。如此反复,当两个队列中都没有数据时,电梯暂停。
当电梯到达某层时,此层的所有请求按钮全部复位(包括楼层和电梯里的按钮),电梯门自动开启,在一段时间内如果乘客没有按下开门或关门的按钮,电梯将自动关门。
LockFloor
State
OnFloor
On()
Off()
8.队列类(Queue)
队列类用于创建上行和下行队列,IsEmpty属性表示队列是否为空,方法Insert(Elevator)用于插入元素,DeleteHead()方法用于删除队列头元素,Send(HeadElement)用于将队列头发送给电梯。
5.楼层的上行请求按钮类(Go Up Request)、楼层的下行请求按钮类(Go Down Request)、电梯里的楼层按钮类(Go To Floor Request)
属性State表示按钮是否已经被按下,Enabled表示按钮是否能用(如果被管理员锁住就不能用),OnFloor表示按钮对应的楼层号,方法Press()表示按下按钮,Reset()表示复位按钮,
相关文档
最新文档