




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于PLD的三層電梯的控制設計【摘要】電梯作為現代化的產物在我們的生活之中已必不可少。隨著經濟建設的高速發展,我國電梯需求量越來越大。由此,一個更為龐大的電梯市場已經在國內轟然形成。本設計是基于可編程邏輯器件(PLD)技術中的甚高速集成電路硬件描述語言(VHDL)語言所開發的三層電梯控制程序。本程序具有VHDL語言設計里最為常用的三個模塊:實體entity、結構體architecture、進程執行單元process。通過程序調試及運行仿真,結果表明,本程序可以完成:電梯運行所在樓層指示、電梯運行方向指示、關門延時設置、看門狗報警、超載報警、故障報警等。本設計對更高層的電梯控制設計具有一定的拓展
2、性。【關鍵詞】:電梯控制,程序設計,PLD,VHDL ABSTRACTThe product as a modern elevator in our lives has been essential.With the sustained and rapid development of economic construction, China's increasing demand for elevators.As a result, a much larger domestic elevator market has formed a bang. This design is bas
3、ed on Programmable Logic Devices (PLD)in a Very High speed of the integrated hardware Describe Language (VHDL) in developing the third floor of the lift of control procedures. this program has vhdl language designed for the best of three modules : entity, architecture, process. Through the program r
4、un, debug and simulation results show that the application can finish:the floor, in the direction, the delay, the guard dog the police, and failure the police, etc. this design with higher the control of the design. 【KEY WORD】:lift control, programmer, PLD, VHDL 目 錄引言1一、設計的基礎依據1(一)EDA技術介紹1(二)VHDL語言介
5、紹1(三)MAX+plusII軟件介紹2二、方案論證2(一)基于PLC技術的電梯控制設計方案2(二)基于PLD技術的電梯控制設計方案2(三)方案選擇3三、程序設計3(一)算法分析3(二)程序設計6四、程序調試12五、程序仿真14(一)波形輸入建立14(二)電梯運行情況仿真16(三)電梯功能仿真18總結19附錄一三層電梯控制的源程序20附錄二引腳鎖定情況23參考文獻24致謝25引言我國部分地區人口高度密集,人和土地資源短缺的矛盾日趨激化,這就要求人們合理地利用土地去解決人與土地的矛盾。而興建高層建筑是其中的有效措施之一。因此,能使人們快速、便捷地到達目的樓層的電梯便應運而生了。其中,三層電梯廣泛
6、應用在大型的貨運之中,其使用便捷,貨運周期短,效率高,成本低,對貨運事業具有相當的經濟價值。在客運上,三層電梯雖然涉及樓層不高,應用范圍不大,但就特殊而言,可以為一些上下樓層不方便的人們提供相當的幫助。本設計希望通過在簡單的三層電梯控制設計之中,如何解決升、降請求信號因電梯所處狀態而產生的沖突等問題出發,由此及彼,對高層電梯控制的開發作一個技術的鋪墊,為高層電梯設計者提供一個基礎。針對目前中小型電梯所能實現的功能,本控制設計擬實現以下功能:指示電梯運行所在樓層指示電梯運行方向關門延時設置看門狗報警超載報警故障報警。一、設計的基礎依據現代電子設計技術的核心是EDA技術。采用EDA技術開發的三層電
7、梯自動控制與目前主流的利用可編程邏輯控制器(PLD)實現電梯控制緊密相連。硬件描述語言是EDA技術的重要組成部分,VHDL是作為電子設計主流硬件的描述語言。使用VHDL語言進行程序的設計,在MAX+plusII軟件上對程序進行編譯、仿真。(一)EDA技術介紹EDA技術是20世紀90年代初從計算機輔助設計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發展而來的。設計者可以利用HDL程序來描述所希望的電路系統,規定其結構性和電路的行為方式然后利用EDA工具將此程序變成能控制場效應可編程門陣列(FPGA)/復雜可編程邏輯器件(CPLD)內部結構,實現相
8、應邏輯功能的門級或更底層的結構網表文件和下載文件。就FPGA/CPLD開發來說,比較常用和流行的HDL主要有ABEL-HDL和VHDL等。現代EDA技術的基本特征是采用高級語言描述,具有系統級仿真的綜合能力。在現代高新電子產品的設計和生產中,微電子技術和現代電子設計技術是相互促進、相互推動又相互制約的兩個技術環節。前者代表了物理層在廣度和深度上硬件電路實現的發展,后者則反映了現代先進的電子理論、電子技術、仿真技術、設計工藝和設計技術與最新的計算機軟件技術有機的融合和升華。因此,嚴格地說,EDA技術應該是這二者的結合,是這兩個技術領域共同孕育的奇葩。(二)VHDL語言介紹VHDL主要用于描述數字
9、系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL語言能夠成為標準化的硬件描述語言并獲得廣泛應用,就在于它有以下優點:1.VHDL語言功能強大,設計方式多樣。 2.VHDL語言具有強大的硬件描述能力。 3.VHDL語言具有很強的移植能力。 4.VHDL語言的設計描述與器件無關。 由于VHDL語言是一種描述、模擬、綜合、優化和布線的標準硬件描述語言,因此它可以使設計成果在設計人員之間方便地進行交流和共享,從而減小硬件電路設計的工作量,縮短開發周期。(三) MAX+plusII軟件介紹MAX+plusII是A
10、ltera公司提供的FPGA/CPLD開發集成環境,其界面友好,使用便捷,被譽為業界最易用易學的EDA軟件。它提供了一種與結構無關的設計環境,使設計者能方便地進行設計輸入、快速處理和器件編程。在MAX+plusII平臺上進行數字系統的設計過程一般要經過四個階段:設計輸入、項目編譯、項目校驗和器件編程。首先根據系統的性能指標進行系統結構設計,對整個系統進行功能劃分和模塊劃分。對各子模塊分別進行邏輯設計、編譯、仿真與驗證。當不滿足要求時,重新返回設計輸入階段,修改設計輸入。之后將優化結果下載到所選可擦寫可編程邏輯器件(EPLD)芯片中,進行動態仿真。最后則是測試芯片在系統中的實際運行性能。二、方案
11、論證(一)基于PLC技術的電梯控制設計方案可編程控制系統是一種專門為在工業環境下應用而設計的數字運算操作電子系統。它采用一種可編程的存儲器,在其內部存儲執行邏輯運算、順序控制、定時、計數和算術運算等操作的指令,通過數字式或模擬式的輸入輸出來控制各種類型的機械設備或生產過程。可編程控制器是計算機技術與自動化控制技術相結合而開發的一種適用工業環境的新型通用自動控制裝置,是作為傳統繼電器的替換產品而出現的。隨著微電子技術和計算機技術的迅猛發展,可編程控制器更多地具有了計算機的功能,不僅能實現邏輯控制,還具有了數據處理、通信、網絡等功能。由于它可通過軟件來改變控制過程,而且具有體積小、組裝維護方便、編
12、程簡單、可靠性高、抗干擾能力強等特點,已廣泛應用于工業控制的各個領域,大大推進了機電一體化的進程。PLC的特點可綜述如下:1.高可靠性2.編程簡單,使用方便3.環境要求低4.體積小,重量輕5.擴充方便,組合靈活 (二)基于PLD技術的電梯控制設計方案隨著電子技術的發展,PLD技術在工業控制系統中得到了廣泛的應用,在電梯控制電路上采用PLD技術進行開發,越來越受到人們的重視。PLD技術開發手段多樣,其中應用最為廣泛的就是通過程序對硬件進行開發,而其中又數VHDL語言最受設計者的歡迎。PLD技術使得設計者的工作僅限于利用軟件的方式,即利用硬件描述語言和PLD軟件來完成對系統硬件功能的實現。近幾年來
13、,硬件描述語言等設計數據格式的逐步標準化,不同設計風格和應用的要求導致各具特色的PLD工具被集成在同一個工作站上,從而使PLD框架日趨標準化。VHDL豐富的仿真語句和庫函數,使得在任何大系統的設計早期就能查驗設計系統的功能可行性,隨時可對設計進行仿真模擬。其行為描述能力和程序結構決定了他具有支持大規模設計的分解和已有設計的再利用功能。VHDL語言的設計單元包括實體(entity)、結構體(architecture)、程序包(package)以及配置(configration)。其具體的流程圖如圖2.1所示。圖2.1 VHDL設計流程圖(三)方案選擇對于符合市場需求的大規模系統,需要有多人,甚至
14、多個開發組共同并行工作才能實現。用PLD技術完成一個確定的設計,可以利用相應的工具平臺進行邏輯綜合和優化,完成設計任務。同時,基于PLD技術的VHDL語言對設計的描述具有相對獨立性,這為電子設計的入門者提供了便捷的幫助。就上述比較而言,本設計采用PLD方案更恰當。三、程序設計(一)算法分析1.電梯運行規則(1)請求信號分析本設計把電梯的請求信號分為上升請求和下降請求,電梯接收到請求信號后,都必須進行預操作。當電梯所在樓層低于發出梯外請求的樓層或者低于梯內請求所要到達的目的樓層時,電梯必須在下一操作中作出上升運行,這時的請求信號就是上升請求信號。反之,則是下降請求信號。(2)電梯處于各樓層時的運
15、行說明處于一樓時,不管是梯內梯外,電梯只接收上升的請求信號。此時,電梯就進入預上升狀態。如果電梯沒有接收到請求信號,電梯則在一樓待機。其分析圖如圖3.1所示。圖3.1電梯處于一樓時的運行分析處于二樓時,電梯則可能出現三種情況: 電梯并沒有接收到梯內梯外的任何請求信號時,電梯返回一樓待機; 電梯接收到上升請求信號,進入預上升狀態; 電梯接收到下降請求信號,進入預下降狀態。其分析圖如圖3.2所示。圖3.2 電梯處于二樓時的運行分析處于三樓時,不管是梯內梯外,電梯都只可能接收到下降的請求信號。此時,電梯就進入預下降狀態,準備作下降運行。如果電梯沒有接收到請求信號,電梯則返回一樓待機。其分析圖如圖3.
16、3所示。圖3.3 電梯處于三樓時的運行分析電梯是一個人機交互式的控制系統,單純用順序優先或邏輯優先是不能滿足控制要求的,因此,控制系統采用隨機邏輯方式去解決信號優先的問題。也就是在順序邏輯控制的基礎上,根據隨機的輸入信號和電梯的相應狀態,實時地控制電梯運行。比如,當電梯在三樓時,二樓、一樓梯外均有上升請求信號:電梯以向下的方向接近二樓的減速位置,判別二樓具有同向的請求信號,在二樓減速停止載客,然后繼續下降到一樓載客。當電梯在三樓時,梯內有到達一樓的下降請求信號,而二樓有上升請求信號:當電梯以向下的方向接近二樓的減速位置時,判別二樓具有反向的請求信號,系統將把二樓的上升請求保存到上升請求寄存上,
17、不在二樓作停泊繼續下降到一樓去載客,然后讀取上升請求寄存中先前二樓的上升請求,執行上升到二樓載客的操作。該動作完畢后,被保存的寄存器中的數據清除,以實現下一次隨機邏輯控制。(3)對電梯開門、關門、報警等內部信號處理的分析。當電梯接收到請求信號后,將以隨機邏輯控制的方式到達發出請求的樓層。開門使能信號促使電梯開門載客,同時驅動關門延時信號、超重檢測以及故障檢測。在電梯進行完關門倒數計時、超重排除以及故障排除后,關門使能信號將促使電梯關門進入預操作狀態。如果此前出現提前關門信號而且電梯也已經進行完超重排除和故障排除,電梯同樣關門進入預操作狀態。電梯在超重檢測時發現超重,關門中斷信號會促使電梯發出超
18、重警報并且進行開門操作以減少乘客,重新進入載客操作電梯在故障檢測時,發現電梯某部分出現故障,關門中斷信號會促使電梯發出故障報警,并進入開門操作的同時停止關門延時,作故障處理待機。2.程序流程根據VHDL語言的規則,程序必須由最基本的實體和結構體構成。實體對控制器的端口進行定義,結構體對各端口的行為進行描述。因此程序運行需經過以下流程: VHDL庫調用確立控制器的端口及相關的寄存器根據電梯運行規則,設計相關運行描述對電梯內外信號進行處理。具體流程圖如圖3.4所示。圖3.4 流程圖(二)程序設計1.端口設計本設計的端口包括:時鐘信號(clk)超載信號(full)、關門中斷信號(deng)、提前關門
19、信號(quick)、清除報警信號(clr)一樓電梯外人的上升請求信號(c_u1)、二樓電梯外人的上升請求信號(c_u2)二樓電梯外人的下降請求信號(c_d2)、三樓電梯外人的下降請求信號(c_d3)電梯內人請求到達一樓信號(d1)、電梯內人請求到達二樓信號(d2)、電梯內人請求到達三樓信號(d3)、到達一樓信號(g1)、到達二樓信號(g2)、到達三樓信號(g3)電梯門控制信號(door)電梯所在樓層顯示(led)電梯外人上升請求信號顯示(led_c_u)、電梯外人下降請求信號顯示(led_c_d)電梯內請求信號顯示(led_d)看門狗報警信號(wahaha)、超載警告信號(alarm)電梯運動
20、方向顯示(ud)電機向上控制信號(up)、電機向下控制信號(down)。2.寄存器設計本設計的寄存器包括:電梯內人請求到達一樓信號寄存(d11)、電梯內人請求到達二樓信號寄存(d22)、 電梯內人請求到達三樓信號寄存(d33)一樓電梯外人上升請求信號寄存(c_u11)、二樓電梯外人上升請求信號寄存(c_u22)二樓電梯外人下降請求信號寄存(c_d22)、三樓電梯外人下降請求信號寄存(c_d33)分頻信號(q)關門延時計數器(q1)、看門狗計數器(q2)電梯內請求信號寄存器(dd)電梯外上升請求信號寄存器(cc_u)、電梯外下降請求信號寄存器(cc_d)電梯請求信號寄存器(dd_cc)開門使能信
21、號(opendoor)電梯運動方向信號寄存器(updown)預備上升操作使能(en_up)、預備下降預操作使能(en_dw)。3.模塊設計本程序由調用VHDL庫模塊、實體設計模塊和結構體設計模塊組成。在結構體模塊中又內嵌有進程執行單元。(1)調用VHDL庫通過library語句,本程序應用了VHDL庫中的“通用ieee庫”和“標準std庫”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;(2)entity實體設計模塊entity dian
22、ti is port ( clk : in std_logic; full,deng,quick,clr : in std_logic; c_u1,c_u2: in std_logic; c_d2,c_d3: in std_logic; d1,d2,d3: in std_logic; g1,g2,g3: in std_logic; door : out std_logic_vector(1 downto 0); led : out std_logic_vector(3 downto 0); led_c_u:out std_logic_vector(2 downto 0); led_c_d:ou
23、t std_logic_vector(2 downto 0); led_d : out std_logic_vector(2 downto 0); wahaha : out std_logic; ud,alarm : out std_logic; up,down : out std_logic ); end dianti;實體語句用關鍵詞entity開頭,本程序以dianti(電梯的漢語拼音)作為所要描述的實體名,在結束實體語句的時候使用end dianti。在entity語句的實體說明部分,用port附語描述實體對外界連接的端口(數目、方向和數據類型),實體dianti有25個接口,輸入模式
24、是clk/full/deng/quick/clr/c_u1/c_u2/c_d2/c_d3/d1/d2/d3/g1/g2/g3,其余都是輸出模式,其中door/led/led c_u/led c_d/led d是帶數組模式的輸出接口。(3)architecture結構化設計模塊和process進程執行單元dianti符號下的線路圖描述dianti網表,與線路圖對應的VHDL architecture就是結構體,實體dianti以結構化與行為化描述的結構體如下:architecture behav of dianti issignal d11,d22,d33:std_logic; signal c
25、_u11,c_u22:std_logic; signal c_d22,c_d33:std_logic; signal q:integer range 0 to 1; signal q1:integer range 0 to 6; signal q2:integer range 0 to 9; signal dd,cc_u,cc_d,dd_cc:std_logic_vector(2 downto 0); signal opendoor:std_logic; signal updown:std_logic; signal en_up,en_dw:std_logic; begin com:proce
26、ss(clk)end behav;本模塊以關鍵字architecture做結構體的開頭,描述dianti實體的結構體behav。Architectecture和begin之間是結構體說明區,詳細定義了各種信號端的模式和取值范圍begin和end之間是結構體語句區,在此將嵌入process進程語句去對實體行為作出說明。com:process(clk)beginif clk'event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0'; elsif full=&
27、#39;1' then alarm<='1'; q1<=0; if q1>=3 then door<="10"; else door<="00";end if; dd<=d33&d22&d11; cc_u<='0'&c_u22&c_u11; cc_d<=c_d33&c_d22&'0'; dd_cc<=dd or cc_u or cc_d; end if; ud<=updown; led_d&l
28、t;=dd; led_c_u<=cc_u; led_c_d<=cc_d; end if; end process; 關鍵字process后面括號中的信號為時鐘信號,它列舉可激活進程語句的信號,唯有這些信號上的事件能引起進程語句執行。關鍵字begin把進程語句分為進程說明和進程語句兩部分。進程說明在時鐘信號和begin之間,說明局部變量或某些僅在進程內部用的內容。進程語句部分在begin和end process之間,進程內的所有語句都是按順序一個接一個執行的。3. 具體語句設計說明(1)賦值符號上文已說明了構成VHDL程序的兩大部分實體和結構體的相關語句。在這些語句里,賦值語句占了相
29、當一部分。在VHDL語言里,賦值符號一般都是“<=”符號,具體形式如下:beginif clk'event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0'; elsif full='1' then alarm<='1'; q1<=0; if q1>=3 then door<="10"; else door<="00"; end if; VHDL語言也
30、具有與一般編程語言相同的一些語言邏輯結構,如上述中的“ifthen;elsifthen;”等。這是VHDL中的順序語句,與我們常見的C語言中if作為條件語句不同。本程序只使用到上述的語言結構,相對簡易。(2)電梯信號定義在實體模塊中,對電梯的主要信號都一一作出了定義,具體說明如下:port ( clk : in std_logic; 時鐘信號full,deng,quick,clr : in std_logic; 超載、關門中斷、提前關門清除報警信號 c_u1,c_u2: in std_logic; 電梯外人的上升請求信號 c_d2,c_d3: in std_logic; 電梯外人的下降請求信號
31、 d1,d2,d3 : in std_logic; 電梯內人的請求信號 g1,g2,g3 : 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(2 downto 0); 電梯外人上升請求信號顯示 led_c_d:out std_logic_vector(2 downto 0); 電梯外人下降請求信號顯示 led_d : out std_logic_ve
32、ctor(2 downto 0); 電梯內請求信號顯示 wahaha : out std_logic; 看門狗報警信號 ud,alarm : out std_logic; 電梯運動方向顯示,超載警告信號up,down : out std_logic ); 電機控制信號和電梯運動在結構體中對電梯的運行行為作出描述,其中以電梯處于二樓的情況相對復雜,對此作如下說明:elsif g2='1' then led<="0010010"; 電梯到達2樓,數碼管顯示2if updown='1' then 電梯前一運動狀態位上升 if d22='
33、;1' or c_u22='1' then d22<='0'; c_u22<='0'; opendoor<='1'; 有當前層的請求,則電梯進入開門狀態 elsif dd_cc>"011" then en_up<='1'; opendoor<='0'; 有上升請求,則電梯進入預備上升狀態 elsif dd_cc<"010" then en_dw<='1'; opendoor<=
34、9;0'; 有下降請求,則電梯進入預備下降狀態 end if; 電梯前一運動狀態為下降 elsif d22='1' or c_d22='1' then d22<='0'; c_d22<='0';opendoor<='1';有當前層的請求,則電梯進入開門狀態elsif dd_cc<"010" then en_dw<='1'; opendoor<='0'; 有下降請求,則電梯進入預備下降狀態 elsif dd_cc>&
35、quot;011" then en_up<='1'; opendoor<='0'; 有上升請求,則電梯進入預備上升狀態 end if;在上述語句中的“elsif g2='1' then led<="0010010"; ”,led的賦值是根據七段式數字顯示器的發光段排列的,可見發光段是a、b、d、e、g段時,形成一個2字。所以在一樓時led賦值為“1001111”,三樓時led賦值為“0000110”,如圖3.5所示。圖3.5 七段數字顯示器(3)請求信號處理在進程執行單元里,對電梯在樓層時的操作情況
36、作出了描述,例如:開門、關門延時、超載報警、故障報警以及電梯內的請求信號處理,具體說明如下:com:process(clk)beginif clk'event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0'; 清除故障報警 elsif full='1' then alarm<='1'; q1<=0; 超載報警if q1>=3 then door<="10"; else door&l
37、t;="00"; end if; elsif q=1 then q<=0;alarm<='0'; if q2=3 then wahaha<='1'; 故障報警 elseif opendoor='1' then door<="10";q1<=0;q2<=0;up<='0';down<='0'; 開門操作elsif en_up='1' then 上升預操作 if deng='1' then door&
38、lt;="10";q1<=0;q2<=q2+1; 關門中斷elsif quick='1' then q1<=3; 提前關門elsif q1=6 then door<="00";updown<='1';up<='1'; 關門完畢,電梯進入上升狀態elsif q1>=3 then door<="01";q1<=q1+1; 電梯進入關門狀態else q1<=q1+1;door<="00"; 電梯進入等待狀態e
39、nd 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<='1'; elsif q1>=3 then door<="01";q1<=q1+1; else q1&
40、lt;=q1+1;door<="00"; end if;end if; ···else q<=1;alarm<='0'; 清除超載報警if d1='1' then d11<=d1; 對電梯內人請求信號進行檢測和寄存 elsif d2='1' then d22<=d2;elsif d3='1' then d33<=d3; end if;if c_u1='1' then c_u11<=c_u1; 對電梯外人上升請求信號進行檢測和
41、寄存elsif c_u2='1' then c_u22<=c_u2; end if; if c_d2='1' then c_d22<=c_d2; 對電梯外人下降請求信號進行檢測和寄存elsif c_d3='1' then c_d33<=c_d3; end if; dd<=d33&d22&d11; 電梯內人請求信號并置 cc_u<='0'&c_u22&c_u11; 電梯外人上升請求信號并置 cc_d<=c_d33&c_d22&'0';
42、 電梯外人下降請求信號并置 dd_cc<=dd or cc_u or cc_d; 電梯內、外人請求信號進行綜合 end if; ud<=updown; 電梯運動狀態顯示 led_d<=dd; 電梯內人請求信號顯示led_c_u<=cc_u; 電梯外人上升請求信號顯示led_c_d<=cc_d; 電梯外人下降請求信號顯示end if; 四、程序調試1.建立工作庫目錄打開MAX+plusII軟件,其初始界面如圖4.1所示。圖4.1 MAX+plusII軟件初始界面2. 新建文本編輯文件在工具欄中選擇“新建”按鈕。在選擇輸入路徑時,選擇“Text Editor File
43、”以進行文本輸入,如圖4.2所示。圖4.2 輸入路徑選擇為文本輸入3.文本輸入在文本輸入界面內進行程序輸入,如圖4.3所示。圖4.3 程序輸入界面4.程序保存輸入完畢后,對程序進行保存。文件名和實體定義的符號必須保持一致,即文件名為dianti。因為是使用VHDL語言,所以文件后綴名須改成VHD,如圖4.4所示。由于文件后綴名都默認為TDF,在初次調試時并沒有注意這個問題,結果在編譯的時候老是出錯。圖4.4 文本輸入保存界面5. 設置頂層文件在編譯前,需要把文件設置為頂層文件,或稱工程文件Project。選擇菜單“File”“Set Project to Current File”,當前的文件
44、即被指定。如圖4.5所示。圖4.5 設置頂層文件6. 程序編譯在“MAX+plusII”下拉按鈕里選擇”Compiler”,對程序進行編譯。此時,MAX+plusII軟件會對程序進行糾錯等處理。當程序被確認無誤以后會出現圖4.6的界面。圖4.6編譯完成 在編譯完成以后,程序的調試結束。五、程序仿真(一)波形輸入建立1. 新建波形編輯器編譯完全通過后,新建波形編輯器進行設計仿真。通過“新建”按鈕,選擇“Waveform Editor file”,如圖5.1所示。圖5.1 新建波形編輯器2.保存文件新建波形編輯器后,對文件進行保存。同樣是使用相同的文件名dianti,后綴則改為scf。3. 添加節
45、點信號在編輯器的Name欄點擊鼠標右鍵,選擇“Enter Nodes from SNF”選擇添加需要觀察的節點信號。如圖5.2所示。圖5.2 添加節點信號4. 對輸入信號賦值通過編輯器左側的一些快捷按鈕對所加節點中的輸入信號進行相關的賦值后,就可對程序進行仿真,觀察輸出信號,得出結論。如對時鐘信號clk賦周期為25ms的周期信號,如圖5.3所示。圖5.3 對clk信號賦值圖5.時間調整在進行仿真前,還需對仿真截止時間和最小單位時間進行一下調整。在“File”欄對截止時間“End Time”設置為“10s”,在“Options”欄的“Grid Size”設置為“20ns”。如圖5.4和圖5.5所
46、示。圖5.4 截止時間設置圖 圖5.5 單位時間設置(二)電梯運行情況仿真本設計的運行情況比較復雜,本文主要介紹以下兩種情況。1.電梯在不同時段接收到請求信號。電梯處于一樓,接收到三樓的梯外下降請求(c_d3),于是電梯運行到三樓,中途經過二樓時不作停頓。到達三樓載客后,電梯內又接收到下降到一樓的梯內請求(d1),于是電梯返回一樓待機。仿真情況如圖5.6所示。觀察以下信號:up、ud、down、led、led_c_d、led_d。圖5.6 電梯在不同時段接收到請求信號說明:(1)up:在電梯接收到c_d3后,賦值為1,表示電梯受控制處于上升過程,當電梯運行到三樓以后,賦值變為0。(2)ud:從
47、電梯接收c_d3到電梯接收d1為止,賦值為1,表示電梯此時向上運行,其余時間段都為0,表示電梯此時向下運行或者待機。(3)down:在電梯接收到d1后,賦值為1,表示電梯受控制處于下降過程,當電梯運行到一樓以后,賦值變為0。(4)led:電梯每運行到達一層時,都會有不同的信號輸出: 1001111、0010010、0000110。這些就是樓層指示,依次代表1、2、3。(5)led_c_d:在電梯接收到c_d3后,賦值樓層編碼為100,表示梯外有人請求下降,電梯運行到達請求發出的樓層(三樓)后,電梯賦值變為000,表示下降請求得到滿足。(6)led_d:在電梯接收到d1后,賦值為001,表示梯內
48、請求到達樓層編碼為001,即一樓電梯運行到達請求目的樓層一樓后,電梯賦值變為000,表示請求樓層得到滿足或在待機。2.電梯在同一時間段接收不同的請求信號。電梯停在一樓,在同一時間段里接受到三個請求信號:一樓梯內上升到三樓的請求(d3)、二樓的梯外上升請求(c_u2)和三樓的梯外下降請求(c_d3)。電梯到達二樓,載客繼續上升。電梯上升到三樓時,響應請求c_d3,開門載客進入預備下降狀態。由于二樓并沒有請求,所以電梯不作停頓地下降到一樓。電梯執行完所有請求時電梯將停在一樓待機。仿真情況如圖5.7所示。觀察以下信號:up、ud、down、led_c_u、led_c_d、led_d。圖5.7電梯在同
49、一時間段接收不同的請求信號說明:(1)up:在電梯接收到請求信號后,賦值為1,表示電梯受控制處于上升過程,當電梯運行到二樓以后,賦值短暫變0,然后又變為1,表示電梯在二樓載客完畢后又進入上升過程,到達三樓后,賦值為0。(2)ud:從電梯接收請求信號后到電梯運行到三樓為止,賦值為1,表示電梯此時向上運行,其余時段都為0,表示電梯此時向下運行或者待機。(3)down:在電梯到達三樓后,賦值為1,表示電梯受控制處于下降過程,當電梯運行到一樓以后,賦值變為0。(4)Led_c_u:在電梯接收到c_u2后,賦值樓層編碼為010(二樓),表示二樓梯外有人請求上升,電梯運行到達請求發出的樓層(二樓)后,電梯
50、賦值變為000,表示上升請求得到滿足或在待機。(5)led_c_d:在電梯接收到c_d3后,賦值樓層編碼為100,表示梯外有人請求下降,電梯運行到達請求發出的樓層(三樓)后,電梯賦值變為000,表示下降請求得到滿足或在待機。(6)led_d:在電梯接收到d3后,賦值為100,表示梯內請求到達樓層編碼為100(三樓),電梯運行到達請求目的樓層(三樓)后,電梯賦值變為000,表示請求樓層得到滿足或在待機。(三)電梯功能仿真電梯的功能包括:提前關門、看門狗報警、超載報警、故障報警。設電梯到達三樓時,響應請求(c_d3),開門載客進入預備下降狀態。電梯在預備下降狀態下,電梯如果超載(full='
51、;1'),發出超載警報;超載信號消失(full='0'),電梯重新進入預備下降狀態。電梯接受到deng、c_d3和d3電梯重新進入預備下降狀態,并且c_d3和d3信號都可以對q2(q2<3時)進行清零處理。當連續關門中斷的次數超過3次時,不認為是出自乘客的需要,而認為是故障,并報警,等技術員處理完故障時,用clr信號才可以清除報警。仿真情況如下圖5.8所示。觀察以下信號:wahaha、alarm、quick。圖5.8 功能仿真圖說明:(1)wahaha:當關門中斷信號deng初次賦值為1時,本信號就賦值為1,一直到故障清除,信號clr賦值為1時才變為0。這表示當電
52、梯首次關門失敗后(即deng首次賦值為1時),電梯便一直處于故障報警狀態下,直到技術員處理完故障后,用clr才可以清除其報警。(2)alarm:跟隨超重信號full的賦值變化而變化。當電梯超重時,超重信號就進行報警。(3)quick:電梯接受到提前關門信號quick,電梯跳過關門等待時間。q1信號從1 跳到3,進入關門狀態。總結通過本次畢業設計,為我以后在這方面的深入學習打下基礎,讓我更深刻的體會到“學以致用”的道理。同時也提高了我解決實際問題的能力,培養自我創新意識。在設計中我必須首先熟悉和掌握MAX PLUS的設計流程和工作原理,PLD技術及用VHDL語言設計程序的能力和對于三層電梯的控制
53、源程序要進行深入的了解。通過這次畢業設計,無論從選題到定稿,從理論到實踐都使我學到了很多東西,它不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。同時也明白了理論與實踐相結合的重要性,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。附錄一 三層電梯控制的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity d
54、ianti is port ( clk : in std_logic; full,deng,quick,clr : in std_logic; c_u1,c_u2: in std_logic; c_d2,c_d3: in std_logic; d1,d2,d3: in std_logic; g1,g2,g3: 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(2 downto 0); led_c_d:out std_logic_vector(2 downto 0); led_d : out std_logic_vector(2 downto 0); wahaha : out std_logic; ud,alarm : out std_logic; up,down : out std_logic ); end dia
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025飲料分銷代理合同
- 2025銷售勞動合同模板
- 2025公司服裝供貨合同
- 2025維修合同 設備維修合同
- 2025辦公室租賃合同附加協議
- 瓷磚銷售類勞動合同協議
- 班干部任職合同協議
- 病人護理中介合同協議
- 電力作業人員合同協議
- 皮卡配件供貨合同協議
- 非洲自然災害
- 2023詩詞大會知識競賽200題題庫(含答案)
- TL226 大眾試驗測試標準
- 2023借款協議書Word模板
- 生產設備拆除工程施工方案
- (完整版)年產30萬噸合成氨合成工段工藝設計畢業論文
- 無障礙公共設施建設的問題及其對策研究
- 臨床醫學(專科)畢業綜合考復習題
- 石家莊市存量房買賣合同
- 思想道德與法治2023版教學設計第六章 學習法治思想 提升法治素養
- 自來水廠調試方案
評論
0/150
提交評論