版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、成 績 評 定 表學(xué)生姓名田剛林班級學(xué)號1003030426專 業(yè)電子信息工程課程設(shè)計題目電梯控制器評語組長簽字:成績?nèi)掌?20 年 月 日課程設(shè)計任務(wù)書學(xué) 院信息科學(xué)與工程學(xué)院專 業(yè)電子信息工程學(xué)生姓名田剛林班級學(xué)號1003030426課程設(shè)計題目 電梯控制器實踐教學(xué)要求與任務(wù): 利用EDA設(shè)計方法設(shè)計電梯控制器,設(shè)計平臺采用MAXPLUSII或QUARTUS,設(shè)計語言采用VHDL,具體功能如下(1) 每層電梯入口處設(shè)有上下請求開關(guān)(2) 設(shè)有電梯所處位置指示裝置及電梯運行模式(上升或下降)指示裝置(3) 電梯到達(dá)有停站請求的樓層后,經(jīng)過1S電梯門打開,開門指示燈亮,開門4S后,電梯門關(guān)閉(
2、開門指示燈滅),電梯繼續(xù)運行,并能響應(yīng)提前關(guān)門延時關(guān)門.(4)能記憶電梯內(nèi)外的所有請求信號,并按照電梯運行規(guī)則次序響應(yīng),每個請求信號保留至執(zhí)行后消除。(5)電梯初始狀態(tài)為一層開門.(6)具有超載報警和故障報警的功能.工作計劃與進(jìn)度安排:課程設(shè)計時間為10天(2周) 1、調(diào)研、查資料1天。 2、總體方案設(shè)計2天。 3、代碼設(shè)計與調(diào)試5天。 4、撰寫報告1天。 5、驗收1天。指導(dǎo)教師: 201 年 月 日專業(yè)負(fù)責(zé)人:201 年 月 日學(xué)院教學(xué)副院長:201 年 月 日 摘要隨著EDA技術(shù)發(fā)展和應(yīng)用領(lǐng)域的擴(kuò)大與深入,EDA技術(shù)在電子信息、通訊、自動控制及計算機(jī)應(yīng)用等領(lǐng)域的重要性突出。隨著技術(shù)市場與人
3、才市場對EDA的需求不斷提高,產(chǎn)品的市場需求和技術(shù)市場的要求也必然會反映到教學(xué)領(lǐng)域和科研領(lǐng)域中來。因此學(xué)好EDA技術(shù)對我們有很大的益處。電梯行業(yè)也隨著科技的發(fā)展,不斷地出現(xiàn)在人們生活的各個場所,因此,對電梯控制器的設(shè)計是一個很實用的例子,對我們掌握EDA技術(shù)的應(yīng)用也有很大的幫助。 關(guān)鍵詞:EDA技術(shù) 電子信息 通信 自動控制目 錄1、 設(shè)計要求概述.1 1.1 設(shè)計要求.1 1.2 總體設(shè)計思路.1 1.3 具體設(shè)計思路.2 2、功能模塊整體結(jié)構(gòu)設(shè)計.2 2.1 電梯控制器功能.2 2.2 電梯控制器設(shè)計.3 3、各模塊詳細(xì)設(shè)計.3 3.1底層模塊設(shè)計.3 3.2 頂層模塊設(shè)計.64、 邏輯仿
4、真與時序仿真的實現(xiàn).12 4.1 底層設(shè)計模塊的方針及參數(shù)設(shè)置.12 4.2 電梯分層控制模塊的仿真及參數(shù)設(shè)置.13 4.3電梯主控制器仿真波形.155、設(shè)計結(jié)論.15 5.1 設(shè)計功能實現(xiàn)情況.15 5.2 設(shè)計心得.16 6、參考文獻(xiàn) .1741 電梯控制器的設(shè)計要求與設(shè)計思路 1.1 設(shè)計要求十層電梯控制器的功能電梯控制器是控制電梯按顧客要求自動上下的裝置。設(shè)計要求如下:(1)每層電梯入口處設(shè)有上下請求開關(guān),電梯內(nèi)設(shè)有顧客到達(dá)層次的停站請求開關(guān)。(2)設(shè)有電梯入口處位置指示裝置及電梯運行模式(上升或下降)指示裝置。(3)電梯每秒升(降)一層樓(4)電梯到達(dá)有停站請求的樓層,經(jīng)過1秒電梯門
5、打開,開門指示燈亮,開門4秒后,電梯門關(guān)閉(開門指示燈滅),電梯繼續(xù)進(jìn)行,直至執(zhí)行完最后一個請求信號后停留在當(dāng)前層。(5)能記憶電梯內(nèi)外所有請求,并按照電梯運行規(guī)則按順序響應(yīng),每個請求信號保留至執(zhí)行后消除。(6)電梯運行規(guī)則當(dāng)電梯處于上升模式時,只響應(yīng)比電梯所在位置高的上樓請求信號,由下而上逐個執(zhí)行,直到最后一個上樓請求執(zhí)行完畢;如果高層有下樓請求,則直接升到有下樓請求的最高樓層,然后進(jìn)入下降模式。當(dāng)電梯處于下降模式時則與上升模式相反,只響應(yīng)比電梯所在位置低的下樓請求信號,由下而下逐個執(zhí)行,直到最后一個下樓請求執(zhí)行完畢;如果低層有上樓請求,則直接降到有上樓請求的最低樓層,然后進(jìn)入上升模式。(7
6、)電梯初始狀態(tài)為一層開門狀態(tài) 1.2 總體設(shè)計思路實驗?zāi)M生活中電梯運動控制,電梯總共十層,最簡單的控制思想如下:(1)采集用戶呼叫樓層,并放入相應(yīng)的記憶單元中。(2)不考慮電梯轎廂所在樓層。若有用戶呼叫,電梯上行直到達(dá)到用戶呼叫最大層,再下行直到到達(dá)最低層,由此構(gòu)成一次行程。(3)每完成一次行程,檢測是否所用用戶呼叫均已響應(yīng)完畢。如果沒有,電梯繼續(xù)運行,直到響應(yīng)完所有用戶呼叫。否則,電梯停止運行。其中用戶請求包括外部請求和內(nèi)部請求。有外部升降請求信號需點亮相應(yīng)的外部請求指示燈,內(nèi)部升降請求信號同外呼。(4)根據(jù)電梯所在樓層,七段數(shù)碼管顯示樓層數(shù)。(5)根據(jù)用戶運行方向,點亮相應(yīng)升降指示燈。(
7、6)當(dāng)電梯運行到有相應(yīng)外部呼叫或內(nèi)部呼叫樓層時,電梯停止運行,滅掉相應(yīng)的呼叫顯示燈,電梯開關(guān)門后,繼續(xù)運行。 1.3 具體設(shè)計思路電梯控制可以通過多種方法進(jìn)行設(shè)計,其中采用狀態(tài)機(jī)來實現(xiàn),思路比較清晰??梢詫㈦娞莸却拿棵腌娨约伴_門,關(guān)門都看成一個獨立的狀態(tài)。由于電梯又是每秒上升或下降一層,所以就可以通過一個統(tǒng)一的一秒為周期的時鐘來觸發(fā)狀態(tài)機(jī)。根據(jù)電梯的實際工作情況,可以把狀態(tài)機(jī)設(shè)置10個狀態(tài),分別是“電梯停留在1層”,“開門”,“關(guān)門”,“開門等待第一秒”,“開門等待第二秒”,“開門等待第三秒”,“開門等待第四秒”,“上升”,“下降”和“停止”狀態(tài)。各個狀態(tài)之間的轉(zhuǎn)換條件可以由上面的設(shè)計要求所
8、決定。2. 功能模塊整體結(jié)構(gòu)設(shè)計 2.1 電梯控制器功能本電梯控制器分為主控制器和分控制器。主控制器是電梯內(nèi)部的控制器,每個樓層有一個分控制器。主控制器的功能:(1)完成10個樓層多用戶的載客服務(wù)控制。(2)電梯運行時顯示電梯的運行方向和所在的樓層。(3)當(dāng)電梯到達(dá)選擇的樓層時,電梯自動開門。(4)具有提前關(guān)電梯門和延時關(guān)電梯門的功能。(5)響應(yīng)分控制器的有效請求,如果到達(dá)有請求的樓層,電梯自動開門。分控制器的功能:(1)顯示電梯的運行狀態(tài)和所在的樓層。(2)顯示乘客的上升和下降請求。分控制器的有效請求原則:(1)電梯處于等待狀態(tài)時,上升和下降請求都響應(yīng)。(2)電梯處于上升狀態(tài)時,有上升請求的
9、分控制器所在樓層數(shù)大于電梯所在的樓層數(shù)。(3)電梯處于下降狀態(tài)時,有下降請求的分控制器所在樓層數(shù)小于電梯所在的樓層數(shù)。2.2 電梯控制器設(shè)計控制器的功能模塊如圖2.1所示,包括主控制器、分控制器、樓層選擇器、狀態(tài)顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇所要到達(dá)的樓層,通過主控制器的處理,電梯開始運行,狀態(tài)顯示器顯示電梯的運行狀態(tài),電梯所在的樓層數(shù)通過譯碼器譯碼從而在樓層顯示器中顯示。分控制器把有效的請求傳給主控的樓層數(shù)。由于分控制器相對簡單很多,所以主控制器是核心部分。狀態(tài)顯示器主控制器分控制器譯碼器電梯位置顯示器樓層選擇器圖2.1 控制器的功能模塊圖3. 各模塊詳細(xì)設(shè)計 3.1底層模塊設(shè)
10、計及參數(shù)設(shè)置電梯控制計時模塊的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter isport(clk,reset,clr,en:in std_logic; q:out integer range 0 to 8);end counter;architecture art of counter issignal temp:integer range 0 to 8;beginprocess(clk,rese
11、t,clr,en)beginif(clr='1')then temp<=0;elsif(rising_edge(clk)then if(reset='1')then temp<=5; elsif(en='1')then if temp=5 then temp<=temp; else temp<=temp+1; end if; end if; end if; end process; q<=temp;end art;電梯每層的分控制器源程序如下:library ieee;use ieee.std_logic_1164.
12、all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity layercontrol isport(clk,switch,upkey,downkey,opendoor:in std_logic;qin: in std_logic_vector(10 downto 1);ur,dr:out std_logic;disp1:out std_logic_vector(3 downto 0);end layercontrol;architecture art of layercontrol isconstant id:
13、std_logic_vector(10 downto 1):="0000001000"signal upkey_data:std_logic;signal downkey_data:std_logic;signal opendoor1:std_logic;signal opendoor2:std_logic;signal req_opendoor:std_logic;signal req_upr:std_logic;signal req_downr:std_logic;signal disp:std_logic_vector(3 downto 0);beginprocess
14、(clk)begin if rising_edge(clk)thenupkey_data<=upkey; downkey_data<=downkey;opendoor2<=opendoor1;opendoor1<=opendoor; end if;end process;req_opendoor<=(opendoor1 and not(opendoor2);process(switch,clk)begin if(switch='0')thenreq_upr<='0'req_downr<='0' elsif
15、(rising_edge(clk)then if(req_opendoor='1' and qin=id)then req_upr<='0' req_downr<='0' elsif(upkey='1' and upkey_data='0')then req_upr<='1' elsif(downkey='1' and downkey_data='0')then req_downr<='1' end if; end if; en
16、d process;ur<=req_upr;dr<=req_downr; with qin select disp<="0001" when "0000000001", "0010" when "0000000010", "0011" when "0000000100", "0100" when "0000001000", "0101" when "0000010000", &q
17、uot;0110" when "0000100000", "0111" when "0001000000", "1000" when "0010000000", "1001" when "0100000000", "1010" when "1000000000", "0000" when others;disp1<=disp;end art;3.2頂層模塊設(shè)計10層全自動電梯控制器
18、頂層模塊源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity elevator10 is port(clk:in std_logic; -時鐘信號 switch:in std_logic; -電梯電源開關(guān),高電平時電梯正常工作 close:in std_logic; -強(qiáng)制關(guān)門信號,高電平時電梯門立即關(guān)閉delay:in std_logic; -延時信號sel:in std_logic_vector(10 downto
19、1); -樓層選擇信號 uplift:in std_logic_vector(10 downto 1); -電梯上升請求輸入信號 downlift:in std_logic_vector(10 downto 1); -電梯下降請求輸入信號 qout:out std_logic_vector(10 downto 1); -電梯狀態(tài)顯示輸出信號 opendoor:out std_logic); -強(qiáng)制開門信號end elevator10;architecture art of elevator10 iscomponent counterport(clk,reset,clr,en:in std_lo
20、gic; q:out integer range 0 to 8);end component;type state_type is(up,m_up,down,m_down,stop,pause);signal state:state_type; -電梯的各種狀態(tài)signal clk1:std_logic; -1Hz時鐘信號signal clk4:std_logic; -4Hz時鐘信號signal req_up:std_logic; -上升請求信號signal req_down:std_logic; -下降請求信號signal runen:std_logic; -電梯運行使能signal run
21、clr:std_logic; -電梯運行復(fù)位signal stopen0:std_logic; -電梯停止使能signal stopen1:std_logic;signal stopclr:std_logic; -電梯停止復(fù)位signal req_upr:std_logic_vector(10 downto 1); -上升請求寄存器信號signal req_downr:std_logic_vector(10 downto 1); -下降請求寄存器信號signal position:std_logic_vector(10 downto 1); -電梯當(dāng)前位置信號signal uplift_dat
22、a:std_logic_vector(10 downto 1); -上升樓層數(shù)據(jù)顯示信號signal downlift_data:std_logic_vector(10 downto 1); -下降樓層數(shù)據(jù)顯示信號signal sel_data:std_logic_vector(10 downto 1); -選擇樓層數(shù)據(jù)顯示信號signal runtime: integer range 0 to 8; -電梯運行時間signal opentime:integer range 0 to 8; -電梯開門時間signal openagain:std_logic; -電梯再次開門信號signal v
23、oidreset:std_logic; -電梯超載復(fù)位信號beginqout<=position;p0:process(clk) variable cnt0:integer range 0 to 4; begin if rising_edge(clk)then if cnt0=4 then clk4<='1'cnt0:=0; else clk4<='0'cnt0:=cnt0+1; end if; end if;end process;p1:process(clk4) variable cnt1:integer range 0 to 3; beg
24、in if rising_edge(clk4)then if cnt1=3 then clk1<='1'cnt1:=0; else clk1<='0'cnt1:=cnt1+1; end if; end if;end process;p2:process(switch,clk,uplift,downlift) begin if rising_edge(clk)then uplift_data<=uplift; downlift_data<=downlift; sel_data<=sel; if state=pause then req
25、_upr<=req_upr and not(position); req_downr<=req_downr and not(position); if(uplift/=uplift_data and req_up/='1' and position>uplift)then req_downr<=(req_downr or uplift); elsif(downlift/=downlift_data and req_up/='1' and position>downlift)then req_downr<=(req_downr
26、or downlift); elsif(uplift/=uplift_data and req_down/='1' and position<uplift)then req_upr<=(req_upr or uplift); elsif(downlift/=downlift_data and req_down/='1' and position<downlift)then req_upr<=(req_upr or downlift); elsif(sel/=sel_data)then if(sel<position and req_
27、up/='1')then req_downr<=(req_downr or sel); elsif(sel>position and req_down/='1')then req_upr<=(req_upr or sel); end if; end if; elsif(state=up or state=m_up)then if(uplift/=uplift_data and req_down/='1' and position<uplift)then req_upr<=(req_upr or uplift); en
28、d if; elsif(state=down or state=m_down)then if(downlift/=downlift_data and req_up/='1' and position>downlift)then req_downr<=(req_downr or downlift); end if; end if; end if;end process; req_up<='1' when req_upr/="0000000000" else '0' req_down<='1'
29、; when req_downr/="0000000000"else '0'p3:process(switch,clk) begin if(switch='0')then state<=stop;opendoor<='0'openagain<='1' elsif rising_edge(clk) then case state is when stop=>state<=pause; when pause=> if(opentime=0 and openagain='0
30、' and (req_up='1'or req_down='1') or(uplift/=uplift_data and position=uplift) or(downlift/=downlift_data and position=downlift)then opendoor<='1'stopclr<='0'stopen1<='1' end if; if(opentime=3 or (openagain='1' and (req_up='1' or re
31、q_down='1')then if(req_up='1')then state<=up;opendoor<='0'stopen1<='0'stopclr<='1'openagain<='0' elsif(req_down='1')then state<=down;opendoor<='0'stopen1<='0'stopclr<='1'openagain<='0
32、9; else state<=pause;opendoor<='0'stopen1<='0'stopclr<='1'openagain<='1' end if; end if; when up=> if(runtime=4)then runen<='0'runclr<='1' if(position=(req_upr and position)then state<=pause; else state<=m_up; end if; else
33、 runclr<='0'runen<='1' end if; when m_up=> state<=up; when down=> if(runtime=4)then runen<='0'runclr<='1' if(position=(req_downr and position)then state<=pause; else state<=m_down; end if; else runclr<='0'runen<='1' end
34、 if; when m_down=>state<=down; end case; end if;end process;p4:process(switch,clk4,delay) begin if(switch='0')then position<="0000000001" -電梯電源低電平時,電梯停在第一層 elsif(rising_edge(clk4)then stopen0<=(not(delay)and stopen1); if(runtime=3) then if(state=up)then position<=(position(9 downto 1)&'0'); elsif(state=down)thenposition<=('0'&position(10 downto 2); end if; end if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:南疆地區(qū)健康信息傳播網(wǎng)絡(luò)建模及干預(yù)策略研究
- 南匯工商行政管理志2025年版編纂與市場動態(tài)跟蹤合同4篇
- 二零二五年度門窗行業(yè)融資租賃合同范本4篇
- 二零二五年度海洋工程裝備租賃合同范本
- 二零二五年度環(huán)保設(shè)備購置與按揭貸款合同3篇
- 2025版農(nóng)田租賃及農(nóng)業(yè)廢棄物處理合同范本4篇
- 二零二五年度特種貨物運輸合同協(xié)議帶特殊包裝與防護(hù)要求2篇
- 二零二五年度智能交通系統(tǒng)建設(shè)合同文本4篇
- 二零二五版企業(yè)內(nèi)部財務(wù)外包承包合同4篇
- 2025年度個人與派遣公司國際項目勞務(wù)派遣合同范本4篇
- 2025-2030年中國陶瓷電容器行業(yè)運營狀況與發(fā)展前景分析報告
- 2025年山西國際能源集團(tuán)限公司所屬企業(yè)招聘43人高頻重點提升(共500題)附帶答案詳解
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂作品錄制許可
- 江蘇省無錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測試語文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語試卷(含答案解析)
- 開題報告:AIGC背景下大學(xué)英語教學(xué)設(shè)計重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個人主要事跡
- 連鎖商務(wù)酒店述職報告
- 2024年山東省煙臺市初中學(xué)業(yè)水平考試地理試卷含答案
評論
0/150
提交評論