基于PLC的花样喷泉控制系统的设计_第1页
基于PLC的花样喷泉控制系统的设计_第2页
基于PLC的花样喷泉控制系统的设计_第3页
基于PLC的花样喷泉控制系统的设计_第4页
基于PLC的花样喷泉控制系统的设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文(设计)绪论1.1课题研究背景跟着都会历程进一步提高,花样喷泉能够在四周到处见到。比方广场,公园,社区等。花样喷泉这一种人工小天气,在火热夏季可能够轮到增加湿润同冷却功用;也能为水体来充氧气,有利于水体自己增添自己洁净地实力,起到避免水黑色气味的功用。

花样喷泉运转地灵动性是用来评估花样喷泉质量好坏的一个环节,且这个同花式喷泉的系统能彼此重视。花样喷泉能够按照本人的计划,策画林林总总的花式,加之光,可能够给带来一种完美的完美享用。1969年美国数字设置公司(DEC)开拓了天下上第一个可编程控制器,其次用在美国(GM)生产技术线上告成用。可是在那时只会举行逻辑运转,是以称可编程逻辑空置期,称它为PLC(programmablelogiccontroller)。到了70年月后末,陪同着微型电子技术和计算机的飞速生长,使PLC从开关量的逻辑节制扩展到数子控制和出产过程的控制地领域,真确成了一个电子计算机产业控制的汇编的程序,是以称之为可编程控制器,简它为PC(programmablecontroller)可是因为PC简易和自己计算机(programmablecomputer)批次混同,是以人们仍然惯用PLC做成可编程器的略写。1985年国际电工委员会(IEC)将PLC的界说如下:可编程控制器是一个举行数字运算的电子体系,它是专为在产业情况下的操纵而计划出来的产业控制器,自己采纳能够编程的内存储器,用于产业生产过程当中,用在其它的里面保存实行逻辑运转、递次把控、按时、算数及算术运算等这些指令的内部存蓄,也经过一定的数子或模仿的输入及输出,来对各样花式的机器来进行出产的过程的把控。PLC是继电器逻辑控制系统成长而来的一经升上产业主动化的三个大地撑持(PLC、ROBOT、CAD/CAM)的上面。这个可编程控制器,是以它带数学处置、递次掌控方面具备必需地上风。继电器控制系统在这两个功效当中起到了两种很重要的功用:(1)逻辑运算(2)弱电掌控强电。PLC是合主动控制技能,计算机技能和通信技术是来自于一个最新式地产业掌控装配,把它简易的叫作PLC。它是在合成的路线、计算机技术的底子上面展现出来的一中新式的产业掌控的配置。拥有1.机能可靠性高、抗滋扰的力量强的设计2.策画、安设简易,3.庇护的工作量少4.功效能力强、通用性能强5.建设的周期短,告成率也高6.体积也小,重力也轻、功损能力底等一些特色。拥有功效大、可靠机能强、建设机动、使用起来也很方便体积也不是很大、重量轻等长处,一经非常普遍地用在自动化把控的很多地点,而这个也已成为完成产业出产自动化的支撑的产物。和继电器——接触器的系统地对比来说系统越发的可靠;在价位上也是能与继电器——接触器控制体系来相互抗衡;容易于在现场变动流程;本实用新型使用、庇护、维修方便;可以直接推进电磁阀、接触器和等效执行器;执行器可以直接传送到中心决策机构;数据能够接着向中央数据处理体系来接着传用数据等。然后,设计PLC控制体系的花样喷泉,喷泉可用来促进业内的增长,这个能用来扩展PLC在操作的自动控制范畴,在经济与理论研发的方向上有必然价格。1.2课题设计的内容本计划将要在如下几方面来对花样喷泉的控制系统来举行研究和论证地。1、花式喷泉在类型方面的选型。综结了花式喷泉的种别和各种的类型和要点,在本策画中认真考虑能有三种喷水花式能够供其挑选;可以掌管每一根喷水管喷水地高度;当喷水时要有反射光线;能够按照分别的季候、不同的场所可以扭转喷泉喷水的格式。用各类水型及灯光,依照原来的组成把控程序的计划,经过计算机运转流程发来掌控讯号,让其水型和其灯光有着林林总总的转变。2、花式喷泉硬件系统的方案。本文课题策画的花样喷泉需要有高的灵活性和准确性,在花式喷泉的格层监测体系中当选用在产业自动控制上大批发挥的具备检查地精确度高、生命较长、机能较不变好的靠近,发挥感应器其中的开停量讯号输到PLC中从中来实现现场掌控。因为本课题的推广,需要在硬件体系的计划过程当中,需要重要琢磨经济实用、巩固、智能和优雅的花式喷泉。3、花样喷泉控制体系软件的策画。在当前PLC编辑措辞设计之中加入了梯状图,梯状图当中的程序编辑可直接地了解计划花式喷泉掌控的请求,西门子的s7-300编程软件编写的利用梯形图,这个软件有一个巨大的判断效果,能加速地搜索出阻塞的原由,在很大程度上地减少修理的时刻。

