EDA三层电梯操纵设计.docx
- 文档编号:24524757
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:6
- 大小:18.96KB
EDA三层电梯操纵设计.docx
《EDA三层电梯操纵设计.docx》由会员分享,可在线阅读,更多相关《EDA三层电梯操纵设计.docx(6页珍藏版)》请在冰豆网上搜索。
EDA三层电梯操纵设计
目录1课程设计的目的和要求---------------------------------------------12供料单元的硬件掌握-----------------------------------------------1供料单元的功能简介----------------------------------------1供料单元的硬件结构-----------------------------------------13供料单元的控制流程-------------------------------------------------34程序的编写和调试----------------------------------------------------45WINCC控制界面制作------------------------------------------------46心得体会-----------------------------------------------------------------5附件---------------------------------------------------------7附件2---------------------------------------------------------------------121前言由于高密度现场可编程逻辑器件和专用集成电路的飞速发展,传统设计技术已经不合适大规模及超大规模集成电路,以往分立的数字电路已经可编程逻辑器件所取代。
电子设计自动化EDA技术正是为了适应现代电子产品设计的要求,吸收多学科最新成果而形成的一门技术。
现代电子设计技术的核心是EDA技术。
EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。
EDA技术极大地提高了电子电路设计效率,缩短了设计周期,节省了设计成本。
EDA技术包括硬件描述语言HDL、EDA工具软件、可编程逻辑器件和实验开发系统等方面内容。
目前,国际上流行的硬件描述语言主要有VHDL、VerilogHDL和AHDL。
EDA工具在EDA技术应用中占据极其重要的位置,利用EDA技术进行电路设计的大部分工作是在EDA软件工作平台上进行的。
EDA工具软件主要包括设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)及下载器等5个模块。
今天,EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。
EDA工具已经成为现代电路设计师的重要武器,正在发挥越来越重要的作用。
2设计目的通过EDA课程设计,巩固所学的理论知识,并加深我们对EDA知识的理解。
通过使用QUARTUS2软件进行程序编写和调试,逐步掌握使用QUARTUS2软件,并可以熟练的掌握编程和调试技巧。
通过使用GW48系EDA实验箱进行实物仿真验证,使我们对FPGA实物有进一步的了解,并掌握QUARTUS2的下载技巧,还有GW48实验箱的使用方法。
3设计要求要求用FPGA设计实现一个3层电梯的控制系统。
系统的要求如下:
(1)电梯运行规则:
当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。
如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。
电梯处在下降模式时,工作方式与上升模式相反。
设电梯共有3层,每秒上升或下降一层。
(2)电梯初始状态为一层,处在开门状态,开门指示灯亮。
(3)每层电梯入口处均设有上下请求开关,电梯内部设有乘客到达楼层的停站请求开关及其显示。
(4)设置电梯所处位置的指示及电梯上升或下降的指示。
(5)电梯到达有停站请求的楼层后,电梯门打开,开门指示灯亮。
开门4妙后,电梯门关闭,开门指示灯灭,电梯继续运行,直至执行完最后一个请求信号后停在当前层。
(6)电梯控制系统能记忆电梯内外的请求信号,并按照电梯运行规则工作,每个请求信号执行完毕后清除。
附加功能:
1.显示开门时间2.当电梯在5秒内无任何请求时电梯自动下降到一楼并停在一楼。
根据电梯控制系统的设计要求,除了具备两个时钟信号CLK,一个是电梯时钟信号,另一个是按键时钟信号。
以外,还应该定义输入信号和输出信号。
输入信号定义如下:
系统复位信号:
RESET,高电平有效;电梯入口处一层、二层的上楼请求开关:
F1UPBUTTION、F2UPBUTTION;电梯入口处二层、三层的下楼请求开关:
F2DNBUTTION、F3DNBUTTION;电梯内部到达楼层的停站请求开关:
STOPlBUTTION、STOP2BUTTION、STOP3BUTTION。
所有输入信号的规定为:
输入信号等于1,表示有请求,信号等于0,表示无请求。
输出信号定义如下:
电梯外部上升和下降请求指示灯:
UPLIGHT和DOWNLIGHT,这些信号与F1UPBUTTION、F2UPBUTTION、F2DNBUTTION、F3DNBUTTION信号相对应;电梯内部乘客到达楼层的停站请求灯:
STOPLIGHT,该信号与STOPlBUTTION、STOP2BUTTION、STOP3BUTTION信号相对应;电梯运行模式指示:
UDSIG,1代表下降模式,0代表上升模式;电梯所在楼层指示:
POSITION,表示电梯在对应楼层;电梯门状态指示:
DOORLIGHT,1表示开门,0表示关门。
4程序设计三层电梯控制器的实体设计首先考虑输入端口,一个复位端口RESET,用于系统不正常时回到初始状态;在电梯外部必须有升降请求端口,一层不需要有下降请求,三层不需要有上升请求,二层则上升下降请求端口都有;在电梯内部应该有各层的停止请求按钮;一个电梯时钟输入端口,以1秒为周期,用于驱动电梯的上升,下降。
开门以及关门动作;另外一个按键时钟输入端口,频率要比电梯的高得多在这里要64HZ。
其次是输出端口,有升降请求信号以后,就得有一个输出端口指示是否被响应,同样,在电梯内部也应该有输出端口来显示各层停留是否响应。
在电梯外部需要一个端口来显示电梯所在的位置,电梯开门,关门状态也要用一个端口来显示;为了观察电梯的升降状态,也要有一个端口来指示电梯的升降状态。
最后还要显示开门时间,就要有一个端口来输出。
三层电梯的控制器设计首先说明一下状态。
状态机设计了10个状态,分别是电梯停留在一层(STOPON1),开门(DOOROPEN),关门(DOORCLOSE),开门等待1秒(DOORWAIT1),开门等待2秒(DOORWAIT2),开门等待3秒(DOORWAIT3),开门等待4秒(DOORWAIT4),上升(UP),下降(DOWN),和停止(STOP)。
在结构体中,设计两个进程互相配合,一个是状态机进程的主要进程,另一个是信号灯控制进程作为补助的进程。
状态机进程中的很多判断条件是以信号灯进程产生的信号为依据的,而信号灯进程中信号的熄灭又是以状态机进程中传出的CLEARUP,CLEARDN信号来控制的。
在状态机进程中,在电梯上升状态中,通过对信号灯的判断,决定下一个状态是继续还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止。
在信号灯控制进程中,由于使用了专门的频率比较高的按键时钟,所以按键灵敏度增大,但是时钟频率不能太高,否则容易按键过于灵敏。
按下按键后产生的点亮的信号灯用于作为状态机进程中判断条件,而CLEARUP和CLEARDN信号为逻辑‘1’时相应的信号灯熄灭。
根据电梯的状态变化画出它的状态流程图如附件1程序的编写和调试通过和详细分析,已经清楚的弄清程序的基本结构,输入输出端口,还有最重要的状态机变化。
所以就可以编写程序了,通过多次的排错和纠正错误,调出最终的程序。
详细的源程序和相应的注释在附件25下载程序到GW48实验箱验证附件2:
源程序LIBRARYIEEE;USEUSEUSE----------------------------------------------------------------------------------------输入输出口定义ENTITYTHREEFLIFTISPORT(BUTTONCLK:
INSTD_LOGIC;LIFTCLK:
INSTD_LOGIC;QZSBUTTON:
INSTD_LOGIC;RESET:
INSTD_LOGIC;F1UPBUTTON:
INSTD_LOGIC;------------------------------------------一楼上升请求F2UPBUTTON:
INSTD_LOGIC;--------------------------------------------二楼上升请求F2DNBUTTON:
INSTD_LOGIC;------------------------------------二楼下降请求F3DNBUTTON:
INSTD_LOGIC;----------------------------------三楼下降请求FUPLIGHT:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO1);-------------------上升指示灯FDNLIGHT:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO1);-----------------下降指示灯STOP1BUTTON,STOP2BUTTON,STOP3BUTTON:
INSTD_LOGIC;STOPLIGHT:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO1);posITION:
BUFFERINTEGERRANGE1TO3;TIMELIGHT:
BUFFERINTEGERRANGE0TO4;---------------------------开门时间显示灯DOORLIGHT:
OUTSTD_LOGIC;UDSIG:
BUFFERSTD_LOGIC);--------------下降指示灯ENDTHREEFLIFT;-----------------------------------------------------------------------ARCHITECTUREARTOFTHREEFLIFTISTYPELIFT_STATEIS----------------------------------------十个状态的定义(STOPON1,DOOROPON,DOORCLOSE,DOORWAIT1,DOORWAIT2,DOORWAIT3,DOORWAIT4,UP,DOWN,STOP);SIGNALMYLIFT:
LIFT_STATE;SIGNALCLEARUP:
STD_LOGIC;------------------用于清除上升请求信号SIGNALCLEARDN:
STD_LOGIC;---------------用于清除下降请求信号SIGNALSTOP1:
STD_LOGIC;------------用于电梯自动下到一楼BEGINCTRLIFT:
PROCESS(RESET,LIFTCLK)VARIABLEpos:
INTEGERRANGE3DOWNTO1;VARIABLETIM:
INTEGERRANGE5DOWNTO0;----------------用于检测电梯5秒内无任何请求BEGINIFRESET='1'THEN----------------------------------初始化时MYLIFT<=STOPON1;CLEARUP<='0';CLEARDN<='0';TIM:
=0;ELSE----------------------------------正常运行时IFLIFTCLK'EVENTANDLIFTCLK='1'THENCASEMYLIFTISWHENSTOPON1=>DOORLIGHT<='1';posITION<=1;pos:
=1;mylift<=doorwait1;whendoorwait1=>TIMELIGHT<=1;MYLIFT<=DOORWAIT2;WHENDOORWAIT2=>CLEARUP<='0';CLEARDN<='0';TIMELIGHT<=2;MYLIFT<=DOORWAIT3;WHENDOORWAIT3=>MYLIFT<=DOORWAIT4;TIMELIGHT<=3;WHENDOORWAIT4=>MYLIFT<=DOORCLOSE;TIMELIGHT<=4;WHENDOORCLOSE=>DOORLIGHT<='0';TIMELIGHT<=0;-------------------------------------------------------------------电梯在关门状态下执行IFUDSIG='0'THENIFposITION=3THENIFSTOPLIGHT="000"ANDFDNLIGHT="000"ANDFUPLIGHT="000"THENUDSIG<='1';MYLIFT<=DOORCLOSE;ELSEUDSIG<='1';TIM:
=0;MYLIFT<=DOWN;ENDIF;ELSIFposITION=2THENIFSTOPLIGHT="000"ANDFDNLIGHT="000"ANDFUPLIGHT="000"THENUDSIG<='0';TIM:
=TIM+1;MYLIFT<=DOORCLOSE;IFTIM=5THENSTOP1<='1';TIM:
=0;----------------------------若5秒内无任何请求电梯下到一楼ELSESTOP1<='0';ENDIF;ELSIFSTOPLIGHT(3)='1'OR(STOPLIGHT(3)='0'ANDFDNLIGHT(3)='1')THENUDSIG<='0';MYLIFT<=UP;TIM:
=0;ELSEUDSIG<='1';MYLIFT<=DOWN;TIM:
=0;ENDIF;---------ELSIFposITION=1THENTIM:
=0;STOP1<='0';IFSTOPLIGHT="000"ANDFDNLIGHT="000"ANDFUPLIGHT="000"THENUDSIG<='0';MYLIFT<=DOORCLOSE;ELSEUDSIG<='0';MYLIFT<=UP;ENDIF;ENDIF;------------------------------------------------------------------------ELSIFUDSIG<='1'THENIFposITION=1THENTIM:
=0;STOP1<='0';IFSTOPLIGHT="000"ANDFUPLIGHT="000"ANDFDNLIGHT="000"THENUDSIG<='0';MYLIFT<=DOORCLOSE;ELSEUDSIG<='0';TIM:
=0;MYLIFT<=UP;ENDIF;ELSIFPOSITION=2THENIFSTOPLIGHT="000"ANDFUPLIGHT="000"ANDFDNLIGHT="000"THENUDSIG<='1';TIM:
=TIM+1;MYLIFT<=DOORCLOSE;IFTIM=5THENSTOP1<='1';TIM:
=0;ELSESTOP1<='0';----------------------------若5秒内无任何请求电梯下到一楼ENDIF;ELSIFSTOPLIGHT
(1)='1'OR(STOPLIGHT
(1)='0'ANDFUPLIGHT
(1)='1')THENUDSIG<='1';MYLIFT<=DOWN;TIM:
=0;ELSEUDSIG<='0';MYLIFT<=UP;TIM:
=0;ENDIF;ELSIFposITION=3THENIFSTOPLIGHT="000"ANDFUPLIGHT="000"ANDFDNLIGHT="000"THENUDSIG<='1';TIM:
=TIM+1;MYLIFT<=DOORCLOSE;IFTIM=5THENSTOP1<='1';TIM:
=0;----------------------------若5秒内无任何请求电梯下到一楼ELSESTOP1<='0';ENDIF;ELSEUDSIG<='1';TIM:
=0;MYLIFT<=DOWN;ENDIF;ENDIF;IFSTOPLIGHT="000"ANDFUPLIGHT="000"ANDFDNLIGHT="000"THENTIM:
=TIM+1;ELSETIM:
=0;IFTIM=2THENIFPOSITION=1THENTIM:
=0;ELSETIM:
=0;STOP1<='1';ENDIF;ENDIF;ENDIF;ENDIF;--------------------------------------------------------------------当电梯在上升状态时执行WHENUP=>posITION<=posITION+1;pos:
=pos+1;IFpos<3AND(STOPLIGHT(pos)='1'ORFUPLIGHT(pos)='1')THENMYLIFT<=STOP;ELSIFPOS>1AND(STOPLIGHT(POS)='1'ORFDNLIGHT(POS)='1')THENMYLIFT<=STOP;ELSEMYLIFT<=DOORCLOSE;ENDIF;----------------------------------------------------------------当电梯在下降状态时执行WHENDOWN=>posITION<=posITION-1;pos:
=pos-1;IFpos>1AND(STOPLIGHT(pos)='1'ORFDNLIGHT(pos)='1')THENMYLIFT<=STOP;ELSIFPOS=1AND(STOPLIGHT(POS)='1'ORFUPLIGHT(POS)='1')THENMYLIFT<=STOP;ELSEMYLIFT<=DOORCLOSE;ENDIF;-----------------------------------------------------------------------当电梯在停止状态下执行WHENSTOP=>MYLIFT<=DOOROPON;WHENDOOROPON=>DOORLIGHT<='1';IFUDSIG='0'THENIFposITION<=2AND(STOPLIGHT(posITION)='1'ORFUPLIGHT(posITION)='1')THENCLEARUP<='1';ELSECLEARUP<='1';CLEARDN<='1';ENDIF;ELSIFUDSIG='1'THENIFposITION>=2AND(STOPLIGHT(posITION)='1'ORFDNLIGHT(posITION)='1')THENCLEARDN<='1';ELSECLEARUP<='1';CLEARDN<='1';ENDIF;ENDIF;MYLIFT<=DOORWAIT1;ENDCASE;ENDIF;ENDIF;ENDPROCESSCTRLIFT;------------------------------------------------------------------------------------------------------------------------CTRLIGHT:
PROCESS(RESET,BUTTONCLK)BEGINIFRESET='1'THEN-------------------正常运行时复位按下STOPLIGHT<="000";FUPLIGHT<="000";FDNLIGHT<="000";ELSEIFBUTTONCLK'EVENTANDBUTTONCLK='1'THENIFCLEARUP='1'THEN-----------------------------当清除上升信号为1时STOPLIGHT(posITION)<='0';FUPLIGHT(posITION)<='0';ELSEIFF1UPBUTTON='1'THENFUPLIGHT
(1)<='1';ELSIFF2UPBUTTON='1'THENFUPLIGHT
(2)<='1';ENDIF;ENDIF;IFCLEARDN='1'THEN-------------------------当清除下降信号为1时STOPLIGHT(posITION)<='0';FDNLIGHT(posITION)<='0';ELSEIFF2DNBUTTON='1'THENFDNLIGHT
(2)<='1';ELSIFF3DNBUTTON='1'THENFDNLIGHT(3)<='1';ENDIF;ENDIF;IF(STOP1BUTTON='1'ORSTOP1='1')THENSTOPLIGHT
(1)<='1';ELSIFSTOP2BUTTON='1'THENSTOPLIGHT
(2)<='1';ELSIFSTOP3BUTTON='1'THENSTOPLIGHT(3)<='1';ENDIF;ENDIF;ENDIF;ENDPROCESSCTRLIGHT;ENDART;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 三层 电梯 操纵 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)