三层电梯控制器实验报告
三层电梯报告

简单机电一体化系统制作实训报告院系:控制系班级:生产设备21331项目课题:PLC综合实训项目名称:三层电梯的控制组长:组员:时间:2015.3.8—2015.3.13目录一.课题介绍 (1)二.项目要求 (2)三.项目分析及制作方案 (3)四.小组分工 (4)五. PLC的I/O 分配表 (5)六. 硬件接线图,梯形图 (7)七. 调试分析说明 (9)八. 总结 (10)一.课题介绍现有一台升降电梯,分为三层。
电梯的上下运行和轿厢门的开关均采用接触器进行控制。
电梯的每一层都有平层信号(SQ1、SQ2、SQ3),在电梯的底层设有上行按钮SB1,二层设有上行按钮SB2和下行按钮SB3,顶层设有下行按钮SB4。
在轿厢内部设有内选信号SB5、SB6、SB7用于选择三个楼层。
为了调试系统,设有手/自动转换开关SA1。
当系统处于手动状态时,通过按钮SB8、SB9、SB10、SB11等控制电梯的上下运行和轿厢门的开关操作。
电梯设有限位保护,电梯的上行和下行设有限位开关SQ4、SQ5,轿厢门的开和关设有限位开关SQ6、SQ7。
二.项目要求1.上电时,如果系统未检测到一楼平层信号(SQ1)或二楼平层信号(SQ2),则电梯回到开始时,电梯处于任意一层。
2.当有外呼梯信号到来时,轿厢响应该呼梯信号,到达该楼层时,轿厢停止运行,轿厢门打开,延时3S后自动关门。
3.当有内呼梯信号到来时,轿厢响应该呼梯信号,到达该楼层时,轿厢停止运行,轿厢门打开,延时3S后自动关门。
4.在电梯轿厢运行过程中,轿厢上升(或下降)途中,任何反方向下降(或上升)的外呼梯信号均不响应,但如果反向外呼梯信号前方向无其它内、外呼梯信号时,则电梯响应该外呼梯信号。
例如,电梯轿厢在一楼,将要运行到三楼,在此过程中可以响应二层向上外呼梯信号,但不响应二层向下外呼梯信号。
同时,如果电梯到达三层后再响应二层向下外呼梯信号。
5.电梯应具有最远反向外呼梯响应功能。
PLC三层电梯实验报告

PLC三层电梯实验报告实验报告:PLC三层电梯实验1.实验目的本实验旨在通过使用PLC编程控制电梯的运行,在三层楼之间实现电梯的上下运行,并控制电梯门的打开和关闭。
2.实验器材-三层楼、电梯模型-PLC编程软件-电梯控制器3.实验原理-电梯模型:实验楼层采用三层楼的电梯模型,包括三个楼层BTN1、BTN2和BTN3,以及一个电梯C,门的状态通过XC、YO和Y1表示。
-编程控制:使用PLC编程软件进行电梯的控制逻辑编写,通过输入编写好的程序将控制信号传递给电梯控制器,实现电梯运行和门的开关。
4.实验步骤4.1复位PLC并初始化电梯状态,关闭所有电梯门,将三层按钮的状态初始化为低电平;4.2编写PLC程序:首先,定义电梯运行的逻辑条件,包括按钮被按下和电梯当前的位置。
其次,编写逻辑控制语句,根据按钮的状态和电梯的位置判断电梯的移动和门的开关。
最后,设置运行完成后的复位条件,回到初始状态;4.4调试程序:按下不同楼层的按钮,观察电梯的运行和门的打开关闭情况,检查程序是否按照预期的逻辑运行;4.5对实验进行总结分析。
5.实验结果与分析经过程序的编写和调试,实验得出以下结论:当任意一层楼的按钮被按下时,电梯会根据按钮的位置自动选择最近的一层进行移动,移动过程中电梯门会自动关闭,到达目的楼层后电梯门会自动打开。
同时,通过观察实验楼层的指示灯和电梯运动状态来判断程序是否按照预期运行。
实验结果表明,PLC可以通过编程控制电梯的运动和门的开关,实现了我们预期的功能。
6.实验结论本次实验使用PLC编程控制了三层楼之间电梯的运行和门的开关,实验结果表明PLC编程具有较高的控制精度和可靠性,能够满足电梯运行的基本要求。
通过这次实验,我对PLC编程有了更深入的了解,并学会了如何利用PLC进行控制程序的编写和调试。
我认为PLC在工业自动化领域有着广泛的应用前景,能够有效提高生产线的效率和精度。
7.遇到的问题与解决方法在实验过程中,我遇到了编程逻辑的问题。
基于PLC的三层电梯升降机门控制(实习报告)

