電梯控制器-Verilog語言_第1頁
電梯控制器-Verilog語言_第2頁
電梯控制器-Verilog語言_第3頁
電梯控制器-Verilog語言_第4頁
電梯控制器-Verilog語言_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)字系統(tǒng)設計大作業(yè)題目:電梯控制器姓名:溫慶學號:031241214班級:0312412指導老師:黃雙林目錄摘要 2正文 31設計目的及要求 32設計原理 32.1設計實現(xiàn)原理 32.2項目分塊及其實現(xiàn)方案 52.3電梯控制器的流程圖 63設計內(nèi)容 73.1基本狀態(tài)設計 73.2模塊設計 83.3波形仿真 9總結(jié)與致謝 13參考文獻 14附錄 15摘要電梯作為垂直方向的交通工具,在高層建筑和公共場所已成為不可或缺的設備。中國是全球最大的電梯市場,也具有最強的電梯生產(chǎn)能力,但由于缺乏自主知識產(chǎn)權和核心技術,自主品牌占市場的份額很少。因此要加大對電梯技術的創(chuàng)新和發(fā)展,提升電梯的性能,就需要引進更好的技術,電梯控制器就是很好的裝置,大力開發(fā)控制器是很必要的。電梯的微機化控制主要有以下幾種形式:PLC控制;單片機控制;單板機控制;單微機控制;多微機控制;人工智能控制。本次課程設計采用了EDA技術進行操作EDA技術打破了軟件和硬件間的壁壘,使計算機的軟件技術與硬件實現(xiàn)、設計效率與產(chǎn)品性能合二為一,它代表了電子設計技術和應用技術的發(fā)展方向。本設計采用VerilogHDL語言的編程技術,源程序Altera公司的QuartusII軟件仿真。關鍵字:EDA技術;VerilogHDL語言;QuartusII軟件正文1設計目的及要求1、進一步鞏固理論知識,培養(yǎng)所學理論知識的在實際中的應用能力;掌握EDA設計的一般方法;熟悉一種EDA軟件,掌握一般EDA系統(tǒng)的調(diào)試方法;利用EDA軟件設計一個電子技術綜合問題,培養(yǎng)VerilogHDL編程、書寫技術報告的能力。為以后進行工程實際問題的研究打下設計基礎。2、設計一個6層電梯控制器電路,用數(shù)碼管顯示電梯所在樓層號,電梯初始狀態(tài)為第一樓層;每樓層電梯外都有上、下樓請求開關,電梯內(nèi)設有乘客到達樓層的請求開關、電梯所處樓層、上升模式及下降模式的指示;電梯每2秒升降一層,到達有停站請求的樓層后,經(jīng)4秒電梯門打開,開門指示燈亮,開門4秒后,指示燈滅,關門,關門時間3秒,電梯繼續(xù)運行。可以通過快速關門和關門中斷信號控制;能記憶電梯內(nèi)外的請求信號,當電梯處于上升模式時,只響應比電梯所在位置高的樓請求信號,直到最后一個上樓請求執(zhí)行完畢,再進入下降模式。2設計原理2.1設計實現(xiàn)原理根據(jù)系統(tǒng)設計要求,并考慮到系統(tǒng)的可檢驗性,整個系統(tǒng)的輸入輸出接口設計如圖1所示:系統(tǒng)工作用2Hz基準時鐘信號CLKIN,樓層上升請求鍵UPIN,樓層下降請求鍵DOWNIN,樓層選擇鍵入鍵ST_CH,提前關門輸入鍵CLOSE,延遲關門輸入鍵DELAY,電梯運行的開關鍵RUN_STOP,電梯運行或停止指示鍵LAMP,電梯運行或等待時間指示鍵RUN_WAIT,電梯所在樓層指示數(shù)碼管ST_OUT,樓層選擇指示數(shù)碼管DIRECT。DTKZQCLKINDTKZQCLKINLAMPUPINDOWNINST_CH[1]RU_WAITCLOSEST_OUTDELAYDIRECTRUN_STOP圖1.電梯控制器DTKZQ的輸入輸出接口圖各輸入端口的功能如下:CLKIN:基準時鐘信號,為系統(tǒng)提供2Hz的時鐘脈沖,上升沿有效;UPIN:電梯上升請求鍵。由用戶向電梯控制器發(fā)出上升請求。高電平有效;DOWNIN:電梯下降請求鍵,由用戶向電梯控制器發(fā)出下降請求。高電平有效;ST_CH[2..0]:樓層選擇鍵入鍵,結(jié)合DIRECT完成樓層選擇的鍵入,高電平有效;CLOSE:提前關門輸入鍵??蓪崿F(xiàn)無等待時間的提前關門操作,高電平有效;DELAY: 延遲關門輸入鍵??蓪崿F(xiàn)有等待時間的延遲關門操作,高電平有效;RUN_STOP:電梯運行或停止開關鍵??蓪崿F(xiàn)由管理員控制電梯的運行或停止,高電平有效。一下為輸出端口:LAMP:電梯運行或等待指示鍵,指示電梯的運行或等待狀況。高電平有效;RUN_WAIT:電梯運行或等待時間指示鍵,指示電梯運行狀況或等待時間的長短,高電平有效;ST_OUT:電梯所在樓層指示數(shù)碼管,只是電梯當前所在的樓層數(shù)。即1~6層,高電平有效;DIRECT:樓層選擇指示數(shù)碼管,指示用戶所要選擇的樓層數(shù),高電平有效。2.2項目分塊及其實現(xiàn)方案電梯的控制狀態(tài)包括運行狀態(tài)﹑停止狀態(tài)及等待狀態(tài),其中運行狀態(tài)又包含向上狀態(tài)和向下狀態(tài)。主要動作有開、關門,乘客可通過鍵入開、關門按鍵,呼喚按鍵,指定樓層按鈕等來控制電梯的行與停。據(jù)此,整個電梯控制器DTLZQ應包括如下幾個組成部分:①時序輸出及樓選計數(shù)器;②電梯服務請求處理器;③電梯升降控制器;④上升及下降寄存器;⑤電梯次態(tài)生成器。該電梯控制器設計的關鍵是確定上升及下降寄存器的置位與復位。整個系統(tǒng)的內(nèi)部組成結(jié)構(gòu)圖2所示。電梯服務請求處理器電梯服務請求處理器時序輸出及樓選計數(shù)器(DIR)DRECTCLKINUOINDOWNINST_CH電梯升降控制器(LIFTOR)DELAY電梯次態(tài)生成器(LADD)上升請求寄存器(UR)下降請求寄存器(DR)CLOSERUN_STOPLAMPRUN_WAITST_OUT圖2.電梯控制器的內(nèi)部組成結(jié)構(gòu)圖時鐘CLK時鐘CLK請求信號輸入模塊樓層請求超載超載關門中斷提前關門清楚報警控制模塊輸出顯示模塊請求信號顯示運行狀態(tài)顯示所在樓層顯示門控制信號超載報警圖3.電梯控制器系統(tǒng)框圖2.3電梯控制器的流程圖初始化外部按鍵初始化外部按鍵否請求信號寄存器否請求信號寄存器是否有請求?樓層檢測電梯運行等待判定電梯運行方向是否有請求?樓層檢測電梯運行等待判定電梯運行方向是目標層與本層是否同層?狀態(tài)寄存器是目標層與本層是否同層?狀態(tài)寄存器是內(nèi)部軟件執(zhí)行機構(gòu)是內(nèi)部軟件執(zhí)行機構(gòu)否否外部硬件執(zhí)行機構(gòu)外部硬件執(zhí)行機構(gòu)圖4總流程圖是否目標層?否是否目標層?否是是電梯停止電梯停止開門開門關門關門否否是否停止運行?是否停止運行?是是停止停止圖5電梯控制主流程圖3設計內(nèi)容3.1基本狀態(tài)設計1、采用信號并置處理很多輸入信號的方式:always@(call_up_1orcall_up_2orcall_up_3orcall_up_4orcall_up_5)up_all={1'b0,call_up_5,call_up_4,call_up_3,call_up_2,call_up_1}; //將各下降請求信號實時地合并(1樓為底層,無下降請求,考慮到通用性,將第1位填零)always@(call_down_2orcall_down_3orcall_down_4orcall_down_5orcall_down_6)down_all={call_down_6,call_down_5,call_down_4,call_down_3,call_down_2,1'b0}; //將各停靠請求信號實時地合并always@(request_1orrequest_2orrequest_3orrequest_4orrequest_5orrequest_6)request_all={request_6,request_5,request_4,request_3,request_2,request_1};2、通過參數(shù)定義把信號并置的方法和有限狀態(tài)機聯(lián)系起來parameterWAIT=7'b0000001,UP=7'b0000010,DOWN=7'b0000100,UPSTOP=7'b0001000,DOWNSTOP=7'b0010000,OPENDOOR=7'b0100000,CLOSEDOOR=7'b1000000; //定義樓層的符號常量parameterFLOOR1=6'b000001,FLOOR2=6'b000010,FLOOR3=6'b000100,FLOOR4=6'b001000,FLOOR5=6'b010000,FLOOR6=6'b100000;parameterTRUE=1'b1,FALSE=1'b0;//定義門打開和門關閉的符號常量parameterOPEN=1'b1,CLOSED=1'b0;//定義電梯上升,下降和靜止的符號常量parameterUPFLAG=2'b01,DNFLAG=2'b10,STATIC=2'b00;3、采用了七個狀態(tài)實現(xiàn)了有限狀態(tài)機WAITWAITUPUPSTOPDOWNOPENDOORDOWNSTOPCLOSEDOOR圖6.狀態(tài)轉(zhuǎn)換圖黑線:WAITTOUPTOUPSTOPTOOPENDOORTOCLOSEDOORTOWAIT粉紅線:WAITTODOWNTODOWNSTOPTOOPENDOORTOCLOSEDOORTOWAIT3.2模塊設計1、電梯主控制器模塊elevator_controller:此段智能電梯控制器由三個重要部分組成的。(a)信號并置部分,完成對5路向上請求、5路向下請求、6路內(nèi)部請求的信號并置,化繁為簡。(b)三段式有限狀態(tài)機部分。在有請求的情況下,電梯控制器還要根據(jù)電梯的當前狀態(tài)和當前的樓層去判斷電梯的下一步該如何運作。(c)計數(shù)器部分。完成電梯的開門、關門的時間管理。圖7.電梯主控模塊2、分頻模塊frequence_div:這段分頻器完成對50Mhz的1分頻操作。采用傳統(tǒng)的“一半就翻轉(zhuǎn)”的計數(shù)技巧。圖8.分頻模塊3、數(shù)碼管譯碼模塊3.3波形仿真 1、當電梯處于初始狀態(tài)時,電梯在高層有向下的請求時:圖92、當電梯停在6樓處于等待狀態(tài)時,在1樓和2樓同時有向上的請求時:圖103、當電梯停在1樓處于等待狀態(tài)時,在6樓和5樓同時有向下的請求時:圖114、當電梯停在6樓時,有在5樓的向下的請求時,電梯應該先到五樓,電梯內(nèi)部請求到1樓,如果電梯在下降的過程中,有在2樓的向上的請求時,電梯應該先相應內(nèi)部請求,然后相應外部請求:圖125、電梯的強制運行按鈕forbid:圖13總結(jié)與致謝通過本次課程設計進一步熟悉QuartusII軟件的使用和操作方法,以及硬件實現(xiàn)時的下載方法與運行方法;對VerilogHDL語言的自頂向下設計方法有了進一步的認識,對其中的許多語句也有了新了解,掌握;對自己獨立思考和解決問題的能力也有了很大的鍛煉。短暫的課程設計就要結(jié)束了,在此,感謝所有在學習和生活中給予我關心和幫助的人們。首先我要感謝楊紅娟、王濤兩位位老師,本次課程設計設計的選題、課題調(diào)研與撰寫工作實在和老師的指導下完成的。和老師淵博的知識、嚴謹?shù)闹螌W態(tài)度、一絲不茍的工作作風、和不厭其煩的精神對我影響至深,使我受益終生,在此我向和老師表示崇高的敬意和衷心的感謝。其次,在我的課程設計期間,同課題的同學都給予了我熱情的幫助和無私的指導,在此向這些同學們表示衷心的感謝。最后,向所有曾給予我關心和幫助的老師和同學們再次致以最衷心的感謝,向參加報告評審、答辯的老師表示衷心的感謝和崇高的敬意。參考文獻[1]黃仁欣.EDA技術實用教程.北京:清華大學出版社,2006[2]潘松,黃繼業(yè).EDA技術與VHDL.北京:清華大學出版社,2009[3]江國強編著.EDA技術與應用(第三版)..北京:電子工業(yè)出版社,2010[4]夏宇聞編著.VerilogHDL數(shù)字系統(tǒng)設計教程..北京:北京航空航天大學出版社,2008[5]周祖成,程曉軍,馬卓釗編著.數(shù)字電路與系統(tǒng)教學實驗教程.北京:科學出版社,2010[6]周潤景,蘇良碧.基于QuartusII的數(shù)字系統(tǒng)VerilogHDL設計實例詳解.北京:電子工業(yè)出版社,2010[7](美國)SanirPalnitkar譯者:夏宇聞胡燕祥刁嵐松.VerilogHDL數(shù)字設計與綜合(第2版).北京:電子工業(yè)出版社,2009[8]云創(chuàng)工作室.VerilogHDL程序設計與實踐.北京:人民郵電出版社,2009[9]劉福奇,劉波.VerilogHDL應用程序設計實例精講.北京:電子工業(yè)出版社,2009[10]張延偉,楊金巖,葛愛學.veriloghdl程序設計實例詳解.北京:人民郵電出版社,2008附錄1、分頻模塊modulefrequence_div(cp_50M,cp_1);inputcp_50M;//板子提供的最高時鐘outputcp_1;//要求得到的秒脈沖reg[27:0]counter_1;//計數(shù)器regcp_1;//類型聲明always@(posedgecp_50M)beginif(counter_1==28'h17D7840)//50M的一半到了,秒脈沖翻轉(zhuǎn)begincp_1<=~cp_1;//翻轉(zhuǎn)counter_1<=28'h0000000;endelsecounter_1<=counter_1+1'b1;//否則加1endendmodule2、智能電梯主控制模塊moduleelevator_controller(//inputports:cp_50M,clk,reset,forbid, call_up_1,call_up_2,call_up_3, call_up_4,call_up_5, call_down_2,call_down_3,call_down_4, call_down_5,call_down_6, request_1,request_2,request_3, request_4,request_5,request_6, //outputports: out,LiftState,over_alarm,count_out,count );//outputports:output[6:0]out;//輸出樓層output[6:0]LiftState;//輸出電梯狀態(tài)outputover_alarm;//出錯output[6:0]count_out;//計數(shù)器輸出,便于我控制開關門的狀態(tài)顯示output[2:0]count;//計數(shù)器//inputports:inputcp_50M;inputclk,reset,call_up_1,call_up_2,call_up_3,call_up_4,call_up_5,call_down_2,call_down_3,call_down_4,call_down_5,call_down_6,request_1,request_2,request_3,request_4,request_5,request_6; inputforbid; //pos與Posout的關系:當前狀態(tài)一改變,pos立即作相應改變,而PosOut則是當前狀態(tài)在要變到下一狀態(tài)的瞬間 //,將PosOut作相應改變。如從WAIT切換到第一個UP時,pos立即加一,而PosOut則要等到第一個UP //即將切換到第二個UP時,才加一。//這個說的簡單一點,就是移位寄存器,便于對電梯狀態(tài)的實時的控制 wireover_alarm; wire[6:0]out; wire[6:0]count_out;reg[5:0]pos,PosOut;reg[2:0]count;//門開后要持續(xù)5個時鐘周期,用count來計數(shù)regDoorFlag;reg[1:0]UpDnFlag;reg[6:0]LiftState,NextState;//分別表示電梯的當前狀態(tài)和下一狀態(tài)wirereal_clk; //up_all,down_all,request_all分別用來合并向上請求的各信號,向下請求的各信號和??空埱蟮母餍盘?//以便判斷電梯在狀態(tài)間如何轉(zhuǎn)移時更簡潔 reg[5:0]up_all,down_all,request_all; //定義電梯7種狀態(tài)的符號常量 parameterWAIT=7'b0000001,UP=7'b0000010,DOWN=7'b0000100,UPSTOP=7'b0001000,DOWNSTOP=7'b0010000,OPENDOOR=7'b0100000,CLOSEDOOR=7'b1000000; //定義樓層的符號常量parameterFLOOR1=6'b000001,FLOOR2=6'b000010,FLOOR3=6'b000100,FLOOR4=6'b001000,FLOOR5=6'b010000,FLOOR6=6'b100000;parameterTRUE=1'b1,FALSE=1'b0; //定義門打開和門關閉的符號常量parameterOPEN=1'b1,CLOSED=1'b0; //定義電梯上升,下降和靜止的符號常量parameterUPFLAG=2'b01,DNFLAG=2'b10,STATIC=2'b00;assignreal_clk=(clk&(~forbid));//采用屏蔽時鐘的方法來實現(xiàn)“電梯強制禁止運行”。方法雖然違反了“同步電路最好//沒有時鐘門控”的要求,但是在此只要“負面影響”不是很大還是可以接受的。 //將各上升請求信號實時地合并(6樓為頂層,無上升請求,考慮到通用性,將第4位填零)always@(call_up_1orcall_up_2orcall_up_3orcall_up_4orcall_up_5)up_all={1'b0,call_up_5,call_up_4,call_up_3,call_up_2,call_up_1}; //將各下降請求信號實時地合并(1樓為底層,無下降請求,考慮到通用性,將第1位填零)always@(call_down_2orcall_down_3orcall_down_4orcall_down_5orcall_down_6)down_all={call_down_6,call_down_5,call_down_4,call_down_3,call_down_2,1'b0}; //將各停靠請求信號實時地合并always@(request_1orrequest_2orrequest_3orrequest_4orrequest_5orrequest_6)request_all={request_6,request_5,request_4,request_3,request_2,request_1};always@(posedgereal_clkorposedgereset)if(reset)count<=0;elseif((NextState==OPENDOOR)&&(count<5))//orelseif(NextState==OPENDOOR)count<=count+1;//如果計數(shù)不到5且下一狀態(tài)為OPENDOOR的話,繼續(xù)計數(shù)elsecount<=0;//清零,以備下次計數(shù)//displaywhichfloortheelevatorisdisplay_decodeh1(cp_50M,PosOut,out,over_alarm);display_decode_counth2(cp_50M,count,count_out);//finitestatemachineinthestyleofthreesegments,三段式 //1stStateShiftalwaysblock,sequentialstatetransition,有限狀態(tài)機第一段always@(posedgereal_clkorposedgereset)if(reset)beginLiftState<=WAIT;endelseLiftState<=NextState; //2ndStateShiftalwaysblock,combinationalconditionjudgement,有限狀態(tài)機第二段always@(LiftStateorup_allordown_allorrequest_allorposorcountorUpDnFlag)case(LiftState)WAIT:begin if(request_all>0)//有??空埱蠓馼eginif((request_all&pos)>0)//??空埱笾杏挟斍皹菍油?空埱蠓馧extState=OPENDOOR;//有當前樓層請求,則下一狀態(tài)轉(zhuǎn)開門elseif(request_all>pos)//有當前樓層之上的停靠請求否(優(yōu)先向上的請求)NextState=UP;//有則,下一狀態(tài)轉(zhuǎn)上升elseNextState=DOWN;//只有當前樓層之下的??空埱?,下一狀態(tài)轉(zhuǎn)下降 endelseif((up_all&pos)||(down_all&pos))//上下請求中有當前樓層請求否beginNextState=OPENDOOR;endelseif((up_all>pos)||(down_all>pos))//上下請求中有當前樓層之上的請求否NextState=UP;elseif(up_all||down_all)//上下請求中有當前樓層之下的請求否NextState=DOWN;elseNextState=WAIT;//無任何請求,繼續(xù)處于WAIT模式endUP:begin if((request_all&pos)||(up_all&pos))//??炕蛏仙埱笾杏挟斍皹菍拥恼埱蠓馧extState=UPSTOP;//有,下一狀態(tài)轉(zhuǎn)為UPSTOP(停靠后要1s才開門,UPSTOP即為這1s的過渡期)elseif((request_all>pos)||(up_all>pos))//停靠或上升請求中有當前樓層之上的請求否NextState=UP;elseif(down_all>0)//有下降請求否beginif((down_all>pos)&&((down_all^pos)>pos))//下降請求中有當前樓層的請求否NextState=UP;elseif((down_all&pos)||(pos<FLOOR6))//其實這樣做意義不大,只是使上下標志提前變化NextState=UPSTOP;elseif((down_all&pos)&&(pos==FLOOR6))//事實上不滿足第一條件的話,電梯根本不會到達第四層NextState=DOWNSTOP;else//下降請求中只有當前樓層之下的請求NextState=DOWN;endelseif(request_all||up_all)//只有當前樓層之上的??炕蛏仙埱蠓馧extState=DOWN;elseNextState=WAIT;//無任何請求,轉(zhuǎn)為WAIT模式end //DOWN的狀態(tài)轉(zhuǎn)移請參見UP的狀態(tài)轉(zhuǎn)移DOWN:begin if((request_all&pos)||(down_all&pos))NextState=DOWNSTOP;elseif(((request_all&FLOOR1)<pos&&(request_all&FLOOR1))||((request_all&FLOOR2)<pos&&(request_all&FLOOR2))||((request_all&FLOOR3)<pos&&(request_all&FLOOR3))||((request_all&FLOOR4)<pos&&(request_all&FLOOR4))||((request_all&FLOOR5)<pos&&(request_all&FLOOR5))||((request_all&FLOOR6)<pos&&(request_all&FLOOR6)))NextState=DOWN;elseif(((down_all&FLOOR1)<pos&&(down_all&FLOOR1))||((down_all&FLOOR2)<pos&&(down_all&FLOOR2))||((down_all&FLOOR3)<pos&&(down_all&FLOOR3))||((down_all&FLOOR4)<pos&&(down_all&FLOOR4))||((down_all&FLOOR5)<pos&&(down_all&FLOOR5))||((down_all&FLOOR6)<pos&&(down_all&FLOOR6)))NextState=DOWN;elseif(up_all>0)beginif(((up_all&FLOOR1)<pos&&(up_all&FLOOR1))||((up_all&FLOOR2)<pos&&(up_all&FLOOR2))||((up_all&FLOOR3)<pos&&(up_all&FLOOR3))||((up_all&FLOOR4)<pos&&(up_all&FLOOR4))||((up_all&FLOOR5)<pos&&(up_all&FLOOR5))||((up_all&FLOOR6)<pos&&(up_all&FLOOR6)))NextState=DOWN;elseif((up_all&pos)&&(pos>FLOOR1))NextState=DOWNSTOP;elseif((up_all&pos)&&(pos==FLOOR1))NextState=UPSTOP;elseNextState=UP;endelseif(request_all||down_all)NextState=UP;elseNextState=WAIT;endUPSTOP:begin NextState=OPENDOOR;//???時鐘周期后開門endDOWNSTOP:begin NextState=OPENDOOR;//???時鐘周期后開門endOPENDOOR:beginif(count<5)//開門不足5周期,則繼續(xù)轉(zhuǎn)移到開門狀態(tài)NextState=OPENDOOR;elseNextState=CLOSEDOOR;//開門5周期后,關門endCLOSEDOOR:beginif(UpDnFlag==UPFLAG)//開門關門前電梯是處于上升狀態(tài)嗎begin if((request_all&pos)||(up_all&pos))//上升或??空埱笾杏挟斍皹菍拥恼埱蠓?,有可能關門的瞬間又有新的請求NextState=OPENDOOR;elseif((request_all>pos)||(up_all>pos))//上升或停靠請求中有當前樓層之上的請求否NextState=UP;elseif(down_all>0)//有下降請求否beginif((down_all>pos)&&((down_all^pos)>pos))NextState=UP;//有當前樓層之上的下降請求,則下一狀態(tài)轉(zhuǎn)移上升elseif((down_all&pos)>0)//有當前樓層的下降請求信號,且更上層無下降請求NextState=OPENDOOR;else//只有低于當前層的下降請求NextState=DOWN;endelseif(request_all||up_all)//上升和??空埱笾杏挟斍皩拥恼埱笄抑挥挟斍皩酉碌恼埱驨extState=DOWN;elseNextState=WAIT;//無任何請求,轉(zhuǎn)為WAIT模式end //請參考UpDnFlag=UPFLAG的注釋 elseif(UpDnFlag==DNFLAG)beginif((request_all&pos)||(down_all&pos))NextState=OPENDOOR;elseif(((request_all&FLOOR1)<pos&&(request_all&FLOOR1))||((request_all&FLOOR2)<pos&&(request_all&FLOOR2))||((request_all&FLOOR3)<pos&&(request_all&FLOOR3))||((request_all&FLOOR4)<pos&&(request_all&FLOOR4))||((request_all&FLOOR5)<pos&&(request_all&FLOOR5))||((request_all&FLOOR6)<pos&&(request_all&FLOOR6)))NextState=DOWN;elseif(((down_all&FLOOR1)<pos&&(down_all&FLOOR1))||((down_all&FLOOR2)<pos&&(down_all&FLOOR2))||((down_all&FLOOR3)<pos&&(down_all&FLOOR3))||((down_all&FLOOR4)<pos&&(down_all&FLOOR4))||((down_all&FLOOR5)<pos&&(down_all&FLOOR5))||((down_all&FLOOR6)<pos&&(down_all&FLOOR6)))NextState=DOWN;elseif(up_all>0)beginif(((up_all&FLOOR1)<pos&&(up_all&FLOOR1))||((up_all&FLOOR2)<pos&&(up_all&FLOOR2))||((up_all&FLOOR3)<pos&&(up_all&FLOOR3))||((up_all&FLOOR4)<pos&&(up_all&FLOOR4))||((up_all&FLOOR5)<pos&&(up_all&FLOOR5))||((up_all&FLOOR6)<pos&&(up_all&FLOOR6)))NextState=DOWN;elseif((up_all&pos)>0)NextState=OPENDOOR;elseNextState=UP;//endelseif(request_all||down_all)NextState=UP;elseNextState=WAIT;//end //請參考WAIT模式的注釋elsebeginif(request_all>0)beginif((request_all&pos)>0)NextState=OPENDOOR;elseif(request_all>pos)NextState=UP;elseNextState=DOWN;endelseif((up_all&pos)||(down_all&pos))beginNextState=OPENDOOR;endelseif((up_all>pos)||(down_all>pos))NextState=UP;elseif(up_all||down_all)NextState=DOWN;elsebeginNextState=WAIT;endendenddefault:NextState=WAIT;endcase //3rdStateShiftalwaysblock,thesequentialFSMoutput,有限狀態(tài)機第三段always@(posedgereal_clkorposedgereset)//outputif(reset) //復位后初始化當前樓層為第一層,門是關閉的,電梯是靜止的beginpos<=FLOOR1;DoorFlag<=CLOSED;UpDnFlag<=STATIC;endelsebeginPosOut<=pos;//PosOut的輸出慢pos一個時鐘周期case(NextState)WAIT: //狀態(tài)為WAIT時,樓層不變,門是關閉的,電梯是靜止的,其他模式的情況請大家自己推導beginpos<=pos;DoorFlag<=CLOSED;UpDnFlag<=STATIC;endUP:beginpos<=pos<<1;DoorFlag<=CLOSED;UpDnFlag<=UPFLAG;endDOWN:beginpos<=pos>>1;DoorFlag<=CLOSED;UpDnFlag<=DNFLAG;endUPSTOP:beginpos<=pos;DoorFlag<=CLOSED;UpDnFlag<=UPFLAG;endDOWNSTOP:beginpos<=pos;DoorFlag<=CLOSED;UpDnFlag<=DNFLAG;endOPENDOOR:beginpos<=pos;DoorFlag<=OPEN;UpDnFlag<=UpDnFlag; endCLOSEDOOR:beginpos<=pos;DoorFlag<=CLOSED;UpDnFlag<=UpDnFlag;enddefault: //默認情況beginpos<=FLOOR1; DoorFlag<=CLOSED; UpDnFlag<=STATIC;endendcaseendendmodule3、數(shù)碼管譯碼模塊moduledisplay_decode(cp_50M,in,out,over_alarm);input[5:0]in;inputcp_50M;output[6:0]out;outputover_alarm;reg[6:0]out;regover_alarm;always@(posedgecp_50M)begincase(in)6'b000000:out<=7'b100_0000;//06'b000001:out<=7'b111_1001;//16'b000010:out<=7'b010_0100;//26'b000100:out<=7'b011_0000;//36'b001000:out<=7'b001_1001;//46'b010000:out<=7'b001_0010;//56'b100000:out<=7'b000_0010;//6default:over_alarm<=1;endcaseendendmodule附錄資料:不需要的可以自行刪除管件工藝流程及技術特點1、生產(chǎn)工藝流程:1.1彎頭工藝流程原材料復檢原材料復檢下料推制成型平口盤頭整形熱處理坡口加工表面處理無損探傷幾何檢驗油漆標識資料確認包裝入庫發(fā)貨1.2熱壓三通生產(chǎn)工藝流程:原材料復檢原材料復檢下料整形壓制成型熱處理端面加工工表面處理無損檢測幾何檢驗油漆標識資料確認包裝入庫發(fā)貨1.3鋼板制對焊三通工藝流程材料檢驗材料檢驗直縫焊接卷板成型下料壓制成型整型處理三通盤頭超聲探傷端面加工表面處理無損檢測熱處理成品檢驗儲存發(fā)運標記包裝1.4熱壓大小頭生產(chǎn)工藝流程:原材料復檢原材料復檢下料整形壓制成型熱處理端面加工工表面處理無損檢測幾何檢驗油漆標識資料確認包裝入庫發(fā)貨1.5中頻推制彎管生產(chǎn)工藝流程包裝發(fā)運包裝發(fā)運資料確認成品檢驗無損檢測加工坡口熱處理盤頭整型切割下料原材料復檢平口推制成型表面處理2、生產(chǎn)過程中關鍵工序的控制:2.1材料2.1.1材料選用1)冶煉方式:原材料按相應標準規(guī)定的方法進行冶煉,必須為鎮(zhèn)靜鋼且具有要求的熱處理狀態(tài)。2)選用制作管件材料的表面,應無缺陷、油脂、過多的銹跡、焊渣或其它異物。3)材料標志清楚、完整符合項目工程有關條款的技術要求。4)原材料應有證明書,其檢驗項目應符合相關標準的規(guī)定或訂貨要求。無標記、無批號、無質(zhì)量證明書或質(zhì)量說明書項目不全的鋼材不能使用。2.1.2材料尺寸。制造管件選用管材應根據(jù)管件幾何尺寸及設計計算選擇長度、外徑、寬度及壁厚。2.1.3材料的檢驗表面及尺寸檢驗:原材料的表面應平整、光滑、厚度均勻,不得有超過標準要求的凹坑、重皮、裂紋、油污、腐蝕和其它污物。表面尺寸檢驗、除銹后的材料進行表面及尺寸檢查。原材料應有證明書,其檢驗項目應符合相關標準的規(guī)定或訂貨要求。無標記、無批號、無質(zhì)量證明書或質(zhì)量說明書項目不全的鋼材不能使用。材料按爐號進行化學分析,原材料的化學成分最大百分含量應符合相應標準及本項目技術規(guī)格書的要求原材料的力學性能應符合相應標準及本項目技術規(guī)格書的要求對于復檢不合格的原材料應予退回,不允許用于管件制作。材料的追溯性標識清楚,在制造過程中,原材料的爐號、批號以及所用材料部位及過程編號等均應有追溯性記錄。2.2下料2.2.1下料方法主要是機械切割,切割后應用機械方法清理切割面至露出金屬光澤。2.2.2下料操作人員應熟悉切割設備的性能和操作規(guī)范,按規(guī)定畫樣、切割。切割時應根據(jù)操作工技能和設備不同留一定的切割量。下料管材表面清理除銹后不允許有低熔點金屬污染。不應有重皮、裂紋等嚴重缺陷。2.2.3在下料后的坯料上將原材料上的標識內(nèi)容進行移植。2.3管件成型2.3.1彎頭生產(chǎn)作業(yè)指導書2.3.1.1先啟動中頻電源將推制芯棒加熱到規(guī)定溫度以上,將推制彎頭用坯管放在推制機芯棒上啟動液壓推進裝置推動坯管隨芯棒外形而變化。2.3.1.2根據(jù)坯管的材質(zhì)和規(guī)格不同按相應工藝規(guī)定的溫度和推速控制推制過程中的感應套加熱溫度和液壓系統(tǒng)的推進速度。2.3.1.3推制成型后的彎頭半成品在熱態(tài)下放在胎具中用壓力機進行整形處理。2.3.1.4推制彎頭在整形完成后根據(jù)半成品的情況和成品要求的外形尺寸進行盤口處理,盤口后留有5-15mm的加工余量。2.3.2熱壓三通生產(chǎn)作業(yè)指導書2.3.2.1熱壓前準備2.3.2.1.1操作人員應學習相關工藝文件并熟悉設備的操作方法及工藝過程。2.3.2.1.2操作人員應按工藝卡要求和下料尺寸對坯管進行檢查并標記,坯管裝爐前表面不允許有低熔點金屬污染(銅、錫、鋁等),不應有重皮、裂紋等缺陷。2.3.2.1.3準備好在工作過程中需用的各類器具。裝爐:將坯管放在加熱爐中用耐火材料將其墊高距爐臺200mm以上,兩坯管之間間隔100mm以上。2.3.2.2坯管壓扁:加熱溫度(詳見工藝卡),恒溫≥5分鐘出爐在壓力機下把坯管壓扁成橢圓形,對于變形量小的(支管/主管≤1/3)壓扁管可采用冷壓制。2.3.2.3壓制鼓包2.3.2.4開孔拔制:將具有三通形狀的工件在支管頂端劃線開橢圓孔,對開孔處進行拔制成型。拔制應由小到大逐級進行直至支口達到要求尺寸,拔制過程中應用測溫儀對工件溫度進行監(jiān)測,當工件溫度低于工藝要求溫度時應將工件裝爐重新加熱。2.3.2.5整型處理:將具有三通形狀的工件進爐加熱,加熱至規(guī)定溫度后保溫規(guī)定時間后,出爐后進行整型。2.3.3鋼板制對焊熱壓三通生產(chǎn)作業(yè)指導書2.3.3.1卷板成型。選擇適宜的板材尺寸切割后按圖紙加工成筒狀,材料及加工尺寸見卷管圖。2.3.3.2卷管焊接(按焊接工藝卡)。對卷管成型后進行機械坡口和修整,并對坡口處進行分層檢測。對坡口完好的卷管按焊接工藝規(guī)程進行焊接,焊接應由持證焊工操作且焊工應經(jīng)過焊接工藝評定。2.3.3.3熱壓前準備2.3.3.3.1操作人員應學習相關工藝文件并熟悉設備的操作方法及工藝過程。2.3.3.3.2操作人員應按工藝卡要求和下料尺寸對卷管進行檢查并標記,坯管裝爐前表面不允許有低熔點金屬污染(銅、錫、鋁等),不應有重皮、裂紋等缺陷。2.3.3.3.3準備好在工作過程中需用的各類器具。裝爐:將卷管放在加熱爐中用耐火材料將其墊高距爐臺200mm以上,兩卷管之間間隔100mm以上。2.3.3.3.4坯管壓扁:加熱溫度(根據(jù)不同材料參見壓制工藝卡)。2.3.3.3.5壓制鼓包:將壓扁后的坯管進爐加熱,加熱溫度(根據(jù)不同材料參見壓制工藝卡)每次壓制都要在胎具上涂抹潤滑劑以得到光滑的成型面。在連續(xù)成型過程中,工件表面達到規(guī)定溫度后,恒溫≥10分鐘即可出爐壓制。2.3.3.3.6開孔拔制:將具有三通形狀的工件在支管頂端劃線開橢圓孔,拔制應由小到大逐級進行直至支口達到要求尺寸,拔制過程中應用測溫儀對工件溫度進行監(jiān)測,當工件溫度低于工藝要求溫度時應將工件裝爐重新加熱。2.3.3.3.7整型處理:將具有三通形狀的工件進爐加熱,加熱至一定后保溫規(guī)定時間后,出爐后進行整型。2.3.4熱壓大小頭生產(chǎn)作業(yè)指導書2.3.4.1清除爐內(nèi)水、銹及其它雜物。注意不同材質(zhì)的坯料不能放在同一爐內(nèi)加熱。2.3.4.2裝爐。2.3.4.2.1采用天然氣或電加熱爐,加熱爐應經(jīng)過有效加熱區(qū)測定,各儀器、儀表均處在有效檢定期內(nèi),加熱爐的控溫精度要求為±10℃;2.3.4.2.2裝爐前將坯料上的標識做好移植記錄,必要時繪制裝料位置圖。2.3.4.2.3將坯料放在加熱爐中用耐火材料將其墊高距爐臺200mm以上,兩坯料之間間隔100mm以上,坯料不得與爐壁接觸。2.3.4.3坯料加熱2.3.4.3.1加熱過程應使用可連續(xù)記錄加熱溫度的記錄儀記錄加溫溫度曲線,最高加熱溫度(詳見工藝卡)。2.3.4.4壓制成型2.3.4.4.1管件料坯在加熱爐內(nèi)保溫規(guī)定時間后出爐進行壓制。坯料出爐后要盡快的移到胎具上進行壓制,要求始壓溫度(詳見工藝卡)。壓制過程中要用紅外測溫儀或光學高溫計對壓制溫度進行監(jiān)測,當溫度超出規(guī)定時應終止壓制。2.3.4.4.2熱擠壓異徑管應在保證質(zhì)量的前提下盡可能的減少壓制次數(shù)(即減少加熱的次數(shù))。2.3.4.4.3坯料冷卻后將原標識移植回坯料本體。2.3.4.5整型處理:對形狀不符合要求的壓制坯料應當整形校正。校正如使用支撐物不允許焊接在工件上。2.3.4.6大小頭整型后進行表面質(zhì)量、尺寸檢查。2.3.5鋼板制對焊大小頭生產(chǎn)作業(yè)指導書2.3.5.1鋼板卷制焊接2.3.5.1.1將下好的坯片吊裝到卷板機上進行大小頭的卷制加工。加工可用導輪也可通過調(diào)整下杠間隙進行。2.3.5.1.2坯管卷制成型后進行表面及尺寸檢查,對于成型后多余的部分應切割掉,當不合乎要求時,應在組片前進行矯正。2.3.5.1.3所有焊縫(包括返修焊縫)應由考核合格

溫馨提示

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

最新文檔

評論

0/150

提交評論