1.3课题设计的目的和意义跟着本国经济地加速成长,微型电子技术、计算机和自动控制地技术以及变频变速技术一样亦然获得到加速成长,交流变频变速技术一经进到一个新的世纪,其中的用处也将会是有大的广泛。并且有跟着我国都会化历程的迅速成长和人民的大批会聚情况亦然越来越重要,好的状况可以使心身更为高兴,作工效能也大大升高。此中喷泉也能够润湿四周氛围和削减尘土同时下降温度。喷泉的微小水滴同空气份子彼此之间碰撞,可能够发生大批量的负氧离子,它有利的改良本土的面目和促进住民的身心康健。可编程序控制器(PLC)因巩固稳定、布局化简易、本钱便宜、简朴好学、功效很大和用起来很便利一经成了操纵面很广、很遍及的通用性的产业掌控装备,成了现代产业自动化的重点的支撑中的一个。花式喷泉控制要接到配置简朴地操作,对应的体系组态地编程简朴,具备友好的人和机器的界面,装备了应有的程序库,加速了编程和它的调用得速率。经过PLC对流程的策画,大大抬高了喷泉的掌控水准,而且也大大改良了喷泉的形态。

2系统控制方案的决定2.1花式喷泉的描述喷泉是一个用水或其余液体来经由一个恒定的压力用喷嘴喷出来的具备特定的形体的主体,供应水的压力的正常会称之为水泵。在当代化得都市当中的喷泉形式已经是十分丰富。跟着建造物巨细同水压不同的变革,喷泉是高是矮、是珠是雾,魅力呈现。能够分为下列7种:(一)一个普通的喷泉:只要简朴的几种牢固水样和光,跟随着开关的打开和关闭用来掌控喷泉的运转、水样和光的转变。(二)程控的喷泉:用每种水样盒灯的光,遵照开始假定的序列组合举行把控程序的策画,经过计算机运转流程来弄出掌控的信号,从而使水样以及灯的光有着林林总总的转变。(三)音乐方面的喷泉:在程序把控喷泉的最初上面来插足了音乐,从而达到控制喷泉的一种体系,计算机经过对音频与MIDI讯息的一些判别,从而举行了译码和编码,最后才将讯号传出到了控制的体系当中,从而使喷泉的状态的变革与音乐坚持一致。(四)水幕激光喷泉:在水膜水喷头的激光枪发射的激光束,从激光把控体系程序控制的激光束,传出各种样式的图案,照在透明透亮的膜上,形成灿烂醒目的功用。(五)水珍珠喷泉:操纵特别产品视觉效果的声波喷射水进入的组装和组成的高速闪光频率。(六)游戏喷泉:称之为感应泉,喷泉的喷柱是依据旅游人地举措发生反馈,并且这类反响具备不准确性,是一种相互传动式地喷泉,强化文娱的状况。(七)跳跳喷泉:同时也叫光亮泉。这是个高技术的水景形状,水清澈地螺柱的水柱子的形状,一簇簇飞向天中,漫步飞舞。2.2PLC控制花式喷泉的长处1、从控制角度上面来看:PLC软布线,只需转变控制流程即可转变逻辑或增长功效。2、从工作方式上面来看:PLC串口工作,无需制约。3、从控制速率上面来看:PLC经过半导体掌控,速率是快点,无接触点,顾而无发抖一说。4、从按时、记数上面来看:PLC时钟脉冲经晶振发生,精准度高,调速范畴广;有记数功效。5、从可靠、隐蔽的外观上面来看:PLC没触点,生命长同时也有自己诊断效果,在这个过程可实行监控功效,它在实际操作和维修方面也很便利。2.3系统设计的基本步骤在花式喷泉地控制体系地策画进程傍边重点琢磨如下几点:1、深切相识和分辨技术前提和控制请求。2、确定I/O设备。依据花式喷泉把控体系地功效请求,肯定了所要的输入输出装备。在经常有的输入得设备当中就有按键和挑选开关等,常使的输出设备,如灯等。3、依照I/O点选择PLC的类型。4、分派I/0点,在这个PLC的输入输出点当中,体系的输入输出分派表和输入输出端之间的衔接图。5、策画喷泉梯形体系方案,依据作事策画出精密度来完全的梯形图地需求,这是全部花式喷泉体系策画的为工作中心。6、用流程输入PLC实行软件尝试,搜索毛病,使体系流程加倍完竣。2.4系统控制方案花式喷泉系统控制有以下方面:(一)1、2是外环形态的喷水管子,3是内圈形态的喷水管子,4为星状的喷水管。照明体系用三条歧路构成,分袂是绿色灯的歧路(在1,2间)、黄色灯的歧路(在2,3间)、赤色灯的支歧路(在3,4间)。(二)这喷泉有三种能选择的图案。摁下按键,喷泉即起首作事,按下截止按键,则截止喷水。通过选择开关实现喷泉的作事要领(即喷水设计)。(三)可以选择的花样喷泉有三种:第一个花样,4、3、2、1每两秒在水里面,再用水停15秒之后,再按1、2、3、4的递次隔2秒挨次喷水,然后又一起喷15秒后停止,这样规律轮回。第二个花样,1、3一起喷水,向后3秒后1、3停喷,一块儿2、4喷水,瓜代运转5次后1、2、3、4一块儿喷水,30秒后截止,借此顺序轮回。第三个花样,1、2、3、4按挨次喷水,向后2秒,而后一块儿喷30秒后1、2、3、4再区别向后2秒停喷,借此挨次轮回。(四)经过变频器能够掌管每个喷水管的高低。在第一个模式下,1、3管为缓慢向正转喷水,2、4管为中转速向正转喷水。(五)照明系统的控制:对照明系统选择按钮控制PLC的X5的输入,当必要的光的组合,将接通X5的输入端。这时可完成三路灯光的掌控,即3,4肆意一层喷水时,赤色灯亮;2喷水时,黄色灯亮;所有的喷头喷水时,绿色灯亮。图2-1花式喷泉池的状态图2.5花式喷泉控制系统原理图在喷泉系统之中,经过按钮开关的讯号来控制PLC;由于有4层喷水,所以只是用了一个变频器来控制。花式喷泉把控体系的事理图如图2-2所示:图2-2花式喷泉控制体系原理图3系统硬件设计3.1可编程逻辑控制器(PLC)的选型3.1.1PLC概述可编程控制器,英语称ProgrammableController,简叫PLC,在本策画之中选用PLC来作成它的名称。PLC是用在产业现场的电气控制器。它来于继电器把控技能同时也来自与电子计算机。它是在经过运转保存在存储中来把输入线路的物理过程获得的输入讯息,同时来变更成需求的输出讯息,继而再用输出线路地物理进程去达成对负载的掌控。PLC它源自于电子计算机当中,这个不同于以往的计算机。以往的计算机举行入出讯息变更的期间,它们很多只思量了讯息自己,进入物理进程的讯息不思考日常。PLC把信息的可靠性考虑进去,时效性强,具有实际使用的信息。极度地要琢磨如何顺应产业情况,如方便安置,方便修理以及抗滋扰等难题,入出讯息幻化及牢靠的物理达成,可说是PLC达现掌控的2个根本重点。PLC能够经过它的外部或通讯衔口与外面换取讯息。此中地功效要比继电掌管装配众的多、强大的多。PLC还有充足的指挥体系,有着广泛的I/0接点和通讯接点,在大含量的存储当中有牢靠的监控体系本身,同时也是具有以下的基本功效:①逻辑的处置功能;②内部程序存储;③确切的守时功效;④高速的计数功效;⑤中断处置(能达成各类表里中断)功效;⑥流程与数据保存功能;⑦网络通信功能;⑧自检测同自诊断功效。本来说,但凡通俗PC计算机可达成的功效,PLC几近也都能够做到。像PLC这样。有着充足的功效,是此外电控器所木有的,更能古板的继电掌控线路所不能对比的。丰盛的功效为PLC的普遍操纵供应的还可以,于此,也为主动门产业的长途化、讯息化及智能化缔造了条目。3.1.2PLC的选型在PLC体系策画时,起首应当肯定掌控计划,在接下来的作事之中就是PLC工程设计选型。工艺过程的特色和操纵需求是策画选择的重要根据,工程策画选择和预算时,应当精细辨别这个进程的特色、掌控需求,控制使命和范畴肯定所需的操纵和行动,而后凭着掌控需求,预算的输入和输出的点、所要地内存、PLC的功效必须得到绝对,外面设备的特征等,末了挑选有着高本能代价比的PLC和计划响应的控制体系。1.输入输出(I/O)点数的估算I/O点预算时该当琢磨的合适的剩余,凡是根凭据总的输入和输出的数量,再这个基础之上增长10%~20%的可以来增长它的剩余。在这个余量之后举动输入输出点数预算数据。2.存储器容量的估算内存大小是用硬件内存的巨细可编程控制器提供的,流程大小是用存储器之中用的巨细来操作内存单位的名称,流程的大小较小存储器大小。策画的时段,因为用户运用流程尚未编译,是以,流程大小在策画阶段是不能够确定的,所以,这个需在要程序调控以后才能够了解。为了计划之中的选择能力的过程中必须有一个对其预算,使用的内存容量,以取代。存储器内存大小的计算木有一个一定的公式,很多材料中给了差异地公式,在基础上是数字量I/O点的10到15倍,加之模仿I/O点的100倍,以这个数为内存的总字数(16位为一字),别的再按数的25%琢磨它的余量。是以本策画的PLC内存大小挑选可能保存2000条梯形图,如此才可在以今后的革新进程之中有富足的空间。3.控制功效的选择这个选择包含运转效能和控制效能与通讯效能。编程效效,诊断效率和用来处理的速度等。从这个策划所计划的要求来说,我们准备了以下的集中功效可以来挑选。(1)控制功能PLC重要用在连续的逻辑掌控之中,常采取单回路或多回路控制器办理模仿量的把控,把控的效果有时能采用聪慧输入输出单位达成该要的PLC,升高办理速率,节约了内存的大小。(2)编程功能离线编程形式:PLC和编程器两个一起使同一个CPU,如果编程器在编程形式地时候,CPU可以只为编程器供应做任何事,不必负责对当场装备举行掌管。编译达成之后编程器能换到运转形式,CPU对当场配置实施监管并不能举行编程。离线的编程式样可消沉体系本钱,然则利用和调用不便当。一个编程状态;主机CPU能把控当场,也在一扫描期间中同编程器维持数据互换这样编程器会把在线编用的流程或数据发送到乐主机之中,来到下一扫视期间,主机就会依照刚刚收到的程序来运转。不过这种方式的本钱可能会较高,然则体系调试和操作简易并且也会在大中型的PLC之中经常会被采用。五个达标地编程言语:递归函数图(SFC)、梯形图(LD)、功能块图(FBD)三图形举措和语句表(IL)、文本建设(ST)两种文本举措。采用的编程言语该当遵照其尺度(IEC6113123),还应当撑持很多举措编译方法,像C,Basic等,用来知足特别控制场所的把控请求。(3)诊断的功能PLC的诊用功效含着硬件地诊用和软件地诊用。硬件地诊用由硬件的逻辑判别来肯定硬件的妨碍地方,软件地诊用分里面诊用和外面诊用。在软件的里面功效和PLC诊用的有效性备称之为内部的诊断,由软件对PLC当中的CPU和外面的输入输出组件等部位讯息来换功效举行诊用是外部诊用。PLC的诊断功效的高低能接着影响对操纵和庇护工人技能实力的掌握,这样子也会影响维修。(4)机型的选择在挑选了输入/输出点了以后,挑选了内存容量,拣选了相应的I/O周期的输出负载挑选的特点。控制系统采用西门子公司S7-300系列PLC。它本实用新型面积小,重量轻借用生命长,编程和庇护利便,故障率低,经过来扩大模式当中的衔接,能够增添输入/输出点。我自己计划的花样喷泉样子总共6个输入和11个输出样式,采用样号为S7-300的PLC。3.2变频器的选型我策画地是经过变频器调能来控制喷水管的上下。我自己采用的是fr-S520(S)E系列变频调速器。其中真实的图如图3-1示。图3-1FR-S520(S)E系列变频调速器的真实图片3.3水泵的选择因为在喷泉之中的水泵必需满意大功率能够可以迅速明确的来起和停,并且此中的输出的功率一定可以精准的举行把持。我采用品牌为DESHB(德士比)的QYP100-4.5-2.2喷泉泵。具备如下长处:布局紧凑;无需引水、利用简洁;双端密封、电器庇护;计划公道、机能杰出;经久耐用、安全可靠。而且水泵出口采纳圆法兰布局,机电为F级绝缘,合用于音乐喷泉等局面对电机一再驱动的请求.叶轮具备防松装配。3.4硬件接线图PLC和硬件两个之间的连下图体。详细的如图3-2,3-3所示:图3-2硬件接线图图3-3变频器跟水泵的接线图3.5I/O分配表表3.1输入序号输入说明1M20.2选择开关1的位置2M20.3选择开关2的位置3M20.4选择开关3的位置4M20.0花样1的开始5M20.1花样1的结束6M21.0花样2的开始7M21.1花样2的结束8M22.0花样3的开始9M22.1花样3的结束表3.2输出序号输出说明1Q0.11管喷水2Q0.22管喷水3Q0.33管喷水4Q0.44管喷水

