电梯控制器-Verilog语言_第1页
电梯控制器-Verilog语言_第2页
电梯控制器-Verilog语言_第3页
电梯控制器-Verilog语言_第4页
电梯控制器-Verilog语言_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字系统设计大作业题目:电梯控制器姓名:温庆学号:031241214班级:0312412指导老师:黄双林目录摘要 2正文 31设计目的及要求 32设计原理 32.1设计实现原理 32.2项目分块及其实现方案 52.3电梯控制器的流程图 63设计内容 73.1基本状态设计 73.2模块设计 83.3波形仿真 9总结与致谢 13参考文献 14附录 15摘要电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。因此要加大对电梯技术的创新和发展,提升电梯的性能,就需要引进更好的技术,电梯控制器就是很好的装置,大力开发控制器是很必要的。电梯的微机化控制主要有以下几种形式:PLC控制;单片机控制;单板机控制;单微机控制;多微机控制;人工智能控制。本次课程设计采用了EDA技术进行操作EDA技术打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率与产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。本设计采用VerilogHDL语言的编程技术,源程序Altera公司的QuartusII软件仿真。关键字:EDA技术;VerilogHDL语言;QuartusII软件正文1设计目的及要求1、进一步巩固理论知识,培养所学理论知识的在实际中的应用能力;掌握EDA设计的一般方法;熟悉一种EDA软件,掌握一般EDA系统的调试方法;利用EDA软件设计一个电子技术综合问题,培养VerilogHDL编程、书写技术报告的能力。为以后进行工程实际问题的研究打下设计基础。2、设计一个6层电梯控制器电路,用数码管显示电梯所在楼层号,电梯初始状态为第一楼层;每楼层电梯外都有上、下楼请求开关,电梯内设有乘客到达楼层的请求开关、电梯所处楼层、上升模式及下降模式的指示;电梯每2秒升降一层,到达有停站请求的楼层后,经4秒电梯门打开,开门指示灯亮,开门4秒后,指示灯灭,关门,关门时间3秒,电梯继续运行。可以通过快速关门和关门中断信号控制;能记忆电梯内外的请求信号,当电梯处于上升模式时,只响应比电梯所在位置高的楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式。2设计原理2.1设计实现原理根据系统设计要求,并考虑到系统的可检验性,整个系统的输入输出接口设计如图1所示:系统工作用2Hz基准时钟信号CLKIN,楼层上升请求键UPIN,楼层下降请求键DOWNIN,楼层选择键入键ST_CH,提前关门输入键CLOSE,延迟关门输入键DELAY,电梯运行的开关键RUN_STOP,电梯运行或停止指示键LAMP,电梯运行或等待时间指示键RUN_WAIT,电梯所在楼层指示数码管ST_OUT,楼层选择指示数码管DIRECT。DTKZQCLKINDTKZQCLKINLAMPUPINDOWNINST_CH[1]RU_WAITCLOSEST_OUTDELAYDIRECTRUN_STOP图1.电梯控制器DTKZQ的输入输出接口图各输入端口的功能如下:CLKIN:基准时钟信号,为系统提供2Hz的时钟脉冲,上升沿有效;UPIN:电梯上升请求键。由用户向电梯控制器发出上升请求。高电平有效;DOWNIN:电梯下降请求键,由用户向电梯控制器发出下降请求。高电平有效;ST_CH[2..0]:楼层选择键入键,结合DIRECT完成楼层选择的键入,高电平有效;CLOSE:提前关门输入键。可实现无等待时间的提前关门操作,高电平有效;DELAY: 延迟关门输入键。可实现有等待时间的延迟关门操作,高电平有效;RUN_STOP:电梯运行或停止开关键。可实现由管理员控制电梯的运行或停止,高电平有效。一下为输出端口:LAMP:电梯运行或等待指示键,指示电梯的运行或等待状况。高电平有效;RUN_WAIT:电梯运行或等待时间指示键,指示电梯运行状况或等待时间的长短,高电平有效;ST_OUT:电梯所在楼层指示数码管,只是电梯当前所在的楼层数。即1~6层,高电平有效;DIRECT:楼层选择指示数码管,指示用户所要选择的楼层数,高电平有效。2.2项目分块及其实现方案电梯的控制状态包括运行状态﹑停止状态及等待状态,其中运行状态又包含向上状态和向下状态。主要动作有开、关门,乘客可通过键入开、关门按键,呼唤按键,指定楼层按钮等来控制电梯的行与停。据此,整个电梯控制器DTLZQ应包括如下几个组成部分:①时序输出及楼选计数器;②电梯服务请求处理器;③电梯升降控制器;④上升及下降寄存器;⑤电梯次态生成器。该电梯控制器设计的关键是确定上升及下降寄存器的置位与复位。整个系统的内部组成结构图2所示。电梯服务请求处理器电梯服务请求处理器时序输出及楼选计数器(DIR)DRECTCLKINUOINDOWNINST_CH电梯升降控制器(LIFTOR)DELAY电梯次态生成器(LADD)上升请求寄存器(UR)下降请求寄存器(DR)CLOSERUN_STOPLAMPRUN_WAITST_OUT图2.电梯控制器的内部组成结构图时钟CLK时钟CLK请求信号输入模块楼层请求超载超载关门中断提前关门清楚报警控制模块输出显示模块请求信号显示运行状态显示所在楼层显示门控制信号超载报警图3.电梯控制器系统框图2.3电梯控制器的流程图初始化外部按键初始化外部按键否请求信号寄存器否请求信号寄存器是否有请求?楼层检测电梯运行等待判定电梯运行方向是否有请求?楼层检测电梯运行等待判定电梯运行方向是目标层与本层是否同层?状态寄存器是目标层与本层是否同层?状态寄存器是内部软件执行机构是内部软件执行机构否否外部硬件执行机构外部硬件执行机构图4总流程图是否目标层?否是否目标层?否是是电梯停止电梯停止开门开门关门关门否否是否停止运行?是否停止运行?是是停止停止图5电梯控制主流程图3设计内容3.1基本状态设计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、通过参数定义把信号并置的方法和有限状态机联系起来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、采用了七个状态实现了有限状态机WAITWAITUPUPSTOPDOWNOPENDOORDOWNSTOPCLOSEDOOR图6.状态转换图黑线:WAITTOUPTOUPSTOPTOOPENDOORTOCLOSEDOORTOWAIT粉红线:WAITTODOWNTODOWNSTOPTOOPENDOORTOCLOSEDOORTOWAIT3.2模块设计1、电梯主控制器模块elevator_controller:此段智能电梯控制器由三个重要部分组成的。(a)信号并置部分,完成对5路向上请求、5路向下请求、6路内部请求的信号并置,化繁为简。(b)三段式有限状态机部分。在有请求的情况下,电梯控制器还要根据电梯的当前状态和当前的楼层去判断电梯的下一步该如何运作。(c)计数器部分。完成电梯的开门、关门的时间管理。图7.电梯主控模块2、分频模块frequence_div:这段分频器完成对50Mhz的1分频操作。采用传统的“一半就翻转”的计数技巧。图8.分频模块3、数码管译码模块3.3波形仿真 1、当电梯处于初始状态时,电梯在高层有向下的请求时:图92、当电梯停在6楼处于等待状态时,在1楼和2楼同时有向上的请求时:图103、当电梯停在1楼处于等待状态时,在6楼和5楼同时有向下的请求时:图114、当电梯停在6楼时,有在5楼的向下的请求时,电梯应该先到五楼,电梯内部请求到1楼,如果电梯在下降的过程中,有在2楼的向上的请求时,电梯应该先相应内部请求,然后相应外部请求:图125、电梯的强制运行按钮forbid:图13总结与致谢通过本次课程设计进一步熟悉QuartusII软件的使用和操作方法,以及硬件实现时的下载方法与运行方法;对VerilogHDL语言的自顶向下设计方法有了进一步的认识,对其中的许多语句也有了新了解,掌握;对自己独立思考和解决问题的能力也有了很大的锻炼。短暂的课程设计就要结束了,在此,感谢所有在学习和生活中给予我关心和帮助的人们。首先我要感谢杨红娟、王涛两位位老师,本次课程设计设计的选题、课题调研与撰写工作实在和老师的指导下完成的。和老师渊博的知识、严谨的治学态度、一丝不苟的工作作风、和不厌其烦的精神对我影响至深,使我受益终生,在此我向和老师表示崇高的敬意和衷心的感谢。其次,在我的课程设计期间,同课题的同学都给予了我热情的帮助和无私的指导,在此向这些同学们表示衷心的感谢。最后,向所有曾给予我关心和帮助的老师和同学们再次致以最衷心的感谢,向参加报告评审、答辩的老师表示衷心的感谢和崇高的敬意。参考文献[1]黄仁欣.EDA技术实用教程.北京:清华大学出版社,2006[2]潘松,黄继业.EDA技术与VHDL.北京:清华大学出版社,2009[3]江国强编著.EDA技术与应用(第三版)..北京:电子工业出版社,2010[4]夏宇闻编著.VerilogHDL数字系统设计教程..北京:北京航空航天大学出版社,2008[5]周祖成,程晓军,马卓钊编著.数字电路与系统教学实验教程.北京:科学出版社,2010[6]周润景,苏良碧.基于QuartusII的数字系统VerilogHDL设计实例详解.北京:电子工业出版社,2010[7](美国)SanirPalnitkar译者:夏宇闻胡燕祥刁岚松.VerilogHDL数字设计与综合(第2版).北京:电子工业出版社,2009[8]云创工作室.VerilogHDL程序设计与实践.北京:人民邮电出版社,2009[9]刘福奇,刘波.VerilogHDL应用程序设计实例精讲.北京:电子工业出版社,2009[10]张延伟,杨金岩,葛爱学.veriloghdl程序设计实例详解.北京:人民邮电出版社,2008附录1、分频模块modulefrequence_div(cp_50M,cp_1);inputcp_50M;//板子提供的最高时钟outputcp_1;//要求得到的秒脉冲reg[27:0]counter_1;//计数器regcp_1;//类型声明always@(posedgecp_50M)beginif(counter_1==28'h17D7840)//50M的一半到了,秒脉冲翻转begincp_1<=~cp_1;//翻转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;//输出电梯状态outputover_alarm;//出错output[6:0]count_out;//计数器输出,便于我控制开关门的状态显示output[2:0]count;//计数器//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的关系:当前状态一改变,pos立即作相应改变,而PosOut则是当前状态在要变到下一状态的瞬间 //,将PosOut作相应改变。如从WAIT切换到第一个UP时,pos立即加一,而PosOut则要等到第一个UP //即将切换到第二个UP时,才加一。//这个说的简单一点,就是移位寄存器,便于对电梯状态的实时的控制 wireover_alarm; wire[6:0]out; wire[6:0]count_out;reg[5:0]pos,PosOut;reg[2:0]count;//门开后要持续5个时钟周期,用count来计数regDoorFlag;reg[1:0]UpDnFlag;reg[6:0]LiftState,NextState;//分别表示电梯的当前状态和下一状态wirereal_clk; //up_all,down_all,request_all分别用来合并向上请求的各信号,向下请求的各信号和停靠请求的各信号 //以便判断电梯在状态间如何转移时更简洁 reg[5:0]up_all,down_all,request_all; //定义电梯7种状态的符号常量 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));//采用屏蔽时钟的方法来实现“电梯强制禁止运行”。方法虽然违反了“同步电路最好//没有时钟门控”的要求,但是在此只要“负面影响”不是很大还是可以接受的。 //将各上升请求信号实时地合并(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;//如果计数不到5且下一状态为OPENDOOR的话,继续计数elsecount<=0;//清零,以备下次计数//displaywhichfloortheelevatorisdisplay_decodeh1(cp_50M,PosOut,out,over_alarm);display_decode_counth2(cp_50M,count,count_out);//finitestatemachineinthestyleofthreesegments,三段式 //1stStateShiftalwaysblock,sequentialstatetransition,有限状态机第一段always@(posedgereal_clkorposedgereset)if(reset)beginLiftState<=WAIT;endelseLiftState<=NextState; //2ndStateShiftalwaysblock,combinationalconditionjudgement,有限状态机第二段always@(LiftStateorup_allordown_allorrequest_allorposorcountorUpDnFlag)case(LiftState)WAIT:begin if(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;elseNextState=WAIT;//无任何请求,继续处于WAIT模式endUP:begin if((request_all&pos)||(up_all&pos))//停靠或上升请求中有当前楼层的请求否NextState=UPSTOP;//有,下一状态转为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)//只有当前楼层之上的停靠或上升请求否NextState=DOWN;elseNextState=WAIT;//无任何请求,转为WAIT模式end //DOWN的状态转移请参见UP的状态转移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;//停靠1时钟周期后开门endDOWNSTOP:begin NextState=OPENDOOR;//停靠1时钟周期后开门endOPENDOOR:beginif(count<5)//开门不足5周期,则继续转移到开门状态NextState=OPENDOOR;elseNextState=CLOSEDOOR;//开门5周期后,关门endCLOSEDOOR:beginif(UpDnFlag==UPFLAG)//开门关门前电梯是处于上升状态吗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;//有当前楼层之上的下降请求,则下一状态转移上升elseif((down_all&pos)>0)//有当前楼层的下降请求信号,且更上层无下降请求NextState=OPENDOOR;else//只有低于当前层的下降请求NextState=DOWN;endelseif(request_all||up_all)//上升和停靠请求中有当前层的请求且只有当前层下的请求NextState=DOWN;elseNextState=WAIT;//无任何请求,转为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,有限状态机第三段always@(posedgereal_clkorposedgereset)//outputif(reset) //复位后初始化当前楼层为第一层,门是关闭的,电梯是静止的beginpos<=FLOOR1;DoorFlag<=CLOSED;UpDnFlag<=STATIC;endelsebeginPosOut<=pos;//PosOut的输出慢pos一个时钟周期case(NextState)WAIT: //状态为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、数码管译码模块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、生产工艺流程:1.1弯头工艺流程原材料复检原材料复检下料推制成型平口盘头整形热处理坡口加工表面处理无损探伤几何检验油漆标识资料确认包装入库发货1.2热压三通生产工艺流程:原材料复检原材料复检下料整形压制成型热处理端面加工工表面处理无损检测几何检验油漆标识资料确认包装入库发货1.3钢板制对焊三通工艺流程材料检验材料检验直缝焊接卷板成型下料压制成型整型处理三通盘头超声探伤端面加工表面处理无损检测热处理成品检验储存发运标记包装1.4热压大小头生产工艺流程:原材料复检原材料复检下料整形压制成型热处理端面加工工表面处理无损检测几何检验油漆标识资料确认包装入库发货1.5中频推制弯管生产工艺流程包装发运包装发运资料确认成品检验无损检测加工坡口热处理盘头整型切割下料原材料复检平口推制成型表面处理2、生产过程中关键工序的控制:2.1材料2.1.1材料选用1)冶炼方式:原材料按相应标准规定的方法进行冶炼,必须为镇静钢且具有要求的热处理状态。2)选用制作管件材料的表面,应无缺陷、油脂、过多的锈迹、焊渣或其它异物。3)材料标志清楚、完整符合项目工程有关条款的技术要求。4)原材料应有证明书,其检验项目应符合相关标准的规定或订货要求。无标记、无批号、无质量证明书或质量说明书项目不全的钢材不能使用。2.1.2材料尺寸。制造管件选用管材应根据管件几何尺寸及设计计算选择长度、外径、宽度及壁厚。2.1.3材料的检验表面及尺寸检验:原材料的表面应平整、光滑、厚度均匀,不得有超过标准要求的凹坑、重皮、裂纹、油污、腐蚀和其它污物。表面尺寸检验、除锈后的材料进行表面及尺寸检查。原材料应有证明书,其检验项目应符合相关标准的规定或订货要求。无标记、无批号、无质量证明书或质量说明书项目不全的钢材不能使用。材料按炉号进行化学分析,原材料的化学成分最大百分含量应符合相应标准及本项目技术规格书的要求原材料的力学性能应符合相应标准及本项目技术规格书的要求对于复检不合格的原材料应予退回,不允许用于管件制作。材料的追溯性标识清楚,在制造过程中,原材料的炉号、批号以及所用材料部位及过程编号等均应有追溯性记录。2.2下料2.2.1下料方法主要是机械切割,切割后应用机械方法清理切割面至露出金属光泽。2.2.2下料操作人员应熟悉切割设备的性能和操作规范,按规定画样、切割。切割时应根据操作工技能和设备不同留一定的切割量。下料管材表面清理除锈后不允许有低熔点金属污染。不应有重皮、裂纹等严重缺陷。2.2.3在下料后的坯料上将原材料上的标识内容进行移植。2.3管件成型2.3.1弯头生产作业指导书2.3.1.1先启动中频电源将推制芯棒加热到规定温度以上,将推制弯头用坯管放在推制机芯棒上启动液压推进装置推动坯管随芯棒外形而变化。2.3.1.2根据坯管的材质和规格不同按相应工艺规定的温度和推速控制推制过程中的感应套加热温度和液压系统的推进速度。2.3.1.3推制成型后的弯头半成品在热态下放在胎具中用压力机进行整形处理。2.3.1.4推制弯头在整形完成后根据半成品的情况和成品要求的外形尺寸进行盘口处理,盘口后留有5-15mm的加工余量。2.3.2热压三通生产作业指导书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开孔拔制:将具有三通形状的工件在支管顶端划线开椭圆孔,对开孔处进行拔制成型。拔制应由小到大逐级进行直至支口达到要求尺寸,拔制过程中应用测温仪对工件温度进行监测,当工件温度低于工艺要求温度时应将工件装炉重新加热。2.3.2.5整型处理:将具有三通形状的工件进炉加热,加热至规定温度后保温规定时间后,出炉后进行整型。2.3.3钢板制对焊热压三通生产作业指导书2.3.3.1卷板成型。选择适宜的板材尺寸切割后按图纸加工成筒状,材料及加工尺寸见卷管图。2.3.3.2卷管焊接(按焊接工艺卡)。对卷管成型后进行机械坡口和修整,并对坡口处进行分层检测。对坡口完好的卷管按焊接工艺规程进行焊接,焊接应由持证焊工操作且焊工应经过焊接工艺评定。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坯管压扁:加热温度(根据不同材料参见压制工艺卡)。2.3.3.3.5压制鼓包:将压扁后的坯管进炉加热,加热温度(根据不同材料参见压制工艺卡)每次压制都要在胎具上涂抹润滑剂以得到光滑的成型面。在连续成型过程中,工件表面达到规定温度后,恒温≥10分钟即可出炉压制。2.3.3.3.6开孔拔制:将具有三通形状的工件在支管顶端划线开椭圆孔,拔制应由小到大逐级进行直至支口达到要求尺寸,拔制过程中应用测温仪对工件温度进行监测,当工件温度低于工艺要求温度时应将工件装炉重新加热。2.3.3.3.7整型处理:将具有三通形状的工件进炉加热,加热至一定后保温规定时间后,出炉后进行整型。2.3.4热压大小头生产作业指导书2.3.4.1清除炉内水、锈及其它杂物。注意不同材质的坯料不能放在同一炉内加热。2.3.4.2装炉。2.3.4.2.1采用天然气或电加热炉,加热炉应经过有效加热区测定,各仪器、仪表均处在有效检定期内,加热炉的控温精度要求为±10℃;2.3.4.2.2装炉前将坯料上的标识做好移植记录,必要时绘制装料位置图。2.3.4.2.3将坯料放在加热炉中用耐火材料将其垫高距炉台200mm以上,两坯料之间间隔100mm以上,坯料不得与炉壁接触。2.3.4.3坯料加热2.3.4.3.1加热过程应使用可连续记录加热温度的记录仪记录加温温度曲线,最高加热温度(详见工艺卡)。2.3.4.4压制成型2.3.4.4.1管件料坯在加热炉内保温规定时间后出炉进行压制。坯料出炉后要尽快的移到胎具上进行压制,要求始压温度(详见工艺卡)。压制过程中要用红外测温仪或光学高温计对压制温度进行监测,当温度超出规定时应终止压制。2.3.4.4.2热挤压异径管应在保证质量的前提下尽可能的减少压制次数(即减少加热的次数)。2.3.4.4.3坯料冷却后将原标识移植回坯料本体。2.3.4.5整型处理:对形状不符合要求的压制坯料应当整形校正。校正如使用支撑物不允许焊接在工件上。2.3.4.6大小头整型后进行表面质量、尺寸检查。2.3.5钢板制对焊大小头生产作业指导书2.3.5.1钢板卷制焊接2.3.5.1.1将下好的坯片吊装到卷板机上进行大小头的卷制加工。加工可用导轮也可通过调整下杠间隙进行。2.3.5.1.2坯管卷制成型后进行表面及尺寸检查,对于成型后多余的部分应切割掉,当不合乎要求时,应在组片前进行矫正。2.3.5.1.3所有焊缝(包括返修焊缝)应由考核合格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论