基于FPGA芯片電梯自動(dòng)控制系統(tǒng)_第1頁
基于FPGA芯片電梯自動(dòng)控制系統(tǒng)_第2頁
基于FPGA芯片電梯自動(dòng)控制系統(tǒng)_第3頁
基于FPGA芯片電梯自動(dòng)控制系統(tǒng)_第4頁
基于FPGA芯片電梯自動(dòng)控制系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、隴東學(xué)院2013-2014學(xué)年第一學(xué)期微機(jī)原理與接口技術(shù)課程論文(設(shè)計(jì))題 目: 基于FPGA的電梯 自動(dòng)控制系統(tǒng)設(shè)計(jì) 學(xué) 院: 信息工程學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 11級(jí)3班 姓 名: 聶麗霞 學(xué) 號(hào): 2011051339 基于FPGA芯片的電梯自動(dòng)控制系統(tǒng)摘要:本論文是基于FPGA的電梯控制器的研究,是電梯控制的核心技術(shù),通過電梯控制器可以對(duì)電梯運(yùn)行模式和狀態(tài)進(jìn)行全面的控制,這也是此次論文研究的重要性;由于FPGA技術(shù)近些年來蓬勃發(fā)展,而且在很多領(lǐng)域已經(jīng)應(yīng)用的十分成熟,所以用FPGA可以實(shí)現(xiàn)對(duì)電梯精確、穩(wěn)定、實(shí)時(shí)性控制,同時(shí)用于FPGA開發(fā)的芯片都是一些微處理器芯片,便于

2、集成和智能化設(shè)計(jì)。關(guān)鍵字:FPGA ;VHDL;電梯;狀態(tài)機(jī)1 設(shè)計(jì)目的1.1 設(shè)計(jì)背景目前,電梯的設(shè)計(jì)、工藝不斷提高,電梯的品種也逐漸增多,電梯的材質(zhì)由黑白到彩色,樣式由直式到斜式,在操縱控制方面更是步步出新:手柄開關(guān)操縱、按鈕控制、信號(hào)控制、集選控制、人機(jī)對(duì)話等;多臺(tái)電梯還出現(xiàn)了并聯(lián)控制、智能群控;雙層轎箱電梯展示出節(jié)省井道空間,提升運(yùn)輸能力的優(yōu)勢,變速式自動(dòng)人行道扶梯大大節(jié)省了行人的時(shí)間;不同外形的電梯則使身處其中的乘客的視線不再封閉。1.2 設(shè)計(jì)要求電梯的結(jié)構(gòu)分為:四大空間,八大系統(tǒng);四大空間:機(jī)房部分、井道及地坑部分、轎廂部分、層站部分;八大系統(tǒng):曳引系統(tǒng)、導(dǎo)向系統(tǒng)、轎廂、門系統(tǒng)、重