4系统软件设计4.1PLC梯形图概述梯形图是最早备称作为PLC的第一个编程举措的图样编程语言。梯形图合电气控制体系间的线路图很相通,它们有直觉易懂的长处,很好被工场地电气工人掌管,独特地用在开关量的逻辑把持。梯形图常称作线路或是程序计划,梯形图的策画叫作程序计划。PLC梯形图中的一些编程元素挨次为继电气的标题,如是输入继电气、输出继电器、在内部协助继电气等,然则它们没有真的物理继电器,是少许的内存单位(软继电器),每个软继电器和PLC存储器中反映寄存器的一个内存单位来相较于。这内存单位如是“1”状况,那意见梯形图中对映软继电器中的圈子“上电”,其常开触点能接上,它的常闭触点会断裂,称这状况是这软继电器的“1”或“上”状态的软继电气。如是该内存单位为“0”的形态,对应软继电器的线圈状况和接触的状况与上面的互异,这就意味着这软继电器是“0”或“关”状况。操纵中的这个“软继电器”称做编程元素。梯形图旁侧的笔直大众线称之为母线(Busbar)。在剖析逻辑梯形图中逻辑的相关当中,为合计着继电器线路图的使用法子,可想到旁边两侧母线(左、右母线)间有一个左是正而右是负的直流电源电压,母线之间有“能流”从左到右总线走动。右母线可不画。依据梯形图中每个接点的形状和逻辑联系,得到图中各导线对照的编程元的状况,叫做梯形图的逻辑解。梯形图中逻辑解是从左到右、由上来下的递次举行的。运算的成果,顿时能被背面的逻辑解算所行使。逻辑解决方案是由输入图像寄存器的值,不凭据来计算瞬间外部进入联系人的外形。4.2S7-300编程软件的操作方法本策画采纳的编程软件为S7-300编程软件,详细的操纵法子以下:1.开启S7-300/WIN-C编程软件,此后敲击,在向下的菜单栏里敲击“新文件(N)…”,再挑择,肯定开启后就能够描制梯形图编本策画的流程。2.在开启文件了以后就能够画出梯形图,依据所编的流程的,在画面右边的功效图。在描制梯形图中挑择必要的输入部件,落成对梯形图的描制。实现了对梯形图的描制后,在软件的菜单栏中开启,并在下伸菜单中的“寄存器(R)..数据传递”的子栏之中用这个挑选“绘出”,将流程编到西门子S7-300。4.3系统工作过程分析(见附录一)1.按下开始按钮和灯光控制按钮,开始来运行。2.按下位置按钮2,是第一个图案喷泉。3.按位置开关3,这是第二种模式喷泉。4.按下位置开关4,这是喷泉的第三种模式。5.不管是什么样喷泉,只须当第三或第四肆意一层喷出水的期间,黄登亮;当第二层喷出水的期间,红登亮;当全部地喷出水时,绿颜色的灯亮。6.按下停止按钮,则运行结束。4.4控制系统程序设计4.4.1花式喷泉的第一种花样在入选按键2的地方的时刻,喷泉运转第一个花式:4、3、2、1隔2秒挨次喷水,一块儿喷水15秒以后截止,由1、2、3、4的下一段递次隔2秒逐次喷水之后,接着一块儿喷15秒后截止,用着顺序轮回。1、3管用缓慢顺转喷水时,2、4管以中转速顺转喷水的时候。当第3或第4肆意一层喷水时,黄登亮;在第2层喷水时,红登亮;当全部喷水时,绿灯亮。:4.4.2花式喷泉的第二种花样在打开按键3的地方时刻,喷泉第2个花样:1、3一块儿喷水,延时3秒后1、3停喷,届时2、4喷水,1、2、3、4一块儿喷水,30秒之后停止,为此来借此轮回。1、3管用缓慢速度顺转喷水时,2、4管以中转速顺转喷水时。当第3或第4肆意一个喷水的时刻,黄登亮;当第2层喷水的时刻,红登亮;当全部喷水的时候,绿色的灯亮。4.4.3花式喷泉的第三种花样在备选按键4的地方时刻,第3个花样:1、2、3、4按次序向后2秒喷水,而后一块儿喷30秒后1、2、3、4后分别向后2秒停喷,借此挨次轮回。1、3管缓慢速度顺转喷水时,2、4管以中转速顺转喷水时。当第3或第4肆意一个喷射的时刻,黄登亮;当第2层在喷水的时刻,红登亮;当全部喷水的时候,绿色的灯亮。见图4-3所示:4.4.4组态画面的制作这次摘选的画面大小,适应整个规模,型号是15寸,最为重点的是主要级别的是CPU370.形态像下图:图4-1面板图4.4.5画面绘制最终的画面模拟如下图:图4-2画面模拟图通过控制面板去把控右图系统的运转,系统自己是能动的,可以用按钮进行随意起动随意停止,运行再不同样式的时候,水泵的颜色就会发生变换,也能够随时的停止直至过程完成,停止即可。

