基于VHDL的電梯控制系統(tǒng)設計.doc_第1頁
基于VHDL的電梯控制系統(tǒng)設計.doc_第2頁
基于VHDL的電梯控制系統(tǒng)設計.doc_第3頁
基于VHDL的電梯控制系統(tǒng)設計.doc_第4頁
基于VHDL的電梯控制系統(tǒng)設計.doc_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

vhdl數(shù)字系統(tǒng)設計與測試實驗報告基于vhdl的電梯控制系統(tǒng)設計一、設計背景及說明隨著高層建筑的不斷涌現(xiàn),對電梯的需求也與日俱增,電梯已經(jīng)成為我們?nèi)粘I钪胁豢扇鄙俚牟糠?,穩(wěn)定可靠性高的電梯系統(tǒng)成為了電梯領(lǐng)域的新需求?,F(xiàn)在基于vhdl硬件描述語言,用fpga為控制芯片控制完成一個簡單的6層樓的電梯控制系統(tǒng)設計。我們常見的電梯控制系統(tǒng)功能都包括:上升請求、下降請求、電梯門控、樓層顯示燈、電梯運動方向顯示、超載、報警、電梯內(nèi)請求信號等。根據(jù)這些常用的信號設計一個電梯系統(tǒng),實現(xiàn)所要求的功能??刂品绞降倪x擇:1) 內(nèi)部請求優(yōu)先控制方式內(nèi)部請求控制方式類似于出租車的工作方式,先將車上的人送至目地,再去載客。作為通用型電梯應該服務于大多數(shù)人,必須考慮電梯對內(nèi)外請求的響應。在內(nèi)部請求優(yōu)先控制方式中,當電梯外部人的請求和電梯內(nèi)部人的請求沖突時,外部人的請求信號可能被長時間忽略,因為它不能作為通用型電梯的設計方案。2) 單層層??刂品桨竼螌訉油?刂品绞降韧诨疖囘\行方式,遇到站即停止、開門。這種方案保證所有的人的請求都能得到響應。然而這樣對電梯的效率產(chǎn)生了消極的影響:不必要的等待消耗了大量時間,而且電梯的運作與用戶的請求無關(guān),當無請求時電梯也照常跑空車,浪費了大量的電能。對于用戶而言這種控制方式的請求響應時間也不是很快,因而也不是理想的電梯控制設計方案。3) 方向優(yōu)先控制式方式方案方向優(yōu)先控制是指電梯運行到某一層樓時,先考慮這一層樓是否有請求:有則停止;無則繼續(xù)上升或者下降。停止后再啟動時,考慮上方或者下方是否有請求,有則繼續(xù)前進,無則停止。檢測后方是否有請求,有請求則轉(zhuǎn)向運行,無請求則維持停止狀態(tài)。這種運作方式下,電梯對用戶的請求相應率為100%,而且響應的時間較短。方向優(yōu)先控制方式的效率遠遠大于單向?qū)訉油5瓤刂品绞降男省6?,方向控制方式下,電梯在維持停止狀態(tài)的時候可以進入省電模式,又能節(jié)省大量的電能。在本設計中采用方向優(yōu)先控制方式。l 電梯的輸入信號分析電梯的輸入信號分析主要包括外部輸入信號和內(nèi)部輸入信息的分析。對于電梯外部輸入信號:每一層電梯門外需要有上升請求按鈕和下降請求按鈕,其中一樓電梯門外只有上升請求按鈕,6樓電梯門外只有下降請求按鈕。電梯內(nèi)部輸入信號包括6個前往樓層按鈕、提前關(guān)門按鈕、延時關(guān)門按鈕、電梯異常求救按鈕,另外還有超重等警告信號輸入。l 電梯的輸出信號分析:電梯的輸出信號分析也主要包括外部輸出信號和內(nèi)部輸出信息的分析。對于電梯外部信號包括上升請求按鈕和下降請求按鈕是否被按下指示信號燈、電梯當前所在樓層指示信號、電梯運行方向指示信號。電梯內(nèi)部輸出信號包括6個前往樓層按鈕是否被按下指示信號、是否超重等告警指示信號、電梯當前所在樓層指示信號、以及電梯運行方向指示信號。l 電梯運行規(guī)則分析:當電梯處于上升模式時,只響應比電梯所在位置更高的上樓信號,由下至上依次執(zhí)行,直到最后一個上樓請求執(zhí)行完畢,如果高層有下樓請求時,則直接升到有下降請求的最高樓,然后進入下降模式,電梯處于下降模式時,則與上升模式相反。電梯系統(tǒng)框圖如下圖所示:按鍵輸入乘坐電梯者所想要去的樓層,控制電梯門的開關(guān),可編程邏輯芯片接收到信號后進行處理,發(fā)送信號給控制電機系統(tǒng)來控制電梯的上升下降等狀態(tài),同時通過led數(shù)碼管顯示所在的樓層,以及電梯的運動狀態(tài)。該控制器完成6層電梯的載客服務,而且遵循方向優(yōu)先原則,并能相應提前關(guān)門、延時關(guān)門,并且有超載報警和故障報警。同時指示電梯的運行情況以及電梯內(nèi)外請求信息。二、設計框圖及模塊說明 設計電梯系統(tǒng)框圖如下圖所示: 電梯系統(tǒng)大致包括4個模塊:1) 外部數(shù)據(jù)采集模塊對外部信號采集、處理要求電梯控制器:實現(xiàn)對外部請求信號的實時、準確采集;準確實時地捕捉達到樓層的信號;有效防止樓層到達信號、外部請求信號的誤判。采用fpga為系統(tǒng)控制核心,系統(tǒng)時鐘頻率足夠滿足此系統(tǒng)實時采集數(shù)據(jù)的要求。外部請求信號的輸入形式為按鍵輸入,到達樓層信號來自光敏傳感器,關(guān)門中斷信號及超載信號則產(chǎn)生于壓力傳感器。2) 信號存儲模塊電梯控制系統(tǒng)的請求輸入信號有18個(電梯外有6個上升請求和6個下降請求的用戶輸入端口,電梯內(nèi)有6個請求用戶輸入端口),由于系統(tǒng)對內(nèi)外請求沒有設置優(yōu)先級,各樓層的內(nèi)外請求信號被采集后可先進行運算,再存到存儲器內(nèi)。要注意的是電梯運行過程中,由于用戶的請求信號的輸入是離散的,而且系統(tǒng)對請求的響應也是離散的,因此請求信號的存儲要新的請求信號不能覆蓋原來的請求信號,只有響應動作完成后才能清除存儲器內(nèi)對應的請求信號位。3) 基于fpga的中央處理器模塊中央數(shù)據(jù)處理模塊是系統(tǒng)的核心,通過對存儲的數(shù)據(jù)(含請求、到達樓層等信號)進行比較、判斷以驅(qū)動系統(tǒng)狀態(tài)的流轉(zhuǎn)。電梯工作過程中共有9種狀態(tài):等待、上升、下降、開門、關(guān)門、停止、休眠、超載報警及故障報警狀態(tài)。一般情況下電梯的工作始點是第一層,起始狀態(tài)是等待狀態(tài),啟動條件是接受上升請求。超載狀態(tài)時電梯關(guān)門動作取消,同時發(fā)出警報,直到警報被清除(看門狗信號有效的條件是一層樓連續(xù)發(fā)生關(guān)門中斷情況超過3次)。本系統(tǒng)由請求信號啟動,運行中每檢測到一個到達樓層信號,再參考原方向信號來決定是否停止,轉(zhuǎn)向等動作。系統(tǒng)狀態(tài)流程圖如下圖所示:4) 信號的輸出、顯示模塊本系統(tǒng)的輸出信號有兩種:一種是電機的升降控制信號(兩位)和開門/關(guān)門控制信號;另一種是面向用戶的提示信號(含樓層顯示、方向顯示、已接受請求顯示等)。電機控制信號一般需要兩位,本系統(tǒng)中電機有3種工作狀態(tài):正轉(zhuǎn)、反轉(zhuǎn)和停轉(zhuǎn)狀態(tài)。兩位控制信號作為一個三路開關(guān)的選通信號,此三路開關(guān)選用模擬電子開關(guān)。系統(tǒng)的顯示輸出包括數(shù)碼管樓層顯示、數(shù)碼管請求信號顯示和表征運動方向箭頭指示燈的開關(guān)信號。led七段數(shù)碼管顯示部分在前面的作業(yè)中已經(jīng)做了詳細的介紹及說明,在本系統(tǒng)中省略。本系統(tǒng)具有請求信號顯示功能,結(jié)合方向顯示,可以減少用戶對同一請求的輸入次數(shù),這樣就延長了電梯按鍵的壽命。三、電梯控制程序設計源代碼及端口說明輸入端口信號說明:clk:時鐘信號,2hz;clr:清除警報信號,高有效,清除故障報警;c_u1、c_u2、c_u3、c_u4、c_u5:電梯外人的上升請求;c_d2、c_d3、c_d4、c_d5、c_d6:電梯外人的下降請求;deng:關(guān)門中斷,用于在需要等待時,讓電梯門一直打開,停止運動;d1、d2、d3、d4、d5、d6:電梯內(nèi)人的請求信號;full:超載信號,高時表示電梯內(nèi)的人過多,超載報警;g1、g2、g3、g4、g5、g6:到達樓層信號,數(shù)碼管led將顯示其值;quick:提前關(guān)門信號,高有效,當為高時,電梯門馬上關(guān)閉;輸出端口信號說明:door1:0:電梯門控信號;led6:0:電梯所在樓層顯示;led_c_u5:0:電梯外人上升請求信號顯示;led_c_d5:0:電梯外人下降請求信號顯示;led_d5:0:電梯內(nèi)請求信號顯示;alarm:超載警告信號;up:電梯運動狀態(tài)顯示,高時表示上升;down:電梯運動狀態(tài)顯示,高時表示為下降;ud:電機控制信號,控制電梯的上升下降,“1”表示為上升,“0”表示為下降;wawawa:看門狗報警信號,高時表示故障報警。源代碼如下所示: -library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti is port ( clk : in std_logic; -時鐘信號(頻率為2hz) full,deng,quick,clr : in std_logic; -超載、關(guān)門中斷、提前關(guān)門清除報警信號 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; -電梯內(nèi)人的請求信號 g1,g2,g3,g4,g5,g6 : in std_logic; -到達樓層信號 door : out std_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); -電梯內(nèi)請求信號顯示 wahaha : out std_logic; -看門狗報警信號 ud,alarm : out std_logic; -電梯運動方向顯示,超載警告信號up,down : out std_logic ); -電機控制信號和電梯運動end dianti;architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic; -電梯內(nèi)人請求信號寄存信號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:integer range 0 to 1; -分頻信號signal q1:integer range 0 to 6; -關(guān)門延時計數(shù)器 signal q2:integer range 0 to 9; -看門狗計數(shù)器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 downto 0); -電梯內(nèi)外請求信號寄存器signal opendoor:std_logic; -開門使能信號signal updown:std_logic; -電梯運動方向信號寄存器signal en_up,en_dw:std_logic; -預備上升、預備下降預操作使能信號begincom:process(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=1 then door=10;q1=0;q2=q2+1; -關(guān)門中斷 elsif quick=1 then q1=3; -提前關(guān)門 elsif q1=6 then door=00;updown=1;up=3 then door=01;q1=q1+1; -電梯進入關(guān)門狀態(tài) else q1=q1+1;door=00; -電梯進入等待狀態(tài) 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;down=3 then door=01;q1=q1+1; else q1=q1+1;door=00; end if; end if; if g1=1 then led=1001111; -電梯到達1樓,數(shù)碼管顯示1 if d11=1 or c_u11=1 then d11=0; c_u11=0;opendoor000001 then en_up=1; opendoor=0; -有上升請求,則電梯進入預備上升狀態(tài) elsif dd_cc=000000 then opendoor=0; -無請求時,電梯停在1樓待機 end if; elsif g2=1 then led=0010010; -電梯到達2樓,數(shù)碼管顯示2 if updown=1 then -電梯前一運動狀態(tài)位上升 if d22=1 or c_u22=1 then d22=0; c_u22=0; opendoor000011 then en_up=1; opendoor=0; -有上升請求,則電梯進入預備上升狀態(tài) elsif dd_cc000010 then en_dw=1; opendoor=0; -有下降請求,則電梯進入預備下降狀態(tài) end if; -電梯前一運動狀態(tài)為下降 elsif d22=1 or c_d22=1 then d22=0; c_d22=0;opendoor=1; -有當前層的請求,則電梯進入開門狀態(tài) elsif dd_cc000010 then en_dw=1; opendoor000011 then en_up=1; opendoor=0; -有上升請求,則電梯進入預備上升狀態(tài) end if; elsif g3=1 then led=0000110; -電梯到達3樓,數(shù)碼管顯示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=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樓,數(shù)碼管顯示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=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樓,數(shù)碼管顯示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; 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樓,數(shù)碼管顯示6 if d66=1 or c_d66=1 then d66=0; c_d66=0;opendoor=1; elsif dd_cc100000 then en_dw=1; opendoor=0; end if; else en_up=0;en_dw=0; -電梯進入上升或下降狀態(tài) end if; end if; else q=1;alarm=0; -清除超載報警 if d1=1 or d1=0 then d11=d1; -對電梯內(nèi)人請求信號進行檢測和寄存 elsif d2=1 or d2=0 then d22=d2; elsif d3=1 or d3=0 then d33=d3; elsif d4=1 or d4=0 then d44=d4; elsif d5=1 or d5=0 then d55=d5; elsif d6=1 or d6=0 then d66=d6; end if; if c_u1=1 or c_u1=0 then c_u11=c_u1; -對電梯外人上升請求信號進行檢測和寄存 elsif c_u2=1 or c_u2=0 then c_u22=c_u2; elsif c_u3=1 or c_u3=0 then c_u33=c_u3; elsif c_u4=1 or c_u4=0 then c_u44=c_u4; elsif c_u5=1 or c_u5=0 then c_u55=c_u5; end if; if c_d2=1 or c_d2=0 then c_d22=c_d2; -對電梯外人下降請求信號進行檢測和寄存 elsif c_d3=1 or c_d3=0 then c_d33=c_d3; elsif c_d4=1 or c_d4=0 then c_d44=c_d4; elsif c_d5=1 or c_d5=0 then c_d55=c_d5; elsif c_d6=1 or c_d6=0 then c_d66=c_d6; end if; dd=d66&d55&d44&d33&d22&d11; -電梯內(nèi)人請求信號并置 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; -電梯內(nèi)、外人請求信號進行綜合 end if; ud=updown; -電梯運動狀態(tài)顯示 led_d=dd; -電梯內(nèi)人請求信號顯示 led_c_u=cc_u; -電梯外人上升請求信號顯示 led_c_d=cc_d; -電梯外人下降請求信號顯示end if; end process; end behav;此次電梯控制系統(tǒng)設計使用的是altera公司的max-ii,由下資源使用情況圖可見這款芯片足夠滿足本次設計需求。四、仿真結(jié)果及說明假設電梯初始狀態(tài)在一樓,此時2、3樓電梯外有人要下樓,4樓電梯外有人要上樓,在此后輸入等待、快速關(guān)門、超載等信號,觀察仿真圖得出結(jié)論:電梯控制程序仿真全圖注:實際使用時電梯的時鐘為2hz,為了仿真時便于觀察我們在仿真時,將頻率加倍為25mhz。電梯控制程序仿真局部放大圖-1注:1. 電梯停在一樓時,接受到請求信號c_d3、c_d2、c_u4和d6,并把請求信號寫入相應的寄存器。led顯示電梯所在樓層;led_d、led-c_u和led_c_d顯示用戶的請求。2. 電梯經(jīng)過準備上升狀態(tài)后,進入上升狀態(tài),到達2樓、3樓時,由于2、3樓的乘客要求的是下降,所以不停繼續(xù)前進。3. 電梯上升到4樓時,響應請求(c_u4),開門載客;載客時電梯的門狀態(tài)door先由10(電梯門打開)跳到0

溫馨提示

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

評論

0/150

提交評論