3、量平衡系統(tǒng)、電力拖動(dòng)系統(tǒng)、電氣控制系統(tǒng)、安全保護(hù)系統(tǒng);電梯的功能結(jié)構(gòu)決定電梯的八大應(yīng)用技術(shù):全數(shù)字識(shí)別乘客技術(shù)(所有乘客進(jìn)入電梯前進(jìn)行識(shí)別,其中包括眼球識(shí)別、指紋識(shí)別)2 數(shù)字智能型安全控制技術(shù)(通過乘客識(shí)別系統(tǒng)或者IC卡以及數(shù)碼監(jiān)控設(shè)備,拒絕外來人員進(jìn)入)3 第四代無機(jī)房電梯技術(shù)(主機(jī)必須與導(dǎo)軌和轎廂分離,完全沒有共振共鳴,速度可以達(dá)到2.0M/S以上,最高可以使用在30層以上。)4 雙向安全保護(hù)技術(shù)(雙向安全鉗、雙向限速器,在歐洲必須使用,中國正在被普遍使用)5 快速安裝技術(shù)(改變過去的電梯安裝方法,能夠快速組裝)6 節(jié)能技術(shù)(采用節(jié)能技術(shù),使電梯更節(jié)約能源) 7 數(shù)字監(jiān)控技術(shù)(完全采用計(jì)

4、算機(jī)進(jìn)行電梯監(jiān)控與控制)8 無線遠(yuǎn)程控制及報(bào)警裝置(當(dāng)電梯產(chǎn)生故障時(shí),電梯可以通過無線裝置給手機(jī)發(fā)送故障信息,并通過手機(jī)發(fā)送信號(hào)對(duì)電梯進(jìn)行簡單控制。)本論文主要是控制電梯的運(yùn)行模式和狀態(tài),對(duì)信號(hào)進(jìn)行處理的模塊,重點(diǎn)在對(duì)響應(yīng)的信號(hào)進(jìn)行處理,并將處理結(jié)果反饋給對(duì)應(yīng)功能的控制端口,實(shí)現(xiàn)對(duì)電梯運(yùn)行的全面控制。2 總體方案 電梯方向優(yōu)先控制方式控制系統(tǒng)框圖2.1.論文研究的主要內(nèi)容本論文的電梯控制器所有的程序可以集成在一個(gè)FPGA開發(fā)芯片上面,不用在用其他功能的分立邏輯元件,達(dá)到集成度高、響應(yīng)快、功耗低的特點(diǎn)。本論文是基于FPGA的電梯控制器的研究,是電梯控制的核心技術(shù),通過電梯控制器可以對(duì)電梯運(yùn)行模式

5、和狀態(tài)進(jìn)行全面的控制,這也是次論文的研究重要性;電梯的層數(shù)為6層,本次論文采用模塊化設(shè)計(jì),主要分為四大模塊:時(shí)鐘分頻模塊、按鍵處理模塊、電梯運(yùn)行控制模塊、數(shù)碼管顯示模塊。由于FPGA技術(shù)近些年來蓬勃發(fā)展,而且在很多領(lǐng)域已經(jīng)應(yīng)用的十分成熟,用FPGA可以實(shí)現(xiàn)對(duì)電梯精確、實(shí)時(shí)性控制,而且用于FPGA開發(fā)的芯片都是一些微處理器芯片,便于集成和智能化設(shè)計(jì),而且大大縮短了開發(fā)周期。3.FPGA概述FPGA(Field Programmable Gate Arry)即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路

6、而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn);FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。4.FPGA硬件體系結(jié)構(gòu)FPGA采用邏輯單元陣列(LCA,Logic Cell Array)新概念,內(nèi)部包括可配置邏輯模塊(CLB,Configurable Logic Block)、輸入輸出模塊(IOB,Input Output Block)和內(nèi)部互連

7、資源(IR,Interconnect Resources)三部分組成。1 可配置邏輯塊(CLB,Configurable Logic Block)是FPGA的主要組成部分,主要是由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。2 輸入輸出模塊(IOB,Input Output Block)提供了器件引腳和內(nèi)部邏輯陣列之間的連接,主要是由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)、鎖存器、輸出緩沖器組成。3 可編程互連資源(IR,Interconnect Resources)可以將FPGA內(nèi)部的CLB和CLB之間、CLB和IOB之間連接起來,構(gòu)成各種具有復(fù)雜功能的系統(tǒng),IR主要由許多金屬線段構(gòu)成,這些金屬