结论本体系重要以可编程控制器PLC和变频器为中枢,利用可编程控制器PLC和变频器的巨大的掌管功效,达成了操纵可编程控制器和逆变器把持花式喷泉的功效达到,布线简朴的特色直接的编程和易于扩大。在增加花式喷泉效果时,有必要扩大I/O扩展样块。本来的用线不用转变,软件上只需增添响应流程同输出的功效,要转变的地点也是少。此外,调试后果解释,在证明适应性、灵活性、准确性和可靠性等一些方面是能的,也是达到了这个计划的要求,表明这次策画方案是能进行的。经过这策画,我研习到不少知识,在作事的经心上也得到升高。而且,也了然地知道相关可编程控制器和变频器的功效。我选取这次计划,亦然为填补之前进修上的不够。此次策画,让我知道到导师的良苦用心,而且从导师那学到良多贵重的知识。

致谢在做论文的期间当中导师的学习立场和小心谨慎的做事精力给了我深入的启迪,也给了我大的震动。此外,导师时常给予我讲授陌地不懂得知识,教我如何着手,使我可很快的落成论文。也要感激系里别的的导师的指点,给了我大的辅助。于此,对导师在作事和平时中赋予的指点和关切予以最热诚的谢意。借此在这还感激我们系里面老师给我们的关切和辅助,谢谢老师们的帮忙。感谢系里面其他的很多同学在这一次的设计中给我提供的不少的支持以及帮助。我们行将毕业,在此,再次向这二年之中在学习同平时之中赋予过我辅助的老师和同窗道谢。

