基于EDA的高层电梯控制器设计.doc_第1页
基于EDA的高层电梯控制器设计.doc_第2页
基于EDA的高层电梯控制器设计.doc_第3页
基于EDA的高层电梯控制器设计.doc_第4页
基于EDA的高层电梯控制器设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1设计的意义一种以电动机为动力,装有箱状吊舱,用于多层建筑乘人或载运货物的垂直升降机,就是俗称的自动电梯。随着电子技术日新月异的发展,集成电路从20 世纪60年代的小规模到中规模,再到大规模集成电路,伴随着它的高速发展,EDA技术、CPLD 技术也得到充分发展。同时,随着现代社会的物质水平不断提高,越来越多的建筑是其中标志之一,对于高层建筑来说,电梯是必不可少的。除了高层建筑需要电梯外,对于服务和生产部门来说,同样需要各种各样的服务电梯和载物电梯。这使电梯的使用越来越普遍,已从原来只在商业大厦、宾馆使用,过度到在办公室、居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化。对于电梯的控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。电梯的微机化控制主要有以下几种形式:PLC控制,单片机控制,单板机控制,单微机控制,多微机控制,人工智能控制。随着EDA技术的快速发展,EDA已广泛应用于电子设计与控制的各个方面。电梯作为高层建筑物的重要交通工具与人们的工作日益紧密FPGA作为新一代工业控制器,以其高可靠性和技术先进性,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。电梯控制器是控制电梯按顾客要求自动上下的装置。本课程设计文采用VHDL语言来设计实用16层电梯控制器,其代码具有良好的可读性和易理解性,源程序经Quartus II 7.2软件仿真,目标器件选用FPGA器件。通过对16层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。2设计原理2.1 EDA技术介绍EDA技术是20世纪90年代初从计算机辅助设计(Computer Adied Design)、计算机辅助制造(Computer Adied Manufacture)、计算机辅助测试(Computer Adied Testing)和计算机辅助工程(Computer Adied Engineering)的概念发展而来的。随着超大规模集成电路(Very Large Scale Integration)规模和技术复杂度的急剧增长,一块芯片内集成门可达几十万甚至几百万门,并且还在迅速增长,电子系统人工设计已十分困难,必须依靠电子设计自动化技术。EDA技术的基本特征和基本工具总的来说,现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。它主要采用并行工程和“自顶向下”的设计方法,使开发者从一开始就要考虑到产品生成周期的诸多方面,包括质量、成本、开发时间及用户的需求等等,然后从系统设计入手,在顶层进行功能方框图的划分和结构设计,在方框图一级进行仿真、纠错、并用VHDL、Verilog-HDL、ABEL等硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证,然后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。利用EDA技术进行电子系统的设计,具有以下几个特点:用软件的方式设计硬件;用软件方式设计的系统到硬件系统的转换是由相关的开发软件自动完成;设计过程中可用相关软件进行各种仿真;系统可现场编程,在线升级;整个系统可集成在一个芯片上,具有体积小、功耗低及可靠性高的特点。因此,EDA技术是现代电子设计的发展趋势。电子设计自动化(EDA)是一种实现电子系统或电子产品自动化的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。2.2系统设计及原理从设计要求中可以看出,分控制器设计相对简单,主控制器是系统的核心部分,也是设计的难点,下面讨论主控制器的设计方法。首先讨论主控制器的设计状态。根据电梯的实际工作情况,可以将主控制器的运行状态分为6种:停止、等待、上升、连续上升、下降和连续下降。电梯开关未打开时,处于停止状态,开关打开后,处于等待状态,之后,响应用户的请求进入上升或下降状态。连续上升状态发生在电梯不在中间层停留的情形,例如,用户在1层进入电梯,直到5层,那么在2、3、4层都处于连续上升状态,连续下降状态同理。这里,状态划分与具体楼层无关,因此,具有很强的通用性。其次考虑输入输出端口,一个电梯开关,供电梯管理员控制电梯,开关无效时,电梯不工作;用户在进入电梯后,可以不必等待5秒,而提前关门,提供close请求服务;用户需要时也可以延迟关门,延迟时间随意,提供delay请求服务;电梯内部有16位按键,供用户输入请求楼层;16个分控制器的上升/下降请求,即2个16位的矢量输入;还有时钟方面,根据电梯的运行速度和等待时间,系统时钟设计为20 Hz。停止stop等待pause连续上升midup连续下降middown下降down上升upswitch=1switch=0ur=0 and dr=0ur=1position=(urr and position)position=(drr and position)position/=(drr and position)rising_edge(clk)dr=1position/=(urr and position)rising_edge(clk)图1 状态转移图输出端口比较简单,一个是开门信号,控制电梯开门和关门,另一个输出当前所在楼层。2.3模块设计与实现2.3.1主控制器模块首先说明一下电梯状态。状态机设置了6个状态,分别是停止、等待、上升、连续上升、下降和连续下降。在结构体ARCHITECTURE和BEGIN之间有如下定义。type statetype is(stop,pause,up,midup,down,middown);signal state:statetype;打开电梯开关后,尚无请求,电梯处于等待状态。如果有用户发出请求,则电梯响应,上升至用户所在楼层(初始电梯在1层)。响应的过程是:判断请求是否符合规则,如果符合,则将请求保存在上升请求寄存器(urr)中,由等待状态转为上升状态,然后启动运行定时器,1秒钟后,到达上一层,如果此层被用户请求,则转入等待状态,自动打开电梯门;否则,转入连续上升状态,将运行计时器清零,然后返回上升状态,重新启动运行定时器,再上升一层,直至到达用户所在楼层。下降的过程同理。在等待状态中,逻辑判断最为复杂。首先是判断下一步状态,是继续上升,继续下降,还是一直等待,抑或从上升转入下降,从下降转入上升,这些都是通过对方向标志位ur、dr的判断得到。其次是开门问题,电梯刚刚到达某一层时,必定是用户准备出梯,或者准备入梯,电梯须自动开门,启动开门计时器,5秒后关门;如果电梯在过去一段时间内处于等待状态,现在,用户发出请求,则必须判断用户的位置,如果用户和电梯在同一层,则须立即开门使用户入梯,否则,直接到达用户所在楼层再开门。电梯内部设有提前关门和延迟关门请求按钮,用户可以根据实际情况,发出请求。这两项功能是通过对开门计时器的计数控制实现的,开门计时器与运行计时器一样,都是带清零端、置位端和使能端的8位计数器。按下提前关门按钮,等于将开门计时器置位,所以计时提前结束,从而实现提前关门的功能;同理,按下延迟开关按钮,等于将使能端置为无效,暂停计时,从而实现延迟关门的功能。在主控制器的VHDL程序中定义了几个信号用于描述电梯运行状态,例如urr(上升请求寄存器)、drr(下降请求寄存器)、ur(上升标志)和dr(下降标志)。opentime和runtime分别是开门计时器和运行计时器的输出。结构体中有6个进程,说明如下:第一个进程对系统时钟分频得到运行计时器时钟;第二个进程对运行计时器时钟分频得到开门计时器时钟;第三个进程是延迟进程,用于检测信号跳变;第四个进程是对上升/下降请求寄存器置位和清零;第五个进程控制电梯运行状态;第六个进程记录电梯位置变化及响应提前、延迟关门请求。2.3.2分控制器模块分控制器设在每层的电梯人口处,作为是检测用户按键,转换为上升/下降请求信号。在请求被执行后,清除相应信号。同时,将电梯当前位置显示给用户。3仿真分析3.1主控制器仿真对主控制器的仿真需要设计一些符合实际情况的假设,比如在外部发出上升请求的乘客,进入电梯内部后一定会按高层的请求按钮;在外部发出下降请求的乘客,进入电梯内部后一定会按低层的请求按钮,而且乘客进入电梯后必定会按键。这些假设都是符合实际情况的。图2 主控制器仿真波形之一如图2所示,仿真的使乘客由1层进入电梯,在电梯内部按键,请求上升至10层。可以看到,初始电梯在1层,收到用户请求后,开门请用户入梯,然后关门并上升到10层,中间不作停留。到达10层后,自动开门,请用户出梯。图3 主控制仿真波形之二如图3所示,仿真的是图2的继续,电梯在10层停留一段时间后,有用户在2层发出请求,电梯下将至2层,开门请用户入梯,然后关门。如图4所示,仿真的是电梯在1层,有2位用户进入,分别请求上升至5层和10层。图中,用户在1层按上升请求按钮,由于电梯也在1层,自动开门,用户入梯。用户在电梯内部按键来选择自己要到达的楼层,假设按键有先后顺序,即不是多用户同一时间按键。上升请求寄存器(urr)保存了用户按键请求,每图4 主控制仿真波形之三次到达用户所请求的楼层后,自动清除对应请求。图5 主控制仿真波形之四如图5所示,仿真的是电梯响应延迟关门。开始时,电梯停留在16层一段时间,有用户在11层发出下降请求,电梯直接下降至11层,到达11层后自动开门,用户而人数较多,难以在5秒内全部进入电梯,于是,用户按延迟关门按钮,等到所有人都进入电梯后,才释放按钮,电梯关门。按键请求到1层,电梯下降至1层,自动开门,用户出梯。3.2分控制器仿真如图6所示,仿真的是一用户在2层发出上升请求信号,另一用户在9层发出下降请求信号。电梯从1层到达2层后停止,用户进入电梯后电梯到达5层后,该用户出梯。然后,电梯继续上升直至9层,让另一用户入梯。图6 分控制仿真波形4设计总结两周的课程设计,使我对EDA有了更多的了解。在编写主控制器程序时,由于程序较为复杂,导致某些地方出现了一些问题,从而影响了仿真波形的准确性,为此我花费了大量的时间去纠正程序的错误。虽然我遇到了很大的困难,但当仿真出最终的波形时,又让我有一种成就感。在进行软件仿真和硬件仿真时,一定要细心,包括软件仿真的信号给定,硬件仿真的引脚锁定。在EDA课程设计的日子里,可以说是苦多于甜,不断地发现问题,不断地思考问题,并解决问题。不过,通过这些学到很多东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正达到为我们的生活服务为社会服务的目的。在设计的过程中遇到的问题,反映出来我的许多不足之处,我以后要努力克服缺点,提高自己的实际动手能力和独立思考的能力。总而言之,EDA课程设计的高层电梯控制器还是比较成功的。在设计中遇到了很多问题,但在老师的辛勤的指导下和同学们的帮助以及自己的努力之下,终于都得到了解决,这让我感觉平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。最后我要感谢那些在我遇到问题时是帮助过我的老师和同学们。参考文献1.孟庆海,张洲编.VHDL基础及经典实例开发.西安交通大学出版社,2008年2.杜建国.verilog HDL硬件描述语言.国防工业出版社,2004年3. Volnei A.Pedroni著.VHDL数字电路设计教程.电子工业出版社,2010年4.潘松,黄继业.EDA技术实用教程.科学出版社,2010.6.5.刘玉海.EDA技术课程设计.华中科技大学出版社,2009.5.附录-主控制器-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity maincontroller isport(clk: in std_logic; switch: in std_logic; close: in std_logic; delay: in std_logic; sel,uplift,downlift:in std_logic_vector(16 downto 1); qout: out std_logic_vector(16 downto 1); opendoor:out std_logic);end maincontroller;architecture bhv of maincontroller is component counter is port(clk: in std_logic; preset:in std_logic; clr:in std_logic; en:in std_logic; q:out std_logic_vector(2 downto 0);end component;type statetype is(stop,pause,up,midup,down,middown);signal state:statetype;signal clk4hz:std_logic;signal clk1hz:std_logic;signal ur:std_logic;signal dr:std_logic;signal enrun:std_logic;signal enstop:std_logic;signal enstop1:std_logic;signal clrrun:std_logic;signal clrstop:std_logic;signal urr:std_logic_vector(16 downto 1);signal drr:std_logic_vector(16 downto 1);signal position:std_logic_vector(16 downto 1);signal uplift_d:std_logic_vector(16 downto 1);signal downlift_d:std_logic_vector(16 downto 1);signal sel_d:std_logic_vector(16 downto 1);signal runtime:std_logic_vector(2 downto 0);signal opentime:std_logic_vector(2 downto 0);signal openonce:std_logic;signal voidpreset:std_logic;begin qout = position; U0:process(clk) variable cnt:integer range 0 to 4; begin if(clkevent and clk=1) then if(cnt = 4) then clk4hz=1; cnt:=0; else clk4hz= 0; cnt:= cnt+1; end if; end if;end process;U1:process(clk4hz)variable num:integer range 0 to 3; begin if(clk4hzevent and clk4hz=1) then if(num = 3) then clk1hz=1; num:= 0; else clk1hz=0; num:= num + 1; end if; end if;end process;U2:process(switch,clk,uplift,downlift) begin if(clkevent and clk=1) then uplift_d= uplift; downlift_d= downlift; sel_d = sel; end if;end process;U3:process(switch,clk,uplift,downlift) begin if(clkevent and clk=1) then if(state = pause) then drr= drr and not(position); urr uplift) then drr downlift) then drr = drr or downlift; elsif(uplift/= uplift_d and dr/=1 and position uplift) then urr = urr or uplift; elsif(downlift/= downlift_d and dr/=1 and position downlift) then urr = urr or downlift; elsif(sel/=sel_d) then if(sel position and ur/=1) then drr position and dr/=1) then urr = urr or sel; end if; end if; elsif(state = up or state = midup) then if(uplift/= uplift_d and dr/=1 and position uplift) then urr downlift) then drr= drr or downlift; end if; end if; end if; end process; ur = 1 when urr/=0000000000000000 else 0; dr = 1 when drr/=0000000000000000 else 0;U4:process(switch,clk) begin if(switch=0) then state= stop; opendoor =0; openonce state if(opentime=000 and openonce =0 and (ur=1 or dr=1) or (uplift/=uplift_d and position = uplift) or (downlift/=downlift_d and position = downlift) then opendoor =1; clrstop=0; enstop1=1; end if; if(opentime=101 or (openonce=1 and (ur=1 or dr=1) then if(ur=1) then state = up; opendoor = 0; enstop1= 0; clrstop=1; openonce=0; elsif(dr=1) then state = down; opendoor = 0; enstop1= 0; clrstop=1; openonce=0; else state = pause; opendoor = 0; enstop1= 0; clrstop=1; openonce if(runtime =100) then enrun=0; clrrun=1; if(position = (urr and position) then state=pause; else state= midup; end if; else clrrun=0; enrun state if(runtime=100) then clrrun=1; enrun=0; if(position = (drr and position) then state= pause; else state= middown; end if; else clrrun=0; enrun state= down; end case; end if; end process;U5:process(switch,clk4hz,delay) begin if(switch=0) then position=0000000000000001; elsif(clk4hzevent and clk4hz=1) then enstop= not(delay) and enstop1; if(runtime=001) then if(state= up) then position= position(15 downto 1) &0; elsif(state = down) then position=0 & position(16 downto 2); end if; end if; end if; end process; voidpreset clk4hz,preset=voidpreset,clr=clrrun,en=enrun,q=runtime); door_timer: counter port map(clk= clk1hz,preset=close,clr=clrstop,en=enstop,q=opentime);end bhv;-计数器-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter isport ( clk: in std_logic; preset: in std_logic; clr: in std_logic; en: in std_logic; q: out std_logic_vector( 2 downto 0);end;architecture bhv of counter issignal temp: std_logic_vector( 2 downto 0);begin q=temp;process( clk,preset,clr,en)begin if clr=1 then temp=000; elsif rising_edge( clk) then if preset =1 then temp=101; elsif en=1 then if temp=101 then temp=temp; else temp=temp+1; end if; end if; end if;end process;end;-分控制器程序-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity subcontroller isport(clk:in std_logic;switch:in std_logic;qin:in std_logic_vector(16 downto 1);opendoor:in std_logic;upkey:in std_logic;downkey:in std_logic;ur:out std_logic;dr:out std_logic;disp0:out std_logic_vector(3 downto 0);disp1:out std_logic_vector(3 downto 0);end subcontroller;architecture bhv of subcontroller isconstant id:std_logic_vector(16 downto 1):=0000000000001000;signal upkey_d:std_logic;signal downkey_d:std_logic;signal opendoor1:std_logic; signal opendoor2:std_logic;signal opendoor_r:std_logic; signal ur_r:std_logic; signal dr_r:std_logic;signal disp:std_logic_vector(7 downto 0);beginprocess(clk)beginif rising_edge(clk) thenupkey_d=upkey;downkey_d=downkey;opendoor2=opendoor1;opendoor1=opendoor;end if;end process;opendoor_r=opendoor1 and not(opendoor2);process(switch,clk)beginif switch=0 thenur_r=0;dr_r=0;elsif rising_edge(clk) thenif opendoor_r=1 and qin=id thenur_r=0;dr_r=0;elsif upkey=1 and upkey_d=0 thenur_r=1;elsif downkey=1 and downkey_d=0 thendr_r=1;end if;end if;end process;ur=ur_r;dr=dr_r;with qin selectdisp=00000001when0000000000000001, 00000010when0000000000000010, 00000011when0000000000000100, 00000100when0000000000001000, 00000101when0000000000010000, 00000110when0000000000100000, 00000111when0000000001000000, 00001000when0000000010000000, 00001001when0000000100000000, 00010000when0000001000000000, 00010001when0000010000000000, 00010010when0000100000000000, 00010011when0001000000000000, 00010100when0010000000000000, 00010101when0100000000000000, 00010110when1000000000000000, 00000000when others;disp0=disp(3 downto 0);disp1=disp(7 downto 4);end bhv;袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂

温馨提示

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

评论

0/150

提交评论