8、線段帶有可編程開關(guān),通過自動(dòng)布線實(shí)現(xiàn)各種電路的連接。5.電梯控制器的工作原理本次論文是實(shí)現(xiàn)6層電梯的運(yùn)行控制,當(dāng)在某一樓層按下上升或者下降請(qǐng)求按鈕時(shí),控制器響應(yīng)該請(qǐng)求并控制電梯前往該樓層,當(dāng)?shù)竭_(dá)該樓層時(shí),電梯開門,當(dāng)進(jìn)入電梯后,電梯關(guān)門,此時(shí)按下要到達(dá)的樓層按鈕,控制器響應(yīng)該請(qǐng)求并控制電梯前往該樓層,當(dāng)?shù)竭_(dá)前往樓層后,電梯開門,走出電梯,然后關(guān)門.,就這樣往復(fù)的實(shí)現(xiàn)電梯的控制功能。在電梯運(yùn)行時(shí)遵循如下規(guī)則:當(dāng)電梯處于上升模式時(shí),只響應(yīng)比電梯所在位置高的上樓信號(hào),由下至上依次執(zhí)行;直到最后一個(gè)上樓請(qǐng)求執(zhí)行完畢,如有更高層有下樓請(qǐng)求時(shí),則直接升到有下降請(qǐng)求的最高樓,然后進(jìn)入下降模式,電梯處于下降模

9、式時(shí),則與上升相反。電梯的輸入信號(hào)主要包括外部輸入信號(hào)和內(nèi)部輸入信號(hào);對(duì)于電梯外部輸入信號(hào)主要有:每一層電梯門外都有上升請(qǐng)求和下降請(qǐng)求按鈕,其中一樓電梯門外只有上升請(qǐng)求按鈕,6樓電梯門外只有下降請(qǐng)求按鈕。對(duì)于電梯內(nèi)部輸入信號(hào)主要有:6個(gè)前往樓層的按鈕、提前關(guān)門按鈕、延時(shí)關(guān)門按鈕、電梯異常按鈕。電梯輸出信號(hào)也主要包括外部輸出信號(hào)和內(nèi)部輸出信號(hào);對(duì)于電梯外部輸出信號(hào)包括上升請(qǐng)求按鈕和下降按鈕指示信號(hào)、電梯當(dāng)前所在樓層指示信號(hào)、電梯運(yùn)行方向指示信號(hào)。電梯內(nèi)部輸出信號(hào)包括6個(gè)前往樓層按鈕指示信號(hào)、超重等警告指示信號(hào)、電梯當(dāng)前所在樓層指示信號(hào)、電梯運(yùn)行方面指示信號(hào)。6.電梯控制系統(tǒng)的設(shè)計(jì)內(nèi)容本次論文是基

10、于FPGA的電梯控制器的研究,是電梯控制的核心技術(shù),通過電梯控制器可以對(duì)電梯運(yùn)行模式和狀態(tài)進(jìn)行全面的控制,這也是次論文的研究重要性;電梯的層數(shù)為6層,本次論文采用模塊化設(shè)計(jì)方法,主要分為四大模塊:時(shí)鐘分頻模塊、按鍵處理模塊、電梯運(yùn)行控制模塊、數(shù)碼管顯示模塊。本論文是基于FPGA的電梯控制器的研究,是電梯控制的核心技術(shù),通過電梯控制器可以對(duì)電梯運(yùn)行模式和狀態(tài)進(jìn)行全面的控制,這也是次論文的研究重要性;電梯的層數(shù)為6層,本次論文采用模塊化設(shè)計(jì)方法,主要分為四大模塊:時(shí)鐘分頻模塊、按鍵處理模塊、電梯運(yùn)行控制模塊、數(shù)碼管顯示模塊。其方框原理圖如下:時(shí)鐘分頻數(shù)碼管顯示按鍵處理電梯運(yùn)行控制系統(tǒng)時(shí)鐘2倍分頻8