参考文献[1]郭艳萍,李晓波.PLC在花式喷泉控制中的应用[J]漯河职业技术学院学报(综合版),2003[2]齐从谦.PLC技术及应用[M].北京:机械工业出版社,2002.[3]王红.可编程控制器使用教程[M].北京:电子工业出版社,2003.[4]殷培峰.基于PLC喷泉控制系统的设计与应用[J].兰州石化职业技术学院学报,2006,6[5]张桂香.电气控制与PLC应用[M].北京:化学工业出版社2003.[6]郁汉琪1机床电气及可编程控制器实验、课程设计指导书[M]北京:电子工业出版社,2002[7]日本三菱公司.FX系列PLC编程手册[Z].1999[8]吴中俊,黄永红主编,可编程序控制器原理及应用,机械工业出版社,2004;[9]陈在平,赵相宾主编,可编程序控制器技术与应用系统设计,机械工业出版社,2002;[10]江月山,黄久松编著.《数字化社区智能技术产业链导论》,中国建筑工业出版社,2003.5[11]柳春生编.西门子PLC应用与设计教程【M】.第1版.北京:机械工业出版社,2011[12]王永华编.现代电气控制及PLC应用技术【M】.第3版.北京:航空航天大学出版社,2013[13]郑凤翼、金沙编.图解西门子S7-200系列PLC应用88例【M】.第1版.北京:电子工业出版社,2009[14]陈浩编.案例解说PLC、触摸屏及变频器综合应用【M】.第1版.北京:中国电力出版社,2007[15]廖常初、陈晓东编.西门子人机界面【M】.第2版.北京:机械工业出版社,2008