实习报告姓名:学号:班级:实习单位:天津理工大学基于PLC的电梯升降机门控制一.实习的目的和意义通过本次专业实习,老师采用新颖的教学方式,通过分组,学生自己给自己拟题,目的旨在开拓学生的思维,提高学生的动手能力,更贴合实际的去处理一项工程任务。
总结起来包括以下几点意义:①提高了我对一项工程的整体把握能力,能够多方面的考虑一项工程,保证工程项目的完整性。
②通过老师的讲解,提高了我对电气原理图,电气元器件布置图,电气接线图的识图能力。
③针对题目,利用所学软件,画出三图,提高了软件的应用能力和动手能力。
④通过实际操作,了解了很多接线技巧。
⑤学会了电路通电前的静态电路测试,以排除最初的故障。
⑥学会了交流接触器,过载热继电器等器件的接线方式。
⑦通过本次实习,大大的提高了我对一个工程项目的认识。
⑧掌握了PLC 的基本指令、功能指令的综合应用。
⑨掌握 PLC 与外围控制电路的实际接线方法。
⑩掌握随机逻辑程序的设计方法。
二.实习内容按照教师要求,自拟题目为基于PLC的电梯升降机门控制。
在电梯中,主要包括了两个关键的负载,一个是负责电梯上下运动的曳引电机,另一个是负责开关电梯门的门电机,通过两个电机的配合控制,就实现了对电梯的控制。
PLC在电梯控制上的应用主要体现在它的逻辑开关控制功能。
由于PLC具有逻辑运算,计数和定时以及数据输入输出的功能。
在电梯控制过程中,各种逻辑开关控制与PLC很好的结合,很好的实现了对电梯的控制。
电梯控制逻辑关系如下:1) 行车方向由内选信号决定,顺向优先执行;2) 行车途中如遇呼梯信号时,顺向截车,反向不截车;3)内选信号、呼梯信号具有记忆功能,执行后解除。
4)内选信号、呼梯信号、行车方向、行车楼层位置均由信号灯指示5)停层时可延时自动开门、手动开门、(关门过程中)本层顺向呼梯开门;6)有内选信号时延时自动关门,关门后延时自动行车;7)无内选时延时5s自动关门,但不能自动行车;8)行车时不能手动开门或本层呼梯开门,开门不能行车。
组态王实验案例——三层电梯

组态王实验案例——三层电梯三层电梯组态王实验案例一、实验目的:掌握三层电梯的组态王图形化编程方法,了解电梯控制系统的基本原理,掌握电梯调度算法。
二、实验设备:1.电梯模拟系统(组态王软件);2.电梯控制器。
三、实验原理:电梯调度算法是电梯控制系统的核心部分。
在本实验中,我们将通过组态王软件对三层电梯进行图形化编程,实现对电梯的自动调度。
四、实验步骤:1.创建工程:启动组态王软件,选择新建工程,设置工程名称和目录路径。
2.添加设备:选择设备配置向导,选择PLC和人机界面,并按照提示进行配置。
3.界面设计:选择人机设计,设计电梯的上行、下行按键,显示当前楼层和电梯状态的指示灯等。
4.程序编写:选择PLC编程,使用组态王提供的图形化编程语言进行程序设计。
根据电梯的工作原理和调度算法,编写电梯的运行逻辑和调度策略。
5.调试运行:保存程序后,选择模拟运行,观察电梯的运行情况,进行调试和优化。
五、实验结果:经过调试和优化后,我们成功实现了三层电梯的自动调度。
在电梯界面上,我们可以看到当前楼层和电梯状态的指示灯实时更新。
当按下上行或下行按钮时,电梯会自动根据调度策略选择最合适的楼层进行运行,到达目的地后会触发门禁信号,打开电梯门,并自动调整回待命状态。
六、实验总结:通过本次实验,我们深入了解了电梯控制系统的工作原理和调度算法。
通过组态王软件的图形化编程,我们可以方便地设计和调试复杂的电梯控制系统。
电梯作为现代化大楼中不可或缺的交通工具,其安全性和效率性对人们的生活和工作起着重要的作用。
掌握电梯控制系统的原理和优化方法,对于提高电梯运行的效率和安全性具有重要意义。
三层电梯控制 《PLC课程设计》报告书