11、倍分頻按鍵請(qǐng)求按鍵處理響應(yīng)顯示電梯所在樓層電梯控制器原理圖7.時(shí)鐘分頻模塊時(shí)鐘分頻模塊功能是將系統(tǒng)頻率分頻為兩種不同的頻率,一個(gè)是2分頻時(shí)鐘供電梯運(yùn)行控制模塊使用,另一個(gè)8分頻時(shí)鐘供其他模塊使用,其源代碼如下:時(shí)鐘分頻模塊:clkdiv.vhdLibrary Ieee; Use Ieee.Std_Logic_1164.All;Use Ieee.Std_Logic_unsigned.All; / 定義所用的標(biāo)準(zhǔn)庫 Port( clk: In Std_Logic; /系統(tǒng)時(shí)鐘頻率 clk_2: Out Std_Logic; /2分頻脈沖(作為電梯控制時(shí)鐘) clk_8: Out Std_Logic

12、 /8分頻脈沖(作為按鍵處理時(shí)鐘) ); /定義輸入輸出變量End clkdiv;Signal cnt: Std_Logic_Vector(7 Downto 0); /定義一個(gè)8位的變量Begin Process(clk) /時(shí)鐘分頻進(jìn)程Begin If clk'event and clk='1' Then /時(shí)鐘脈沖上升沿有效 cnt<=cnt+1; clk_2<=cnt(1); /變量cnt的第1位輸出2分頻 clk_8<=cnt(4); /變量cnt的第3位輸出8分頻 End Process;End one;源程序編寫完成后,進(jìn)行調(diào)試、運(yùn)行并生成

13、模塊文件,確認(rèn)沒有錯(cuò)誤之后進(jìn)行功能仿真、時(shí)序分析。其模塊原理圖如下: 時(shí)鐘分頻模塊原理圖8.電梯運(yùn)行控制模塊 電梯運(yùn)行控制模塊是此次設(shè)計(jì)的核心,電梯運(yùn)行的模式和狀的態(tài)控制效果完全取決于電梯控制模塊,它的功能是在系統(tǒng)2分頻時(shí)鐘下,根據(jù)按鍵處理模塊輸出的信號(hào),控制電梯上升與下降運(yùn)行模式和狀態(tài),當(dāng)電梯關(guān)門時(shí)輸出相應(yīng)的上升與下降清除信號(hào),同時(shí)輸出電梯當(dāng)前所在樓層的數(shù)碼管輸出信號(hào)與電梯運(yùn)行方向,本次是設(shè)計(jì)的6層電梯控制系統(tǒng),在源程序中具體要體現(xiàn)一下功能:1 每層電梯(除1樓和6樓外,1樓只有上升請(qǐng)求按鈕,6樓只有下降請(qǐng)求按鈕)入口出設(shè)置有上升和下降請(qǐng)求按鈕,電梯內(nèi)部設(shè)有要到達(dá)樓層的請(qǐng)求按鈕1-6樓。2

14、設(shè)有電梯所處位置數(shù)碼管顯示部分,電梯運(yùn)行模式的LED顯示部分。3 電梯能記憶電梯外部所有信號(hào)請(qǐng)求,并按照電梯運(yùn)行規(guī)則進(jìn)行順序響應(yīng),每個(gè)電梯請(qǐng)求信號(hào)保留到電梯響應(yīng)結(jié)束。4 電梯運(yùn)行規(guī)則:當(dāng)電梯上升時(shí)候,只響應(yīng)比電梯所在樓層高的上樓信號(hào),由下到上依次執(zhí)行,直到最后一個(gè)上升請(qǐng)求信號(hào)執(zhí)行完畢,當(dāng)電梯下降時(shí)候,只響應(yīng)比電梯所在樓層低的下樓信號(hào),由上到下依次執(zhí)行,直到最后一下下降請(qǐng)求信號(hào)執(zhí)行完畢。電梯運(yùn)行控制模塊的源程序如下:電梯運(yùn)行控制模塊:elevator_run.vhdLibrary Ieee;Use Ieee.Std_Logic_1164.All;Use Ieee.Std_Logic_Arith.