附录 附录资料:不需要的可以自行删除busybox详解制作根文件系统详解制作根文件系统一、FHS(FilesystemHierarchyStandard)标准介绍当我们在linux下输入ls

/的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。该标准规定了根目录下各个子目录的名称及其存放的内容:目录名存放的内容/bin必备的用户命令,例如ls、cp等/sbin必备的系统管理员命令,例如ifconfig、reboot等/dev设备文件,例如mtdblock0、tty1等/etc系统配置文件,包括启动文件,例如inittab等/lib必要的链接库,例如C链接库、内核模块/home普通用户主目录/rootroot用户主目录/usr/bin非必备的用户程序,例如find、du等/usr/sbin非必备的管理员程序,例如chroot、inetd等/usr/lib库文件/var守护程序和工具程序所存放的可变,例如日志文件/proc用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容/sys用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容/mnt文件系统挂接点,用于临时安装文件系统/tmp临时性的文件,重启后将自动清除

制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录利用交叉编译工具链,构建/lib目录手工构建/etc目录手工构建最简化的/dev目录创建其它空目录配置系统自动生成/proc目录利用udev构建完整的/dev目录制作根文件系统的jffs2映像文件下面就来详细介绍这个过程。二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,mygod,这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。1、从/下载busybox-1.7.0.tar.bz22、tarxjvfbusybox-1.7.0.tar.bz2解包3、修改Makefile文件175ARCH

?=arm

176CROSS_COMPILE

?=arm-linux-4、makemenuconfig配置busyboxbusybox配置主要分两部分。第一部分是BusyboxSettings,主要编译和安装busybox的一些选项。这里主要需要配置:1)、BuildOptions--BuildBusyBoxasastaticbinary(nosharedlibs),表示编译busybox时,是否静态链接C库。我们选择动态链接C库。2)、InstallationOptions--Appletslinks(assoft-links)--(X)assoft-links,表示安装busybox时,将各个命令安装为指向busybox的软链接还是硬链接。我们选择软链接。3)、InstallationOptions--(/work/nfs_root/fs_mini3)BusyBoxinstallationprefix,表示busybox的安装位置。我们选择/work/nfs_root/fs_mini34)BusyboxLibraryTuning。保留Commandlineediting以支持命令行编辑;保留Historysize以支持记忆历史命令;选中Tabcompletion和Usernamecompletion以支持命令自动补全第二部分是Applets,他将busybox的支持的几百个命令分门别类。我们只要在各个门类下选择想要的命令即可。这里我们基本保持默认设置。1)选中NetworkingUtilities--httpd下的Enable-u<user>option,以启用http服务器的功能allowstheservertorunasaspecificuser5、编译busyboxmake6、安装busyboxmakeinstall安装完成后,可以看到在/work/nfs_root/fs_mini3目录下生成了binsbinusr/binusr/sbin目录,其下包含了我们常用的命令,这些命令都是指向bin/busybox的软链接,而busybox本身的大小不到800K:dennis@dennis-desktop:/work/nfs_root/fs_mini3$ls

bin

linuxrc

sbin

usr

dennis@dennis-desktop:/work/nfs_root/fs_mini3$

ls-lbin

total740

lrwxrwxrwx1dennisdennis

72010-04-0323:57addgroup->busybox

lrwxrwxrwx1dennisdennis

72010-04-0323:57adduser->busybox

lrwxrwxrwx1dennisdennis

72010-04-0323:57ash->busybox

-rwxr-xr-x1dennisdennis7496322010-04-0323:57busybox

lrwxrwxrwx1dennisdennis

72010-04-0323:57cat–>busybox而普通PC机上的ls命令就有差不多80K的大小:dennis@dennis-desktop:/work/nfs_root/fs_mini3$ls-l/bin/ls

-rwxr-xr-x1rootroot780042007-09-2920:51/bin/lsbusybox以它娇小的身躯容纳了数以百计的命令代码,实在是让人佩服不已,其不愧嵌入式系统瑞士军刀之美誉。据说,busybox的作者身患绝症,这更让人钦佩GNU开源软件的作者们。三、利用交叉编译工具链,构建/lib目录光有应用程序(命令)是不够的,因为应用程序本身需要使用C库的库函数,因此还必需制作forARM的C库,并将其放置于/lib目录。mygod,要自己写C库的源代码吗?不用!还记得交叉编译工具链的3个组成部分吗?交叉编译器、forARM的C库和二进制工具。哈哈,forARM的C库是现成的,我们只需要拷贝过来就可以了。遗憾的是:整个C库目录下的文件总大小有26M。而我们根文件系统所在分区不过区区16M而已,根本放不下。怎么办呢?dennis@dennis-desktop:/work/nfs_root/fs_mini3$du-s--si/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib

26M

/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib需要C库目录下所有的文件吗?no,absolutelyno!让我们来分析一下glibc库目录下内容的组成。该目录下的子目录和文件共分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库函数的代码,因此执行时需要动态链接库加载器来为它加载相应的C库文件,所以第6类文件是需要拷贝的。除此之外,第5类文件当然要拷贝。但第5类文件的大小也相当大。dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$du-c--si*.so*7.2M

