基于PLD的三层电梯的控制设计

上传人:无*** 文档编号:79118996 上传时间:2022-04-23 格式:DOC 页数:28 大小:813KB
返回 下载 相关 举报
基于PLD的三层电梯的控制设计_第1页
第1页 / 共28页
基于PLD的三层电梯的控制设计_第2页
第2页 / 共28页
基于PLD的三层电梯的控制设计_第3页
第3页 / 共28页
点击查看更多>>
资源描述
毕业设计基于PLD的三层电梯的控制设计【摘要】电梯作为现代化的产物在我们的生活之中已必不可少。随着经济建设的高速发展,我国电梯需求量越来越大。由此,一个更为庞大的电梯市场已经在国内轰然形成。本设计是基于可编程逻辑器件(PLD)技术中的甚高速集成电路硬件描述语言(VHDL)语言所开发的三层电梯控制程序。本程序具有VHDL语言设计里最为常用的三个模块:实体entity、结构体architecture、进程执行单元process。通过程序调试及运行仿真,结果表明,本程序可以完成:电梯运行所在楼层指示、电梯运行方向指示、关门延时设置、看门狗报警、超载报警、故障报警等。本设计对更高层的电梯控制设计具有一定的拓展性。【关键词】:电梯控制,程序设计,PLD,VHDL ABSTRACTThe product as a modern elevator in our lives has been essential.With the sustained and rapid development of economic construction, Chinas increasing demand for elevators.As a result, a much larger domestic elevator market has formed a bang. This design is based on Programmable Logic Devices (PLD)in a Very High speed of the integrated hardware Describe Language (VHDL) in developing the third floor of the lift of control procedures. this program has vhdl language designed for the best of three modules : entity, architecture, process. Through the program run, debug and simulation results show that the application can finish:the floor, in the direction, the delay, the guard dog the police, and failure the police, etc. this design with higher the control of the design. 【KEY WORD】:lift control, programmer, PLD, VHDL 毕业设计目 录引言1一、设计的基础依据1(一)EDA技术介绍1(二)VHDL语言介绍1(三)MAX+plusII软件介绍2二、方案论证2(一)基于PLC技术的电梯控制设计方案2(二)基于PLD技术的电梯控制设计方案2(三)方案选择3三、程序设计3(一)算法分析3(二)程序设计6四、程序调试12五、程序仿真14(一)波形输入建立14(二)电梯运行情况仿真16(三)电梯功能仿真18总结19附录一 三层电梯控制的源程序20附录二 引脚锁定情况23参考文献24致谢2527引言我国部分地区人口高度密集,人和土地资源短缺的矛盾日趋激化,这就要求人们合理地利用土地去解决人与土地的矛盾。而兴建高层建筑是其中的有效措施之一。因此,能使人们快速、便捷地到达目的楼层的电梯便应运而生了。其中,三层电梯广泛应用在大型的货运之中,其使用便捷,货运周期短,效率高,成本低,对货运事业具有相当的经济价值。在客运上,三层电梯虽然涉及楼层不高,应用范围不大,但就特殊而言,可以为一些上下楼层不方便的人们提供相当的帮助。本设计希望通过在简单的三层电梯控制设计之中,如何解决升、降请求信号因电梯所处状态而产生的冲突等问题出发,由此及彼,对高层电梯控制的开发作一个技术的铺垫,为高层电梯设计者提供一个基础。针对目前中小型电梯所能实现的功能,本控制设计拟实现以下功能:指示电梯运行所在楼层指示电梯运行方向关门延时设置看门狗报警超载报警故障报警。一、设计的基础依据现代电子设计技术的核心是EDA技术。采用EDA技术开发的三层电梯自动控制与目前主流的利用可编程逻辑控制器(PLD)实现电梯控制紧密相连。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。使用VHDL语言进行程序的设计,在MAX+plusII软件上对程序进行编译、仿真。(一)EDA技术介绍EDA技术是20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。设计者可以利用HDL程序来描述所希望的电路系统,规定其结构性和电路的行为方式然后利用EDA工具将此程序变成能控制场效应可编程门阵列(FPGA)/复杂可编程逻辑器件(CPLD)内部结构,实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL和VHDL等。现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真的综合能力。在现代高新电子产品的设计和生产中,微电子技术和现代电子设计技术是相互促进、相互推动又相互制约的两个技术环节。前者代表了物理层在广度和深度上硬件电路实现的发展,后者则反映了现代先进的电子理论、电子技术、仿真技术、设计工艺和设计技术与最新的计算机软件技术有机的融合和升华。因此,严格地说,EDA技术应该是这二者的结合,是这两个技术领域共同孕育的奇葩。(二)VHDL语言介绍VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,就在于它有以下优点:1.VHDL语言功能强大,设计方式多样。 2.VHDL语言具有强大的硬件描述能力。 3.VHDL语言具有很强的移植能力。 4.VHDL语言的设计描述与器件无关。 由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。(三) MAX+plusII软件介绍MAX+plusII是Altera公司提供的FPGA/CPLD开发集成环境,其界面友好,使用便捷,被誉为业界最易用易学的EDA软件。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。在MAX+plusII平台上进行数字系统的设计过程一般要经过四个阶段:设计输入、项目编译、项目校验和器件编程。首先根据系统的性能指标进行系统结构设计,对整个系统进行功能划分和模块划分。对各子模块分别进行逻辑设计、编译、仿真与验证。当不满足要求时,重新返回设计输入阶段,修改设计输入。之后将优化结果下载到所选可擦写可编程逻辑器件(EPLD)芯片中,进行动态仿真。最后则是测试芯片在系统中的实际运行性能。二、方案论证(一)基于PLC技术的电梯控制设计方案可编程控制系统是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。可编程控制器是计算机技术与自动化控制技术相结合而开发的一种适用工业环境的新型通用自动控制装置,是作为传统继电器的替换产品而出现的。随着微电子技术和计算机技术的迅猛发展,可编程控制器更多地具有了计算机的功能,不仅能实现逻辑控制,还具有了数据处理、通信、网络等功能。由于它可通过软件来改变控制过程,而且具有体积小、组装维护方便、编程简单、可靠性高、抗干扰能力强等特点,已广泛应用于工业控制的各个领域,大大推进了机电一体化的进程。PLC的特点可综述如下:1.高可靠性2.编程简单,使用方便3.环境要求低4.体积小,重量轻5.扩充方便,组合灵活 (二)基于PLD技术的电梯控制设计方案随着电子技术的发展,PLD技术在工业控制系统中得到了广泛的应用,在电梯控制电路上采用PLD技术进行开发,越来越受到人们的重视。PLD技术开发手段多样,其中应用最为广泛的就是通过程序对硬件进行开发,而其中又数VHDL语言最受设计者的欢迎。PLD技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和PLD软件来完成对系统硬件功能的实现。近几年来,硬件描述语言等设计数据格式的逐步标准化,不同设计风格和应用的要求导致各具特色的PLD工具被集成在同一个工作站上,从而使PLD框架日趋标准化。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。其行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。VHDL语言的设计单元包括实体(entity)、结构体(architecture)、程序包(package)以及配置(configration)。其具体的流程图如图2.1所示。图2.1 VHDL设计流程图(三)方案选择对于符合市场需求的大规模系统,需要有多人,甚至多个开发组共同并行工作才能实现。用PLD技术完成一个确定的设计,可以利用相应的工具平台进行逻辑综合和优化,完成设计任务。同时,基于PLD技术的VHDL语言对设计的描述具有相对独立性,这为电子设计的入门者提供了便捷的帮助。就上述比较而言,本设计采用PLD方案更恰当。三、程序设计(一)算法分析1.电梯运行规则(1)请求信号分析本设计把电梯的请求信号分为上升请求和下降请求,电梯接收到请求信号后,都必须进行预操作。当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时,电梯必须在下一操作中作出上升运行,这时的请求信号就是上升请求信号。反之,则是下降请求信号。(2)电梯处于各楼层时的运行说明处于一楼时,不管是梯内梯外,电梯只接收上升的请求信号。此时,电梯就进入预上升状态。如果电梯没有接收到请求信号,电梯则在一楼待机。其分析图如图3.1所示。图3.1电梯处于一楼时的运行分析处于二楼时,电梯则可能出现三种情况: 电梯并没有接收到梯内梯外的任何请求信号时,电梯返回一楼待机; 电梯接收到上升请求信号,进入预上升状态; 电梯接收到下降请求信号,进入预下降状态。其分析图如图3.2所示。图3.2 电梯处于二楼时的运行分析处于三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。此时,电梯就进入预下降状态,准备作下降运行。如果电梯没有接收到请求信号,电梯则返回一楼待机。其分析图如图3.3所示。图3.3 电梯处于三楼时的运行分析电梯是一个人机交互式的控制系统,单纯用顺序优先或逻辑优先是不能满足控制要求的,因此,控制系统采用随机逻辑方式去解决信号优先的问题。也就是在顺序逻辑控制的基础上,根据随机的输入信号和电梯的相应状态,实时地控制电梯运行。比如,当电梯在三楼时,二楼、一楼梯外均有上升请求信号:电梯以向下的方向接近二楼的减速位置,判别二楼具有同向的请求信号,在二楼减速停止载客,然后继续下降到一楼载客。当电梯在三楼时,梯内有到达一楼的下降请求信号,而二楼有上升请求信号:当电梯以向下的方向接近二楼的减速位置时,判别二楼具有反向的请求信号,系统将把二楼的上升请求保存到上升请求寄存上,不在二楼作停泊继续下降到一楼去载客,然后读取上升请求寄存中先前二楼的上升请求,执行上升到二楼载客的操作。该动作完毕后,被保存的寄存器中的数据清除,以实现下一次随机逻辑控制。(3)对电梯开门、关门、报警等内部信号处理的分析。当电梯接收到请求信号后,将以随机逻辑控制的方式到达发出请求的楼层。开门使能信号促使电梯开门载客,同时驱动关门延时信号、超重检测以及故障检测。在电梯进行完关门倒数计时、超重排除以及故障排除后,关门使能信号将促使电梯关门进入预操作状态。如果此前出现提前关门信号而且电梯也已经进行完超重排除和故障排除,电梯同样关门进入预操作状态。电梯在超重检测时发现超重,关门中断信号会促使电梯发出超重警报并且进行开门操作以减少乘客,重新进入载客操作电梯在故障检测时,发现电梯某部分出现故障,关门中断信号会促使电梯发出故障报警,并进入开门操作的同时停止关门延时,作故障处理待机。2.程序流程根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行需经过以下流程: VHDL库调用确立控制器的端口及相关的寄存器根据电梯运行规则,设计相关运行描述对电梯内外信号进行处理。具体流程图如图3.4所示。图3.4 流程图(二)程序设计1.端口设计本设计的端口包括:时钟信号(clk)超载信号(full)、关门中断信号(deng)、提前关门信号(quick)、清除报警信号(clr)一楼电梯外人的上升请求信号(c_u1)、二楼电梯外人的上升请求信号(c_u2)二楼电梯外人的下降请求信号(c_d2)、三楼电梯外人的下降请求信号(c_d3)电梯内人请求到达一楼信号(d1)、电梯内人请求到达二楼信号(d2)、电梯内人请求到达三楼信号(d3)、到达一楼信号(g1)、到达二楼信号(g2)、到达三楼信号(g3)电梯门控制信号(door)电梯所在楼层显示(led)电梯外人上升请求信号显示(led_c_u)、电梯外人下降请求信号显示(led_c_d)电梯内请求信号显示(led_d)看门狗报警信号(wahaha)、超载警告信号(alarm)电梯运动方向显示(ud)电机向上控制信号(up)、电机向下控制信号(down)。2.寄存器设计本设计的寄存器包括:电梯内人请求到达一楼信号寄存(d11)、电梯内人请求到达二楼信号寄存(d22)、 电梯内人请求到达三楼信号寄存(d33)一楼电梯外人上升请求信号寄存(c_u11)、二楼电梯外人上升请求信号寄存(c_u22)二楼电梯外人下降请求信号寄存(c_d22)、三楼电梯外人下降请求信号寄存(c_d33)分频信号(q)关门延时计数器(q1)、看门狗计数器(q2)电梯内请求信号寄存器(dd)电梯外上升请求信号寄存器(cc_u)、电梯外下降请求信号寄存器(cc_d)电梯请求信号寄存器(dd_cc)开门使能信号(opendoor)电梯运动方向信号寄存器(updown)预备上升操作使能(en_up)、预备下降预操作使能(en_dw)。3.模块设计本程序由调用VHDL库模块、实体设计模块和结构体设计模块组成。在结构体模块中又内嵌有进程执行单元。(1)调用VHDL库通过library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;(2)entity实体设计模块entity dianti is port ( clk : in std_logic; full,deng,quick,clr : in std_logic; c_u1,c_u2: in std_logic; c_d2,c_d3: in std_logic; d1,d2,d3: in std_logic; g1,g2,g3: in std_logic; door : out std_logic_vector(1 downto 0); led : out std_logic_vector(3 downto 0); led_c_u:out std_logic_vector(2 downto 0); led_c_d:out std_logic_vector(2 downto 0); led_d : out std_logic_vector(2 downto 0); wahaha : out std_logic; ud,alarm : out std_logic; up,down : out std_logic ); end dianti;实体语句用关键词entity开头,本程序以dianti(电梯的汉语拼音)作为所要描述的实体名,在结束实体语句的时候使用end dianti。在entity语句的实体说明部分,用port附语描述实体对外界连接的端口(数目、方向和数据类型),实体dianti有25个接口,输入模式是clk/full/deng/quick/clr/c_u1/c_u2/c_d2/c_d3/d1/d2/d3/g1/g2/g3,其余都是输出模式,其中door/led/led c_u/led c_d/led d是带数组模式的输出接口。(3)architecture结构化设计模块和process进程执行单元dianti符号下的线路图描述dianti网表,与线路图对应的VHDL architecture就是结构体,实体dianti以结构化与行为化描述的结构体如下:architecture behav of dianti issignal d11,d22,d33:std_logic; signal c_u11,c_u22:std_logic; signal c_d22,c_d33: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(2 downto 0); signal opendoor:std_logic; signal updown:std_logic; signal en_up,en_dw:std_logic; begin com:process(clk) end behav;本模块以关键字architecture做结构体的开头,描述dianti实体的结构体behav。Architectecture和begin之间是结构体说明区,详细定义了各种信号端的模式和取值范围begin和end之间是结构体语句区,在此将嵌入process进程语句去对实体行为作出说明。com:process(clk)beginif clkevent and clk=1 then if clr=1 then q1=0;q2=0;wahaha=0; elsif full=1 then alarm=1; q1=3 then door=10; else door=00;end if; dd=d33&d22&d11; cc_u=0&c_u22&c_u11; cc_d=c_d33&c_d22&0; dd_cc=dd or cc_u or cc_d; end if; ud=updown; led_d=dd; led_c_u=cc_u; led_c_d=cc_d; end if; end process; 关键字process后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。关键字begin把进程语句分为进程说明和进程语句两部分。进程说明在时钟信号和begin之间,说明局部变量或某些仅在进程内部用的内容。进程语句部分在begin和end process之间,进程内的所有语句都是按顺序一个接一个执行的。3. 具体语句设计说明(1)赋值符号上文已说明了构成VHDL程序的两大部分实体和结构体的相关语句。在这些语句里,赋值语句占了相当一部分。在VHDL语言里,赋值符号一般都是“=”符号,具体形式如下:beginif clkevent and clk=1 then if clr=1 then q1=0;q2=0;wahaha=0; elsif full=1 then alarm=1; q1=3 then door=10; else door=00; end if; VHDL语言也具有与一般编程语言相同的一些语言逻辑结构,如上述中的“ifthen;elsifthen;”等。这是VHDL中的顺序语句,与我们常见的C语言中if作为条件语句不同。本程序只使用到上述的语言结构,相对简易。(2)电梯信号定义在实体模块中,对电梯的主要信号都一一作出了定义,具体说明如下:port ( clk : in std_logic; 时钟信号full,deng,quick,clr : in std_logic; 超载、关门中断、提前关门清除报警信号 c_u1,c_u2: in std_logic; 电梯外人的上升请求信号 c_d2,c_d3: in std_logic; 电梯外人的下降请求信号 d1,d2,d3 : in std_logic; 电梯内人的请求信号 g1,g2,g3 : in std_logic; 到达楼层信号 door : out std_logic_vector(1 downto 0); 电梯门控制信号 led : out std_logic_vector(6 downto 0); 电梯所在楼层显示 led_c_u:out std_logic_vector(2 downto 0); 电梯外人上升请求信号显示 led_c_d:out std_logic_vector(2 downto 0); 电梯外人下降请求信号显示 led_d : out std_logic_vector(2 downto 0); 电梯内请求信号显示 wahaha : out std_logic; 看门狗报警信号 ud,alarm : out std_logic; 电梯运动方向显示,超载警告信号up,down : out std_logic ); 电机控制信号和电梯运动在结构体中对电梯的运行行为作出描述,其中以电梯处于二楼的情况相对复杂,对此作如下说明:elsif g2=1 then led=0010010; 电梯到达2楼,数码管显示2if updown=1 then 电梯前一运动状态位上升 if d22=1 or c_u22=1 then d22=0; c_u22=0; opendoor011 then en_up=1; opendoor=0; 有上升请求,则电梯进入预备上升状态 elsif dd_cc010 then en_dw=1; opendoor=0; 有下降请求,则电梯进入预备下降状态 end if; 电梯前一运动状态为下降 elsif d22=1 or c_d22=1 then d22=0; c_d22=0;opendoor=1;有当前层的请求,则电梯进入开门状态elsif dd_cc010 then en_dw=1; opendoor011 then en_up=1; opendoor=0; 有上升请求,则电梯进入预备上升状态 end if;在上述语句中的“elsif g2=1 then led=0010010; ”,led的赋值是根据七段式数字显示器的发光段排列的,可见发光段是a、b、d、e、g段时,形成一个2字。所以在一楼时led赋值为“1001111”,三楼时led赋值为“0000110”,如图3.5所示。图3.5 七段数字显示器(3)请求信号处理在进程执行单元里,对电梯在楼层时的操作情况作出了描述,例如:开门、关门延时、超载报警、故障报警以及电梯内的请求信号处理,具体说明如下:com:process(clk)beginif clkevent and clk=1 then if clr=1 then q1=0;q2=0;wahaha=0; 清除故障报警 elsif full=1 then alarm=1; q1=3 then door=10; else door=00; end if; elsif q=1 then q=0;alarm=0; if q2=3 then wahaha=1; 故障报警 elseif opendoor=1 then door=10;q1=0;q2=0;up=0;down=0; 开门操作elsif en_up=1 then 上升预操作 if deng=1 then door=10;q1=0;q2=q2+1; 关门中断elsif quick=1 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 deng=1 then door=10;q1=0;q2=q2+1; elsif quick=1 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; else q=1;alarm=0; 清除超载报警if d1=1 then d11=d1; 对电梯内人请求信号进行检测和寄存 elsif d2=1 then d22=d2;elsif d3=1 then d33=d3; end if;if c_u1=1 then c_u11=c_u1; 对电梯外人上升请求信号进行检测和寄存elsif c_u2=1 then c_u22=c_u2; end if; if c_d2=1 then c_d22=c_d2; 对电梯外人下降请求信号进行检测和寄存elsif c_d3=1 then c_d33=c_d3; end if; dd=d33&d22&d11; 电梯内人请求信号并置 cc_u=0&c_u22&c_u11; 电梯外人上升请求信号并置 cc_d=c_d33&c_d22&0; 电梯外人下降请求信号并置 dd_cc=dd or cc_u or cc_d; 电梯内、外人请求信号进行综合 end if; ud=updown; 电梯运动状态显示 led_d=dd; 电梯内人请求信号显示led_c_u=cc_u; 电梯外人上升请求信号显示led_c_d=cc_d; 电梯外人下降请求信号显示end if; 四、程序调试1.建立工作库目录打开MAX+plusII软件,其初始界面如图4.1所示。图4.1 MAX+plusII软件初始界面2. 新建文本编辑文件在工具栏中选择“新建”按钮。在选择输入路径时,选择“Text Editor File”以进行文本输入,如图4.2所示。图4.2 输入路径选择为文本输入3.文本输入在文本输入界面内进行程序输入,如图4.3所示。图4.3 程序输入界面4.程序保存输入完毕后,对程序进行保存。文件名和实体定义的符号必须保持一致,即文件名为dianti。因为是使用VHDL语言,所以文件后缀名须改成VHD,如图4.4所示。由于文件后缀名都默认为TDF,在初次调试时并没有注意这个问题,结果在编译的时候老是出错。图4.4 文本输入保存界面5. 设置顶层文件在编译前,需要把文件设置为顶层文件,或称工程文件Project。选择菜单“File”“Set Project to Current File”,当前的文件即被指定。如图4.5所示。图4.5 设置顶层文件6. 程序编译在“MAX+plusII”下拉按钮里选择”Compiler”,对程序进行编译。此时,MAX+plusII软件会对程序进行纠错等处理。当程序被确认无误以后会出现图4.6的界面。图4.6编译完成 在编译完成以后,程序的调试结束。五、程序仿真(一)波形输入建立1. 新建波形编辑器编译完全通过后,新建波形编辑器进行设计仿真。通过“新建”按钮,选择“Waveform Editor file”,如图5.1所示。图5.1 新建波形编辑器2.保存文件新建波形编辑器后,对文件进行保存。同样是使用相同的文件名dianti,后缀则改为scf。3. 添加节点信号在编辑器的Name栏点击鼠标右键,选择“Enter Nodes from SNF”选择添加需要观察的节点信号。如图5.2所示。图5.2 添加节点信号4. 对输入信号赋值通过编辑器左侧的一些快捷按钮对所加节点中的输入信号进行相关的赋值后,就可对程序进行仿真,观察输出信号,得出结论。如对时钟信号clk赋周期为25ms的周期信号,如图5.3所示。图5.3 对clk信号赋值图5.时间调整在进行仿真前,还需对仿真截止时间和最小单位时间进行一下调整。在“File”栏对截止时间“End Time”设置为“10s”,在“Options”栏的“Grid Size”设置为“20ns”。如图5.4和图5.5所示。 图5.4 截止时间设置图 图5.5 单位时间设置(二)电梯运行情况仿真本设计的运行情况比较复杂,本文主要介绍以下两种情况。1.电梯在不同时段接收到请求信号。电梯处于一楼,接收到三楼的梯外下降请求(c_d3),于是电梯运行到三楼,中途经过二楼时不作停顿。到达三楼载客后,电梯内又接收到下降到一楼的梯内请求(d1),于是电梯返回一楼待机。仿真情况如图5.6所示。观察以下信号:up、ud、down、led、led_c_d、led_d。图5.6 电梯在不同时段接收到请求信号说明:(1)up:在电梯接收到c_d3后,赋值为1,表示电梯受控制处于上升过程,当电梯运行到三楼以后,赋值变为0。(2)ud:从电梯接收c_d3到电梯接收d1为止,赋值为1,表示电梯此时向上运行,其余时间段都为0,表示电梯此时向下运行或者待机。(3)down:在电梯接收到d1后,赋值为1,表示电梯受控制处于下降过程,当电梯运行到一楼以后,赋值变为0。(4)led:电梯每运行到达一层时,都会有不同的信号输出: 1001111、0010010、0000110。这些就是楼层指示,依次代表1、2、3。(5)led_c_d:在电梯接收到c_d3后,赋值楼层编码为100,表示梯外有人请求下降,电梯运行到达请求发出的楼层(三楼)后,电梯赋值变为000,表示下降请求得到满足。(6)led_d:在电梯接收到d1后,赋值为001,表示梯内请求到达楼层编码为001,即一楼电梯运行到达请求目的楼层一楼后,电梯赋值变为000,表示请求楼层得到满足或在待机。2.电梯在同一时间段接收不同的请求信号。电梯停在一楼,在同一时间段里接受到三个请求信号:一楼梯内上升到三楼的请求(d3)、二楼的梯外上升请求(c_u2)和三楼的梯外下降请求(c_d3)。电梯到达二楼,载客继续上升。电梯上升到三楼时,响应请求c_d3,开门载客进入预备下降状态。由于二楼并没有请求,所以电梯不作停顿地下降到一楼。电梯执行完所有请求时电梯将停在一楼待机。仿真情况如图5.7所示。观察以下信号:up、ud、down、led_c_u、led_c_d、led_d。图5.7电梯在同一时间段接收不同的请求信号说明:(1)up:在电梯接收到请求信号后,赋值为1,表示电梯受控制处于上升过程,当电梯运行到二楼以后,赋值短暂变0,然后又变为1,表示电梯在二楼载客完毕后又进入上升过程,到达三楼后,赋值为0。(2)ud:从电梯接收请求信号后到电梯运行到三楼为止,赋值为1,表示电梯此时向上运行,其余时段都为0,表示电梯此时向下运行或者待机。(3)down:在电梯到达三楼后,赋值为1,表示电梯受控制处于下降过程,当电梯运行到一楼以后,赋值变为0。(4)Led_c_u:在电梯接收到c_u2后,赋值楼层编码为010(二楼),表示二楼梯外有人请求上升,电梯运行到达请求发出的楼层(二楼)后,电梯赋值变为000,表示上升请求得到满足或在待机。(5)led_c_d:在电梯接收到c_d3后,赋值楼层编码为100,表示梯外有人请求下降,电梯运行到达请求发出的楼层(三楼)后,电梯赋值变为000,表示下降请求得到满足或在待机。(6)led_d:在电梯接收到d3后,赋值为100,表示梯内请求到达楼层编码为100(三楼),电梯运行到达请求目的楼层(三楼)后,电梯赋值变为000,表示请求楼层得到满足或在待机。(三)电梯功能仿真电梯的功能包括:提前关门、看门狗报警、超载报警、故障报警。设电梯到达三楼时,响应请求(c_d3),开门载客进入预备下降状态。电梯在预备下降状态下,电梯如果超载(full=1),发出超载警报;超载信号消失(full=0),电梯重新进入预备下降状态。电梯接受到deng、c_d3和d3电梯重新进入预备下降状态,并且c_d3和d3信号都可以对q2(q23时)进行清零处理。当连续关门中断的次数超过3次时,不认为是出自乘客的需要,而认为是故障,并报警,等技术员处理完故障时,用clr信号才可以清除报警。仿真情况如下图5.8所示。观察以下信号:wahaha、alarm、quick。图5.8 功能仿真图说明:(1)wahaha:当关门中断信号deng初次赋值为1时,本信号就赋值为1,一直到故障清除,信号clr赋值为1时才变为0。这表示当电梯首次关门失败后(即deng首次赋值为1时),电梯便一直处于故障报警状态下,直到技术员处理完故障后,用clr才可以清除其报警。(2)alarm:跟随超重信号full的赋值变化而变化。当电梯超重时,超重信号就进行报警。(3)quick:电梯接受到提前关门信号quick,电梯跳过关门等待时间。q1信号从1 跳到3,进入关门状态。总结通过本次毕业设计,为我以后在这方面的深入学习打下基础,让我更深刻的体会到“学以致用”的道理。同时也提高了我解决实际问题的能力,培养自我创新意识。在设计中我必须首先熟悉和掌握MAX PLUS的设计流程和工作原理,PLD技术及用VHDL语言设计程序的能力和对于三层电梯的控制源程序要进行深入的了解。通过这次毕业设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。附录一 三层电梯控制的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti is port ( clk : in std_logic; full,deng,quick,clr : in std_logic; c_u1,c_u2: in std_logic; c_d2,c_d3: in std_logic; d1,d2,d3: in std_logic; g1,g2,g3: in std_logic; door : out std_logic_vector(1 downto 0); led : out std_logic_vector(6 downto 0); led_c_u:out std_logic_vector(2 downto 0); led_c_d:out std_logic_vector(2 downto 0); led_d : out std_logic_vector(2 downto 0); wahaha : out std_logic; ud,alarm : out std_logic; up,down : out std_logic ); end dianti;architecture behav of dianti issignal d11,d22,d33:std_logic; signal c_u11,c_u22:std_logic; signal c_d22,c_d33: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(2 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=1 then q1=0;q2=0;wahaha=0; elsif full=1 then alarm=1; q1=3 then door=10; else door=00; end if; elsif q=1 then q=0;alarm=0; if q2=3 then wahaha=1; else if opendoor=1 then door=10;q1=0;q2=0;up=0;down=0; elsif en_up=1 then if deng=1 then door=10;q1=0;q2=q2+1; elsif quick=1 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 deng=1 then door=10;q1=0;q2=q2+1; elsif quick=1 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 g1=1 then led=1001111; if d11=1 or c_u11=1 then d11=0; c_u11=0;opendoor000001 then en_up=1; opendoor=0;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!