毕业设计(论文)-基于FPGA的电梯控制器设计.doc_第1页
毕业设计(论文)-基于FPGA的电梯控制器设计.doc_第2页
毕业设计(论文)-基于FPGA的电梯控制器设计.doc_第3页
毕业设计(论文)-基于FPGA的电梯控制器设计.doc_第4页
毕业设计(论文)-基于FPGA的电梯控制器设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于FPGA的电梯控制器设计摘 要3Abstract4第1章 绪论51.1 选题背景51.2 EDA 技术介绍61.3FPGA介绍71.3.1FPGA简述71.3.2FPGA工作原理71.4VHDL语言81.4.1 VHDL语言的发展81.4.2VHDL的特点8第2章 电梯控制器设计方案分析102.1电梯动力结构设计102.2方向优先控制方案112.3内部请求优先控制方式112.4电梯位置传感器112.5显示楼层122.6按键去抖122.7电机驱动选择122.8称重传感器13第3章 模块设计程序硬件设计和软件设计143.1设计方案总结:143.2电梯硬件控制模块153.2.1 电梯硬件控制模块外控制模块153.2.2电梯硬件控制模块内控制模块153.3电梯硬件控制模块软件设计163.3.1主控制器的功能16第4章各部件仿真结果254.1到达楼下信号仿真图254.2超重警告仿真如图264.3外人请求信号:264.4分频器仿真:27结束语28致 谢29参考文献30摘 要电梯作为现代化的产物,早在上个世纪就进入了我们的生活之中。本设计就是基于电子设计自动化(Electronic Design Automation)技术中的甚高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)语言所开发的六层电梯控制程序。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。本设计介绍了基于VHDL语言设计的电梯控制器,并进行了电路综合和仿真。该控制器遵循方向优先的原则,提供6个楼层多用户的载客服务并指示电梯的运行情况。通过程序调试及运行仿真,结果表明,本设计可以完成:电梯运行所在楼层指示、电梯运行方向指示、超载报警、故障报警等。关键词:控制器;EDA;电梯AbstractThis Elevator as a product of modern civilization, as early as in the last century into our lives. The design is based on the electronic design automation (Electronic Design Automation) very high speed integrated circuit hardware description language (Very in High Speed Integrated Circuit Hardware Description Language) six elevator control program development language. VHDL has the features and the specific hardware circuit design is independent and platform independent, and has the ability to describe the behavior of the circuit is described and the system is good, and in the aspects of language readability and hierarchical structure design, demonstrated strong vitality and potential applications. This design introduced the design of elevator controller based on VHDL language, and gives the circuit synthesis and simulation. The controller to follow the direction of the principle of priority, operation provides 6 floors of the passenger service and more user instructions for elevator. Through the program debugging and running the simulation, results show that, the design can be done: elevator floor indicator, elevator running direction, overload alarm, fault alarm etc.Keywords: controller, EDA, elevator第1章 绪论1.1 选题背景随着科学技术的发展、近年来,我国的电梯生产技术得到了迅速发展一些电梯厂也在不断改进设计、修改工艺。更新换代生产更新型的电梯,电梯主要分为机械系统与控制系统两大部份,随着自动控制理论与微电子技术的发展,电梯的拖动方式与控制手段均发生了很大的变化,交流调速是当前电梯拖动的主要发展方向。目前电梯控制系统主要有三种控制方式:继电路控制系统(早期安装的电梯多位继电器控制系统)、FPGA/CPLD控制系统、微机控制系统。继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰。微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而FPGA/CPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。目前国内七八十年代安装的许多电梯电气部分用继电器接触器控制系统,线路复杂,接线多,故障率高,维修保养难,许多已处于闲置状态,其拽引系统多采用交流双速电机系统换速,效率低,调速性能指标较差,严重影响电梯运行质量。由于这些电梯交流调压调速系统,交流双速电机拖动系统性能及乘坐舒适感较差,交流调压调速系统属能耗型调速的机械部分无大问题,为节约资金,大部分老式电梯用户希望对电梯的电气控制系统进行改造,提高电梯的运行性能。因此对电梯控制技术进行研究,寻找适合我国老式电梯的改造方法具有十分重要的意义。电梯作为高层建筑物的重要交通工具与人们的工作和生活日益紧密联系。FPGA/CPLD作为新一代工业控制器,以其高可靠性和技术先进性,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。1.2 EDA 技术介绍 EDA 技术是20 世纪90 年代初从计算机辅助设计(Computer Aided Design)、计算机辅助制造(Computer Aided Manufacture)、计算机辅助测试(Computer Aided Testing)和计算机辅助工程(Computer Aided Engineering)的概念发展而来的。随着超大规模集成电路(Very Large Scale Integration)规模和技术复杂度的急剧增长,一块芯片内集成门已可达几十万甚至几百万门,并且还在迅速增长,电子系统的人工设计已十分困难,必需依靠电子设计自动化技术。在利用EDA 进行集成电路设计时,应采用高效率的TOP-DOWN 设计方法,即根据系统的行为和功能要求,自上而下地依次完成相应的描述、综合、优化、仿真与验证,直到生成器件。在电路描述时主要采用硬件描述语言(HDL)。硬件描述语言是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用HDL 程序来描述所希望的电路系统,规定其结构性和电路的行为方式;然后利用 EDA 工具将此程序变成能控制场效应可编程门阵列(Field Programmable Gate Array)/复杂可编程逻辑器件(Complex Programmable Logic Device)内部结构并实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。现代EDA 技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。它主要采用从系统设计入手,在顶层进行功能方框图的划分和结构设计,在方框图一级进行仿真、纠错、并用VHDL、 ABEL 等硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证然后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。简单来说就是依赖功能强大的计算机,在 EDA 工具软件平台上,对以硬件描述语言HDL 为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。1.3FPGA介绍1.3.1FPGA简述FPGA是英文FieldProgrammable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。1.3.2FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:1、用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2、FPGA可做其它全定制或半定制ASIC电路的中试样片。3、FPGA内部有丰富的触发器和IO引脚。4、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。1.4VHDL语言1.4.1 VHDL语言的发展VHDL(Very High Speed Integrated Circuit Hardware Description Language)是IEEE(Institute of Electrical and Electronics Engineers)标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机语言。本篇介绍VHDL的语法基础、用VHDL进行系统设计的基本方法、以及VHDL的设计实例等。从宏观的角度看,VHDL的语法构成了程序的各组成部分;微观上看VHDL的语法是各种语句的运用细节。本章在VHDL的特性之后,从这两个角度简要介绍VHDL的语法基础。 硬件描述语言HDL(Hardware Description Language)诞生于1962年。HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。与SDL(Software Description Language)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程。20世纪80年代美国国防部开发Very High Speed Integrated CircuitVHSIC,用于描述集成电路的结构和功能。此后,硬件描述语言向标准化方向发展,1987年成为IEEE Standard 1076,称为VHDL语言。它也是美国国防部标准(MIL-STD-454L)。1993年该标准增修为IEEE1164标准。1996年,再次加入电路合成的标准程序和规格,成为IEEE1076.3标准。1995年VerilogHDL也成为IEEE 标准。VHDL与VerilogHDL一起成为业界主选的硬件描述语言。1.4.2VHDL的特点(一)功能强大 VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(二)可移植性 VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(三)独立性 VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(四)可操作性 由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(五)灵活性 VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。第2章 电梯控制器设计方案分析2.1电梯动力结构设计 图1 电梯动力结构设计上图的变速箱是由一些齿轮构成的减速系统,由于电机的转速都比较高,不能直接拖动电梯箱,所以需要减速箱,另外通过减速箱后,电机的拖动力大大增加了。这种方案可以节约很多能源,当电梯厢处于低楼层时,配重处于高楼层,这时配重具有重力势能。若有乘客需要从低楼层上到高楼层,则控制系统则控制电机使电梯厢下上运动,配重向下运动,配重的重力势能转化为电梯厢的重力势能。当配重质量电梯厢质量,控制系统只需要施加少量的反向力矩,使电梯厢匀速。当电梯厢处于高楼层,配重处于低楼层时与上述情况相反。这种机构巧妙地应用电梯厢(包括乘客)的重力势能和配重的重力势能的相互转换,达到节约能源的目的。2.2方向优先控制方案 当电梯处于上升模式时,只响应比电梯高的楼层的上楼的请求。当电梯处于下降模式时,电梯只响应比电梯低的楼层向下的请求。在FPGA内部设置一个电梯运行方向标志位,取名位dir。当dir=1时表示电梯处于上升模式时,这时电梯只响应比电梯所在位置高的上楼请求;当dir=0时表示电梯处于下降模式时,这时电梯只响应比电梯所在位置低的下楼请求。2.3内部请求优先控制方式当电梯处于上升模式时,电梯先响应电梯内乘客向上的请求,响应完所有的上升的请求之后再将电梯的模式改为下降模式,接着响应乘客下降的请求。当电梯处于下降模式时,情况正好相反。2.4电梯位置传感器 电梯控制器要每时每刻知道电梯所处的楼层,这就需要使用传感器。方案一:采用金属接近开关检测电梯层数。在轿厢安装金属片,并在竖井各个楼层设置金属接近开关,当轿厢运动到特定位置,竖井上的金属接近开关探测到金属片,其输出发生变化。通过金属接近开关输出的变化知道电梯轿厢的位置。方案二:采用超声波测距技术测量电梯的位置。在竖井的最高处(控制器安装的地方)安装一个超声波测距仪,超声波测距仪的发射头向下发出超声波,超声波到达电梯厢的顶部就反射回来由超声波测距仪的接收头接收,并记下从发射到接收到超声波的时间t,通过公式计算处电梯的所处位置的高度h其中H为电梯在最高楼层时的高度,超声波在空气中的速度事340m/s。综合上述:方案一要在每一个楼层都安装一个金属接近开关,而且每个金属开关都要用线接到电梯控制器。当楼层很多时,离控制器远的金属开关到控制器的线很长,信号容易收到干扰,而且整个系统很复杂成本高。方案二只需一套超声波测距系统就能时时测量出电梯所处的位置。所以方案二更好。2.5显示楼层 要在每一个楼层安装一个显示电梯所处的楼层的显示屏,以告知人们当前电梯所处的位置。方案一:使用数码管显示。数码管能显示09的数字,显示亮度大,颜色单一。缺点是耗电大,显示内容有限。方案二:使用液晶显示屏,液晶显示屏显示的内容多,能显示数字、英文字母,有些液晶还能显示汉字、图像。而且液晶显示耗电小,缺点是成本高、显示亮度不如数码管。综合上述,本系统设计的是七层楼的电梯控制系统,数码管显示的信息足够了。从亮度和成本考虑,本系统选择方案二。2.6按键去抖 方案一:在FPGA程序内编写一个延时程序,当有按键按下之后调用延时程序,延时完毕之后再去检测按键是否按下,如果按键是按下的就确认有效的按键请求;如果延时之后检测按键没有按下则属于干扰信号的影响,控制器视为无效的按键请求。 方案二:使用滤波的方法去抖,使用RC滤波器和具有施密特功能的非门滤去按键按下时的抖动脉冲,电阻R和电容C组成低通滤波器,由于抖动的脉冲频率比较高,所以被RC滤波器滤掉,再经过具有施密特功能的非门整形为标准的方波输到控制器。 综合上述:方案一不需要增加外围电路,利用软件的方法来滤去抖动脉冲,这使程序负担加重,影响电梯的实时性。方案二使用硬件滤波可靠性高,它提供给控制器的是一个标准的方波,有利于处理器对按键状态的判断,而且增加的硬件成本也不高。所 以本系统选择方案二。2.7电机驱动选择 方案一:传统的电机驱动方式,使用常规的三相交流电直接驱动电机,控制核心通过控制继电器来控制电机的转动方向,从而控制电梯的运动方向。该方法的特点是,控制简单,成本低,使用方便。 方案二:使用变频器驱动电机,随着电力电子技术和微电子技术的发展,交流调速技术取得了巨大的发展。各种交流调速技术在工业领域得到广泛应用的同时,电梯的交流调速控制也日趋完善,而交流变压变频调速是电梯的理想调速方法。作为变压变频控制装置变频器以其成熟的技术和高可靠性应用于电梯控制系统中。变压变频调速控制电梯速度调节平滑,获得十分良好的乘坐舒适感,并且能降低电动机的起制动电流,与其他类型交流调速系统相比运行效率高、节能效果显著。综合比较,节能是本系统的主题,所以选择方案二。2.8称重传感器 电梯一般都有一个传感器用于判断电梯厢是否超重,如果超重就发出报,并且电梯停止运行。本电梯控制系统也需要称重传感器来判断电梯厢是否超重,另外本系统要求确切的测出电梯厢的重量,控制系统根据电梯厢的重量调节电机的输出功率,电梯厢重量大时,控制电机输出功率大,电梯厢轻时控制电机的输出功率小,从而实现节能的目的。第3章 模块设计程序硬件设计和软件设计3.1设计方案总结:1)外部数据高速采集模块设计有效的对外部信号采集、处理要求电梯控制器对外部请求信号的实时、准确采集准确、实时的捕捉楼层到达信号;有防止楼层到达信号、外部请求信号的误判。2)信号存储模块电梯控制器的请求输入信号有27个(电梯外有9个上升请求和9个下降请求的用户输入端口,电梯内有9个请求用户输入端口),由于系统对内、外请求没有设置优先级,各楼层的内、外请求信号被采集后可先进行运算,再存到存储器内。3)基于FPGA的中央处理模块中央数据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。电梯工作过程中共有9种状态:等待、上升、下降、开门、关门、停止、休眠、超载报警以及故障报警状态。一般情况下,电梯工作起始点是第一层,起始状态是等待状态,启动条件是收到上升请求。3.2电梯硬件控制模块3.2.1 电梯硬件控制模块外控制模块电梯外控制模块是负责收集电梯外部的人员按键和控制相应LED灯亮灭的模块,考虑到每一层楼都会有向上和向下两个运行方向,所以在4个楼层里一共需要4个按键和4个LED灯。而每个按键按下时会点亮亮对应的LED灯,当电梯到达该楼层时就熄灭该楼层对应运动方向的LED灯。当灯熄灭的时候就表示电梯已经执行了相应的操作了。考虑到系统I/O资源有限。其模块电路如图2所示:图2 电梯外硬件电路3.2.2电梯硬件控制模块内控制模块电梯内控制模块是负责收集电梯内部的人员按键和控制相应LED灯亮灭的模块。它安装在电梯内部,一共需要4个按键和4个LED灯。而每个按键按下时会点亮亮对应的LED灯,当电梯到达该楼层时就熄灭该楼层的LED灯。考虑到系统I/O资源需求,4个按键值采用挂在PORTB口。其模块电路如图3所示:图3电梯内硬件电路3.3电梯硬件控制模块软件设计3.3.1主控制器的功能1)完成4个楼层多用户的载客服务控制。2)电梯运行时显示电梯的运行方向和所在的楼层。 3)当电梯到达选择的楼层时,电梯自动开门。 4)具有提前关电梯门和延时关电梯门的功能。 5)响应分控制器的有效请求,如果到达有请求的楼层,电梯自动开门。程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity tenlift is port ( clk : in std_logic; -时钟信号overweight,close,quick,clr : in std_logic; -超载up1,up2,up3,up4,up5,up6,up7,up8,up9: in std_logic; -电梯外人的上升请求信号down2,down3,down4,down5,down6,down7,down8,down9,down10 : in std_logic; -电梯外人的下降请求信号a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 : in std_logic; -电梯内人的请求信号gate1,gate2,gate3,gate4,gate5,gate6,gate7,gate8,gate9,gate10 : in std_logic; -到达楼层信号door : out std_logic_vector(1 downto 0); -电梯门控制信号led_c_f : out std_logic_vector(6 downto 0); -电梯所在楼层显示led_o_u:out std_logic_vector(9 downto 0); -电梯外人上升请求信号显示led_o_d:out std_logic_vector(9 downto 0); -电梯外人下降请求信号显示led_i_a : out std_logic_vector(9 downto 0); -电梯内请求信号显示warning : out std_logic; -看门狗报警信号up_down,overweight_warning : out std_logic; -电梯运动方向显示,超载警告信号up,down : out std_logic ); -电机控制信号和电梯运动end ;architecture oo of tenlift issignal ina1,ina2,ina3,ina4,ina5,ina6,ina7,ina8,ina9,ina10:std_logic; -电梯内人请求信号寄存信号signal upo1,upo2,upo3,upo4,upo5,upo6,upo7,upo8,upo9:std_logic; -电梯外人上升请求信号寄存信号signal downo2,downo3,downo4,downo5,downo6,downo7,downo8,downo9,downo10:std_logic; -电梯外人下降请求信号寄存信号signal q:integer range 0 to 1; signal q1:integer range 0 to 6; signal q2:integer range 0 to 9; -看门狗计数器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(9 downto 0); -电梯内外请求信号寄存器signal opendoor:std_logic; -开门信号signal updown:std_logic; -电梯运动方向信号寄存器signal en_up,en_dw:std_logic; -预上升、预下降使能信号begincom:process(clk)beginif clkevent and clk=1 then if clr=0 then q1=0;q2=0;warning=0; -清除故障报警 elsif overweight=0 then overweight_warning=1; q1=3 then door=10; else door=00;end if; elsif q=1 then q=0;overweight_warning=0;if q2=3 then warning=1; -故障报警elseif opendoor=1 then door=10;q1=0;q2=0;up=0;down=0; -开门操作elsif en_up=1 then if close=0 then door=10;q1=0;q2=q2+1; elsif quick=0 then q1=3; -提前关门elsif q1=6 then door=00;updown=1;up=3 then door=01;q1=q1+1; -电梯进入关门状态else q1=q1+1;door=00; end if;elsif en_dw=1 then -下降预操作if close=0 then door=10;q1=0;q2=q2+1; elsif quick=0 then q1=3; elsif q1=6 then door=00;updown=0;down=3 then door=01;q1=q1+1; else q1=q1+1;door=00; end if;end if; if gate1=0 then led_c_f=1001111; -电梯到达1楼,数码管显示1 if ina1=0 or upo1=0 then ina1=1; upo1=1;opendoor0000000001 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态elsif dd_cc=0000000000 then opendoor=0; -无请求时,电梯停在1楼待机 end if; elsif gate2=0 then led_c_f=0100100; -电梯到达2楼,数码管显示2if updown=0 then if ina2=0 or upo2=0 then ina2=1; upo2=1; opendoor0000000011 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 elsif dd_cc0000000010 then en_dw=1; opendoor=0; -有下降请求,则电梯进入预备下降状态 end if; elsif ina2=0 or downo2=0 then ina2=1; downo2=1;opendoor=1; -电梯前一运动状态为下降,有当前层的请求,则电梯进入开门状态elsif dd_cc0000000010 then en_dw=1; opendoor0000000011 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 end if;elsif gate3=0 then led_c_f=0110000; -电梯到达3楼,数码管显示3 if updown=0 then if ina3=0 or upo3=0 then ina3=1; upo3=1;opendoor0000000111 then en_up=1; opendoor=0; elsif dd_cc0000000100 then en_dw=1; opendoor=0; end if;elsif ina3=0 or downo3=0 then ina3=1; downo3=1; opendoor=1; elsif dd_cc0000000100 then en_dw=1; opendoor0000000111 then en_up=1; opendoor=0; end if;elsif gate4=0 then led_c_f=0011001; -电梯到达4楼,数码管显示4 if updown=0 then if ina4=0 or upo4=0 then ina4=1; upo4=1; opendoor0000001111 then en_up=1; opendoor=0; elsif dd_cc0000001000 then en_dw=1; opendoor=0; end if;elsif ina4=0 or downo4=0 then ina4=1; downo4=1; opendoor=1; elsif dd_cc0000001000 then en_dw=1; opendoor0000001111 then en_up=1; opendoor=0; end if;elsif gate5=0 then led_c_f=0010010; -电梯到达5楼,数码管显示5 if updown=0 then if ina5=0 or upo5=0 then ina5=1; upo5=1;opendoor0000011111 then en_up=1; opendoor=0; elsif dd_cc0000010000 then en_dw=1; opendoor=0; end if;elsif ina5=0 or downo5=0 then ina5=1; downo5=1;opendoor=1; elsif dd_cc0000010000 then en_dw=1; opendoor0000011111 then en_up=1; opendoor=0; end if;elsif gate6=0 then led_c_f=0000010; -电梯到达6楼,数码管显示6if updown=0 then if ina6=0 or upo6=0 then ina6=1; upo6=1; opendoor0000111111 then en_up=1; opendoor=0; elsif dd_cc0000100000 then en_dw=1; opendoor=0; end if;elsif ina6=0 or downo6=0 then ina6=1; downo6=1; opendoor=1; elsif dd_cc0000100000 then en_dw=1; opendoor0000111111 then en_up=1; opendoor=0; end if;elsif gate7=0 then led_c_f=1111000; -电梯到达7楼,数码管显示7 if updown=0 then if ina7=0 or upo7=0 then ina7=1; upo7=1; opendoor0001111111 then en_up=1; opendoor=0; elsif dd_cc0001000000 then en_dw=1; opendoor=0; end if;elsif ina7=0 or downo7=0 then ina7=1; downo7=1; opendoor=1; elsif dd_cc0001000000 then en_dw=1; opendoor0001111111 then en_up=1; opendoor=0; end if;elsif gate8=0 then led_c_f=0000000; -电梯到达8楼,数码管显示8if updown=0 then if ina8=0 or upo8=0 then ina8=1; upo8=1; opendoor0011111111 then en_up=1; opendoor=0; elsif dd_cc0010000000 then en_dw=1; opendoor=0; end if;elsif ina8=0 or downo8=0 then ina8=1; downo8=1; opendoor=1; elsif dd_cc0010000000 then en_dw=1; opendoor0011111111 then en_up=1; opendoor=0; end if;elsif gate9=0 then led_c_f=0010000; -电梯到达9楼,数码管显示9if updown=0 then if ina9=0 or upo9=0 then ina9=1; upo9=1; opendoor0111111111 then en_up=1; opendoor=0; elsif dd_cc0100000000 then en_dw=1; opendoor=0; end if;elsif ina9=0 or downo9=0 then ina9=1; downo9=1; opendoor=1; elsif dd_cc0100000000 then en_dw=1; opendoor0111111111 then en_up=1; opendoor=0; end if;elsif gate10=0 then led_c_f=1000000;if updown=0 then -电梯到达10楼,数码管显示0 if ina10=0 or downo10=0 then ina10=1; downo10=1;opendoor=1; elsif dd_cc1000000000 then en_dw=1; opendoor=0; end if;else en_up=0;en_dw=0; -电梯进入上升或下降状态end if;end if;end if;else q=1;overweight_warning=0; -清除超载报警if a1=0 then ina1=a1; -对电梯内人请求信号进行检测和寄存 elsif a2=0 then ina2=a2;elsif a3=0 then ina3=a3;elsif a4=0 then ina4=a4;elsif a5=0 then ina5=a5;elsif a6=0 then ina6=a6;elsif a7=0 then ina7=a7;elsif a8=0 then ina8=a8;elsif a9=0 then ina9=a9;elsif a10=0 then ina10=a10;end if;if up1=0 then upo1=up1; elsif up2=0 then upo2=up2;elsif up3=0 then upo3=up3;elsif up4=0 then upo4=up4;elsif up5=0 then upo5=up5;elsif up6=0 then upo6=up6;elsif up7=0 then upo7=up7;elsif up8=0 then upo8=up8;elsif up9=0 then upo9=up9;end if; if down2=0 then downo2=down2; elsif down3=0 then downo3=down3;elsif down4=0 then downo4=down4;elsif down5=0 then downo5=down5;elsif down6=0 then downo6=down6;elsif down7=0 then downo7=down7;elsif down8=0 then downo8=down8;elsif down9=0 then downo9=down9;elsif down10=0 then downo10=down10;end if; dd=ina10&ina9&ina8&ina7&ina6&ina5&ina4&ina3&ina2&ina1; -电梯内人请求信号并置 cc_u=0&upo9&upo8&upo7&upo6&upo5&upo4&upo3&upo2&upo1; -电梯外人上升请求信号并置 cc_d=downo10&downo9&downo8&downo7&downo6&downo5&downo4&downo3&downo2&0; dd_cc=dd or cc_u or cc_d; end if; up_down=updown; led_i_a=dd; led_o_u=cc_u; led_o_d=cc_d; end if; end process; end oo;2.3.2 分频制器的功能:1)显示电梯的运行状态和所在的楼层。 2)显示乘客的上升和下降请求。程序如下:library ieee;use ieee.std_logic_1164.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论