total需要全部拷贝吗?非也,非也!其实,需要哪些库完全取决于要运行的应用程序使用了哪些库函数。如果我们只制作最简单的系统,那么我们只需要运行busybox这一个应用程序即可。通过执行dennis@dennis-desktop:/work/nfs_root/fs_mini3$arm-linux-readelf-abin/busybox|grep'Shared'

0x00000001(NEEDED)

Sharedlibrary:[libcrypt.so.1]

0x00000001(NEEDED)

Sharedlibrary:[libm.so.6]

0x00000001(NEEDED)

Sharedlibrary:[libc.so.6]可知:busybox只用到了3个库:通用C库(libc)、数学库(libm)、加密库(libcrypt),因此我们只需要拷贝这3个库的库文件即可。但是每个库都有4个文件,4个文件都要拷贝吗?当然不是。dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ls-llibcrypt[.-]*

-rwxr-xr-x1dennisdennis307002008-01-2205:32libcrypt-2.3.6.so

-rw-r--r--1dennisdennis231182008-01-2205:32libcrypt.a

lrwxrwxrwx1dennisdennis

132008-12-2215:38libcrypt.so->libcrypt.so.1

lrwxrwxrwx1dennisdennis

172008-12-2215:38libcrypt.so.1->libcrypt-2.3.6.so

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ls-llibm[.-]*

-rwxr-xr-x1dennisdennis

7790962008-01-2205:31libm-2.3.6.so

-rw-r--r--1dennisdennis11342822008-01-2205:32libm.a

lrwxrwxrwx1dennisdennis

92008-12-2215:38libm.so->libm.so.6

lrwxrwxrwx1dennisdennis

132008-12-2215:38libm.so.6->libm-2.3.6.so

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ls-llibc[.-]*

-rwxr-xr-x1dennisdenni01-2205:48libc-2.3.6.so

-rw-r--r--1dennisdennis27682802008-01-2205:31libc.a

-rw-r--r--1dennisdennis

1952008-01-2205:34libc.so

lrwxrwxrwx1dennisdennis