机械与车辆学院《PLC课程设计》报告(2013-2014学年第二学期)课程设计题目:三层电梯控制姓名:学号:班级:指导老师:时间:年06月09 日—年06月20日成绩:摘要随着社会的不断发展,楼房越来越高,而电梯成为了高层楼房的必须设备。
电梯从手柄开关操纵电梯、按钮控制电梯发展到了现在的群控电梯,为高层运输做出了不可磨灭的贡献.PLC在电梯升降控制上的应用主要体现在它的逻辑开关控制功能。
由于PLC具有逻辑运算,计数和定时以及数据输入输出的功能.在电梯升降过程中,各种逻辑开关控制与PLC很好的结合,很好的实现了对电梯的控制.在PLC课程设计中,我设计了一个三层电梯控制系统,在学完《电气控制与PLC应用》课程后,我们在设计过程中较为得心应手,不至于从头开始。
整个过程包括了方案讨论,程序设计,程序修改,上机调试等,在程序设计方面花了比较多的时间,主要考虑到电梯分别停在一层、二层和三层时在其他楼层呼叫等各种情况。
三层电梯是由三菱PLC作为电梯的控制器,控制电梯的运行.通过PLC 控制程序经过OPC与组态王结合起来达到全程仿真的过程.本文设计的三层电梯主要是一些简单得运行程序,通过电梯控制系统的组成,阐述可编程控制器(PLC)在电梯控制中的应用,采用三菱PLC编程的程序控制方式,提出了三层电梯的PLC控制系统总体设计方案、设计过程、组成,列出了具体的主要硬件电路、电梯的控制梯形图及指令表。
并给出了系统组成框图和程序流程图,在分析、处理随机信号逻辑关系的基础上,提出了PLC的编程方法,设计了一套完整的电梯控制系统方案。
采用本方案实现电梯控制,能够解决继电器-—接触器触点多,故障率高、可靠性差、安装调试周期长、维修工作量大、接线复杂等缺点。
使电梯运行更加安全、方便、舒适。
目录一、课程设计性质和目的 ..................................... - 3 -二、课程设计的内容及要求 ....................................... - 4 -三、课程设计的进度及安排 ....................................... - 6 -四、设计所需软件平台 ........................................... - 7 -五、设计思路及梯形图程序 ....................................... - 7 -六、组态王人界界面设计 ........................................ - 12 -七、调试运行 .................................................. - 17 -八、结果及分析 ................................................ - 19 -九、心得体会 .................................................. - 19 -十、参考文献 .................................................. - 20 - 十一、致谢 .................................................... - 20 - 十二、附录 ................................................... - 21 -一、课程设计性质和目的PLC课程设计是《PLC原理及应用》课程与实验结束后的一门应用性很强的实践课。
PLC三层电梯控制报告

