




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 33摘要本论文阐述了利用PLC控制技术结合气动技术、传感器技术、光电感应器的应用、气缸的应用和位置控制技术等,并运用PLC的硬件设计以及软件编程,来实现对金属和塑料两种材料进行自动分拣的控制装置。该系统的通用性极强,可靠性好,程序开发简单,可适应进行材料分拣生产线的需求。 目前自动分拣已逐渐成为主流,这种装置是由接受分拣指示情报的控制装置、计算机网络,把到达分拣位置的货物送到别处的的搬送装置。由于全部采用机械自动作业,因此,分拣处理能力较好,分拣分类数量也较多。关键词:PLC , 金属 , 塑料分拣 , 梯形图编程目录绪论第一章 自动分拣系统简介及设计 1 自动分拣系统的简
2、介2 方案设计第二章 硬件电路设计1 总体结构及原理分析 2 传感器的工作原理 2.1 电感式传感器 2.2 电容式传感器 3 三相异步电机的工作原理 4 电磁阀的工作原理 5 光电感应器的工作原理6 气缸的作用第三章 可编程控制器1 PLC的选择 2 PLC的结构及工作原理3 PLC输入、输出口的分配 4 自动分拣装置输入、输出接线图5 系统控制流程图6 系统控制的梯形图结束语致谢参考文献绪论 随着社会的不断发展,市场的竞争也越来越激烈,因此各个生产企业都迫切地需要改进技术,提高生产效率,尤其在需要进行材料分拣的企业,以往一直采用人工分拣的方法,致使生产效率低,生产成本高,企业的竞争能力差,
3、材料的自动分拣已成为企业的选择。利用计算机技术对生产线上的分拣设备进行智能化控制是一种既能节约成本,又能提高生产效率的方法。现今社会科技发展迅速,各个行业不断创新突破。随着人们生活的需要,PLC的应用已经渗透到了国民经济的各个领域,本系统是利用可编程控制器(PLC)控制金属、塑料自动分拣装置,以PLC为主控制器,结合气动装置、传感技术、位置控制等技术,实现现场控制产品的自动分拣。系统具有自动化程度高、运行稳定、精度高、易控制的特点,可根据不同对象,广泛应用于生活的各个场所。第一章 自动分拣系统的简介及设计1 自动分拣系统的简介自动分拣系统一般由控制装置、分类装置、输送装置及分拣道口组成。 控制
4、装置的作用是识别、接收和处理分拣信号,根据分拣信号的要求指示分类装置、按材料性质自动分类。这些分拣需求可以通过不同方式,如可通过条形码扫描、色码扫描、键盘输入、重量检测、语音识别、高度检测及形状识别等方式,输入到分拣控制系统中去,根据对这些分拣信号判断,来决定某一种材料该进入哪一个分拣道口。 分类装置的作用是根据控制装置发出的分拣指示,当具有相同分拣信号的材料经过该装置时,该装置动作,使改变在输送装置上的运行方向进入其它输送机或进入分拣道口。分类装置的种类很多,一般有推出式、浮出式、倾斜式和分支式几种,不同的装置对分拣材料性质等有不完全相同的要求。 输送装置的主要组成部分是传送带或输送机,其主
5、要作用是使待分拣材料通过控制装置、分类装置,并输送装置的两侧,一般要连接若干分拣道口,使分好类的材料滑下主输送机(或主传送带)以便进行后续作业。 分拣道口是已分拣商品脱离主输送机(或主传送带)进入集货区域的通道,一般由钢带、皮带、滚筒等组成滑道,使商品从主输送装置滑向集货站台,在那里由工作人员将该道口的所有商品集中后或是入库储存,或是组配装车并进行配送作业。 以上四部分装置通过计算机网络联结在一起,配合人工控制及相应的人工处理环节构成一个完整的自动分拣系统。2 方案设计思路 PLC控制金属塑料自动分拣的装置,具有较高的能动性。采用光电感应器来控制识别金属和塑料的材料性质,控制系统中加入气缸,采
6、用推出式的分类金属和塑料,再用传送带来传送,在传送带同侧有两个分拣道口,利用气缸将金属和塑料推出各自的分拣道口,而每个气缸的动作时有光电感应器所判别出的信号来控制的,此控制系统的控制原理如下:(1)由按钮SB4作系统的待机控制,按下SB4,系统进入待机状态;若此时各部件处于复位状态,待机指示灯(绿色)发光。只有在待机指示灯(绿色)正常发光后,系统才能开始下料运行。待机指示灯(绿色)只作系统通电后按下SB4的待机状态指示灯用,系统运行后应熄灭。( 2 ) 由按钮SB5作系统正常停止控制。按下SB5,系统立刻提示停止下料(红色指示灯发光),同时系统在完成传送带上的工件分拣后停机。(3)下料时,要求
7、工件每隔2S下料一次(每次下料一个),以保证工件的分拣。每次下料后,停止下料指示灯(红色)都会发光,每次发光2S后熄灭;红色指示灯熄灭的同时下料指示灯(黄色)发光,提示可以下料。但若在黄色指示灯发光3S后仍未下料,黄色指示灯就会发生闪烁(每秒闪光2次),以提示缺料,直至下料后才恢复正常指示。第二章 硬件电路设计1 总体结构及原理分析自动分拣系统由光电感应器、电感式传感器、电容式传感器、三相异步电动机和气缸等元器件组成。原理分析:当光电感应器(1)检测到工件后,三相异步电动机给传送带提供动力,传送带带动工件开始运动,光电感应器检测到的是金属材料时,如图位置的电感式传感器接收信号,气缸A动作将金属
8、工件推向出料口,当检测到的是塑料材料时,图中位置的电容式传感器接收信号,使气缸B动作,将塑料工件推向出料口。依次反复,将构成金属、塑料的自动分拣系统2 传感器的工作原理2.1电感式传感器电感式接近开关属于有开关量输出的位置传感器,用来检测金属物体。 它由LC 高频振荡器和放大处理电路组成,利用金属物体在接近这个能产生电磁场的振荡感应时,使物体内部产生涡流。这个涡流反作用于接近开关,使接近开关振荡能力衰减,内部电路的参数发生变化。由此,可识别出有无金属物体接近,进而控制开关的通或断。本系统选用M18X1X40 DC 电感传感器,原理图如下:此类传感器的优点:(1)无活动触点、可靠度高、寿命长;(
9、2)分辨率高、灵敏度高;(3)线性度高、重复性好,测量范围大;(4)无输入时有零位输出电压,引起测量误差;(5)适用于低频动态测量。2.2 电容式传感器电容传感器也属于具有开关量输出的位置传感器,是一种接近式开关。 它的测量头通常是构成电容器的一个极板,而另一个极板是待测物体的本身。当物体移向接近开关时,物体和接近开关的介电常数发生变化,使得和测量头相连的电路状态也随之发生变化。由此,便可控制开关的接通和关断。原理图如图电容式传感器的感应由两个同轴金属电极构成,这两个电极构成一个电容,串联在RC振荡回路内。电源接通时,RC振荡器不振荡,当一个目标朝着电容器的电极靠近时,电容器的容量增加,使振荡
10、器开始振荡,通过后级电路的处理,将停振和振荡两种信号转换成开关信号,从而起到检测有无物体存在的目的。该传感器能检测金属物体,也能检测非金属物体,对金属物体可以获得最大的动作距离,对非金属物体动作距离决定于材料的介电系数,介电系数越大,获得的动作距离越大。当一个目标靠近时,电容式传感器的电流消耗随之增加。本系统选用的是E2K-X8ME1电容式传感器,原理图如下:此类传感器的优点:(1)测量范围大,灵敏度高。(2)质量小,动态响应快,固有频率高,高频特性。(3)稳定性好,过载能力大。(4)结构简单,对环境适应性强。3 三相异步电动机的工作原理三相交流异步电动机是一种将电能转化为机械能的电力拖动装置
11、。它主要由定子、转子和它们之间的气隙构成。当给电动机的三相定子绕组(各相差120度电角度)通入三相交流电源后,将产生一个旋转磁场。该旋转磁场切割转子绕组,在转子绕组中产生感应电流(转子绕组是闭合通路),载流的转子导体在定子旋转磁场作用下将产生电磁力,从而在电动机转轴上形成电磁转矩,使转子朝着旋转磁场旋转的方向旋转。当向三相定子绕组中通入对称的三相交流电时,就产生了一个以同步转速n1沿定子和转子内圆空间作顺时针方向旋转的旋转磁场。由于旋转磁场以n1转速旋转,转子导体开始时是静止的,故转子导体切割定子旋转磁场而产生感应电动势(感应电动势的方向用右手定则判定)。由于导体两端被短路环短接,在感应电动势
12、的作用下,转子导体中将产生与感应电动势方向基本一致的感应电流。转子的载流导体在定子磁场中受到电磁力的作用(力的方向用左手定则判定),电磁力对转子轴产生电磁转矩,驱动转子 沿着旋转磁场方向旋转。三相交流异步电动机具有结构简单、运行可靠、价格便宜、过载能力强及使用、安装、维护方便等优点,被广泛应用于各个领域。系统选用J0 H80355小型三相异步电动机,此类电动机为0.75315KW 外壳为封闭式,可防止灰尘、水滴侵入,用于无特殊要求的各种机械设备和运输机械等。4 电磁阀的工作原理电磁阀是用来控制流体的自动化基础元件,属于执行器;并不限于液压,气动。电磁阀是用于控制气体流动方向的,自动分拣装置一般
13、都由气缸控制,所以用到电磁阀。 工作原理 电磁阀里有密闭的腔,不同位置开有通孔,每个孔都通向不同的气管,腔中间是阀,两面是两块电磁铁,哪面的磁铁线圈通电阀体就会被吸引到哪边,通过控制阀体的移动来档住或漏出不同的排气的孔,而进气孔是常开的,气体就会进入不同的排气管,然后通过气体的压力来推动气缸的活塞,活塞又带动活塞杆,活塞竿带动机械装置动。这样通过控制电磁铁的电流就控制了机械运动。5 光电感应器的工作原理光电传感器的构成光电开关是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于
14、半导体光源,发光二极管(LED)和激光二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管或光电三极管组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。 此外,光电传感器的结构元件中还有发射板和光导纤维。6 气缸的作用及工作原理1气缸作用 1引导活塞在其中进行直线往复运动的圆筒形金属机件。工质在发动机气缸中通过膨胀将热能转化为机械能;气体在压缩机气缸中接受活塞压缩而提高压力。涡轮机、旋转活塞式发动机等的壳体通常也称“气缸”。 2气缸的应用领域:印刷(张力控制)、半导体(点焊机、芯片研磨)、自动化控制、机器人等等。3气压传动中将压缩气体
15、的压力能转换为机械能的气动执行元件。气缸有作往复直线运动的和作往复摆动的两类。2气缸工作原理气缸的运动速度主要由所驱动的工作机构的需要来决定。 要求速度缓慢、平稳时,宜采用气液阻尼缸或采用节流调速。节流调速的方式有:排气节流和进气节流。排气节流主要用于水平安装推力载荷中;进气节流主要用于垂直安装升举载荷中。用缓冲气缸可使缸在行程终点不发生冲击现象,通常缓冲气缸在阻力载荷且速度不高时,缓冲效果才明显。如果速度高,行程终端往往会产生冲击。设计中主要是通过直动性气缸将金属与塑料推入相应的斜槽中。第三章 可编程控制器1 PLC的选择可编程控制器通常也简称为可编程控制器,英文缩写为PC或PLC,是以微处
16、理器为基础,综合了计算机技术、自动控制技术和通信技术发展起来的一种通用的工业自动控制装置。它具有体积小、功能强、程序设计简单、灵活通用、维护方便等一系列的优点,特别是它的高可靠性和较强的适应恶劣工业环境的能力,更是得到了用户的好评,因而在冶金、能源、化工、交通、电力等领域中得到了越来越广泛的应用,成为现代控制的三大支柱(PLC、机器人和CAD/CAM)之一。设计中选用的PLC为:名称:三菱 PLC 型号: FX2N选用三菱 PLC FX2N的意义1)、 结构灵活不受环境的限制,有电即可组建网络,同时可以灵活扩展接入端口数量,使资源保持较高的利用率,在移动性方面可与WLAN媲美。 2)、 范围广
17、无所不在的电力线网络也是这种技术的优势。虽然无线网络可以做到不破墙,但对于高层建筑来说,其必需布设N多个AP才能满足需求,而且同样不能避面信号盲区的存在。而电力线是最基础的网络,它的规模之大,是其他任何网络无法比拟的。由此,运营商就可以轻松地把这种网络接入服务渗透到每一处有电力线的地方。这一技术一旦全面进入商业化阶段,将给互联网普及带来极大的发展空间。终端用户只需要插上电力猫,就可以实现因特网接入,电视频道接收节目,打电话或者是可视电话。 3)、 低成本充分利用现有的低压配电网络基础设施,无需任何布线,节约了资源。无需挖沟和穿墙打洞,避免了对建筑物、公用设施、家庭装潢的破坏,同时也节省了人力。
18、相对传统的组网技术,PLC成本更低,工期短,可扩展性和可管理性更强。目前国内已开通电力宽带上网的地方,其包月使用费用一般为50-80元/月左右,这样的价格和很多地方的ADSL包月相持平。 4)、 适用面广PLC作为利用电力线组网的一种接入技术,提供宽带网络“最后一公里”的解决方案,广泛适用于居民小区,酒店,办公区,监控安防等领域。它是利用电力线作为通信载体,使得PLC具有极大的便捷性,只要在房间任何有电源插座的地方,不用拨号,就立即可享受4.545Mbps的高速网络接入,来浏览网页拨打电话,和观看在线电影,从而实现集数据、语音、视频,以及电力于一体的“四网合一”。 综上所述,三菱 PLC FX
19、2N-32MR 是此设计(金属、塑料分拣装置自动化控制系统)的最佳选择。2 PLC的结构及工作原理1、PLC的基本结构世界各国生产的可编程控制器外观各异,但作为工业控制的计算机,其硬件结构都大体相同,主要由中央处理器(PLC)、存储器(RAM、ROM)、输入、输出器件(I/O接口)电源及编程设备几大部分构成。2、PLC的工作原理可编程控制器的工作原理与计算机的工作原理基本上是一致的,可以简单地表达为在系统程序的管理下,通过运行应用程序完成用户任务。但个人计算机与PLC的工作方式有所不同,计算机一般采用等待命令的工作方式,如常见的键盘扫描方式或I/O扫描方式,当键盘有键按下或I/O口有信号输入时
20、,中断转入相应的子程序;而PLC在确定了工作任务、装入了专用程序后成为一种专用机,它采用循环扫描工作方式,系统工作任务管理及应用程序执行都是以循环扫描方式完成。3 PLC输入、输出口的分配输入端:输出端:X0SB4(待机控制)Y0HL2(绿灯:待机提示)X1SB5(停机控制)Y1HL3(红灯:禁止下料提示)X2金属检测Y2HL1(黄灯:允许下料提示)X3塑料检测Y3三相异步电动机X5检测下料装置Y4气缸1Y5气缸2自动分拣装置输入、输出接线图系统控制流程图6 系统控制梯形图结束语本设计所采用的日本三菱可编程控制器的硬件配置和程序设计是完全可行的,在实际控制中,由于PLC产品自身具有可靠性高、灵
21、活性强、对工作环境无要求和抗干扰性能好等诸多优点,使之完全可以将操作人员从恶劣的现场环境中解放出来,因而深受用户欢迎。同时采用PLC控制金属塑料的自动分拣。该控制系统可用较少的资金投入,达到很高的控制精度,本设计已通过模拟仿真检验,有很好的推广价值。任何设计的控制系统都是要经过实践和时间的考验方能不断的完善,就如同我们做毕业设计,这毕业设计是我们所学知识的考验,也是对我们对知识综合运用能力的考验,更是对我们做一件事情态度的考验,经过设计我们应该学会认真、专心,更有毅力的做一件事情,这样我们在以后的工作和生活中才能经得起实践和时间的考验,我们才能走得更远。致谢本论文是在指导老师的悉心指导下完成的
22、,指导老师丰富的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。不仅使我掌握基本的研究方法,还使我明白了许多待人接物与为人处事的道里。在此,我谨向指导老师表示崇高的敬意和衷心的感谢!此外,在本论文的设计中,还受到了多位老师的帮助,他们无私奉献,兢兢业业、教书育人的态度打动了我,在此我也向在本论文设计过程中曾给予我帮助和指导的老师们说声谢谢!与此同时,还要感谢在论文设计过程中帮助过我的同学,在论文资料收集和试验期间,不管遇到什么困难同学们都主动给予帮助,在此也感谢他们!最后向我在学校中给予指导和帮助的老师和同学真挚的说声谢谢!也再一次感
23、谢我的指导老师!参考文献1白娟娟,郭军,PLC技术应用,北京理工大学出版社,20102张桂香,马全广,电气控制与PLC应用,化学工业出版社,20033杨旭东,王天杰,刘海等,PLC在机械手控制分拣控制系统中的应用,唐山学院,20004李国厚,PLC原理与应用设计M,北京化工工业出版社,20055孙同景,PLC原理及工程应用,机械工业出版社,20076周美兰,周封,王岳宇,PLC电气控制与组态设计,科学出版社,2003文档来源网络,版权归原作者。如有侵权,请告知,我看到会立刻处理。附录资料:不需要的可以自行删除 busybox详解制作根文件系统详解制作根文件系统 一、FHS(Filesystem
24、 Hierarchy Standard)标准介绍当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。该标准规定了根目录下各个子目录的名称及其存放的内容:目录名存放的内容/bin必备的用户命令,例如ls、cp等/sbin必备的系统管理员命令,例如ifconfig、reboot等/dev设备文件,例如mtdblock0、tty1等/etc系统配置文件,包括启动文件,例如inittab等/lib必要的链接库,例如C链接库、内核模块/home普通用户主目录/rootroot用户主目录/us
25、r/bin非必备的用户程序,例如find、du等/usr/sbin非必备的管理员程序,例如chroot、inetd等/usr/lib库文件/var守护程序和工具程序所存放的可变,例如日志文件/proc用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容/sys用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容/mnt文件系统挂接点,用于临时安装文件系统/tmp临时性的文件,重启后将自动清除制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:编译安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录 利用交叉编译
26、工具链,构建/lib目录 手工构建/etc目录 手工构建最简化的/dev目录 创建其它空目录 配置系统自动生成/proc目录 利用udev构建完整的/dev目录 制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。二、编译安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god, 这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀busybox,事情就简单很多。1、从 HYPERLINK / / 下载busybox-1.7.0.tar.bz22、tar
27、 xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分两部分。第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示编译busybox时,是否静态链接C库。我们选择动态链接C库。2)、Installation
28、 Options - Applets links (as soft-links) - (X) as soft-links,表示安装busybox时,将各个命令安装为指向busybox的软链接还是硬链接。我们选择软链接。3)、Installation Options - (/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安装位置。我们选择/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command line editing以支持命令行编辑;保留History siz
29、e以支持记忆历史命令;选中Tab completion和Username completion以支持命令自动补全 第二部分是Applets,他将busybox的支持的几百个命令分门别类。我们只要在各个门类下选择想要的命令即可。这里我们基本保持默认设置。1)选中Networking Utilities - httpd下的Enable -u option,以启用http服务器的功能allows the server to run as a specific user5、编译busyboxmake6、安装busyboxmake install安装完成后,可以看到在/work/nfs_root/fs_
30、mini3目录下生成了binsbinusr/binusr/sbin目录,其下包含了我们常用的命令,这些命令都是指向bin/busybox的软链接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsbin linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 addgroup - busyboxlrwxrwxrwx
31、1 dennis dennis 7 2010-04-03 23:57 adduser - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 749632 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC机上的ls命令就有差不多80K的大小: dennisdennis-desktop:/work/nfs_root/fs_mini3$ ls
32、 -l /bin/ls-rwxr-xr-x 1 root root 78004 2007-09-29 20:51 /bin/ls busybox以它娇小的身躯容纳了数以百计的命令代码,实在是让人佩服不已,其不愧嵌入式系统瑞士军刀之美誉。据说,busybox的作者身患绝症,这更让人钦佩GNU开源软件的作者们。 三、利用交叉编译工具链,构建/lib目录 光有应用程序(命令)是不够的,因为应用程序本身需要使用C库的库函数,因此还必需制作for ARM的C库,并将其放置于/lib目录。my god,要自己写C库的源代码吗?不用!还记得交叉编译工具链的3个组成部分吗?交叉编译器、for ARM的C库和二
33、进制工具。哈哈,for ARM的C库是现成的,我们只需要拷贝过来就可以了。遗憾的是:整个C库目录下的文件总大小有26M。而我们根文件系统所在分区不过区区16M而已,根本放不下。怎么办呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C库目录下所有的文件吗?no,absolutely no! 让我们来分析一下glibc库目录下内容
34、的组成。该目录下的子目录和文件共分8类: 目标文件,如crtn.o,用于gcc链接可执行文件 libtool库文件(.la),在链接库文件时这些文件会被用到,比如他们列出了当前库文件所依赖的其它库文件,程序运行时无需这些文件 gconv目录,里面是各种链接脚本,在编译应用程序时,他们用于指定程序的运行地址,各段的位置等 静态库文件(.a),例如libm.a,libc.a 动态库文件 (.so、.so.0-9*) 动态链接库加载器ld-2.3.6.so、ld-linux.so.2 其它目录及文件很显然,第1、2、3、4、7类文件和目录是不需要拷贝的。由于动态链接的应用程序本身并不含有它所调用的C
35、库函数的代码,因此执行时需要动态链接库加载器来为它加载相应的C库文件,所以第6类文件是需要拷贝的。除此之外,第5类文件当然要拷贝。但第5类文件的大小也相当大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ du -c -si *.so* 7.2M total 需要全部拷贝吗?非也,非也!其实,需要哪些库完全取决于要运行的应用程序使用了哪些库函数。如果我们只制作最简单的系统,那么我们只需要运行busybox这一个应用程序即可。通过执行 dennisdennis-desktop:/work/nfs_root
36、/fs_mini3$ arm-linux-readelf -a bin/busybox | grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3个库:通用C库(libc)、数学库(libm)、加密库(libcrypt),因此我们只需要拷贝这3个库的库文件即可。但是每个库都有4个文件,4个文件都要拷贝吗?当然不是。
37、 dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libcrypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.so - libcrypt.so.1lrwxrwxrwx 1
38、dennis dennis 17 2008-12-22 15:38 libcrypt.so.1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.alrwxrwxrwx 1 dennis dennis 9 2
39、008-12-22 15:38 libm.so - libm.so.6lrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 dennis dennis 2768280 2008-01-22 0
40、5:31 libc.a-rw-r-r- 1 dennis dennis 195 2008-01-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4个文件中的.a文件是静态库文件,是不需要拷贝的。另外3个文件是: 实际的共享链接库:libLIBRARY_NAME-GLIBC_VERSION.so。当然需要拷贝。 主修订版本的符号链接,指向实际的共享链接库:libLIBRARY_NAME.so.MAJOR_REVISION_VERSION,程序一旦链接了特定的链接库,将
41、会参用该符号链接。程序启动时,加载器在加载程序前,会检索该文件。所以需要拷贝。 与版本无关的符号链接,指向主修订版本的符号连接(libc.so是唯一的例外,他是一个链接命令行:libLIBRARY_NAME.so,是为编译程序时提供一个通用条目)。这些文件在程序被编译时会被用到,但在程序运行时不会被用到,所以不必拷贝它。关于共享库的2个符号链接的作用的特别说明:当我们使用gcc hello.c -o hello -lm编译程序时,gcc会根据-lm的指示,加头(lib)添尾(.so)得到libm.so,从而沿着与版本无关的符号链接(libm.so - libm.so.6)找到libm.so.6
42、并记录在案(hello的ELF头中),表示hello需要使用libm.so.6这个库文件所代表的数学库中的库函数。而当hello被执行的时候,动态链接库加载器会从hello的ELF头中找到libm.so.6这个记录,然后沿着主修订版本的符号链接(libm.so.6 - libm-2.3.6.so)找到实际的共享链接库libm-2.3.6.so,从而将其与hello作动态链接。可见,与版本无关的符号链接是供编译器使用的,主修订版本的符号链接是供动态链接库加载器使用的,而实际的共享链接库则是供应用程序使用的。通过以上分析,我们只需要拷贝3个库(每个库各1个主修订版本的符号链接和1个实际的共享链接库
43、)以及动态链接库加载器(1个符号链接和1个实体文件)。步骤如下:dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.
44、6/arm-linux/lib$ cp -l libcrypt.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_root/fs_mini3/libdennisdennis-des
45、ktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l ld-* /work/nfs_root
46、/fs_mini3/lib 四、手工构建/etc目录 /etc目录存放的是系统程序的主配置文件,因此需要哪些配置文件取决于要运行哪些系统程序。即使最小的系统也一定会运行1号用户进程init,所以我们至少要手工编写init的主配置文件inittab。busybox的inittab文件的语法、语义与传统的SYSV的inittab有所不同。 inittab文件中每个条目用来定义一个需要init启动的子进程,并确定它的启动方式,格式为:。例如:ttySAC0:askfirst:-/bin/sh 表示子进程要使用的控制台,若省略则使用与init进程一样的控制台 表示运行级别,busybox init程序
47、这个字段没有意义 表示init进程如何控制这个子进程 sysinit:系统启动后最先执行,只执行一次,init进程等待它结束后才继续执行其它动作 wait:系统执行完sysinit条目后执行,只执行一次,init进程等待它结束后才继续执行其它动作 once:系统执行完wait条目后执行,只执行一次,init进程不等待它结束 respawn:启动完once进程后,init进程监测发现子进程退出时,重新启动它 askfirst:启动完respawn进程后,与respawn类似,不过init进程先输出” Please press Enter to activate this console“,等用户
48、输入回车后才启动子进程 shutdown:当系统关机时 restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init进程接收到SIGUP信号时执行,先重新读取、解析/etc/inittab文件,再执行restart程序 ctrlaltdel:按下ctrl+alt+del键时执行,不过在串口控制台中无法输入它 表示进程对应的二进制文件。如果前面有-号,表示该程序是“可以与用户进行交互的”我们制作最简单的/etc/inittab文件,其内容如下::sysinit:/etc/init.d/rcS:askfirst:-/bin/sh:ctrlaltdel:/s
49、bin/reboot:shutdown:/bin/umount -a r 制作最简单的脚本程序文件/etc/init.d/rcS,其内容如下: #!/bin/shifconfig eth0 7修改shell脚本文件/etc/init.d/rcS的权限,以使其可被执行:# chmod a+x /etc/init.d/rcS五、手工构建最简化的/dev目录 在linux机器上,执行ls /dev可看到几百个设备文件,我需要手工创建它们吗?maybe,我只需要手工创建几个设备文件!我怎么知道我应该创建哪几个设备文件呢?管它呢,先看看开发板上可爱的linux的反应再说。 启动Linux操作系统,显示:
50、 VFS: Mounted root (nfs filesystem).Freeing init memory: 112KWarning: unable to open an initial console. 这说明,内核已经成功挂载根文件系统,但却未能成功启动第1个用户进程init。通过错误消息“unable to open an initial console”搜索内核源代码,找到init/main.c文件。748 static int noinline init_post(void)749 750 free_initmem();751 unlock_kernel();752 mark_r
51、odata_ro();753 system_state = SYSTEM_RUNNING;754 numa_default_policy();755 756 if (sys_open(const char _user *) /dev/console, O_RDWR, 0) 0)757 printk(KERN_WARNING Warning: unable to open an initial console.n);758 759 (void) sys_dup(0);760 (void) sys_dup(0);761 762 if (ramdisk_execute_command) 763 ru
52、n_init_process(ramdisk_execute_command);764 printk(KERN_WARNING Failed to execute %sn,765 ramdisk_execute_command);766 767 768 /*769 * We try each of these until one succeeds.770 *771 * The Bourne shell can be used instead of init if we are772 * trying to recover a really broken machine.773 */774 if
53、 (execute_command) 775 run_init_process(execute_command);776 printk(KERN_WARNING Failed to execute %s. Attempting 777 defaults.n, execute_command);778 779 run_init_process(/sbin/init);780 run_init_process(/etc/init);781 run_init_process(/bin/init);782 run_init_process(/bin/sh);783 784 panic(No init
54、found. Try passing init= option to kernel.);785 显然,内核错误是由175行不能打开/dev/console所致。通过查看已经安装好的linux机器的/dev/console设备文件,可知其是字符设备文件,主设备号为5,次设备号为1: dennisdennis-desktop:/work/nfs_root/fs_mini3/etc$ ls -l /dev/consolecrw 1 root root 5, 1 2010-04-08 08:40 /dev/console 因此,我们使用下面的命令创建它: HYPERLINK mailto:dennis
55、dennis-desktop:/work/nfs_root/fs_mini3/dev$ dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod console c 5 1 还需要创建其它设备文件吗?只有天知道!再看看linux的反应。 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit: cant open /dev/null: No such file or directory 这次我们有经验了,如法炮制,创建/dev/null设备文件:dennis
56、dennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod null c 1 3 再次重启开发板上的linux,显示 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate this console.starting pid 231,
57、tty : /bin/sh# 哈哈,我们成功了,终于可以K歌去了。六、创建其它空目录K完歌回来,继续战斗。dennisdennis-desktop:/work/nfs_root/fs_mini3$ mkdir home root proc sys tmp mnt var再次重启动开发板上的linux。咦,似乎有些问题。VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提升实力的珠宝鉴定师考试试题及答案
- 2024年咖啡师品牌建设试题及答案
- 2024年二级建造师考试创新试题及答案
- 基于案例的复习:咖啡师试题及答案
- 2024年记者证基础知识点试题及答案
- 多媒体设计师沟通技巧试题及答案
- 档案文化传承与管理试题及答案
- 初中物理浮力的计算题试题及答案
- 2024统计师考试内容与形式的变化试题及答案
- 2024珠宝鉴定师考试的职业发展机会试题及答案
- 7不甘屈辱 奋勇抗争-圆明园的诉说(教学设计)-部编版道德与法治五年级下册
- GB/T 20424-2025重有色金属精矿产品中有害元素的限量规范
- 2024年黑龙江省水利投资集团招聘笔试真题
- 2025年长沙轨道交通职业学院单招综合素质考试题库完美版
- 2025美国急性冠脉综合征(ACS)患者管理指南解读课件
- 国家开放大学电大《国际私法》形考任务1-5题库及答案
- 统编历史七年级下册(2024版)第7课-隋唐时期的科技与文化【课件】f
- 脑脊液检查11课件
- 医院股东章程范本
- 全国河大版(三起)小学信息技术第二册第3单元第9课《我是小导游-调整幻灯片版式》教学设计
- 2025年江苏省高职单招《职测》高频必练考试题库400题(含答案)
评论
0/150
提交评论