132008-12-2215:38libc.so.6->libc-2.3.6.so4个文件中的.a文件是静态库文件,是不需要拷贝的。另外3个文件是:实际的共享链接库:libLIBRARY_NAME-GLIBC_VERSION.so。当然需要拷贝。主修订版本的符号链接,指向实际的共享链接库:libLIBRARY_NAME.so.MAJOR_REVISION_VERSION,程序一旦链接了特定的链接库,将会参用该符号链接。程序启动时,加载器在加载程序前,会检索该文件。所以需要拷贝。与版本无关的符号链接,指向主修订版本的符号连接(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并记录在案(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个实际的共享链接库)以及动态链接库加载器(1个符号链接和1个实体文件)。步骤如下:dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$mkdir/work/nfs_root/fs_mini3/libdennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp

libcrypt-*/work/nfs_root/fs_mini3/lib

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp-llibcrypt.so.*/work/nfs_root/fs_mini3/lib

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp

libm-*/work/nfs_root/fs_mini3/lib

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp-llibm.so.*/work/nfs_root/fs_mini3/lib

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp

libc-*/work/nfs_root/fs_mini3/lib

dennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp-llibc.so.*/work/nfs_root/fs_mini3/libdennis@dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$cp-lld-*/work/nfs_root/fs_mini3/lib四、手工构建/etc目录/etc目录存放的是系统程序的主配置文件,因此需要哪些配置文件取决于要运行哪些系统程序。即使最小的系统也一定会运行1号用户进程init,所以我们至少要手工编写init的主配置文件inittab。busybox的inittab文件的语法、语义与传统的SYSV的inittab有所不同。inittab文件中每个条目用来定义一个需要init启动的子进程,并确定它的启动方式,格式为<id>:<runlevel>:<action>:<process>。例如:ttySAC0::askfirst:-/bin/sh<id>表示子进程要使用的控制台,若省略则使用与init进程一样的控制台<runlevel>表示运行级别,busyboxinit程序这个字段没有意义<action>表示init进程如何控制这个子进程sysinit:系统启动后最先执行,只执行一次,init进程等待它结束后才继续执行其它动作wait:系统执行完sysinit条目后执行,只执行一次,init进程等待它结束后才继续执行其它动作once:系统执行完wait条目后执行,只执行一次,init进程不等待它结束respawn:启动完once进程后,init进程监测发现子进程退出时,重新启动它askfirst:启动完respawn进程后,与respawn类似,不过init进程先输出”PleasepressEntertoactivatethisconsole“,等用户输入回车后才启动子进程shutdown:当系统关机时restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init进程接收到SIGUP信号时执行,先重新读取、解析/etc/inittab文件,再执行restart程序ctrlaltdel:按下ctrl+alt+del键时执行,不过在串口控制台中无法输入它<process>表示进程对应的二进制文件。如果前面有-号,表示该程序是“可以与用户进行交互的”我们制作最简单的/etc/inittab文件,其内容如下:::sysinit:/etc/init.d/rcS

::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount-a–r制作最简单的脚本程序文件/etc/init.d/rcS,其内容如下:#!/bin/sh

ifconfigeth07修改shell脚本文件/etc/init.d/rcS的权限,以使其可被执行:#chmoda+x/etc/init.d/rcS五、手工构建最简化的/dev目录在linux机器上,执行ls

/dev可看到几百个设备文件,我需要手工创建它们吗?maybe,我只需要手工创建几个设备文件!我怎么知道我应该创建哪几个设备文件呢?管它呢,先看看开发板上可爱的linux的反应再说。启动Linux操作系统,显示:VFS:Mountedroot(nfsfilesystem).

Freeinginitmemory:112K

Warning:unabletoopenaninitialconsole.这说明,内核已经成功挂载根文件系统,但却未能成功启动第1个用户进程init。通过错误消息“unabletoopenaninitialconsole”搜索内核源代码,找到init/main.c文件。748staticintnoinlineinit_post(void)

749{

750

free_initmem();

751

unlock_kernel();

752

mark_rodata_ro();

753

system_state=SYSTEM_RUNNING;

754

numa_default_policy();

755

756

if(sys_open((constchar__user*)"/dev/console",O_RDWR,0)<0)

757

printk(KERN_WARNING"Warning:unabletoopenaninitialconsole.\n");

758

759

(void)sys_dup(0);

760

(void)sys_dup(0);

761

762

if(ramdisk_execute_command){

763

run_init_process(ramdisk_execute_command);

764

printk(KERN_WARNING"Failedtoexecute%s\n",

765

ramdisk_execute_command);

766

}

767

768

/*

769

*Wetryeachoftheseuntilonesucceeds.

770

*

771

*TheBourneshellcanbeusedinsteadofinitifweare

772

*tryingtorecoverareallybrokenmachine.

773

*/

774

if(execute_command){

775

run_init_process(execute_command);

776

printk(KERN_WARNING"Failedtoexecute%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("Noinitfound.

Trypassinginit=optiontokernel.");

785}显然,内核错误是由175行不能打开/dev/console所致。通过查看已经安装好的linux机器的/dev/console设备文件,可知其是字符设备文件,主设备号为5,次设备号为1:dennis@dennis-desktop:/work/nfs_root/fs_mini3/etc$ls-l/dev/console

crw1rootroot5,12010-04-0808:40/dev/console因此,我们使用下面的命令创建它:dennis@dennis-desktop:/work/nfs_root/fs_mini3/dev$sudomknodconsolec51还需要创建其它设备文件吗?只有天知道!再看看linux的反应。VFS:Mountedroot(nfsfilesystem).

Freeinginitmemory:112K

init:can'topen'/dev/null':Nosuchfileordirectory这次我们有经验了,如法炮制,创建/dev/null设备文件:dennis@dennis-desktop:/work/nfs_root/fs_mini3/dev$sudomknodnullc13再次重启开发板上的linux,显示VFS:Mountedroot(nfsfilesystem).

Freeinginitmemory:112K

initstarted:BusyBoxv1.7.0(2010-04-0323:53:55CST)

startingpid229,tty'':'/etc/init.d/rcS'PleasepressEntertoactivatethisconsole.

startingpid231,tty'':'/bin/sh'

#哈哈,我们成功了,终于可以K歌去了。六、创建其它空目录K完歌回来,继续战斗。dennis@dennis-desktop:/work/nfs_root/fs_mini3$mkdirhomerootprocsystmpmntvar再次重启动开发板上的linux。咦,似乎有些问题。VFS:Mountedroot(nfsfilesystem).

Freeinginitmemory:112K

initstarted:BusyBoxv1.7.0(2010-04-0323:53:55CST)

startingpid229,tty'':'/etc/init.d/rcS'PleasepressEntertoactivatethisconsole.

startingpid231,tty'':'/bin/sh'

#ps

PID

Uid

VSZStatCommand

#ps竟然看不到任何进程的存在!让我想想。对了,ps的机制是通过查看/proc中的内容来获得进程信息的。那么,目前/proc里有哪些内容呢?#ls/proc

#竟然空空如野!这可如何是好?七、配置系统自动生成/proc目录其实/proc是用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容。不过需要我们设置一下,将/etc/init.d/rcS修改为:#!/bin/sh

ifconfigeth07

mount-tprocnone/proc对于mount-tprocnone/proc的解释:通常情况下mount命令应该写为mount–text2/dev/hdb1/proc。但由于现在挂载的/proc是虚拟文件系统,它不与任何物理硬盘分区相对应,因此在表示物理硬盘分区的位置用占位符none来表示。重启开发板上的linux,显示成功了:PleasepressEntertoactivatethisconsole.

startingpid232,tty'':'/bin/sh'

#ps

PID

Uid

VSZStatCommand

10

3088S

init

20

SW<[kthreadd]

30

SWN[ksoftirqd/0]

40

SW<[events/0]

50

SW<[khelper]

410

SW<[kblockd/0]

420

SW<[ksuspend_usbd]

450

SW<[khubd]

470

SW<[kseriod]

590

SW

[pdflush]

600

SW

[pdflush]

610

SW<[kswapd0]

620

SW<[aio/0]

1770

SW<[mtdblockd]

2260

SW<[rpciod/0]

2320

3092S

-sh

2330

3092R

ps

#八、利用udev构建完整的/dev目录高兴地插入U盘,内核显示识别到了U盘:#usb1-1:newfullspeedUSBdeviceusings3c2410-ohciandaddress2

usb1-1:notrunningattopspeed;connecttoahighspeedhub

usb1-1:configurati

温馨提示

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

评论

0/150

提交评论