基于PLC的三层电梯设计一、编程要求:(一)决定系统所需的动作及次序。
当使用可编程控制器时,最重要的一环是决定系统所需的输入及输出,这主要取决于系统所需的输入及输出接口分立元件。
输入及输出要求:(1) 第一步是设定系统输入及输出数目,可由系统的输入及输出分立元件数目直接取得。
本实验装置的输入输出点数是:输入24点,输出24点。
(2)第二步是决定控制先后、各器件相应关系以及作出何种反应。
(二)将输入及输出器件编号每一输入和输出,包括定时器、计数器、内置继电器等都有一个唯一的对应编号,不能混用。
(三)画出梯形图。
根据控制系统的动作要求,画出梯形图。
梯形图设计规则(1)触点应画在水平线上,不能画在垂直分支上。
应根据自左至右、自上而下的原则和对输出线圈的几种可能控制路径来画。
(2)不包含触点的分支应放在垂直方向,不可放在水平位置,以便于识别触点的组合和对输出线圈的控制路径。
(3)在有几个串联回路相并联时,应将触头多的那个串联回路放在梯形图的最上面。
在有几个并联回路相串联时,应将触点最多的并联回路放在梯形图的最左面。
这种安排,所编制的程序简洁明了,语句较少。
(4)不能将触点画在线圈的右边,只能在触点的右边接线圈。
(四)将梯形图转化为程序把继电器梯形图转变为可编程控制器的编码,当完成梯形图以后,下一步是把它编码成可编程控制器能识别的程序。
这种程序语言是由地址、控制语句、数据组成。
地址是控制语句及数据所存储或摆放的位置,控制语句告诉可编程控制器怎样利用数据作出相应的动作。
(五)在编程方式下用键盘输入程序。
一般情况下是用梯形图编程较为方便(六)编程及设计控制程序。
(七)测试控制程序的错误并修改。
(八)保存完整的控制程序。
二、控制要求电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。
电梯轿箱内设有楼层内选按钮S1 ~ S3,用以选择需停靠的楼层。
L1为一层指示、L2 为二层指示、L3为三层指示,SQ1~SQ3为到位行程开关。
三层电梯实训报告1

项目名称三层电梯监控系统专业机电一体化技术班级10级机电2班姓名谢骏德成绩:机械与电子工程系2011年12月28 日目录第一章概述 (2)第二章PLC设计电梯的优越性 (3)第三章三层电梯的升降PLC控制要求 (4)第四章梯形图及调试 (6)第五章实训小结 (12)第一章概述电梯:elevator;lift;moving staircase。
一种以电动机为动力的垂直升降机,装有箱状吊舱,用于多层建筑乘人或载运货物。
也有台阶式,踏步板装在履带上连续运行,俗称扶梯。
1—控制柜(屏);2—曳引机;3—曳引钢丝绳;4—限速器;5—限速器钢绳;6—限速器张紧装置;7—轿厢;8—安全钳;9—轿厢门安全触板;10—导轨;11—对重;12—厅门;13—缓冲器第二章PLC设计电梯的优越性PLC总的发展趋势是:高功能、高速度、高集成度、大容量、小体积、低成本、通信组网能力强。
这种工业计算机采用“面向用户的指令”,因此编程方便。
它能完成逻辑运算、顺序控制、定时计数和算术操作,它还具有“数字量和模拟量输入输出控制”的能力,并且非常容易与“工业控制系统联成一体”,易于“扩充”。
可编程序控制器是应用面最广、功能强大、使用方便的通用工业控制装置,自研制成功开始使用以来,它已经成为了当代工业自动化的主要支柱之一。
第三章三层电梯升降PLC控制的要求(1)本系统采用轿厢外唤叫、轿厢内按钮控制形式。
轿厢内、外均由指令按钮进行操作。
每层楼的厢外设有呼叫按钮SB6~SB9,厢内设有开门按钮SBl,关门按钮SB2,层面指令按钮SB3~SB5。
(2)电梯运行到指定位后,具有自动开/关门的功能,也能手动开门和关门。
(3)利用指示灯显示电梯厢外的呼叫信号、电梯厢内的指令信号和电梯到达信号。
(4)能自动判电梯运行方向,并发出相应指示信号。
(5)电梯上下运行由一台主电机驱动。
电机正转,电梯上升;电动反转,电梯下降。
(6)电梯轿厢门由另一台小功率电机驱动。
三层电梯实训报告