15、All;Use Ieee.Std_Logic_unsigned.All; / 定義所用的標(biāo)準(zhǔn)庫Entity elevator_run IsPort( clk: In Std_Logic; /電梯時(shí)鐘 rst: In Std_Logic; /異步置位按鍵 alarm: in Std_Logic; up_light: in Std_Logic_Vector(6 Downto 1); /電梯外部上升請(qǐng)求指示燈 down_light: in Std_Logic_Vector(6 Downto 1);/電梯外部下降請(qǐng)求指示燈 inside_light: in Std_Logic_Vector(6 Dow

16、nto 1); /電梯內(nèi)部樓層請(qǐng)求指示燈 position: out integer range 1 to 6; /電梯位置變量 door_light: Out Std_Logic; /電梯門開關(guān)指示燈 clear_up: out Std_Logic; /用于清除上升請(qǐng)求指示燈信號(hào) clear_down: out Std_Logic /用于清除下降請(qǐng)求指示燈信號(hào) delay: In Std_Logic; /延時(shí)關(guān)門變量 advance: In Std_Logic; /提前關(guān)門變量updown_light: Buffer Std_Logic_Vector(7 Downto 0); /電梯升降顯示

17、 ); /定義輸入輸出變量End elevator_run;Architecture six_floor of elevator_run is type lift_state is(stop_1,door_open,door_close,door_wait1,door_wait2,door_wait3,door_wait4, door_wait5,door_wait6,up,down,stop);signal my_lift:lift_state;signal pos:integer range 6 downto 0;signal updown_flag:Std_Logic;signal po

