1、EDA课程设计电梯控制器电子设计自动化(EDA)技术课程设计报告题目: 电梯控制系统设计 姓 名: 院 系: 专业: 学 号: 指导教师: 完成时间: 年 月 日 一、 课程设计题目、内容与要求 41.1 设计内容 41.2 具体要求 4二、 系统设计 42.1 设计思路 42.2 系统原理(包含:框图等阐述)与设计说明等内容三、系统实现 5注:此部分阐述具体实现,包含主要逻辑单元、模块、源代码等内容四、系统仿真 12五、硬件验证(操作)说明15六、总结 16七、参考书目 17设计题目电梯控制系统设计要求1.电梯入口处设有上下请求开关各1个,电梯内设有乘客到达层次的数字开关。电梯当前所在的楼层
2、位置用一位数码管显示,用一只发光二极管显示开门/关门状态,用发光二极管显示每层的上下请求状态;2.显示电梯当前所处位置和电梯上行下行及开关门状态;3.电梯到达有停靠站请求的楼层后,电梯门就会自动打开门指示灯亮,开门3秒钟后,电梯门自动关闭并继续运行;4.对电梯开门时间可以提前关门(按关门按钮);5.能记忆电梯内外的所有请求信号,并按照电梯运行的规则次第响应,每个请求信号保留至执行后撤除,如到达某层后,上下方均无请求,则电梯停在该层,中止运行。 设计过程(包括:设计方案、上机设计与仿真结果、硬件实验方案及实验结果、收获和体会) 附后成绩评定指导教师评语课程设计等级一、课程设计题目、内容与要求1.
3、1课程设计内容-电梯控制系统采用EDA-VHDL语言建模电梯控制系统,实现电梯的功能需求。在实验操作平台MAXPLUSII和实验箱(主芯片EPM7096LC68-7)上完成系统的仿真。1.2电梯系统控制设计要求(1).每层电梯入口处设有上下请求开关各1个,电梯内设有乘客到达层次的数字开关。电梯当前所在的楼层位置用一位数码管显示,用一只发光二极管显示开门/关门状态,用发光二极管显示每层的上下请求状态;(2).显示电梯当前所处位置和电梯上行下行及开门,关门状态; (3).电梯到达有停靠站请求的楼层后,电梯门就会自动打开门指示灯亮,开门3秒钟后;(4).电梯门自动关闭(开门指示灯灭)电梯继续运行;(
4、5).对电梯开门时间可以提前关门(按关门按钮);(6).能记忆电梯内外的所有请求信号,并按照电梯运行的规则次第响应,每个请求信号保留至执行后撤除,如到达某层后,上下方均无请求,则电梯停在该层,中止运行。 二、系统设计2.1设计思路该设计采用方向优先控制方式方案,方向优先控制是指电梯运行到某一楼层时先考虑这一楼层是否有请求:有 ,则停止;无,则继续前进。停下来后再启动时的步骤:考虑前方上方或下方是否有请求:有,则继续前进;无,则停止;检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。2.2 系统原理(包含:框图等阐述)与设计说明等内容电梯控制器系统由系统时钟,楼层请求,故障清除,关门中
5、断,超载,提前关门,信号存储,状态存储,中央处理器,电梯升降停,门开关停,楼层显示,请求信号显示,超载故障报警部分组成。如图1和如图2所示图2 电梯控制系统电路图三、系统实现(1)外部数据高速采集模块设计有效的对外部信号采集、处理要求电梯控制器对外部请求信号的实时、准确采集准确、实时的捕捉楼层到达信号;有防止楼层到达信号、外部请求信号的误判。(2)信号存储模块电梯控制器的请求输入信号有18个(电梯外有6个上升请求和6个下降请求的用户输入端口,电梯内有6个请求用户输入端口),由于系统对内、外请求没有设置优先级,各楼层的内、外请求信号被采集后可先进行运算,再存到存储器内。(3)基于FPGA的中央处
6、理模块中央数据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。电梯工作过程中共有9种状态:等待、上升、下降、开门、关门、停止、休眠、超载报警以及故障报警状态。一般情况下,电梯工作起始点是第一层,起始状态是等待状态,启动条件是收到上升请求。系统的状态流程图如图3所示:- 图3 系统状态流程图(4)源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti is port
7、 ( clk : in std_logic; -时钟信号(频率为2Hz) full,deng,quick,clr : in std_logic;-超载、关门中断、提前关门清除报警信号 c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; -电梯外人的上升请求信号 c_d2,c_d3,c_d4,c_d5,c_d6 : in std_logic; -电梯外人的下降请求信号 d1,d2,d3,d4,d5,d6 : in std_logic; -电梯内人的请求信号 g1,g2,g3,g4,g5,g6 : in std_logic; -到达楼层信号 door : out std
8、_logic_vector(1 downto 0); -电梯门控制信号 led : out std_logic_vector(6 downto 0); -电梯所在楼层显示 led_c_u:out std_logic_vector(5 downto 0); -电梯外人上升请求信号显示 led_c_d:out std_logic_vector(5 downto 0); -电梯外人下降请求信号显示 led_d : out std_logic_vector(5 downto 0); -电梯内请求信号显示 wahaha : out std_logic; -看门狗报警信号 ud,alarm : out s
9、td_logic; -电梯运动方向显示,超载警告信号up,down : out std_logic ); -电机控制信号和电梯运动end dianti;architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic; -电梯内人请求信号寄存信号signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic; -电梯外人上升请求信号寄存信号signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic; -电梯外人下降请求信号寄存信号signal q:int
10、eger 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(5 downto 0); -电梯内外请求信号寄存器signal opendoor:std_logic; -开门使能信号signal updown:std_logic; -电梯运动方向信号寄存器signal en_up,en_dw:std_logic; -预备上升、预备下降预操作使能信号beginproce
11、ss(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=
12、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;dow
13、n=3 then door=01;q1=q1+1; else q1=q1+1;door=00; end if; end if; if g1=1 then led=1001111; -电梯到达1楼,数码管显示1 if d11=1 or c_u11=1 then d11=0; c_u11=0;opendoor000001 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 elsif dd_cc=000000 then opendoor=0; -无请求时,电梯停在1楼待机 end if; elsif g2=1 then led=0010010; -电梯到达2楼
14、,数码管显示2 if updown=1 then -电梯前一运动状态位上升 if d22=1 or c_u22=1 then d22=0; c_u22=0; opendoor000011 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 elsif dd_cc000010 then en_dw=1; opendoor=0; -有下降请求,则电梯进入预备下降状态 end if; -电梯前一运动状态为下降 elsif d22=1 or c_d22=1 then d22=0; c_d22=0;opendoor=1; -有当前层的请求,则电梯进入开门状态 els
15、if dd_cc000010 then en_dw=1; opendoor000011 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 end if; elsif g3=1 then led=0000110; -电梯到达3楼,数码管显示3 if updown=1 then if d33=1 or c_u33=1 then d33=0; c_u33=0;opendoor000111 then en_up=1; opendoor=0; elsif dd_cc000100 then en_dw=1; opendoor=0; end if; elsif d33
16、=1 or c_d33=1 then d33=0; c_d33=0; opendoor=1; elsif dd_cc000100 then en_dw=1; opendoor000111 then en_up=1; opendoor=0; end if; elsif g4=1 then led=1001100; -电梯到达4楼,数码管显示4 if updown=1 then if d44=1 or c_u44=1 then d44=0; c_u44=0; opendoor001111 then en_up=1; opendoor=0; elsif dd_cc001000 then en_dw=
17、1; opendoor=0; end if; elsif d44=1 or c_d44=1 then d44=0; c_d44=0; opendoor=1; elsif dd_cc001000 then en_dw=1; opendoor001111 then en_up=1; opendoor=0; end if; elsif g5=1 then led=0100100; -电梯到达5楼,数码管显示5 if updown=1 then if d55=1 or c_u55=1 then d55=0; c_u55=0;opendoor011111 then en_up=1; opendoor=0
18、; elsif dd_cc010000 then en_dw=1; opendoor=0; end if; elsif d55=1 or c_d55=1 then d55=0; c_d55=0;opendoor=1; elsif dd_cc010000 then en_dw=1; opendoor011111 then en_up=1; opendoor=0; end if; elsif g6=1 then led=0100000; -电梯到达6楼,数码管显示6 if d66=1 or c_d66=1 then d66=0; c_d66=0;opendoor=1; elsif dd_cc100
19、000 then en_dw=1; opendoor=0; end if; else en_up=0;en_dw=0; -电梯进入上升或下降状态 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; elsif d4=1 then d44=d4; elsif d5=1 then d55=d5; elsif d6=1 then d66=d6; end if; if c_u1=1 then c_u
20、11=c_u1; -对电梯外人上升请求信号进行检测和寄存 elsif c_u2=1 then c_u22=c_u2; elsif c_u3=1 then c_u33=c_u3; elsif c_u4=1 then c_u44=c_u4; elsif c_u5=1 then c_u55=c_u5; end if; if c_d2=1 then c_d22=c_d2; -对电梯外人下降请求信号进行检测和寄存 elsif c_d3=1 then c_d33=c_d3; elsif c_d4=1 then c_d44=c_d4; elsif c_d5=1 then c_d55=c_d5; elsif
21、c_d6=1 then c_d66=c_d6;end if; dd=d66&d55&d44&d33&d22&d11; -电梯内人请求信号并置 cc_u=0&c_u55&c_u44&c_u33&c_u22&c_u11; -电梯外人上升请求信号并置 cc_d=c_d66&c_d55&c_d44&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_
22、c_d=cc_d; -电梯外人下降请求信号显示end if; end process; end behav;四、电梯系统仿真程序仿真注:1. 电梯停在一楼时,接受到请求信号c_d3、c_d2、c_u4和d6,并把请求信号写入相应的寄存器。led显示电梯所在楼层;led_d、led-c_u和led_c_d显示用户的请求。 2. 电梯经过准备上升状态后,进入上升状态,到达2楼,3楼时,不停继续前进。 3. 电梯上升到4楼时,响应请求(c_u4),开门载客;进入预备上升状态。电梯控制程序仿真局部放大图-1注:1. 电梯上升到6楼时,响应请求(d_6),开门卸客;进入预备下降状态。 2. 电梯下降经过
23、5楼,4楼都不停,到达3楼开门卸客,电梯进入预备下降状态。电梯控制程序仿真局部放大图-2注:1. 电梯到达3楼时,响应请求(c_d3),开门载客;进入预备下降状态。2. 电梯在预备下降状态下,电梯应超载(full=1),发出超载警报alarm;超载信号消失(full=0),电梯重新进入预备下降状态。3. 电梯接受到提前关门信号quick,电梯跳过关门等待时间。仿真图中q1从1跳到3;进入关门状态。4. 电梯接受到deng、c_d3和d3电梯重新进入预备下降状态,并且c_d3和d3信号都可以对q2(q23时)进行清零处理。5. 当连续的关门中断的次数超过3次时,不认为是出自乘客的需要,而认为是故
24、障,并报警,等技术员处理完故障时,用clr信号才可以清除报警。电梯控制程序仿真局部放大图-3注:1. 电梯排除故障后继续运行。 2. 电梯执行完所有请求时电梯将停在1楼待机。电梯控制程序仿真局部放大图-4 五、硬件验证(操作)说明1. FILE-NEWTEXT EDTOR FILE 2. SAVE AS-COMPILER3. MAXPLUSIIWAVEFORM EDITORSAVE AS4. ASSIGNDEVICE5. ASSIGNPIN/LOCATION/CHIP6. MAXPLUSIISIMULATOR7. MAXPLUSII-PROGRAMMER六、课程设计总结 七参考书目1电子技术基础模拟部分(第四版),康华光主编,高教出版社2数字电子技术基础(第四版),阎石主编,高教出版社3PLD与数字系统设计,李辉主编,西安电子科技大学出版社4CPLD数字电路设计,廖裕评,陆瑞强主编,清华大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1