EDA课程设计(电梯)
- 格式:doc
- 大小:1.16 MB
- 文档页数:7
课程设计(综合实验)报告( 2010 -- 2011 年度第 1 学期)名称:EDA课程设计题目:电梯控制的实现院系:班级:学号:学生姓名:指导教师:设计周数:1周成绩:日期:年月日一、课程设计的目的与要求用Mealy有限状态机设计二个楼层电梯控制程序。
用VHDL语言写出Mealy有限状态机控制模块。
Mealy有限状态机的输出受控于当前的状态和信号输入的变化,一旦这敏感信号被测,输出的信号就依赖于它们得到确定。
电梯控制器的工作原理:当电梯空闲时,其状态等待着其他楼层的请求,一旦有请求输入信号,电梯移动到该请求信号的楼层,这时引起电梯门被关闭。
引起电梯门关闭的条件有如下二个:①必须在地面楼层状态StateGround;②首层有请求输入信号ReqFirst。
电梯开始移动到请求层,在移动过程中State从Ground转变为GoingFirst。
当到达请求层后,电梯门被打开并且请求灯熄灭,此状态转换为First状态。
这时如有其他楼层请求信号输入将引起电梯门的关闭(如地面层有楼层请求信号ReqGround)。
当电梯门正在做关闭动作时,同时又要做重新打开电梯门的动作,其条件必须有当前楼层请求信号ReqFirst输入(其他请求信号均被忽略)。
电梯门关闭以后,电梯可再次响应其他楼层请求,即这时电梯State状态为First状态,并且又从地面层来一个请求信号ReqGround,将会引起电梯State状态从First状态改变为GoingGround状态,电梯开始往下运行。
在未到达目的地之前,其他请求信号均被忽略。
二、设计正文本设计是基于VHDL语言开发的两层电梯控制器。
以Quartus Ⅱ为开发环境,最终在EDA实验箱上实现其演示的基本功能。
其功能包括:显示电梯当前所在楼层,显示有请求发生的楼层,响应楼层请求,关门延时设置,电梯开关门显示。
具体描述为:1、电梯外部有请求开关,一楼一个,二楼一个;电梯内部有乘客到达层次的请求开关。
全自动电梯控制卢维彪020920181.设计要求设计一个4层楼房全自动电梯控制电路,其功能如下:◆每层楼电梯入口处设有上,下请求开关各1,电梯内设有乘客到达层次的停站要求开关。
◆有电梯所处位置指示装置和电梯上行,下行状态批示装置。
◆电梯每秒升(降)一层楼。
到达某一层楼时,指示该层次的灯发光,并一直保持到电梯到达新一层为止。
◆电梯到达有停站请求的楼层后,该层次的指示灯亮,经过0.5S,电梯门自动打开,开门指示灯亮,开门5S后,电梯门自动关闭(开门指示灯灭),电梯继续运行。
◆能记忆电梯内外的所有请求信号,并按照电梯运行规则次第响应,每个请求信号保留至执行后撤除。
◆电梯运行规则,电梯处于上升模式时,只响应比电梯所在位置高的层次的上楼请求信号,由下而上逐个执行,直到最后一个请示执行完毕。
如更高层次有下楼请求,则直接升到有下楼请求的楼层接客,然后便进入下降模式。
电梯处于下降模式时与之相反,仅响应比电梯所在位置低的楼层的下楼请求。
电梯执行完所有的请求后,应停在最后所在的位置不变,等待新的请求。
◆开机(接通电源)时,电梯应停留在一楼,而各种上,下请求皆被清除。
2.设计提示▲用实验板上提供的按键开关作为上楼(3个)下楼(3个)请求,以及乘客进入电梯后,要求停靠楼层的开关。
按键状态用发光二极管显示。
▲电梯所在楼层位置用数码管显示,另用二只发光二极管显示上行状态和下行状态。
▲利用发光二极管(6只)作为开门指示,其时序如下图所示。
▲电梯开门时间可以要求延长,每按一次延长键,自按键时开始延长5秒,可以连续使用。
也可提前关门(按动关门键)。
▲电梯运行过程中,不断判断前进方向是否存在上楼请求或下楼请求信号,如到达某层后,上、下方均无请求,则电梯停在该层,中止运行。
div2Hz模块(1000Hz—2Hz分频器):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div2Hz isport(clk:in std_logic;clkout:out std_logic);end div2Hz;architecture one of div2Hz issignal count: std_logic_vector(8 downto 0);beginprocessbeginwait until clk'event and clk='1';if count<500 then count<=count+1; clkout<='0';else count<=(others=>'0'); clkout<='1';end if;end process;end architecture one;Elevator模块(控制器):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity elevator isport( clk: in std_logic;up1,up2,up3,stop1,stop2,stop3,stop4,down4,down3,down2: in std_logic;ddelay,dclose: in std_logic;upled,downled: out std_logic;floorled,nowfloor: out std_logic_vector(3 downto 0);dopenled: out std_logic_vector(5 downto 0));end elevator;architecture bhv of elevator istype state_type is (start,run,opendoor,dopenwait2,dopenwait3,dopenwait4,dopenwait5,dopenwait6,dopenwait7,dopenwait8, dopenwait9,dopenwait10,dclse,up,down,upwait1,upwait2,downwait1,downwait2,stop); signal state : state_type;signal upm,downm,stopm,dat: std_logic_vector(3 downto 0); ---memmory of orders signal dclosem,ddelaym: std_logic;beginstate_trans: process (clk,up1,up2,up3,down4,down3,down2,stop1,stop2,stop3,stop4,upm,downm,stopm,dat,ddelay,dclose) variable position: integer range 0 to 4;beginif rising_edge(clk) thenif up1='1' then upm(0)<='1'; end if;if up2='1' then upm(1)<='1'; end if;if up3='1' then upm(2)<='1'; end if;upm(3)<='0';if down4='1' then downm(3)<='1'; end if;if down3='1' then downm(2)<='1'; end if;if down2='1' then downm(1)<='1'; end if;downm(0)<='0';if stop1='1' then stopm(0)<='1'; end if;if stop2='1' then stopm(1)<='1'; end if;if stop3='1' then stopm(2)<='1'; end if;if stop4='1' then stopm(3)<='1'; end if;if dclose='1' then dclosem<='1'; end if;if ddelay='1' then ddelaym<='1'; end if;dat<= upm or downm or stopm; ---orders from both inside and outside all savedcase state iswhen start =>if dat="0000" then state <= start; ---no order,no operation elsif position= 0 then position:=position+1; state <= run;end if;when run => ---start working if position=1 thenif stopm(0)='1' or upm(0)='1' thenstopm(0)<='0'; upm(0)<='0'; state<= opendoor;elsif dat> "0001" then state<= up;end if;elsif position=2 thenif stopm(1)='1' or upm(1)='1' or downm(1)='1' thenstopm(1)<='0'; upm(1)<='0'; downm(1)<='0'; state<= opendoor;elsif dat> "0011" then state<= up;elsif dat< "0010" then state<= down;end if;elsif position=3 thenif stopm(2)='1' or upm(2)='1' or downm(2)='1' thenstopm(2)<='0'; upm(2)<='0'; downm(2)<='0'; state<= opendoor;elsif dat> "0111" then state<= up;elsif dat< "0100" then state<= down;end if;elsif position=4 thenif stopm(3)='1' or downm(3)='1' thenstopm(3)<='0'; downm(3)<='0'; state<= opendoor;elsif dat< "1000" then state<= down;end if;end if;when up => upled<='1'; state<=upwait1; ---1 second taken to go upwhen upwait1=> state<= upwait2;when upwait2=>upled<='0'; position:=position+1; ---reach a higher floorif position=2 and (upm>"0011" or stopm>"0011") and stopm(1)='0' and upm(1)='0' then state<= up; elsif position=3 and dat>"0111" and stopm(2)='0' and upm(2)='0' then state<= up; else state<= opendoor;end if;when down=> downled<= '1'; state<= downwait1; ---1 second taken to go down when downwait1=> state<= downwait2;when downwait2=>downled<= '0'; position:=position-1; ---reach a lower floorif position=3 and (downm<"0100" or stopm<"0100") and stopm(2)='0' and downm(2)='0' then state<= down; elsif position=2 and dat<"0010" and stopm(1)='0' and downm(1)='0' then state<= down; else state<= opendoor;end if;when opendoor=> ---open door after 0.5 second if position=1 then stopm(0)<='0'; upm(0)<='0';elsif position=2 then stopm(1)<='0'; upm(1)<='0'; downm(1)<='0'; elsif position=3 then stopm(2)<='0'; upm(2)<='0'; downm(2)<='0'; elsif position=4 then stopm(3)<='0'; downm(3)<='0'; end if; ---orders from the opendoor_floor removed dopenled<="001100";if dclosem='1' then state<= dopenwait9; dclosem<='0'; elsif ddelaym='1' then state<= opendoor; ddelaym<='0'; else state<= dopenwait2;end if;when dopenwait2=>if dclosem='1' then state<= dopenwait9; dclosem<='0'; elsif ddelaym='1' then state<= opendoor; ddelaym<='0'; else state<= dopenwait3;end if;when dopenwait3=> dopenled<="011110"; state<= dopenwait4;when dopenwait4=>if dclosem='1' then state<= dopenwait9; dclosem<='0'; elsif ddelaym='1' then state<= opendoor; ddelaym<='0'; else state<= dopenwait5;end if; when dopenwait5=> dopenled<="111111"; state<= dopenwait6; when dopenwait6=>if dclosem='1' then state<= dopenwait9; dclosem<='0';elsif ddelaym='1' then state<= opendoor; ddelaym<='0';else state<= dopenwait7;end if; when dopenwait7=> dopenled<="011110"; state<= dopenwait8; when dopenwait8=>if dclosem='1' then state<= dopenwait9; dclosem<='0';elsif ddelaym='1' then state<= opendoor; ddelaym<='0';else state<= dopenwait9;end if; when dopenwait9=> dopenled<="001100"; state<= dopenwait10; ---display of the opendoor_leds when dopenwait10=>if dclosem='1' then state<= dopenwait9; dclosem<='0';elsif ddelaym='1' then state<= opendoor; ddelaym<='0';else state<= dclse;end if; when dclse=>dopenled<="000000";if dat>"0000" then state<= run;else state<= stop;end if; when stop => if dat>"0000" then state<= run;elsif ddelaym='1' then state<= opendoor; ddelaym<='0';else state<= stop;end if;end case;end if;if position=1 then nowfloor<="0001"; floorled<="0001"; elsif position=2 then nowfloor<="0010"; floorled<="0010"; elsif position=3 then nowfloor<="0011"; floorled<="0100"; elsif position=4 then nowfloor<="0100"; floorled<="1000"; else nowfloor<="0000"; floorled<="0000"; end if; ---display of floor_leds end process state_trans;end bhv;综合实现模块:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity finalctrol is port( clk: in std_logic; up1,up2,up3,stop1,stop2,stop3,stop4,down4,down3,down2: in std_logic;ddelay,dclose: in std_logic;upled,downled: out std_logic;floorled,nowfloor: out std_logic_vector(3 downto 0);dopenled: out std_logic_vector(5 downto 0)); end finalctrol; architecture arc of finalctrol is component div2Hz port(clk: in std_logic;clkout: out std_logic);end component;component elevator port( clk: in std_logic; up1,up2,up3,stop1,stop2,stop3,stop4,down4,down3,down2: in std_logic;ddelay,dclose: in std_logic;upled,downled: out std_logic;floorled,nowfloor: out std_logic_vector(3 downto 0);dopenled: out std_logic_vector(5 downto 0));end component; signal clkwire: std_logic; beginU1: div2Hz port map(clk,clkwire); U2:elevatorportmap(clkwire,up1,up2,up3,stop1,stop2,stop3,stop4,down4,down3,down2, ddelay,dclose,upled,downled,floorled,nowfloor,dopenled);―――元件例化语句end arc;EDA综合结果:时序仿真波形:心得体会:最后是差不多做出来了,但是这个过程花费了我太多时间、精力!如果我把这些时间分一些出来复习电磁场,或许我的电磁场试卷上就不会有那么多空白、、、EDA,quartusii,是好东西,实用的东西!但是跟其他各种考试一起夹击我,还是觉得有点吃不消,压力太大、、、几乎每一步都不曾顺利,都有各种阻碍,需要我一点点地去探测它,再各种途径认识、了解它,最后克服它,整个过程,遇到的问题就太多太多了,说出来不知道可以写几页,可以说过程十分艰苦,就像在黑夜里徒步穿越一片阴森的树林、、、也怪自己基础、能力太差,不过,最后,总算做出来了,学到不少东西,切实地提高了动手能力,也算值了吧!VHDL,FPGA,真是神奇的东西,就像高级语言一样,只描述电路模块的功能,然后电路生成由软件来完成,甚至都不需要连线,只写好代码就行,切实感觉到了现代电子设计的给力之处!对付errors简单,是语法问题,是普通程序员的活儿;对付warnings难,是逻辑问题,算法问题,是工程师的活儿!对这门课的意见与建议:这是一门好课,非常实用的东西,但是它应该早一点结束!不要等这么久,以为给学生充足的时间去准备,其实大家下去根本没有弄,都是等到要进实验室了才着手准备的!到这几天,各种大作业、各种考试如大军压境,再来个EDA,那大家的压力也太大了、、、、2011、12、16。
eda课课程设计电梯一、教学目标本课程的教学目标是使学生掌握eda课程的基本知识和技能,能够运用所学知识分析和解决实际问题。
具体分为以下三个部分:1.知识目标:学生需要掌握eda课程的基本概念、原理和方法,包括数据的采集、处理、分析和可视化等。
2.技能目标:学生需要能够运用eda课程的知识,进行数据的处理和分析,能够独立完成数据分析的项目。
3.情感态度价值观目标:学生通过学习eda课程,能够培养对数据的敏感性和好奇心,形成积极探究数据背后信息的意识。
二、教学内容本课程的教学内容主要包括eda课程的基本概念、原理和方法。
具体包括以下几个部分:1.数据的采集:介绍数据采集的基本方法,包括问卷、实验设计等。
2.数据的处理:介绍数据处理的基本方法,包括数据的清洗、转换和整合等。
3.数据分析:介绍数据分析的基本方法,包括描述性统计、推断性统计和机器学习等。
4.数据可视化:介绍数据可视化的基本方法,包括图表的绘制和信息的呈现等。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
具体包括以下几个部分:1.讲授法:通过讲解和演示,使学生掌握eda课程的基本概念、原理和方法。
2.案例分析法:通过分析实际案例,使学生能够运用所学知识分析和解决实际问题。
3.实验法:通过实验操作,使学生能够亲手处理和分析数据,提高学生的实践能力。
四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。
具体包括以下几个部分:1.教材:选用权威、实用的教材,为学生提供基本的学习资料。
2.参考书:推荐一些相关的参考书,丰富学生的知识体系。
3.多媒体资料:制作精美的多媒体课件,提高学生的学习兴趣。
4.实验设备:配置齐全的实验设备,为学生提供实践操作的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问和回答问题的情况,了解学生的学习态度和理解能力。
eda课程设计电梯一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握电梯的基本原理、结构和工作方式,了解电梯的安全使用和维护知识。
技能目标要求学生能够运用所学知识进行电梯的简单设计和分析,提高学生的工程实践能力。
情感态度价值观目标要求学生培养对电梯工程技术的兴趣和热情,增强对工程技术的敬畏之心。
通过对学生的特点和教学要求的分析,我们将课程目标分解为具体的学习成果。
首先,学生需要理解并能够描述电梯的基本原理和结构,包括电动机、控制系统、电梯门等关键部分的作用。
其次,学生需要掌握电梯的工作方式,能够分析电梯的运行过程和故障原因。
再次,学生需要了解电梯的安全使用和维护知识,能够进行简单的电梯故障排查和修复。
最后,学生需要通过实际操作和案例分析,提高自己的工程实践能力,培养对电梯工程技术的兴趣和热情。
二、教学内容根据课程目标,我们选择和了以下教学内容。
首先,介绍电梯的基本原理,包括电动机的工作原理、控制系统的功能等。
然后,讲解电梯的结构,包括轿厢、对重、导向系统、门系统等部分的作用和设计要求。
接着,讲解电梯的工作方式,包括电梯的启动、运行、停止过程以及故障原因分析。
此外,还讲解电梯的安全使用和维护知识,包括电梯的故障排查、修复方法等。
最后,通过实际操作和案例分析,让学生亲身参与电梯的设计和分析,提高学生的工程实践能力。
三、教学方法为了实现课程目标,我们选择了一系列合适的教学方法。
首先,采用讲授法,由教师讲解电梯的基本原理、结构和工五、教学评估为了全面反映学生的学习成果,我们设计了一系列评估方式。
首先,通过平时表现评估学生的课堂参与度和学习态度。
其次,通过作业评估学生的理解和应用能力,要求学生完成电梯设计、分析等实际任务。
最后,通过考试评估学生的综合运用能力和复习效果。
这些评估方式应客观、公正,能够全面反映学生的学习成果。
六、教学安排教学安排规定了教学进度、教学时间和教学地点等。
【摘要】随着科技的迅速的发展,电梯已经成为生活中不可缺少的交通工具,电梯在国内的需求量也是与日俱增。
然而相比于其他发达国家比如欧美,我国的创新元素还还相对较少。
电梯的出现要追溯到上世纪,在那时电梯就已经融入到生活中并且取得了使用者的青睐.电梯的传统控制系统通常是采用继电器——接触器,而随着超大规模集成电路技术的成熟,FPGA作为一个新的生力军,在电梯的控制中已经取得了广泛的应用。
另外,随着可持续发展理念的深入人心,电梯更是融入了节能的元素。
由于FPGA内部集成了数以万计的逻辑单元,这样的特点使得它在电梯的控制上具有天然的优势。
本设计是基于VHDL硬件描述语言而实现的多层电梯控制与远程监控系统,在程序的设计上,主要采用了有限状态机,程序中设立了两个进程相辅相成,以信号灯控制进程作为辅助进程,状态机作为主要进城.本次设计是采用VHDL硬件描述语言而设计的十层电梯控制系统,以Altera公司的QUARTUS II软件作为开发平台,实现了电梯的基本功能以及远程监控功能。
【关键词】:电梯控制器,VHDL,状态机,远程监控ABSTRACTAlong with the science and technology rapid development, the elevator has become indispensable in life traffic tools, the elevator is also grow with each passing day in domestic demand。
However, compared to other developed countries such as Europe and the United States,innovation elements in China is still relatively small. The elevator can be traced to the last century, when the elevator already into life and made users. The traditional elevator control system uses the relay —contactor is usually, but with very large scale integrated circuit technology matures,FPGA as a new force, extensive application has been made in elevator control. In addition,with the win support among the people of the concept of sustainable development,the elevator is also incorporate energy—saving elements.Because the FPGA internal integration logic unit of tens of thousands of,this character makes it has a natural advantage in elevator control。
注:停车流程图要改,停车后,先延时一,再开门清相应信号灯,再延时二,再关门,最后返回。
延时同样有判断。
整体设计:左侧输入:按键,电源,压力传感器。
中间和右侧输出则与以前相同。
按以前的设计报告,你在画一份吧。
状态装换:附图两张:你自己看。
四层电梯控制器设计思路:采用状态机来实现电梯控制器,思路比较清晰。
根据电梯的实际工作情况,可以把电梯设置为9个状态,分别是“电梯停留在1层”、“开门”、“关门”、“延时一”、“延时二”、“报警”、“上升”、“下降”和“停止”状态。
各个状态的转换条件可有设计要求所决定。
1、四层电梯控制器的实体实际对于输入端口,一个异步复位端reset,用于在系统不正常时回到初始状态,在电梯外部,必须有升降请求端口,一层:上升请求端口,二三层:上升下降请求端口均有,四层:下降请求端口;在电梯内部,应有各层停留的的请求端口;一个时钟输入端口,用于驱动电梯的升降机开关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。
对于输出端口,有升降请求信号,就得有一个输出端口来指示请求是否被响应,有请求信号后,该输出端口逻辑为‘1’,被响应后则恢复为‘0’,同样,在电梯内部也应该有这样的端口来显示是否被响应;在电梯外部,需要一个端口来显示电梯现在所处的位置;电梯的开关门的状态也能用一个输出端口来指示;电梯的升降状态用一个输出端口来指示。
2、结构体设计状态机设了九个状态,type lift_stata is(stopon1,dooropen,doorclose,delay1,delay2,warning,up,down,stop);signal mylift:lift_stata;--定义为lift_stata类型的信号mylift 在结构体中,有两个进程,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
状态机进程中的很多判断条件是以信号灯控制进程产生的信号灯信号为依据的,而信号灯控制进程中信号灯的熄灭又是由状态机进程中传出的clearup和cleardn信号来控制。
目录1.任务要求---------------------------------------------------------------------------2 2.程序分析---------------------------------------------------------------------------22.1电梯运行规则--------------------------------------------------------------------22.2程序设计说明--------------------------------------------------------------------5 3.程序调试--------------------------------------------------------------------------12 4.程序仿真-------------------------------------------------------------------------144.1波形输入建立------------------------------------------------------------------144.2电梯运行情况仿真--------------------------------------------------------------164.3电梯功能仿真-------------------------------------------------------------------195.实训感想---------------------------------------------------------------------------20 参考文献----------------------------------------------------------------------------201.任务要求在电子技术飞速发展的今天,现代电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,加速了电子设计技术的普及进程及技术革新。
EDA电梯控制器课程设计EDA电梯控制器课程设计目录1 绪论 (1)1.1 电梯控制系统的发展史 (1)1.2 电梯的发展方向 (2)2 基于EDA技术的四层电梯控制器设计 (3)2.1 系统控制要求 (3)2.1.1 四层电梯控制器的功能 (3)2.1.2 控制方案的制定 (4)3 系统仿真 (8)4 结束语 (8)参考文献 (9)附录: (10)摘要:电梯是机械电器紧密结合的大型机电产品.主要由机房、井道、轿厢、门系统和电气控制系统组成。
伴随建筑业的发展,为建筑内提供上下交通运输的电梯工业也在日新月异地发展着。
电梯已不但是一种生产环节中的重要设备,更是一种工作和生活中的必须设备,完全能够预想到,随着社会的发展,电梯产品在人们物质文化生活中的地位将和汽车一样,成为重要的运输设备之一。
关键字:电梯控制器,CPLD,VHDL状态机,EDA。
1 绪论1.1 电梯控制系统的发展史从1889年出现第一台名副其实的电梯后,电梯控制技术经历了四次大的发展。
1)继电器控制阶段。
在计算机技术还没有广泛应用于工业控制领域时,继电器一直充当着工业控制中的核心部件,电梯控制系统领域也不例外。
上世纪八十年代以前,继电器控制一直是中国电梯控制系统的全部。
到了八十年代,继电器控制依然是电梯控制系统中的主导技术。
(2)PLC控制阶段。
PLC实际上是一种通用的工业控制技术,在进入电梯控制系统以前,已被广泛应用于其它各种工业控制领域。
在中国,从上世纪八十年代末开始,PLC逐渐被各电梯厂家成功应用到电梯控制系统中。
九十年代,国内自己开发、设计的电梯控制系统中,PLC系统占绝对主导地位。
(3)微机控制系统。
实际上,在发达国家的著名电梯生产厂家中,如奥的斯、三菱等,它们根本就没有用过PLC作为电梯控制系统。
早在上世纪七十年代末期或八十年代初,专用的微机电梯控制系统已经投入市场。
早期中国国内生产的专用微机电梯控制系统,基本上都是从国外引进技术的产品。
目录前言 (1)1 绪论 (2)1.1 课程设计题目 (2)1.2 设计目的 (2)1.3 课程设计要求 (2)1.4 课程设计思想 (3)2 软件介绍 (4)3课程设计步骤 (6)3.1 状态机的基本原理 (6)3.2 电梯控制器的功能模块 (6)3.3 电梯控制器的流程图 (7)3.4 电梯控制器的VHDL描述模块流程 (8)3.5 实体设计 (8)3.6 结构体设计 (8)3.7 VHDL源代码语法的简单说明 (9)3.8 电梯输入输出端口图 (10)4 三层电梯控制器的调试及仿真 (11)4.1 程序的调试 (11)4.2 波形仿真 (11)5课程设计的意义 (15)5.1 设计背景 (15)5.2 课程设计的意义 (15)5.2.1 中国电梯的现状 (15)5.2.2 电梯的节能和环保 (16)5.2.3 电梯的智能化 (16)6 总结 (17)参考文献 (18)附录 (19)前言电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。
中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。
因此要加大对电梯技术的创新和发展,提升电梯的性能,就需要引进更好的技术,电梯控制器就是很好的装置,大力开发控制器是很必要的。
电梯控制器可以有很多实现方式,本设计用了EDA技术进行操作。
EDA 技术打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率与产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。
VHDL主要用于描述数字系统的接口,结构和功能,它的语法简单易懂,移植性好。
我设计的是一个3层电梯控制器。
分为主控制器和分控制器。
主控制器是电梯内部的控制器,每层电梯入口处有一个分控制器。
本设计采用VHDL,源程序Altera公司的Quartus II软件仿真。
运用有限状态机的设计方法,设计了两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
eda电梯控制课程设计一、课程目标知识目标:1. 学生能理解EDA电梯控制的基本原理,掌握电梯控制系统的组成及功能。
2. 学生能掌握电梯控制程序的设计方法,了解电梯运行过程中各环节的逻辑关系。
3. 学生了解电梯行业的发展现状和未来趋势,认识电梯在现代建筑中的重要性。
技能目标:1. 学生能运用所学知识,设计简单的电梯控制程序,实现电梯的基本功能。
2. 学生能通过小组合作,完成电梯控制系统的仿真测试,提高实际操作能力。
3. 学生能运用EDA工具进行电梯控制电路的绘制,提高电路设计能力。
情感态度价值观目标:1. 学生培养对电梯控制技术的兴趣,激发学习热情,提高自主学习能力。
2. 学生通过课程学习,认识到科技对社会生活的重要性,增强社会责任感和使命感。
3. 学生在小组合作中,培养团队协作精神,提高沟通与交流能力。
课程性质:本课程为电子设计自动化(EDA)领域的一门实践性课程,旨在帮助学生掌握电梯控制技术,提高实际操作能力。
学生特点:本年级学生具备一定的电子技术基础,对新技术有较高的兴趣,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践和创新能力培养,提高学生的综合素养。
通过课程目标分解,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 电梯控制原理及系统组成- 理解电梯的基本工作原理- 掌握电梯控制系统的结构及功能- 分析电梯控制系统的主要部件及其作用2. 电梯控制程序设计- 学习电梯控制程序的基本逻辑- 掌握电梯运行过程中各环节的程序设计方法- 应用EDA工具进行程序编写和调试3. 电梯控制电路设计- 学习电梯控制电路的基本元件及其连接方式- 掌握电梯控制电路的绘制方法- 完成电梯控制电路的仿真测试4. 电梯控制系统实践- 小组合作,设计并实现一个简易电梯控制系统- 分析实际电梯控制系统案例,进行故障排查与优化- 了解电梯行业的发展趋势及新技术应用教学大纲安排:第一周:电梯控制原理及系统组成第二周:电梯控制程序设计第三周:电梯控制电路设计第四周:电梯控制系统实践教材章节关联:第一章:电梯概述第二章:电梯控制系统第三章:电梯控制程序设计第四章:电梯控制电路设计第五章:电梯控制系统实践教学内容根据课程目标制定,注重科学性和系统性,结合教材章节,合理安排教学进度,确保学生能够循序渐进地掌握电梯控制相关知识。
目录1 引言 02 EDA技术介绍 (1)2。
1 EDA概述 (1)2.2 MAX+plus II软件简介 (2)3 电梯控制器设计 (2)3.1设计要求 (2)3.2电梯运行规则 (3)3.3电梯整体设计 (3)3。
4端口设计说明 (3)3。
5具体程序设计说明 (4)3。
5.1 库声明部分 (4)3.5.2 实体部分 (4)3.5.3 结构体部分 (5)4 系统仿真 (8)5 硬件测试 (10)6 结论 (11)参考文献 (12)附录 (13)1 引言当今世界,部分地区人口高度密集,人和土地资源短缺的矛盾日益激化.这就注定了必须合理的利用土地去解决人与土地的矛盾。
而兴建高层建筑是其中有效措施之一。
因此能使人们快速便捷地到达目的楼层的电梯就应运而生了。
随着电子技术日薪月异的发展,集成电路从20 世纪60年代的小规模到中规模,再到大规模集成电路,伴随着它的高速发展,EDA技术、CPLD 技术也得到充分发展。
电梯的使用越来越普遍,已从原来只在商业大厦、宾馆使用,过度到在办公室、居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化.对于电梯的控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。
电梯的微机化控制主要有以下几种形式:PLC控制,单片机控制,单板机控制,单微机控制,多微机控制,人工智能控制[1].随着EDA技术的快速发展,CPLD/FPGA[2]已广泛应用于电子设计与控制的各个方面。
本设计就是使用一片CPLD/FPGA来实现对电梯的控制的。
三层电梯广泛应用在大型的货运之中。
其使用便捷,货运周期短,效率高成本低,对货运事业具有相当的经济价值。
电梯作为高层建筑物的重要交通工具与人们的工作日益紧密FPGA/CPLD作为新一代工业控制器,以其高可靠性和技术先进性,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一.电梯控制器是控制电梯按顾客要求自动上下的装置。
eda课程设计电梯一、教学目标本课程旨在通过学习eda课程设计中的电梯案例,让学生掌握eda的基本原理和方法,培养学生解决实际问题的能力。
具体目标如下:知识目标:使学生了解eda的基本概念、原理和电梯案例的相关知识。
技能目标:培养学生运用eda方法分析和解决电梯问题的能力,提高学生的动手实践能力。
情感态度价值观目标:培养学生对eda技术的兴趣和热情,增强学生运用科学知识解决实际问题的信心。
二、教学内容本课程的教学内容主要包括eda的基本概念、原理和方法,以及电梯案例的分析和实践。
具体安排如下:1.第一课时:介绍eda的基本概念和原理,使学生了解eda技术的基本框架和流程。
2.第二课时:讲解电梯案例的相关知识,分析电梯运行的基本原理和问题。
3.第三课时:教授学生如何运用eda方法分析和解决电梯问题,引导学生进行实践操作。
4.第四课时:对学生的实践成果进行点评和总结,强化学生对eda技术的掌握。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
具体方法如下:1.讲授法:教师讲解eda的基本概念、原理和电梯案例的相关知识。
2.讨论法:学生分组讨论电梯问题的解决方案,促进学生之间的交流与合作。
3.案例分析法:分析电梯案例,使学生更好地理解eda技术的应用。
4.实验法:学生动手实践,运用eda方法解决电梯问题,提高学生的实践能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用合适的eda教材,为学生提供权威、系统的学习资料。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的课件和视频,直观地展示eda技术和电梯案例。
4.实验设备:准备计算机和相关的实验设备,为学生提供实践操作的机会。
五、教学评估为了全面、客观地评估学生在本次课程中的学习成果,我们将采取多种评估方式相结合的方法。
具体如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。
一、设计要求:要求用FPGA设计实现一个3层电梯的控制系统。
系统的要求如下:(1)电梯运行规则:当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。
如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。
当电梯处在下降模式时,工作方式与上升模式相反。
设电梯共有3层,每秒上升或下降一层。
(2)电梯初始状态为一层,处在开门状态,开门指示灯亮。
(3)一层电梯入口处设有上楼请求开关,二层电梯入口处设有上、下楼请求开关,三层电梯入口处设有下楼请求开关,电梯内部设有乘客到达楼层的停站请求开关及其显示。
(4)设置电梯所处位置指示及电梯上升或下降指示。
( 5 )电梯到达有停站请求的楼层后,电梯门打开,开门指示灯亮。
开门4s后,电梯门开关闭,开门指示灯灭,电梯继续运行,直至执行完最后一请求信号后停在当前层。
(6)电梯控制系统能记忆电梯内外的请求信号,并按照电梯运行规则工作,每个请求信号执行完毕后随即清除。
一、设计方案和论证1. 控制器的设计方案控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。
由于分控制器相对简单很多,所以主控制器是核心部分。
2. 三层电梯控制器的设计思路电梯控制器采用状态机来实现,思路比较清晰。
可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。
由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。
根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在第1层”、“开门”、“关门”、“开门等待第1秒”、“开门等待第2秒”、“开门等待第3秒”、“开门等待第4秒”、“上升”、“下降”和“停止状态”。
三层电梯PLC控制程序设计1.课程设计的目的EDA技术及应用是电类专业的主要技术基础课。
通过本课程的学习,能够使学生掌握近代EDA技术及应用的基础知识、程序分析与仿真的基本方法,具备进行试验的初步技能,并为后续课程的学习打下必要的基础。
现代电子设计技术的核心是EDA技术,基于EDA技术开发的实现三层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。
硬件描述语言是EDA 技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。
实用VHDL语言进行程序的设计,在MAXPLUSI I软件上对程序进行编译、仿真,在MAXPLUSSII平台上开发具有控制灵活方便、抗干扰能力强、运行稳定、易学易懂的梯形图语言。
2.设计方案论证2.1 设计内容与思路三层电梯广泛应用于大型的货运之中,其使用具有便捷、货运周期短、效率高、成本低等经济价值。
在客运上,上层电梯虽然涉及楼层不高,应用范围不大,但就特殊而言,他可以为那些上下楼层不方便的人群提供方便,照顾了这些特殊群体,所以三层电梯的设计也具有一定的社会价值本控制设计拟实现一下功能:(1)指示电梯运行所在楼层;(2)指示电梯运行方向;(3)关门延时设计;(4)看门狗报警;(5)超载报警;(6)故障报警;2.2 三层电梯控制的源程序如下:library ieee;use ieee.std_logig_1164.all;use ieee.std_logic_unsigned.all;use iee.std_logic_arith.all;entity dianti isport(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 down to 0);led:out std_logic_vector(6 down to 0);led_c_u:out std_logic_vector(2 down to 0);led_c_d:out std_logic_vector(2 down to 0);led_d:out std_logic_vector(2 down to 0);wahaha:out std_logic;ud,alarm:out std_logic;up,down:out std_logic);end dianti;architecture behave of dianti issignal d11,d22,d33:std_logic;signal c_u11,c_u22:std_logic;signal c_d11,c_d22: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 down to 0); signal opendoor:std_logic;signal updown:std_logic;signal en_up,en_dw:std_logic;begincom:process(clk)beginif clk‟event and clk=…1‟thenif clr=…1‟then q1<=0;q2<=0;wahaha<=…0‟;else if full=…1‟then alarm<=…1‟;q1<=0;if q1>=3 then door<=“10”;else door<=“00”end if;else if q=1 then q<=0;alarm<=…0‟;if q2=3 then wahaha<=…1‟;elseif open door=…1‟ then door<=…10‟;q1<=0;up<=…0‟;down<=…0‟;else if en_up=…1‟thenif de ng=1 then door<=“10”;q1<=0;q2<=q2+1;else if quick=…1‟then q1<=3;else if q1=6 then door<=“00”;updown<=…1‟;up<=…1‟;else ifq1>=3 then door<=“01”;q1<=q1+1;else q1<=q1+1;door<=“00”;end if;else if en_dw=…1‟thenif deng=…1‟ then door<=“10”; q1<=0;q2<=q2+1;else quick=…1‟ then q1<=3;else q1=6 then door<=“00”;updown<=…0‟;down<=…1‟;else q1>=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‟;;opendoor<=…1‟;else if dd_cc>000001 then en_up<=1;opendoor<=1;else if dd_cc=000000 then opendoor<=0;end if;else if g2=1 then led<=0010010;if updown=1 thenif d22=1 or c_u22=1 then d22<=0;c_u22<=0;opendoor<=1;else if dd_cc>000011 then en_up<=1;opendoor<=0;else if dd_cc<000010 then en_dw<=1;opendoor<=0;end if;else d22=1 or c_d22=1 then d22<=0;c_d22<=0;opendoor<=1;else dd_cc<000010 then en_dw<=1;opendoor<=0;else dd_cc>000011 then en_up<=1;opendoor<=0;end ifelse if g3=1 then led<=0000110;if d33=1 or c_d33=1 then d33<=0;c_d33<=0;opendoor<=1;else if dd_cc<011 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 thend11<=d1;else if d2=1 then d22<=d2;else ifd3=1 then d33<=d3;end if;if c_u1=1 then c_u11<=c_u1;else if c_u2=1 then c_u22<=c_u2;end if;if c_d2=1 then c_d22<=c_d2;else if 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;end process;end behave;2.3 程序调制(1)建立好工作库路径,以便设计工程项目的存储,打开Maxplus软件,其初始界面如图1所示:图1 初始界面(2)在工具栏中选择“新建”按钮,在选择输入路径时,选择“Text Editor File”以进行文本输入,如图2所示:图2 文本输入(3)在文本输入界面内进行程序输入,如图3所示:图3 程序图(4)输入完毕时,需要对程序进行保存。
课程设计(综合实验)报告( 2010 -- 2011 年度第 1 学期)名称:EDA课程设计题目:电梯控制的实现院系:班级:学号:学生姓名:指导教师:设计周数:1周成绩:日期:年月日一、课程设计的目的与要求用Mealy有限状态机设计二个楼层电梯控制程序。
用VHDL语言写出Mealy有限状态机控制模块。
Mealy有限状态机的输出受控于当前的状态和信号输入的变化,一旦这敏感信号被测,输出的信号就依赖于它们得到确定。
电梯控制器的工作原理:当电梯空闲时,其状态等待着其他楼层的请求,一旦有请求输入信号,电梯移动到该请求信号的楼层,这时引起电梯门被关闭。
引起电梯门关闭的条件有如下二个:①必须在地面楼层状态StateGround;②首层有请求输入信号ReqFirst。
电梯开始移动到请求层,在移动过程中State从Ground转变为GoingFirst。
当到达请求层后,电梯门被打开并且请求灯熄灭,此状态转换为First状态。
这时如有其他楼层请求信号输入将引起电梯门的关闭(如地面层有楼层请求信号ReqGround)。
当电梯门正在做关闭动作时,同时又要做重新打开电梯门的动作,其条件必须有当前楼层请求信号ReqFirst输入(其他请求信号均被忽略)。
电梯门关闭以后,电梯可再次响应其他楼层请求,即这时电梯State状态为First状态,并且又从地面层来一个请求信号ReqGround,将会引起电梯State状态从First状态改变为GoingGround状态,电梯开始往下运行。
在未到达目的地之前,其他请求信号均被忽略。
二、设计正文本设计是基于VHDL语言开发的两层电梯控制器。
以Quartus Ⅱ为开发环境,最终在EDA实验箱上实现其演示的基本功能。
其功能包括:显示电梯当前所在楼层,显示有请求发生的楼层,响应楼层请求,关门延时设置,电梯开关门显示。
具体描述为:1、电梯外部有请求开关,一楼一个,二楼一个;电梯内部有乘客到达层次的请求开关。
2、设有电梯所处位置指示装置和电梯运行模式(上升或下降)指示装置。
3、电梯到达请求楼层后,电梯门开启(电梯门指示灯亮),开门四秒后,电梯门关闭(电梯门指示灯灭),电梯继续响应请求或回到初始状态。
4、电梯初始状态为停在1楼,关门。
5、电梯上升或下降时,终止其他操作。
6、当电梯关门时,同层有请求,先响应同层请求(开门),再响应其他请求(上升或下降)。
具体程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianti ISPORT(clk,reset,up1,down2,stop1,stop2:IN STD_LOGIC;--按键共有4个,其中电梯内部2个:stop1,stop2,电梯外部一楼一个up1,二楼一个down2 stoplight:buffer STD_LOGIC_VECTOR(2 DOWNTO 1);--stoplight对应stop按键uplight,downlight:buffer STD_LOGIC;--uplight,downlight分别对应up1,down2按键udsig:BUFFER STD_LOGIC;--电梯的状态,0代表(预)上升,1代表(预)下POSITION:BUFFER INTEGER RANGE 1 TO 2;--电梯的位置doorlight:buffer STD_LOGIC);--门灯,开门灯亮,关门灯灭END dianti;ARCHITECTURE behav OF dianti ISTYPE state_type is(stopon1,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down, stop);--十个状态,初始,开门,关门,延时1~4,上升,下降,停SIGNAL state:state_type:=stopon1;SIGNAL clearup,cleardn,anjianclk,dianticlk:STD_LOGIC;--上升清零,下降清零,按键时钟,电梯时钟SIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk) --设定按键时钟和电梯时钟,外部时钟周期设为50msBEGINIF(reset='1') THENq<="0000";ELSIF RISING_EDGE(clk) thenq<=q+1;END IF;anjianclk<=q(0); --二分频dianticlk<=q(3); --十六分频END PROCESS;cont:PROCESS(reset,dianticlk)V ARIABLE POS:INTEGER RANGE 3 DOWNTO 1;BEGINIF reset='1' thenstate<=stopon1;clearup<='0';cleardn<='0'; --复位elsif rising_edge(dianticlk) THENCASE state IS --设定状态机的各个状态WHEN stopon1=>doorlight<='1'; position<=1;pos:=1; state<=wait1;WHEN wait1=>state<=wait2; --延时WHEN wait2=>clearup<='0'; cleardn<='0'; state<=wait3;WHEN wait3=>state<=wait4;WHEN wait4=>state<=doorclose;WHEN doorclose =>doorlight<='0'; --从开门到关门经历5个电梯时钟周期IF udsig='0' THEN --(预)上升状态时IF position=2 THEN--电梯在二楼时IF stoplight="00" and uplight='0' and downlight='0' THENudsig<='1'; state<=doorclose;ELSIF stoplight="10" THEN state<=dooropen;ELSIF downlight='1' THEN state<=dooropen;ELSEudsig<='1'; state<=down;END IF;ELSIF position=1 THEN --电梯在一楼时IF stoplight="00" and uplight='0' and downlight='0' THENudsig<='0'; state<=doorclose;ELSIF stoplight="01" THEN state<=dooropen;ELSIF uplight='1' THEN state<=dooropen;ELSEudsig<='0'; state<=up;END IF;END IF;ELSIF udsig='1' THEN --(预)下降状态时IF position=1 THEN --电梯在一楼IF stoplight="00" and uplight='0' and downlight='0' THENudsig<='0'; state<=doorclose;ELSIF stoplight="01" THEN state<=dooropen;ELSIF uplight='1' THEN state<=dooropen;ELSEudsig<='0'; state<=up;END IF;ELSIF position=2 THEN--电梯在二楼时IF stoplight="00" and uplight='0' and downlight='0' THENudsig<='1'; state<=doorclose;ELSIF stoplight="10" THEN state<=dooropen;ELSIF downlight='1' THEN state<=dooropen;ELSEudsig<='1'; state<=down;END IF;END IF;END IF;WHEN up=>position<=position+1; pos:=pos+1;IF (pos=2) THENstate<=stop;END IF;WHEN down=>position<=position-1; pos:=pos-1;IF (POS=1) THENstate<=stop;END IF;WHEN stop=>state<=dooropen;WHEN dooropen=>doorlight<='1'; clearup<='1'; cleardn<='1'; state<=wait1;when others=>state<=stopon1;end case;end if;end process cont;butt:PROCESS(reset,anjianclk)--设定按键BEGINif reset='1' thenstoplight<="00"; uplight<='0'; downlight<='0';elsif rising_edge(anjianclk) thenif clearup='1' thenstoplight(position)<='0'; uplight<='0';elseif up1='1' then uplight<='1';END IF;END IF;if cleardn='1' thenstoplight(position)<='0'; downlight<='0';elseif down2='1'then downlight<='1';end if;end if;if stop1='1' then stoplight(1)<='1'; end if;if stop2='1' then stoplight(2)<='1'; end if;END IF;END PROCESS butt;END behav;功能分析:此程序一共有三个进程(process):时钟设定,状态机设定,按键设定。