18、sreg:integer range 1 to 6;signal one:Std_Logic_Vector(6 Downto 1);Begin /控制電梯狀態(tài)進(jìn)程U1:Process(rst,clk) Begin If (rst='0' or alarm='0') Then my_lift<=stop_1; clear_up<='1' clear_down<='1'Else If(clk'event and clk='1') Then case my_lift is when stop_1

19、 => /初試狀態(tài)在第一層 door_lght<='0' position<='1' my_lift<=door_wait1; clear_up<='0' clear_down<='0' updown_light<="00000010"/開門時(shí)間為door_wait1到door_wait6,5個(gè)時(shí)鐘周期/如果提前信號(hào)advance有效,則電梯直接跳到door_close狀態(tài)/如果提前信號(hào)delay有效,則電梯重新回到door_wait1狀態(tài) when door_wait

20、1 => If advance='1' Then my_lift<=door_close; Elsif delay='1' Then my_lift<=door_wait1; Else my_lift<=door_wait2; End If; clear_up<='0' clear_down<='0' when door_wait2 => If advance='1' Then my_lift<=door_close; Elsif delay='1'

21、Then my_lift<=door_wait1; Else my_lift<=door_wait3; End If; clear_up<='0' clear_down<='0' when door_wait3 => If advance='1' Then my_lift<=door_close; Elsif delay='1' Then my_lift<=door_wait1; Else my_lift<=door_wait4; End If; clear_up<='

22、0' clear_down<='0' when door_wait4 => If advance='1' Then my_lift<=door_close; Elsif delay='1' Then my_lift<=door_wait1; Else my_lift<=door_wait5; End If; clear_up<='0' clear_down<='0' when door_wait5 => If advance='1' Then

23、my_lift<=door_close; Elsif delay='1' Then my_lift<=door_wait1; Else my_lift<=door_wait6; End If; clear_up<='0' clear_down<='0' when door_wait6 => my_lift<=door_close; clear_up<='0' clear_down<='0'when door_close => door_light<=

24、'0' clear_up<='0' clear_down<='0' If posreg=6 Then /如果電梯在第6層,且電梯外部與內(nèi)部沒有任何按鍵請(qǐng)求,電梯進(jìn)入關(guān)門狀態(tài)/電梯運(yùn)行狀態(tài)指示停止If(inside_light="000000" and up_light="000000" and down_light="000000")Then my_lift<=door_close;/數(shù)碼管顯示橫杠,表示電梯停止,沒有向上和向下運(yùn)行updown_light<=&q

25、uot;00000010" /如果電梯在第6層,且電梯外部與內(nèi)部有任何按鍵請(qǐng)求時(shí),電梯轉(zhuǎn)到下降狀態(tài)/電梯運(yùn)行狀態(tài)指示下降Elsif(inside_light>"000000" or up_light>"000000" or down_light>"000000")Then my_lift<=down;/數(shù)碼管顯示小寫d字,表示電梯下降運(yùn)行updown_light<="01111010" updown_flag<='1'End If; /如果電梯在第1層

26、If posreg=1 Then /如果電梯在第1層,且電梯外部與內(nèi)部沒有任何按鍵請(qǐng)求,電梯進(jìn)入關(guān)門狀態(tài)/電梯運(yùn)行狀態(tài)指示停止If(inside_light="000000" and up_light="000000" and down_light="000000")Then my_lift<=door_close;/數(shù)碼管顯示橫杠,表示電梯停止,沒有向上和向下運(yùn)行updown_light<="00000010" /如果電梯在第1層,且電梯外部與內(nèi)部有任何按鍵請(qǐng)求時(shí),電梯轉(zhuǎn)到上升狀態(tài)/電梯運(yùn)行狀態(tài)指示上

27、升Elsif(inside_light>"000000" or up_light>"000000" or down_light>"000000")Then my_lift<=up;/數(shù)碼管顯示小寫u字,表示電梯上升運(yùn)行updown_light<="01111100" updown_flag<='0'End If;/如果電梯在其他樓層時(shí)候Else/如果電梯在其他樓層,且電梯外部與內(nèi)部沒有任何按鍵請(qǐng)求,電梯進(jìn)入關(guān)門狀態(tài)/電梯運(yùn)行狀態(tài)指示停止If(inside_ligh

28、t="000000" and up_light="000000" and down_light="000000")Then my_lift<=door_close;/數(shù)碼管顯示橫杠,表示電梯停止,沒有向上和向下運(yùn)行updown_light<="00000010" /如果電梯外部上升請(qǐng)求或下降請(qǐng)求所在的樓層比電梯當(dāng)前樓層高,或電梯內(nèi)部前往的樓層比電梯當(dāng)前樓層高,則電梯轉(zhuǎn)到上升狀態(tài)/電梯運(yùn)行狀態(tài)指示上升Elsif inside_light>=(one+one) or up_light>=(one

29、+one) or down_light>(one+one)Then my_lift<=up;/數(shù)碼管顯示小寫u字,表示電梯下降運(yùn)行updown_light<="01111100" updown_flag<='0'/如果電梯外部上升請(qǐng)求或下降請(qǐng)求所在的樓層比電梯當(dāng)前樓層低,或電梯內(nèi)部前往的樓層比電梯當(dāng)前樓層低,則電梯轉(zhuǎn)到下降狀態(tài)/電梯運(yùn)行狀態(tài)指示下降Elsif(inside_light+inside_light)<=one or (up_light+up_light)<=one or (down_light+down_lig

30、ht)<=oneThen my_lift<=down;/數(shù)碼管顯示小寫u字,表示電梯下降運(yùn)行updown_light<="01111010" updown_flag<='1' Else my_lift<=door_close; End If; End If; when up => /當(dāng)電梯在上升狀態(tài)時(shí) clear_up<='0' clear_down<='0'/當(dāng)電梯所在樓層低于6層,當(dāng)前樓層是電梯前往樓層之一,或者是當(dāng)前樓層有人請(qǐng)求上升,或者電梯內(nèi)部沒有請(qǐng)求信號(hào)但是當(dāng)前樓層有人

31、請(qǐng)求下降,電梯則轉(zhuǎn)向到停止?fàn)顟B(tài)If posreg<6 and (inside_light(posreg)='1' or up_light(posreg)='1' or (inside_light="000000" and down_light(posreg)='1')Then my_lift<=stop;/如果電梯內(nèi)部沒有請(qǐng)求信號(hào),電梯外部沒有上升請(qǐng)求信號(hào),且當(dāng)前樓層有電梯外部下降請(qǐng)求信號(hào),則電梯運(yùn)行時(shí)轉(zhuǎn)到下降狀態(tài)If (inside_light="000000" and up_light=&q

32、uot;000000" and down_light(posreg)='1')Then updown_flag<='1'End If;/當(dāng)電梯所在樓層為6層,有人前往第6層,或者第6層有人下降請(qǐng)求時(shí),電梯則轉(zhuǎn)到停止?fàn)顟B(tài)Elsif posreg=6 and (inside_light(posreg)='1' or down_light(posreg)='1')Then my_lift<=stop;Elsif posreg=6 and (down_light>"000000" or up

33、_light>"000000")Then my_lift<=stop;/其他情況,電梯繼續(xù)上升運(yùn)行,電梯所在樓層加1Elsemy_lift<=up;updown_light<="01111100" updown_flag<='0' If posreg<6 Then Posreg<=(Posreg+1); End If; End If;when down => /當(dāng)電梯在下降狀態(tài)時(shí) clear_up<='0' clear_down<='0'/當(dāng)電梯所

34、在樓層高于1層時(shí),當(dāng)前樓層是電梯前往樓層之上,或者是當(dāng)前樓層有人請(qǐng)求下降,或者電梯內(nèi)部沒有前往請(qǐng)求信號(hào)但是樓層有人請(qǐng)求上升,電梯則轉(zhuǎn)向到停止?fàn)顟B(tài)If posreg<1 and (inside_light(posreg)='1' or down_light(posreg)='1' or (inside_light="000000" and up_light(posreg)='1') Then my_lift<=stop;/如果電梯內(nèi)部沒有前往信號(hào),電梯外部也沒有下降請(qǐng)求信號(hào),且當(dāng)前樓層有電梯外部上升請(qǐng)求信號(hào),則電梯運(yùn)

35、行時(shí)轉(zhuǎn)到上升狀態(tài) If (inside_light="000000" and up_light(posreg)='1' and down_light="000000") Then updown_flag<='0' End If;/其他情況,電梯繼續(xù)下降運(yùn)行,電梯所在樓層減1Else my_lift<=down; updown_light<="01111010" updown_flag<='1' If posreg>1 Then Posreg<=(Pos

36、reg-1); End If; End If; /當(dāng)電梯為停止?fàn)顟B(tài),則轉(zhuǎn)為電梯開門狀態(tài) when stop => mylift<=door_open; clear_up<=not updown_flag; clear_down<=updown_flag;、/當(dāng)電梯為開門狀態(tài)時(shí),開門燈亮,轉(zhuǎn)到關(guān)門等待狀態(tài) when door_open => door_light<='1' clear_up<='0' clear_down<='0' my_lift<=door_wait1;/當(dāng)電梯的其他狀態(tài)則轉(zhuǎn)到

37、電梯關(guān)門等待狀態(tài)下 when others => my_lift<=door_wait1;End case; End If; End If; position<=posreg; End Process U1;/樓層信號(hào)轉(zhuǎn)化進(jìn)程,將電梯樓層信號(hào)轉(zhuǎn)化成邏輯變量one,提供進(jìn)程給U1使用 U2:Process(clk,posreg) Begin If(clk'event and clk='1') Then case posreg is when 1 => one<="000001" /一位熱編碼 when 2 => one<="000010" when 3 => one<="000100" when 4 => one<="001000" when 5 => one<="010000" when 6 => one<="100000" End case; End If; End Process U2;End six_floor;電梯控制運(yùn)行模塊源程序編寫完成后,進(jìn)行編譯、運(yùn)行并生成模塊文件,確認(rèn)沒有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論