首页 上一页 1 2 3 下一页 尾页

对网友求助问题的几个回帖展示之三十八 点击:1732 | 回复:43



wyb2866255---王者之师

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-12 08:39:11
楼主

         对网友求助问题的几个回帖展示之三十八

   本文一例为网上一网友的求助帖,该求助帖是有一定难度,是一篇能锻炼与提高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梯形图:









    本文到此结束,如有不妥之处请给于指正,本人深表感谢。谢谢大家!





江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2013-08-12 09:51:48
1楼

王老 又赐新帖了   感谢王老对网友的无私帮助               

江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2013-08-12 09:52:23
2楼

王老 又赐新帖了   感谢王老对网友的无私帮助               

研讨会宣传员_3259

  • [版主]
  • 精华:3帖
  • 求助:110帖
  • 帖子:1927帖 | 14403回
  • 年度积分:102
  • 历史总积分:64749
  • 注册:2020年3月27日
发表于:2013-08-12 10:32:54
3楼

回复内容:

对: 江湖混混-余辉  王老 又赐新帖了   感谢王老对网友的无私帮助    ... 内容的回复!


 

楼上,对这种人才是否有特殊奖励啊?

 

江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2013-08-12 11:07:00
4楼

回复内容:

对: 研讨会宣传员_3259  回复内容:对: 江湖混混-余辉  王老 又赐新帖了  ... 内容的回复!


 我等无能为力

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-08-12 15:19:49
5楼

小弟新手,仔细看了看,感觉有一二处不妥,请指教:

一、


此处应该是上微分吧,当T101延时十秒闭合后,会一直输出高电平,后续就不能运行了吧。

二、


这个应该是编程失误吧,B口应该是M2.1,C口应该是M2.2吧


wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-12 17:16:27
6楼

谢谢5楼,你说的对,我把它改了。

fyc独家记影

  • 精华:1帖
  • 求助:3帖
  • 帖子:14帖 | 1802回
  • 年度积分:0
  • 历史总积分:2312
  • 注册:2012年1月09日
发表于:2013-08-12 20:30:32
7楼

引用 江湖混混-余辉 的回复内容: 王老 又赐新帖了   感谢王老对网友的无私帮助    ...



wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-12 21:27:06
8楼

  5楼网友的精神很值得大家学习,他仔细的分析程序从中发现编程的几点失误,这里向想你表示谢意!

  我对上面程序进行进一步的简化,巧妙的使用断电延时定时器TOF,取代原通电延时定时器TON,使程序由原来的20个网络语句,减为只用10个网络语句,见下图:







   希望大家能积极参与对此命题的编程探讨,找出思路更好、编程更简练的好程序!

  • 精华:0帖
  • 求助:3帖
  • 帖子:8帖 | 387回
  • 年度积分:1400
  • 历史总积分:1888
  • 注册:2006年2月06日
发表于:2013-08-12 21:29:16
9楼

  感谢王老对网友的无私帮助, 谢谢

flylovemore--王者之师

  • 精华:0帖
  • 求助:4帖
  • 帖子:11帖 | 329回
  • 年度积分:5
  • 历史总积分:1026
  • 注册:2011年2月23日
发表于:2013-08-12 22:54:26
10楼

王老真是老前辈

令我晚辈心服!

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-08-13 08:34:09
11楼

回复内容:

对: wyb2866255---王者之师    5楼网友的精神很值得大家学习,他仔细的分析程序从... 内容的回复!


客气了 我还是从您这学到不少东西的 唐突之处还请见谅  

您这个精简的程序好像忽略了点东西吧,A、B、C口的如何动作呢?他们对应的输出线圈如何得电?

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-13 09:09:52
12楼

  回11楼:你可能没有看懂我的编程思路:以I0.0口为例:当I0.0=1时,我是用其前沿驱动断电延时定时器T101的,使T101立即=1,由于前沿信号只保留1个扫描周期,故T101失电后

再延时1秒,T101由1变0,即T101=1的时间仍为1秒,用它驱动Q0.0。其它各定时器都是用前沿信号触发的,你再仔细琢磨一下。

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-08-13 09:26:16
13楼

回复内容:

对: wyb2866255---王者之师    回11楼:你可能没有看懂我的编程思路:以I0.0... 内容的回复!


哦 对 我的失误  粗心了  呵呵

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-08-13 09:40:19
14楼

回复内容:

对: wyb2866255---王者之师    回11楼:你可能没有看懂我的编程思路:以I0.0... 内容的回复!



青春的微凉

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2013年8月13日
发表于:2013-08-13 15:36:49
15楼

支持楼主,路过,顶一下啊

caojie0723--王者之师

  • 精华:2帖
  • 求助:5帖
  • 帖子:26帖 | 2883回
  • 年度积分:8
  • 历史总积分:22502
  • 注册:2004年2月22日
发表于:2013-08-13 17:15:44
16楼

楼主在8楼的程序中的 网络2 与 网络7中都为MB0+1?是不是有个是MB=0比较好啊?

caojie0723--王者之师

  • 精华:2帖
  • 求助:5帖
  • 帖子:26帖 | 2883回
  • 年度积分:8
  • 历史总积分:22502
  • 注册:2004年2月22日
发表于:2013-08-13 17:31:05
17楼

再者 当初始化MB1=0时,网络1中会使B口动作1次,但MB1未做+1处理,导致黑色出现时还会C口动作,是不是程序有误呢?

初学者 说的可能不对,请王工见谅!

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-13 19:06:50
18楼

回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.

flylovemore--王者之师

  • 精华:0帖
  • 求助:4帖
  • 帖子:11帖 | 329回
  • 年度积分:5
  • 历史总积分:1026
  • 注册:2011年2月23日
发表于:2013-08-13 20:34:36
19楼

不太明白王老的编程思路

A\B出口的顺序是怎么做到的

wyb2866255---王者之师

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2013-08-13 23:19:29
20楼

回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种情况分析判断,你可自己试试好吗!


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 下一页 尾页