【正文】
en=v_en。 if (t2=5)then v_en:=39。 開(kāi)門操作 end if。flag:=39。139。 then if (t1=0 and flag=39。)then if((en_up or en_dw or opendoor)=39。 process(clk,en_up,en_dw,opendoor,stop,overload) variable v_en : std_logic。 when others = null。 elsif o_i_all1000 then en_up=39。g=g4。 o_d4_r:=39。 end if。 8 elsif o_i_all0111 then en_up=39。 g=g3。139。039。139。039。 elsif o_i_all0111 then en_up=39。 g=g3。o_d3_r:=39。 or o_u3_r=39。 g=g3。039。opendoor=39。039。039。 end if。g=g3。039。opendoor=39。 o_u2_r:=39。 then 電梯前一運(yùn)動(dòng)狀態(tài)位上升 if in2_r=39。039。en_dw=39。039。139。 and en=39。o_d2_ramp。 電梯內(nèi) 乘客 請(qǐng)求信號(hào)并置 o_u_all:=39。 then o_d2_r:=39。end if。139。139。 if in4=39。 then in2_r:=39。039。039。039。 電梯內(nèi)外請(qǐng)求信號(hào)寄存器 begin if clk39。 預(yù)備上升、預(yù)備下降預(yù)操作使能信號(hào) type state is(g1,g2,g3,g4)。 電梯外 乘客 的下降請(qǐng)求信號(hào) in1,in2,in3,in4 : in std_logic。 最后修改日期: 。 圖 3 請(qǐng)求信號(hào)操作電路圖 RAM 的 對(duì) 應(yīng) 位 與 與 外部某層請(qǐng)求信號(hào) 內(nèi)部某層請(qǐng)求信號(hào) 響應(yīng)信號(hào) ( CLR) 4 顯示模塊 系統(tǒng)的顯示輸出包括樓層顯示及關(guān)門延時(shí)顯示(若需要,還可以增加請(qǐng)求信號(hào)顯示和電梯運(yùn)動(dòng)方向指示)。為了增強(qiáng)系統(tǒng)的抗干擾能力,提高電梯工作的可靠性,可以采用多次檢測(cè)的方法,即對(duì)一個(gè)信號(hào)連續(xù)進(jìn)行多次采樣,以保證信號(hào)的可信度。 時(shí)鐘信號(hào)(頻率為 1Hz) o_u1,o_u2,o_u3: in std_logic。外部數(shù)據(jù)采集模塊負(fù)責(zé)采集用戶通過(guò)按鍵輸入的請(qǐng)求信號(hào)、光敏傳感器采集的到達(dá)樓層信號(hào)和壓力傳感器采集的超載信號(hào);信號(hào)存貯模塊負(fù)責(zé)存儲(chǔ)電梯內(nèi)外及各層用戶的請(qǐng)求 信號(hào)和故障、超載信號(hào);中央處理模塊處理電梯運(yùn)行中的各種狀態(tài) ,在電梯運(yùn)行過(guò)程中 ,對(duì)信號(hào)存儲(chǔ)模塊的用戶請(qǐng)求數(shù)據(jù)進(jìn)行比對(duì) , 從而確定電梯的運(yùn)行狀態(tài);顯示模塊主要顯示電梯所在樓層、電梯運(yùn)行方向和關(guān)門延時(shí)等;控制輸出主要有電梯的升、降、停和門的開(kāi)、關(guān)、停以及報(bào)警等信號(hào)。結(jié)果表明,該電梯控制器按進(jìn)循方向優(yōu)先的原則可為四個(gè)樓層提供載客服務(wù),并具有電梯運(yùn)行情況指示功能。 電梯控制 設(shè)計(jì)要求 (1) 使用 VHDL語(yǔ)言與狀態(tài)機(jī)設(shè)計(jì)思想設(shè)計(jì)一個(gè) 4層建筑的電梯控制器; (2) 每層電梯入口設(shè)有上下請(qǐng)求開(kāi)關(guān)及電梯內(nèi)設(shè)有到達(dá)樓層請(qǐng)求開(kāi)關(guān); (3) 電梯每 5秒鐘升 (降 )一層; (4) 電梯到達(dá)有請(qǐng)求的樓層自動(dòng)開(kāi)門并定時(shí)關(guān)門和緊急狀態(tài)緊急停止運(yùn)行的功能; (5) 能記憶電梯內(nèi)外所有請(qǐng)求信號(hào)并按照電梯運(yùn)行規(guī)則按順序響應(yīng) , 每個(gè)請(qǐng)求信號(hào)留至執(zhí)行完后消除; (6) 電梯運(yùn)行規(guī)則 ——— 當(dāng)電梯處于上升模式時(shí) , 只響應(yīng)比電梯所在的位置高的上樓請(qǐng)求信號(hào) , 由下而上逐個(gè)執(zhí)行 , 直到最后一個(gè)上樓請(qǐng)求執(zhí)行完畢,如果高層有下樓請(qǐng)求,則直接升到有下樓請(qǐng)求的最高樓層 , 然后進(jìn)入下降模式,當(dāng)電梯處于下降模式時(shí),則與上升模式相反。系統(tǒng)的狀態(tài)流程圖如圖 2所示。 開(kāi)關(guān)門延時(shí)顯示 stop,overload : in std_logic 緊急停止運(yùn)行及超載信號(hào) )。當(dāng)電梯處于下降模式時(shí)則與上升模式相反。只要稍微改變程序就可以實(shí)現(xiàn)更多層的電梯控制,便于擴(kuò)展,靈活性好,需用批量足夠大時(shí)容易做成專用集成電路芯片,設(shè)計(jì)成本低具有較好的應(yīng)用前景。 entity dianti is port ( clk : in std_logic。 architecture behav of dianti is signal opendoor:std_logic。 電梯內(nèi) 乘客 請(qǐng)求信號(hào)寄存信號(hào) variable o_u1_r,o_u2_r,o_u3_r:std_logic。then in1_r:=39。 o_u1_r:=39。o_d3_r:=39。 end if。 then in3_r:=39。 if o_u1=39。139。139。end if。in3_ramp。o_u1_r。 if clk39。039。 o_u1_r:=39。 g=g1。 elsif o_i_all0001 then 有上升請(qǐng)求,則電梯進(jìn)入預(yù)備上升狀態(tài) en_up=39。 when g2 = led=0010。139。039