全自动电梯控制电路

上传人:痛*** 文档编号:105602378 上传时间:2022-06-12 格式:DOC 页数:9 大小:168.50KB
收藏 版权申诉 举报 下载
全自动电梯控制电路_第1页
第1页 / 共9页
全自动电梯控制电路_第2页
第2页 / 共9页
全自动电梯控制电路_第3页
第3页 / 共9页
资源描述:

《全自动电梯控制电路》由会员分享,可在线阅读,更多相关《全自动电梯控制电路(9页珍藏版)》请在装配图网上搜索。

1、-全自动电梯控制电路一 选题目的随着我国经济持续增长、城镇化建立的加速和房地产行业的进一步开展,对电梯的需求越来越大。所以电梯控制器就需要大强度的开展,来满足社会的需求。电梯的开展更加的智能化,节约化。对社会的开展,人民生活水平的提高具有很大的意义。所以加大对电梯控制器的开展,和技术上的研究是很重要的。随着EDA技术开展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。EDA技术的提高,促进了电梯控制器的开展。电梯行业也随着科技的开展,不断

2、地出现在人们生活的各个场所,因此,对电梯控制器的设计是一个很实用的例子,对掌握EDA技术的应用也有很大的帮助。二设计目标掌握EDA设计的一般方法;熟悉Quartus 9.0软件,利用其设计一个符合以下设计要求的全自动电梯控制电路。设计要求设计一个层楼房全自动电梯控制电路,其功能如下:每层楼电梯入口处设有上,下请求开关各,电梯设有乘客到达层次的停站要求开关。有电梯所处位置指示装置和电梯上行,下行状态批示装置。电梯每秒升降一层楼。到达*一层楼时,指示该层次的灯发光,并一直保持到电梯到达新一层为止。电梯到达有停站请求的楼层后,该层次的指示灯亮,经过.5S,电梯门自动翻开,开门指示灯亮,开门5S后,电

3、梯门自动关闭开门指示灯灭,电梯继续运行。能记忆电梯外的所有请求信号,并按照电梯运行规则次第响应,每个请求信号保存至执行后撤除。电梯运行规则,电梯处于上升模式时,只响应比电梯所在位置高的层次的上楼请求信号,由下而上逐个执行,直到最后一个请示执行完毕。如更高层次有下楼请求,则直接升到有下楼请求的楼层接客,然后便进入下降模式。电梯处于下降模式时与之相反,仅响应比电梯所在位置低的楼层的下楼请求。电梯执行完所有的请求后,应停在最后所在的位置不变,等待新的请求。开机接通电源时,电梯应停留在一楼,而各种上,下请求皆被去除。三 实现方案3.1控制器的控制模块控制器包括主控制器、楼层选择器、状态显示器、译码器和

4、楼层显示器等6个模块。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开场运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进展处理,同时显示电梯的运行状态和电梯所在楼层数。 分控制器楼层选择器状态显示器主控制器译码器楼层显示器3.2 控制器的流程图初始化外部按键否请求信号存放器是否有请求.楼层检测电梯运行等待判定电梯运行方向目标层与本层是否同层.是状态存放器是内部软件执行机构否外部硬件执行机构总流程图否是否目标层.是电梯停顿开门关门否是否停顿运行.是停顿电梯控制主流程图 3.3控制器的VHDL描述模块流程四层电梯控