三层电梯实训报告第一篇:三层电梯实训报告三层电梯实训报告摘要20世纪60年代末,为了克服传统继电器的种种应用上的缺点,人们研制出了一种先进的可编程序控制器PLC(Programmable logic Controller),由于PLC具有优良的技术性能,因此它一问世就很快得到了推广应用。
随着微电子技术和计算机技术的迅速发展,PLC在工业控制领域内得到广泛的应用愈加明显。
PLC是一种基于数字计算机技术,专为在工业环境下应用而设计的电子控制装置,它采用可编程程序的存储器,用来存储用户指令,通过数字或模拟的输入/输出,完成一系列逻辑、顺序、定时、记数、运算等确定的功能,来控制各种类型的机电一体化设备和生产过程。
具体来讲PLC主要具有以下的特点:(1)可靠性高,抗干扰能力强;(2)(2)编程方法简单、直观;(3)体积小、耗能低、重量轻;(4)硬件配套齐全,用户使用方便,适应性强;(5)系统的设计/安装、调试工作量少;(6)维修工作量小、维护方便;(7)接口模块功能强、品种多。
PLC在电梯控制上的应用主要体现在它的逻辑开关控制功能。
由于PLC具有逻辑运算,计数和定时以及数据输入输出的功能。
在电梯控制过程中,各种逻辑开关控制与PLC很好的结合,很好的实现了对电梯的控制。
本论文是以三菱广泛应用的整体中型机FX2N-128为背景机,详细介绍其系统配置,兼顾介绍,指令系统,编程方法和控制系统设计方法,同时也介绍了模块式PLC的一些智能单元。
本人毕业设计的电梯包括电梯自动运行、消防运行、PLC综合控制三个系统。
论文对PLC的结构、特点、性能以及与现场控制对象的连线进行了具体的研究,并通过PLC实现了电梯的自动控制以及消防运行。
通过此次毕业设计,提高了我们运用理论知识,分析、处理和解决实际问题的综合能力第二篇:电梯安装维护实训报告《电梯安装与使用维护》姓名:班级:学号:实训总结报告专业:机电一体化日期:2013年12月4日一、描述电梯总体结构电梯所占有的四大空间:1、机房:曳引机、控制柜(屏)、承重梁(也有在楼板下面)、导向轮(也有在楼板下面)、电源总开关、限速器、极限开头、选层器、发电机及励磁柜(直流电梯),电引钢丝绳锥套与组头组合(曳引比为2:1、曳引钢丝绳(绕在曳引轮上),地震报警保护器(VVVF电梯)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学本科实验报告题目:三层电梯控制器课程名称:数字电路与系统设计学院(系):电子信息与电气工程学部专业:班级:学生姓名:学号:完成日期:2012-7-5成绩:2012 年7 月05 日题目:三层电梯控制器1 设计要求随着科技的发展,电梯的使用越来越普遍,在商业大厦、宾馆酒店、办公场所、居民住宅中广泛使用。
并且随着生活水平的提高,人们对电梯功能的要求也不断提高,相应地其控制方式也在不停地方生变化。
对于电梯的控制,传统的方法是使用继电器——接触器控制系统进行控制技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。
电梯的微机化控制主要由以下几种形式:1.PLC控制;2.单板机控制;3.单片机控制;4.单微机控制;5.多微机控制;6.人工智能控制。
目前FPGA已广泛应用与电子设计与控制的各个方面。
本设计就是使用一片FPGA来实现对三层电梯的控制。
电梯控制器是控制电梯按顾客的要求自动上下的装置。
三层电梯控制器的功能如下:(1)每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。
(2)设有电梯所处位置指示装置及电梯运行模式(上升或下降)指示装置。
(3)电梯每秒升(降)一层楼。
(4)电梯到达有停站请求的楼层后,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续运行,直至执行完最后一个请求信号后停在当前层。
(5)能记忆电梯内外的所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。
(6)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如更高层有下楼请求,则直接升到有下楼请求的最高层接客,然后便进入下降模式。
当电梯处于下降模式时与上升模式相反。
(7)电梯初始状态为一层开门。
(8)当收到报警信号时,电梯停止工作,电梯维持当前状态不动。
报警信号解除时,电梯继续工作。
(9)电梯到达指定楼层时有声音提示。
2 设计分析及系统方案设计电梯控制器的设计方法有很多,本文采用状态机来描述,其优点是思路清晰。
可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。
由于电梯又是每秒上升或下降一层,所以就可以通过一个以秒为周期的时钟来触发状态机。
根据电梯的实际工作情况可以把状态机设置为10个状态,分别是“电梯停留在一层”、“开门”、“关门”、“开门等待第1秒”、“开门等待第2秒”、“开门等待第3秒”、“开门等待第4秒”、“上升”、“下降”和“停止”状态。
各个状态之间的转换条件可由设计要求所决定。
控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。
由于分控制器相对简单很多,所以主控制器是核心部分。
三层电梯控制器的实体设计首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层是最低层,不需要有下降请求,三层是最高层,不需要有上升请求,二层则上升、下降请求端口都有;在电梯的内部,应该设有各层停留的请求端口:一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。
其次是输出端口,有升降请求信号以后,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑‘1’。
被响应以后则恢复逻辑‘O’;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。
三层电梯控制器的结构体设计首先说明一下状态。
状态机设置了lO个状态,分别是电梯停留在l层(stopon1)、开门(dooropen)、关门(doorclose)、开门等待第1秒(waitl)、开门等待第2秒(wait2)、开门等待第3秒(wait3)、开门等待第4秒(wait4)、上升(up)、下降(down)和停止(stop)。
在实体说明定义完端口之后,在结构体architecture和begin之间需要有如下的定义语句,来定义状态机。
type state_type is(stopon1,dooropen,doorclose,waitl,wait2,wait3,wait4,up,down,stop);signal state_type:state;在结构体中,设计了俩个进程互相配合,一个是状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。
状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是由状态机进程中传出的clearup和cleardn信号来控制。
在状态机进程中,在电梯的上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。
在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏。
按键后产生的点亮的信号灯(逻辑值为‘1’)用于作为状态机进程中的判断条件,而clearup和cleardn信号为逻辑‘1’使得相应的信号灯熄灭。
3系统以及模块硬件电路设计系统电路如图2所示。
4 系统的VHDL设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity flift isport(clk: in std_logic; --系统时钟reset: in std_logic; --异步复位按键caution: in std_logic; --报警按键up1: in std_logic; --第一层上升请求按钮up2: in std_logic; --第二层上升请求按钮down2: in std_logic; --第二层下降请求按钮down3: in std_logic; --第三层下降请求按钮stop1,stop2,stop3: in std_logic;--电梯内部请求按钮uplight: buffer std_logic_vector(3 downto 1); --电梯外部上升请求指示灯downlight: buffer std_logic_vector(3 downto 1); --电梯外部下降请求指示灯stoplight: buffer std_logic_vector(3 downto 1);--电梯内部各层请求指示灯position:buffer integer range 1 to 3; --电梯位置指示location:out std_logic_vector(6 downto 0); --电梯位置数码管显示udsig:buffer std_logic; --电梯升降指示doorlight:buffer std_logic; --电梯门开关指示灯dlight1,dlight2,dlight3:out std_logic_vector(6 downto 0);--电梯门开关数码管显示udlight1,udlight2:out std_logic_vector(6 downto 0)); --电梯升降数码管指示end flift;architecture behav of flift istype state_type is(stopon1,dooropen,doorclose,waitl,wait1,wait2,wait3,wait4,up,down,stop);signal state:state_type:=stopon1;signal clearup:std_logic; --用于清除上升请求指示灯信号signal cleardn:std_logic; --用于清除下降请求指示灯信号signal buttonclk,fliclk:std_logic; --按键时钟与电梯时钟signal count: integer range 0 to 49999999;--计数器signal clk1: std_logic; --计数器时钟beginprocess(clk) --1秒时钟进程beginif reset='1' thencount<=0;clk1<='0';elsif rising_edge(clk) thenif count=49999999 thencount<=0;clk1<='1';else count<=count+1;clk1<='0';end if;end if;buttonclk<=clk;fliclk<=clk1;end process;process(reset,fliclk) --控制电梯状态进程variable pos:integer range 3 downto 1;beginif reset='1' thenstate<=stopon1;clearup<='0';cleardn<='0';elsif rising_edge (fliclk)and caution/='1' thencase state is --状态转移when stopon1=>doorlight<='1';position<=1;pos:=1;state<=wait1;when waitl=>state<=wait2;when wait2=>clearup<='0';cleardn<='0';state<=wait3;when wait3=>state<=wait4;when wait4=>state<=doorclose;when doorclose=>doorlight<='0';if udsig='0' and caution/='1' then --上升情况if position=3 then --电梯在三楼if stoplight="000"and uplight="000"and downlight="000" thenudsig<='1';state<=doorclose;elsif stoplight="100" or uplight="100" or downlight="100" thenudsig<='1';state<=dooropen;elseudsig<='1';state<=down;end if;elsif position=2 then --电梯在二楼if stoplight="000"and uplight="000"and downlight="000" thenudsig<='0';state<=doorclose;elsif state=doorclose and stoplight="010" thenstate<=dooropen;elsif state=doorclose and uplight="010" thenudsig<='0';state<=dooropen;elsif state=doorclose and downlight="010" thenudsig<='1';state<=dooropen;elsif stoplight(3)='1' or downlight(3)='1' thenudsig<='0';state<=up;elseudsig<='1';state<=down;end if;elsif position=1 then --电梯在一楼if stoplight="000"and uplight="000"and downlight="000" then udsig<='0';state<=doorclose;elsif stoplight="001" or uplight="001" or downlight="001" then udsig<='0';state<=dooropen;elseudsig<='0';state<=up;end if;end if;end if;if udsig='1' and caution/='1' then --下降情况if position=1 then --电梯在一楼if stoplight="000"and uplight="000"and downlight="000" then udsig<='0';state<=doorclose;elsif stoplight="001" or uplight="001" or downlight="001" then udsig<='0';state<=dooropen;elseudsig<='0';state<=up;end if;elsif position=2 then --电梯在二楼if stoplight="000"and uplight="000"and downlight="000" then udsig<='1';state<=doorclose;elsif state=doorclose and stoplight="010" thenstate<=dooropen;elsif state=doorclose and uplight="010" thenudsig<='0';state<=dooropen;elsif state=doorclose and downlight="010" thenudsig<='1';state<=dooropen;elsif stoplight(1)='1'or uplight(1)='1' thenudsig<='1';state<=down;elseudsig<='0';state<=up;end if;elsif position=3 then --电梯在三楼if stoplight="000"and uplight="000"and downlight="000" then udsig<='1';state<=doorclose;elsif stoplight="100" or uplight="100" or downlight="100" then udsig<='1';state<=dooropen;elseudsig<='1';state<=down;end if;end if;end if;when up=>position<=position+1;pos:=pos+1;if pos=2 and(stoplight(3)='1'or downlight(3)='1') then state<=up;elsestate<=stop;end if;when down=>position<=position-1;pos:=pos-1;if pos=2 and(stoplight(1)='1'or uplight(1)='1') then state<=down;elsestate<=stop;end if;when stop=>state<=dooropen;when dooropen=>doorlight<='1';clearup<='1';cleardn<='1';state<=waitl;when others=>state<=doorclose;end case;end if;end process;process(clk) --控制按键指示灯进程beginif reset='1' thenstoplight<="000";uplight<="000";downlight<="000";elsif rising_edge(buttonclk) and caution/='1' thenif clearup='1' thenstoplight(position)<='0';uplight(position)<='0';elseif up1='1'then uplight(1)<='1';end if;if up2='1'then uplight(2)<='1';end if;end if;if cleardn='1' thenstoplight(position)<='0';downlight(position)<='0';elseif down2='1'then downlight(2)<='1';end if;if down3='1'then downlight(3)<='1';end if;end if;if stop1='1' then stoplight(1)<='1';end if;if stop2='1' then stoplight(2)<='1';end if;if stop3='1' then stoplight(3)<='1';end if;end if;end process;process(position) --楼层数码管显示进程begincase position iswhen 1=>location<="1111001";when 2=>location<="0100100";when 3=>location<="0110000";end case;end process;process(doorlight) --电梯门数码管显示进程begincase doorlight iswhen '1'=>dlight1<="1001000";dlight2<="1000000";dlight3<="1111111";when '0'=>dlight1<="0001110";dlight2<="0001110";dlight3<="1000000";end case;end process;process(udsig) --电梯升降显示进程begincase udsig iswhen '0'=>udlight1<="0001100";udlight2<="1000001";when '1'=>udlight1<="0101011";udlight2<="0100001";end case;end process;end behav;5 结论以及结果说明调试环境:软件:Altera’s Quartus II硬件:Altera DE2 Board参数:clk为50MHz信号。