对网友求助问题的几个回帖展示之三十八
本文一例为网上一网友的求助帖,该求助帖是有一定难度,是一篇能锻炼与提高PLC编程思维与技巧的好帖。本人对此帖要求进行分析,找出了一种如何分拣其3中零件的编程思路,并按此思路选用S7-200PLC进行编程。现将此贴的编程思路及程序贴出,展示给大家,供大家分析讨论。
求助帖:就是浙江天煌科技那种光机电气一体化试验台,有金属零件,白色尼龙零件,黑色尼龙零件。要求A出口的零件按金属、白色、金属、白色的顺序排列,B出口的零件按白色、黑色、黑色排列,同时满足A出口和B出口的零件优先进入A出口,不满足组合排列关系的零件进入C出口。
实在是不知道如何下手,求大神给分析一下这个程序用该怎么编写,都需要用什么指令。
回复:要想编写这个程序,首先要按A、B、C口的分拣排列顺序的要求进行仔细分析,从中总结出3者的分选模型。我的思路是这样的:
1、动作安排:混合在一起的3种零件由传动装置移到分拣处时,由分拣处的3种传感器进行识别判断:如是白色零件,传感器1 将使I0.0=1,如是黑色零件,传感器2 将使I0.1=1,如是金属零件,传感器3 将使I0.2=1,(即分选出不同的零件是用3个传感器完成,具体工作原理这里不做说明)。
2、A口拨出装置为Q0.0,其动作时间=1秒,B口拨出装置为Q0.1,动作时间=1秒,C口拨出装置为Q0.2,动作时间=1秒,
3、分选:借用2个存储器MB0、MB1作加1计数器,并利用它们的计数状态进行分选:
(1)白色零件分选:如I0.0=1,说明到分拣处的零件为白色,如此时M0.0=0,则使Q0.0=1,即将零件拨入A口。如此时M0.0=1,且MB1=0时,则使Q0.1=1,即将零件拨入B口,如此时M0.0=1,且MB1≠0时,则使Q0.2=1,即将零件拨入C口。
A、B、C 口拨入动作时间均为1秒,1秒后各自复位,其A口复位时将MB0加1,其B口复位时将MB1加1,并立即对MB1值进行判断:如MB1≥3,立即使MB1清零(即MB1=0,运行中MB1值始终为0、1、2)。
(2)、黑色零件分选:如I0.1=1,说明到分拣处的零件为黑色,如此时MB1≥1,则使Q0.1=1,即将零件拨入B口。如此时MB1=0,则使Q0.2=1,即将零件拨入C 口。其B口动作1秒后复位,且使MB1加1,再判断MB1值。如MB1≥3,则使MB1=0,其C口动作1秒后复位。
(3)、金属零件分选:如I0.2=1,说明到分拣处的零件为金属零件,如此时 M0.0=1, 则使Q0.0=1,即将零件拨入A口,如此时 M0.0=0, 则使Q0.2=1,即将零件拨入C口, A口与C口各动作时间均为1秒,其A口复位后将使MB0加1。
下面就是按着上诉编程构思编写的程序:
一、PLC输入与输出口的说明:
1、系统是这样运行的:每隔一定时间(如设为5秒)传送装置将一待检零件移到零件分拣处,零件分拣处安置有3个传感器,其输出分别接PLC的输入口I0.0~I0.2:其传感器1能检出白色塑料零件,它的输出接PLC的I0.0输入端,当白色零件进入分拣处时,传感器1输出为1,将使PLC的I0.0=1。传感器2能检出黑色塑料零件,它的输出接PLC的I0.1输入端,当黑色零件进入分拣处时,传感器2输出为1,使PLC的I0.1=1。,传感器3能检出金属零件,它的输出接PLC的I0.2输入端:当金属零件进入分拣处时,传感器3输出为1,使PLC的I0.2=1。
当被检零件被A、B、C口被对应的分拣装置拨走后,其传送装置未拨下一个零件之间,分拣处无零件,其3个传感器输出皆=0,即I0.0~I0,2输入皆=0。
2、PLC输出口:A口分拣拨入装置由Q0.0输出1秒脉宽的脉冲驱动,B口分拣拨入装置由Q0.1输出1秒脉宽的脉冲驱动,C口分拣拨入装置由Q0.2输出1秒脉宽的脉冲驱动。
二、PLC梯形图:
本文到此结束,如有不妥之处请给于指正,本人深表感谢。谢谢大家!
回16楼:
1、楼主在8楼的程序中的 网络2 与 网络7中都为MB0+1?是不是有个是MB=0比较好啊?这里用M0.0位的状态进行判断,就不需用比较指令。见网络1:当I0.0=1(即被分拣是白色零件),如M0.0=0,说明MB0为偶数,即A口前次零件为金属件,则将零件拨入A口,延时1秒,其T101由 1↓0时(即后沿)使MB0+1,为下次白色件到来时做分拣依据。
当I0.0=1(即被分拣是白色零件),如M0.0=1,说明MB0为奇数,即A口前次零件为白色件,故不往A口拨入,而是再判断MB1状态。如MB1=0,说明B口前次零件是连续第2个黑件,故将白零件拨入B口,如MB1≠0,说明B口前次零件不是连续第2个黑件,将其拨入C口。这里判断MB1等不等于0,因为MB1可能出现3种数字状态,就不能只用M1.0位判断,而需用比较指令了。
PLC初始化时,对一般存储器初始状态都=0,是不会产生后沿脉冲的,只有SM0.1在第一个扫描周期会=1.
回19楼:原帖要求:“要求A出口的零件按金属、白色、金属、白色的顺序排列,B出口的零件按白色、黑色、黑色排列,同时满足A出口和B出口的零件优先进入A出口,不满足组合排列关系的零件进入C出口。”我们以8楼编写的程序为例,对起始二个零件的分拣进行程序分析:
拨入A口的零件只有白色件与金属件二中,拨入零件的排列顺序是白色与金属件彼此相间的:如拨入A口的第一个件是白色件,则拨入的第二件必须是金属件。。。编程思路是这样:用MB0作为拨入A口零件的加1计数器,初始值MB0=0。MB1作为拨入B口零件的加1计数器,初始值MB1=0,如第一个进入分拣处的零件是白色件时(I0.0=1),由于如此时M0.0=0(即MB0为偶数),I0.0=1的前沿将将驱动T101,使Q0.0动作,将该件拨入A口,随后再将 MB0加1,此时MB0值变为奇数(即M0.0=1)。当第2个零件进入分拣时,分3种情况:
1、进入分拣处的零件仍为白色件(I0.0=1),由于此时M0.0=1,即M0.0的常闭点断开,是不会驱动Q0.0的(即不会驱使T101动作的,见网络1)。此时程序将判断MB1值,MB1是B口拨入零件的计数器,拨入B口的零件是 白-黑-黑-白-黑-黑-白。。。,MB1的计数值只有:0、1、2这3个数,即MB1=0为白色件,MB1≠0为黑色件,此时如MB1=0时,应将将该零件拨入B口,如MB1≠0,则将零件拨入C口。
2、进入分拣处的零件为黑色件(I0.1=1),见网络4,此时程序将判断MB1值,MB1是B口拨入零件的计数器,MB1的计数值只有:0、1、2这3个数值,而且是只有MB1=0时,应将白色零件拨入B口,其余二种状态应拨黑色件。此时MB1=0,故不会将该黑色零件拨入B口。而是将该黑色零件拨入C口。(见网络4)
3、如下一个进入分拣处的零件为金属件(I0.2=1),由于此时M0.0=1,即M0.0的常开点闭合,见网络6,其I0.2=1的前沿将驱动T106=1(使Q0.0动作),将此件拨入A口。
当当第3个零件进入分拣时,也是分3种情况分析判断,你可自己试试好吗!