5、制器的设计主要是对实体和构造体的设计,它的VHDL描述模块流程如图:元件库的说明端口定义实体状态机进程构造体按键信号灯信号灯控制进程完毕四层电梯控制器的VHDL描述模块流程四 设计过程4.1设计程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity y*h isport(clk:in std_logic; clkout:out std_logic);end y*h;architecture one of y*h issignal count: std_logic_vector(8 dow

6、nto 0);begin process beginwait until clkevent and clk=1; if count500 then count=count+1; clkout=0; else count0); 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 is port( clk: in std_logic; up1,u

7、p2,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 is type state_type is (start,run,opendo

8、or,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); signal dclosem,ddelaym: std_logic;beginstate_trans:proc

9、ess (clk,up1,up2,up3,down4,down3,down2,stop1,stop2,stop3,stop4,upm,downm,stopm,dat,ddelay,dclose)variable position: integer range 0 to 4;begin if rising_edge(clk) then if 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

10、; 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

11、; end if; dat if dat=0000 then state = start; elsif position= 0 then position:=position+1; state if stopm(0)=1 or upm(0)=1 then stopm(0)=0; upm(0)=0; state 0001 then state= up; end if; elsif position=2 then if stopm(1)=1 or upm(1)=1 or downm(1)=1 then stopm(1)=0; upm(1)=0; downm(1)=0; state 0011 the

12、n state= up; elsif dat 0010 then state= down; end if; elsif position=3 then if stopm(2)=1 or upm(2)=1 or downm(2)=1 then stopm(2)=0; upm(2)=0; downm(2)=0; state 0111 then state= up; elsif dat 0100 then state= down; end if; elsif position=4 then if stopm(3)=1 or downm(3)=1 then stopm(3)=0; downm(3)=0

13、; state= opendoor; elsif dat 1000 then state upled=1; state state upled0011 or stopm0011) and stopm(1)=0 and upm(1)=0 then state0111 and stopm(2)=0 and upm(2)=0 then state= up; else state downled= 1; state state downled= 0; position:=position-1; if position=3 and (downm0100 or stopm0100) and stopm(2

14、)=0 and downm(2)=0 then state= down; elsif position=2 and dat0010 and stopm(1)=0 and downm(1)=0 then state= down; else state 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

15、stopm(3)=0; downm(3)=0; end if; dopenled=001100; if dclosem=1 then state= dopenwait9; dclosem=0; elsif ddelaym=1 then state= opendoor; ddelaym=0; else state if dclosem=1 then state= dopenwait9; dclosem=0; elsif ddelaym=1 then state= opendoor; ddelaym=0; else state dopenled=011110; state if dclosem=1

16、 then state= dopenwait9; dclosem=0; elsif ddelaym=1 then state= opendoor; ddelaym=0; else state dopenled=111111; state if dclosem=1 then state= dopenwait9; dclosem=0; elsif ddelaym=1 then state= opendoor; ddelaym=0; else state dopenled=011110; state if dclosem=1 then state= dopenwait9; dclosem=0; el

17、sif ddelaym=1 then state= opendoor; ddelaym=0; else state dopenled=001100; state if dclosem=1 then state= dopenwait9; dclosem=0; elsif ddelaym=1 then state= opendoor; ddelaym=0; else state dopenled0000 then state= run; else state if dat0000 then state= run; elsif ddelaym=1 then state= opendoor; ddel

18、aym=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; en

19、d 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,nowflo

20、or: out std_logic_vector(3 downto 0); dopenled: out std_logic_vector(5 downto 0);end finalctrol;architecture arc of finalctrol is ponent y*h port(clk: in std_logic; clkout: out std_logic); end ponent; ponent elevator port( clk: in std_logic; up1,up2,up3,stop1,stop2,stop3,stop4,down4,down3,down2: in

21、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 ponent;signal clkwire: std_logic; beginU1: y*h port map(clk,clkwire);U2: elevator port map(clkwire,up1,up2,up3,stop1,stop2,stop3,

22、stop4,down4,down3,down2,ddelay,dclose,upled,downled,floorled,nowfloor,dopenled);end architecture;4.2 输入输出端口图五 遇到问题及解决方法遇到问题:由于电梯的人可能会出现局部人须要上楼,局部人需要下楼的情况,所以需要先响应电梯运行方向上最近楼层的指令,待该方向上所有指令运行完毕后再运行反方向时的指令。解决方法:用if或when语句,使得当电梯运行方向上的楼层输入端的所有输入都为0时,才运行反方向最近的楼层的指令。缺乏:未考虑到电梯可能会出现的未知不可自行解决的异常情况。解决方法:应设置reset端,使电梯出现异常情况时回到初始状态。六 实现结果时序仿真波形七 对该课程的实施意见及建议建议学校适当增加理论课的课程学时,同学们想对该课程有更深入的学习和理解,但囿于课时太短,很多容得课下自己看书学习。另外建议学校整修一下上机教室的电脑,人多机少不够用。. z.

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

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

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


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