《阀门控制PLC编程解析.doc》由会员分享,可在线阅读,更多相关《阀门控制PLC编程解析.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、编程技巧展示:为一求助帖用S7-200编写一段程序及程序解析 求助帖:四个阀门的开关由四个接近开关信号控制,要求是1、同一时刻只能一个阀门开;2、当有两个以上到位信号出现时按优先顺序打开阀门;3、每个阀门只要开通就有一定的工作时间,时间未到不开通其他阀门;4、当有两个以上到位信号在等待上一阀门工作完毕的情况下要求按“先到先开”原则对阀门排序工作。采用的是西门子的S7-200的PLC进行控制。胶状物体通过管路输送,末端分别由四个气动阀控制胶体进入四台双缸装药机,当其中一个缸正对阀门出口时,触发近位开关表示到位 这一求助帖有一定难度,为此花费一定时间,编出如下程序,供大家分析。除此法编程外,还可用
2、填表与FIFO指令,按此编程思路编程,有兴趣的网友可以试试。 一、梯形图: 注:(本程序经上机运行,动作正确,网络17为实验程序而编写的程序,其4个定时器的延时时间皆设定=2秒)二、程序解析:1、4个电磁阀对应PLC的输出口为Q0.0、Q0.1、Q0.2、Q0.3,工作时间分别由定时器T101T104控制,这4个定时器的定时时间可由触摸屏或上位机设置改变。 其4个定时器的时间设置区为:VW10、VW12、VW14、VW16。控制电磁阀打开的到位接近开关的输入地址为I0.0、I0,1、I0.2、I0.3。2、按题意要求 规定 :(1)、如同时有2个以上接近开关同时到位闭合时,只容许一个电磁阀打开
3、,对应定时器延时时间到,该阀门关闭,而另一阀门打开阀门打开的先后次序是Q0.0优先,Q0.1次之,Q0.2再次之,Q0.3为最后。(2、)当有两个以上接近开关先后到位时,其IB0变化的输入状态按先后次序依次存入MB13、MB12、MB11、MB10里。动作执行是先从第一次到位的接近开关的(MB13)开始判断,使其对应阀门打开,在阀门打开且尚未结束时,其他到位的阀门则等待。当工作的阀门工作完毕后,等待的阀门应按“先到先开”的次序进行工作(即先为MB12,再为MB11,最后为MB10)。根据上述二点要求,在程序上进行如下处理:1、网络2网络5为4个接近开关到位时令MB0的对应位置1,这里采用置位指
4、令的作用是防止各接近开关动作时产生抖动而引起采集输入状态(MB0、MB3等)的错误。2、 网络6的解析:MB0时时随IB0变化,MB1为MB0为发生变化前的状态值,当IB0无输入变化时,其MB0=MB1,网络6不执行其动作。只有当有一个或几个接近开关到位时,其对应输入点=1,都会使MB0MB1,则网络6立即执行:将MB0与MB1进行异或运算,其运算结果送入对应存储区:如MB3=0(即第一次动作,或前次动作的阀门工作已全部结束),异或结果送入MB13。如MB3=1,即前一次动作阀门尚未结束,将异或结果送入MB12。如MB3=2,即前二次动作阀门尚未结束,将异或结果送入MB11异或结果送完后,将M
5、B0MB1,且进行MB3加1运算,又使M0.7=1。当下一个扫描周期到来时,MB0=MB1,不执行网络6,故使M0.7=0,即M0.7输出为单扫描周期脉冲。如前次动作阀门尚未结束又有接近开关到位,使MB0MB1,立即又执行MB0与MB1的异或运算,此时MB3=1,故异或结果MB12MB0与MB1的异或运算是本程序的技巧编程之一:它能将IB0的最新到位的接近开关状态剪接出来,如变化前 IB0=0000_0010,MB0=MB1=0000_0010,如此时第一与第三接近开关同时到位(即I0.0与I0.2皆=1,其IB0=0000_0111),则使MB0立刻=0000_0111,而MB1仍=0000
6、_0010,MB0与MB1的异或运算的结果=0000_0101,此值恰是最新到位的2个接近开关=1 的状态值,将这运算的结果送入MB12,以备当前一次动作阀门工作结束后,再按本次(MB12)输入状态进行正确操作。 3、 网络7的解析: 定时器T101T104的延时时间为4个阀门 的工作时间,在每个阀门打开的同时,其对应的定时器得电开始延时,当延时时间到,对应定时器输出由01,其前沿使该阀门关闭(即QB0=0)。再判断及操作:(1)、如此时MB13=0,说明前一次动作的一个或几个阀门已全部工作结束,将MD10右移8位(即将MB12MB13,MB11MB12, MB10MB11,0MB10),且使
7、MB3减1,M2.0=0,接着再判断移位后的MB13,如MB130,说明仍有等待阀门需要打开,故发出触发脉冲M2.6=1的单周期脉冲,去触发等待的阀门开门。(2)、如此时MB130,说明本次动作的几个阀门没有全部工作结束,发出触发脉冲M2.1=1的单周期脉冲,去触发等待的阀门开门。4、 网络8网络11的解析:为触发Q0.0Q0.3四个阀门开门的程序。使阀门打开有3种触发脉冲:(1)M2.0=1的前沿。即:在有接近开关到位使IB0状态发生变化时,产生M2.7=1的单脉冲,如此时刻M2.0=0,则使M2.0由01,产生前沿脉冲。(2)、M2.1=1单脉冲。即:在由2个以上接近开关同时到位,当工作阀
8、门关闭时还有等待阀门没有打开时,产生的单周期触发脉冲。(3)、M2.6=1单脉冲。即:当本次的所有工作阀门动作已结束,但还有尚未执行的等待阀门(即MD10移位前,其MB120)时产生的单周期触发脉冲。这3个脉冲出现,都会使对应阀门打开:此时的QB0=0,程序是从先判断M13.0开始的,如M13.0=1,使Q0.0=1、使标记M13.0=0,同时使T101得电开始延时。由于Q0.0=1使QB00,故不会使后面的Q0.1Q0.3同时刻再置1,只有T101延时时间到,使Q0.0由10,后,当再次产生触发脉冲时,判断还是先从M13.0开始,由于此时QB0=0、而MB13=0,不会再次使Q0.0置1,接着判断M13.1、M13.2、M13.3各位,那位=1就将QB0的对应输出置1此段程序也体现出技巧编程:这样处理既解决了同时间开关到位闭合时,阀门打开是按优先循序依次工作,又解决了两个以上接近开关先后到位,其等待的阀门按“先到先开”的次序进行工作的控制作用。 本程序解析到此结束,如有不妥之处,请给予指正,谢谢!原文来自工控网论坛,原帖地址: