2022年电梯控制系统VHDL设计方案 .pdf
《2022年电梯控制系统VHDL设计方案 .pdf》由会员分享,可在线阅读,更多相关《2022年电梯控制系统VHDL设计方案 .pdf(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、设计题目:电梯控制系统设计者: 040074* 日期: 2009-9-16 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 48 页目录一、课题设计要求分析3 二、程序设计思想:3 三、电梯流程图7 四、状态转换图10 五、程序解释10 六、设计思想43 七、程序调试(仿真波形解释及图)44 八、结论47 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 48 页一、课题设计要求分析本课题要求设计一个电梯控制系统,传统的电梯控制系统仅仅要求实现对一栋电梯的控制,而本题要求设计一个实
2、现两栋电梯联动的基于VHDL 的电梯控制系统。具体要求如下:需要大楼为4 层,2 部电梯,每部电梯内部都有如下按键:1-4 楼的按键选择,开门键,关门键,报警键。每部电梯的每层楼外面都有上楼键和下楼键(1楼只有上楼键,六楼只有下楼键)。电梯的设计参照日常生活中电梯实际运行规律设计。 两部电梯之间互相联动,即同时按下任何一部电梯的外部向上或向下键之后,两部电梯同时接受此指令,然后由系统判断,与该请求所在楼层最近并且运行方向相同的电梯执行指令,另一部电梯不执行该指令。我们设计的电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用VHDL 语言来设计实现两栋电梯联动的四层电梯控制器,代码具有良好的
3、可读性和以理解性,源程序使用Altera 公司的MAX+plusII软件仿真,本课题的设计具有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。二、程序设计思想:我们使用一个核心控制器进行联动的算法调度。在此基础上,我们增加了输出所在层数的七段码显示程序和功能。我们在充分考虑所有的输入信号和输出的状态信号,把所有信号集合在一个核心控制器中,具体BLOCK 图见下图:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 48 页VCCresetINPUTVCCopen1INPUTVCCopen2INPUTVCCclose1INPUTVCCc
4、lose2INPUTVCCw arn1INPUTVCCw arn2INPUTVCCno_w arn1INPUTVCCno_w arn2INPUTVCCstop2_1INPUTVCCstop2_2INPUTVCCstop2_3INPUTVCCstop2_4INPUTVCCstop1_3INPUTVCCstop1_1INPUTVCCstop1_2INPUTVCCstop1_4INPUTVCCdow n2_2INPUTVCCdow n2_3INPUTVCCup2_3INPUTVCCdow n2_4INPUTVCCdow n1_3INPUTVCCdow n1_4INPUTVCCup2_1INPUTVC
5、Cup2_2INPUTVCCup1_3INPUTVCCup1_2INPUTVCCup1_1INPUTVCCdow n1_2INPUTVCCclkINPUTa2.0clkq6.0SEVEN66a2.0clkq6.0SEVEN69a2.0clkq6.0SEVEN68a2.0clkq6.0SEVEN67w ait1OUTPUTmode21.0OUTPUTmode11.0OUTPUTfloor_seven26.0OUTPUTfloor_seven16.0OUTPUTw arn_seven16.0OUTPUTdoor1OUTPUTdoor2OUTPUTw ait2OUTPUTclkup1_1up1_2u
6、p1_3down1_2down1_3down1_4up2_1up2_2up2_3down2_2down2_3down2_4stop1_1stop1_2stop1_3stop1_4stop2_1stop2_2stop2_3stop2_4warn1warn2no_warn1no_warn2open1open2close1close2resetfloor12.0floor22.0mode11.0mode21.0warn_out12.0warn_out22.0wait1wait2door_out1door_out2CONTROL80由输入信号,中央处理器,输出信号,以及电梯运行状态的七段码进行显示模块
7、。下面具体解读具体的管脚分配:首先我们可以从中心控制算法来看:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 48 页door1OUTPUTdoor2OUTPUTw ait1OUTPUTw ait2OUTPUTmode11.0OUTPUTw arn_out22.0OUTPUTmode21.0OUTPUTw arn_out12.0OUTPUTfloor22.0OUTPUTfloor12.0OUTPUTVCCclkINPUTVCCresetINPUTVCCopen1INPUTVCCopen2INPUTVCCclose1INPUTVCCclo
8、se2INPUTVCCstop2_4INPUTVCCw arn1INPUTVCCw arn2INPUTVCCno_w arn1INPUTVCCno_w arn2INPUTVCCstop1_3INPUTVCCstop1_4INPUTVCCstop2_1INPUTVCCstop2_2INPUTVCCstop2_3INPUTVCCdow n2_2INPUTVCCdow n2_3INPUTVCCdow n2_4INPUTVCCstop1_1INPUTVCCstop1_2INPUTVCCdow n1_3INPUTVCCdow n1_4INPUTVCCup2_1INPUTVCCup2_2INPUTVCCu
9、p2_3INPUTVCCdow n1_2INPUTVCCup1_3INPUTVCCup1_2INPUTVCCup1_1INPUTclkup1_1up1_2up1_3down1_2down1_3down1_4up2_1up2_2up2_3down2_2down2_3down2_4stop1_1stop1_2stop1_3stop1_4stop2_1stop2_2stop2_3stop2_4warn1warn2no_warn1no_warn2open1open2close1close2resetfloor12.0floor22.0mode11.0mode21.0warn_out12.0warn_o
10、ut22.0wait1wait2door_out1door_out2CONTROL62一下是中央控制算法输入输出管教说明:clk:时钟信号up1_1,up1_2,up1_3,down1_2,down1_3,down1_4,up2_1,up2_2,up2_3,down2_2,down2_3,down2_4:对应楼层的上下楼按键stop1_1,stop1_2,stop1_3,stop1_4,stop2_1,stop2_2,stop2_3,stop2_4:对应楼层的停电梯按键warn1,warn2:对应电梯的报警按键no_warn1,no_warn2: 解除报警open1,open2: 对应电梯的开
11、门键close1,close2 :对应电梯的关门键floor1,floor2: 当前位置电梯 1,2的位置mode1,mode2:o当前电梯状态: 00升,01 降,10停止, 11报警warn_out1,warn_out2:报警输出在第几层reset:in std_logic。-复位键wait1: wait2:等待状态输出door_out1,door_out2:门状态输出我们的程序尽可能的把电梯的所有的状态都模拟出来,因此我们设置了所有需要的按键,都是参考实际电梯装置所有的按键进行设置的。除此之外,为了设置观察电梯运行状态的输出信号,如电梯现在所运行的楼层,电梯是上楼还是下楼,是停止还是报警
12、,我们都有相应的状态和它对应。通过这样的规划程精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 48 页序,我们实现了电梯所有状态的输出,以及显示。同时也使得我们可以很好的调试我们的程序。Block 图的另外一部分就是:其中就是我们增加的功能,使得电梯的运行层数在实际的制作过程中,可以显示当前的电梯所在层数。这样我们的程序能够更好的向实物方向发展。程序的设计中,我们设计了内部的处理信号和中间变量,进行状态的保存和输出状态的存储。以利于我们进行电梯算法的处理实现,具体如下:type state_type is(c1,c2,c3,c4,war
13、n,open_door,wait_time) 。-电梯工作状态signal signal_up1,signal_up2:std_logic_vector(3 downto 1) 。-上升信号存储signal signal_down1,signal_down2:std_logic_vector(4 downto 2) 。-下降信号存储signal signal_mode1,signal_mode2:std_logic_vector(1 downto 0)。-电梯工作方式信号signal signal_floor1,signal_floor2:std_logic_vector(2 downto 0
14、)。-电梯当前位置signal signal_stop1,signal_stop2:std_logic_vector(4 downto 1)。-电梯内部停止请求信号signal state_1,state_2:state_type。-电梯状态信号signal door1,door2:std_logic 。-门状态信号signal signal_warn1,signal_warn2:std_logic 。-报警信号signal signal_open1,signal_open2:std_logic:=0 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -
15、第 6 页,共 48 页其中包括电梯工作信号,上升信号存储,下降信号存储,电梯工作方式信号,电梯当前位置,电梯内部请求信号,电梯状态信号,们状态信号,报警信号等。还包括存储变量如下:控制输入信号的分配a_d1,a_c1,b_d1,c_a1,d_b1,d_a1: 一号电梯跨楼层请求abcd 分别为一二三四层如a_c表示电梯在第 a层有人要求到第c层停下open_count1,open_byhand1: 开门时间计数a_d2,a_c2,b_d2,c_a2,d_b2,d_a2: 跨楼层请求abcd 分别为一二三四层如 a_c 表示电梯在第 a层有人要求到第 c 层停下open_count2,open
16、_byhand2: 开门时间计数count1:延时计数pass_time1,pass_time2: 楼层过渡时间state_temp1,state_temp2 :状态缓存变量变量包括:存储各层电梯请求,进行开门时间的计数变量,存储各种停电梯请求,延时计数,楼层过度时间计数,对状态的存储变量。三、电梯流程图电梯程序设计流程图如下: CLOCK 触发外输入信号触发动作核心算法控制信号输出观察显示精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 48 页具体流程如如下:下面分模块进行说明:下面是输入模块的处理流程图:下面是核心控制的流程图: 号
17、判断流程图见下图Clk一 个 时钟周期复位报警关 门 , 开门扫描进入控制程序扫描信号需要电梯的人所在楼层检测当前电梯状态检测电梯所在楼层精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 48 页号流程判断见下图 核心算法描述:扫描扫描人所在楼层人所按按钮是上楼/下楼信 息 送入处理检测电梯当前状态扫描 向 上 运行 向 下 运行 停 止 不动WARN报警模式信息处理精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 48 页四、状态转换图五、程序解释一、输入信号,中间控制信号,输出信
18、号的定义如下:library ieee。use ieee.std_logic_1164.all 。use ieee.std_logic_unsigned.all 。entity control is port(clk:in std_logic。-时钟信号up1_1,up1_2,up1_3,down1_2,down1_3,down1_4,up2_1,up2_2,up2_3,down2_2,down2_3,down2_4:in std_logic。-对应楼层的上下楼按键stop1_1,stop1_2,stop1_3,stop1_4,stop2_1,stop2_2,stop2_3,stop2_4:i
19、n std_logic。-对应楼层的停电梯按键warn1,warn2:in std_logic。-对应电梯的报警按键no_warn1,no_warn2:in std_logic。-解除报警open1,open2:in std_logic 。-对应电梯的开门键close1,close2:in std_logic 。-对应电梯的关门键floor1,floor2:out std_logic_vector(2 downto 0)。-当前位置电梯1,2 的位置一号电梯运动情况二号电梯运动情况采集信号输入进 行 分 别 讨论,各个电梯在各种状态下的响应两个电梯联动实现精选学习资料 - - - - - -
20、- - - 名师归纳总结 - - - - - - -第 10 页,共 48 页mode1,mode2:out std_logic_vector(1 downto 0)。-当前电梯状态: 00 升,01降,10 停止, 11报警warn_out1,warn_out2:out std_logic_vector(2 downto 0)。-报警输出在第几层reset:in std_logic。-复位键wait1:out std_logic。wait2:out std_logic。door_out1,door_out2:out std_logic) 。-门状态输出end control。architec
21、ture behave of control is type state_type is(c1,c2,c3,c4,warn,open_door,wait_time) 。-电梯工作状态signal signal_up1,signal_up2:std_logic_vector(3 downto 1) 。-上升信号存储signal signal_down1,signal_down2:std_logic_vector(4 downto 2) 。-下降信号存储signal signal_mode1,signal_mode2:std_logic_vector(1 downto 0)。-电梯工作方式信号si
22、gnal signal_floor1,signal_floor2:std_logic_vector(2 downto 0)。-电梯当前位置signal signal_stop1,signal_stop2:std_logic_vector(4 downto 1)。-电梯内部停止请求信号signal state_1,state_2:state_type。-电梯状态信号signal door1,door2:std_logic 。-门状态信号signal signal_warn1,signal_warn2:std_logic 。-报警信号signal signal_open1,signal_open2
23、:std_logic:=0 。begin - con:process(clk)-控制输入信号的分配variable a_d1,a_c1,b_d1,c_a1,d_b1,d_a1:std_logic 。-一号电梯跨楼层请求abcd分别为一二三四层 如 a_c表示电梯在第 a层有人要求到第 c层停下variable open_count1,open_byhand1:integer 。-开门时间计数variable a_d2,a_c2,b_d2,c_a2,d_b2,d_a2:std_logic 。-跨楼层请求 abcd分别为一二三四层 如 a_c表示电梯在第 a层有人要求到第c层停下variable
24、open_count2,open_byhand2:integer 。-开门时间计数-variable count1:integer。- 延时计数variable pass_time1,pass_time2:integer 。-楼层过渡时间variable state_temp1,state_temp2:state_type。-状态缓存变量二、对复位信号,报警信号,开关门信号处理if clkevent and clk=1 then -复位信号if reset=1 then 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 48 页floo
25、r1=000 。floor2=000 。mode1=10。mode2=10。door_out1=0。door_out2=0。signal_mode1=10。signal_mode2=10。signal_floor1=000。signal_floor2=000。state_1=c1 。state_2=c1 。signal_up1=000。signal_up2=000。signal_stop1=0000。signal_stop2=0000。signal_down1=000。signal_down2=000。door1=0。door2=0。signal_warn1=0。signal_warn2=0。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年电梯控制系统VHDL设计方案 2022 电梯 控制系统 VHDL 设计方案
限制150内