一種可擴展的三層電梯控制器的實現(xiàn)
引言
本文引用地址:http://m.butianyuan.cn/article/161529.htm 本文采用VHDL語言來設(shè)計實用三層電梯控制器,其代碼具有良好的可讀性和易理解性,源程序經(jīng)A1tera公司的MAX+plus II軟件仿真,目標(biāo)器件選用CPLD器件。通過對三層電梯控制器的設(shè)計,可以發(fā)現(xiàn)本設(shè)計有一定的擴展性,而且可以作為更多層電梯控制器實現(xiàn)的基礎(chǔ)。
如果要實現(xiàn)n層電梯的控制,首先在端口的地方就要加入所有的按鍵,而指示燈只要把向量中的3改成n就可以了。同時需要在按鍵控制進(jìn)程里加入其他按鍵觸發(fā)指示燈的語句。在電梯的升降狀態(tài)將3改成n,在電梯的開門狀態(tài)中將2改成n一1,在關(guān)門狀態(tài),將position=3改成position=n,關(guān)鍵是修改position=2的部分,如果按照每層羅列,將十分煩瑣,所以得尋求各層判斷條件的共性,解決方法之一就是,新建一個全局向量one為std—logic—veoter(n downto 3)應(yīng)改寫成0,然后和stoplight與fuplight向量比較,如果有更高層次的請求,那么stoplight或fuplight向量,如果stoplight和fuplight向量都小于one向量,表示沒有更高層次的內(nèi)部上升請求,此時將fdnlight向量和one向量比較,如果大于,則表示高層有下降要求,電梯得上升。如果沒有任何請求信號,則電梯停止,否則電梯下降。如此就可以大大簡化程序,但是要注意的是one向量必須實時更新,以作為判斷依據(jù),可以另外寫一個進(jìn)程,用buttonclk來觸發(fā)。
1 三層電梯控制器將實現(xiàn)的功能
(1)每層電梯入口處設(shè)有上下請求開關(guān),電梯內(nèi)設(shè)有顧客到達(dá)層次的停站請求開關(guān)。
(2)設(shè)有電梯入口處位置指示裝置及電梯運行模式(上升或下降)指示裝置。
(3)電梯每秒升(降)一層樓。
(4)電梯到達(dá)有停站請求的樓層,經(jīng)過1秒電梯門打開,開門指示燈亮,開門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)電梯處于下降模式時則與上升模式相反。
(7)電梯初始狀態(tài)為一層開門狀態(tài)。
2 設(shè)計方案和論證
2.1 控制器的設(shè)計方案
控制器的功能模塊如圖1所示,包括主控制器、分控制器、樓層選擇器、狀態(tài)顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇所要到達(dá)的樓層,通過主控制器的處理,電梯開始運行,狀態(tài)顯示器顯示電梯的運行狀態(tài),電梯所在樓層數(shù)通過譯碼器譯碼從而在樓層顯示器中顯示。分控制器把有效的請求傳給主控制器進(jìn)行處理,同時顯示電梯的運行狀態(tài)和電梯所在樓層數(shù)。由于分控制器相對簡單很多,所以主控制器是核心部分。
2.2 三層電梯控制器的設(shè)計思路
電梯控制器采用狀態(tài)機來實現(xiàn),思路比較清晰??梢詫㈦娞莸却拿棵腌娨约伴_門、關(guān)門都看成一個獨立的狀態(tài)。由于電梯又是每秒上升或下降一層,所以就可以通過一個統(tǒng)一的1秒為周期的時鐘來觸發(fā)狀態(tài)機。根據(jù)電梯的實際工作情況,可以把狀態(tài)機設(shè)置10個狀態(tài),分別是“電梯停留在第1層”、“開門”、“關(guān)門”、“開門等待第1秒”、“開門等待第2秒”、“開門等待第3秒”、“開門等待第4秒”、“上升”、“下降”和“停止?fàn)顟B(tài)”。各個狀態(tài)之間的轉(zhuǎn)換條件可由上面的設(shè)計要求所決定。
3 三層電梯控制器的綜合設(shè)計
3.1 三層電梯控制器的實體設(shè)計
首先考慮輸入端口,一個異步復(fù)位端口reset,用于在系統(tǒng)不正常時回到初始狀態(tài);在電梯外部,必須有升降請求端口,一層是最低層,不需要有下降請求,三層是最高層,不需要有上升請求,二層則上升、下降請求端口都有;在電梯的內(nèi)部,應(yīng)該設(shè)有各層停留的請求端口:一個電梯時鐘輸入端口,該輸入時鐘以1秒為周期,用于驅(qū)動電梯的升降及開門關(guān)門等動作;另有一個按鍵時鐘輸入端口,時鐘頻率比電梯時鐘高。
其次是輸出端口,有升降請求信號以后,就得有一個輸出端口來指示請求是否被響應(yīng),有請求信號以后,該輸出端口輸出邏輯‘l’。被響應(yīng)以后則恢復(fù)邏輯‘O’;同樣,在電梯內(nèi)部也應(yīng)該有這樣的輸出端口來顯示各層停留是否被響應(yīng);在電梯外部,需要一個端口來指示電梯現(xiàn)在所處的位置;電梯開門關(guān)門的狀態(tài)也能用一個輸出端口來指示;為了觀察電梯的運行是否正確,可以設(shè)置一個輸出端口來指示電梯的升降狀態(tài)。
評論