对网友求助问题的几个回帖展示之三十八 点击: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梯形图:









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





caojie0723--王者之师

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

回18楼:

感谢王工的解答,如果MB0无限的做+1处理,是不是会造成MB0数据溢出啊,溢出后的结果是如何呢?

在17楼的问题中,是我在抄写程序中抄写错了,导致了对王老程序的误解,见谅!

非凡2013

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

回复内容:

对: caojie0723--王者之师 回18楼:感谢王工的解答,如果MB0无限的做+1处理,... 内容的回复!


我觉得网络2应该是自加1,网络7应该为自减1,A口只有两种颜色零件进入,只需判断0和1就行了,这样就不会溢出,也会满足要求了吧

wyb2866255---王者之师

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

回21楼:MB0加1会溢出没有影响,因为程序只用其最低位(M0.0)判断:MB0每加1Y1次,M0.0的状态就会改变一次,即奇偶数相间。

  如网络7改为自减1,判断的条件就变了,如其它语句不随之改变,其判断结果会是错误的

给我一根烟

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2013年8月12日
发表于:2013-08-14 10:50:08
24楼

写的真心详细,很不错呢支持

骆工

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 49回
  • 年度积分:0
  • 历史总积分:109
  • 注册:2007年12月29日
发表于:2013-08-14 16:39:40
25楼

程序写得挺好,不过我更想知道什么传感器能识别黑白零件。

天行健PLC

  • 精华:5帖
  • 求助:9帖
  • 帖子:584帖 | 2093回
  • 年度积分:0
  • 历史总积分:23348
  • 注册:2011年6月30日
发表于:2013-08-14 18:44:31
26楼

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



wyb2866255---王者之师

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

回25楼:可选用型号为TCS230颜色识别传感器就可识别黑白零件,其工作原理及使用可到网上查找。

墨之殇

  • 精华:16帖
  • 求助:7帖
  • 帖子:397帖 | 4077回
  • 年度积分:102
  • 历史总积分:26826
  • 注册:2011年8月26日
发表于:2013-08-19 17:32:34
28楼

都出到38了。

见证奇迹的时刻啊!

penggang2000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 37回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2009年10月15日
发表于:2013-08-26 09:52:29
29楼

l楼主,有个问题想请教,该程序运行后按照要求,第一个送来件为白色,将送入A口,第二个件来依旧是白色,按要求应该送入B口,但你的程序在第执行将没有任何一个口打开

wyb2866255---王者之师

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

回29楼:请见8楼程序网络1:I0.0=1(白色件到来),如M0.0=0(说明是第一个白色件)程序将使T101=1,即拨入A口,如下次到来还是白色件(即I0.0又一次=1),此时由于M0.0=1,又MB1=0,故此时T102=1,即将此白色件拨入B口(仍见网络1的中间语句)。如此时M0.0=1,而MB1≠0,说明B口的前一次拨入是白色件,故使T103=1,即将此件拨入C口。你仔细想想是不是这样?

隨風--王者之师

  • 精华:2帖
  • 求助:11帖
  • 帖子:146帖 | 5530回
  • 年度积分:1307
  • 历史总积分:29997
  • 注册:2008年4月27日
发表于:2013-08-26 23:55:57
31楼

说实话,刚开始很难看懂 这个程序,尽管楼主给了大量的说明,因为我基本没啥基础,不过越看越觉得楼主的设计之巧妙,思路之缜密,非常值得学习和借鉴。下面是我根据楼主的程序给出的一点儿个人理解,仅代表我个人看法,有不对的或不合理的地方,希望楼主给予指正!

 有异议的地方也只是在网络3,个人好像觉得网络3的MB1清零程序是不是有点多此一举呢?

wyb2866255---王者之师

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

回31楼:网络3的MB1清0必须加,因为 MB1计数只有0、1、2三种状态,即MB1是3进制计数器,当MB3≥3时(实际上MB3=3)说明此时B口已拨入2个黑件,再拨如应拨入白件,而MB1=3计数已溢出,应将MB1立即请0,就像10进制计数器,逢10进1,本位请0道理一样。MB1=0为白件拨入标记,为下次拨入白件做准备。

隨風--王者之师

  • 精华:2帖
  • 求助:11帖
  • 帖子:146帖 | 5530回
  • 年度积分:1307
  • 历史总积分:29997
  • 注册:2008年4月27日
发表于:2013-08-27 12:49:47
33楼

引用 wyb2866255---王者之师 的回复内容: 回31楼:网络3的MB1清0必须加,因为 MB1计数只... 


我以为分拣白件用不到MB1清零程序,而只是用在分拣黑件时,但分拣黑件时,在网络5处已经设置了清零程序呢。

wyb2866255---王者之师

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

33楼:我细看了一下,你说的对!网络1使T102=1的判断条件就是 M0.0=1、MB1=0,故网络3中的T102后沿出现时,MB1加1其值只能=1,不会=3,故MB1请0 是多余的,可以去掉。

隨風--王者之师

  • 精华:2帖
  • 求助:11帖
  • 帖子:146帖 | 5530回
  • 年度积分:1307
  • 历史总积分:29997
  • 注册:2008年4月27日
发表于:2013-08-28 07:11:40
35楼

王老的整个零件分拣程序设计严密、思路清晰,非常值得学习和借鉴!

xiaoheiwoo

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:19
  • 注册:2011年4月13日
发表于:2013-08-29 12:48:40
36楼

先顶再学习。。。。。。。。

  • 精华:0帖
  • 求助:1帖
  • 帖子:10帖 | 179回
  • 年度积分:0
  • 历史总积分:138
  • 注册:2007年1月18日
发表于:2013-09-01 21:34:51
37楼

先顶在学习。。。。。。。。。

q5201515

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 55回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2011年7月30日
发表于:2013-09-03 09:26:21
38楼

学习学习了!!!!!!!!

jao

  • 精华:0帖
  • 求助:9帖
  • 帖子:11帖 | 9回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2013年8月25日
发表于:2013-09-03 16:21:18
39楼

膜拜王工,小弟对plc只是略懂一二,对西门子plc200略懂,一直弄不明白这个模拟信号怎么输入输出计算,比如简单的电机转速控制该怎么编写?求解。

wyb2866255---王者之师

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

  回39楼:如果电机转速变送器输出是模拟信号(0~10V或4~20ma,对应电机转速为0~最大转速 Vm )你可选用输入输出模块EM235,用电机转速变送器输出的模拟信号输入给EM235的模拟量输入端(如A+、A-、RA端)。控制电机转速的模拟信号,先通过PLC内部计算,将计算出的数字量送给AQW0,由EM235转换,将AQW0转换为模拟量,再由EM235输出端(V0-M0或I0-M0)输送给电机的控制端。

  电机变送器输出的模拟信号输入给EM235输入端转换成数字量AIW0为:

        1、AIW0 = 0~32000  ----    (对0~10V 模拟信号)

        2、AIW0 = 6400~32000  ---- (对 4~20ma 模拟信号)

  电机转速Vx与数字量AIW0的转换公式为:

        1、 Vx = Vm * AIW0 / 32000      ----(对0~10V 模拟信号)

        2、 Ix = Vm * (AIW0 - 6400)/(32000-6400)    ----(对 4~20ma 模拟信号)

  由数字量AQW0转换为模拟量(即由EM235输出端输出的控制电机转速模拟量)的转换公式为:

       1、 AQW0 = 3200 * Vx      ----(对0~10V 模拟信号)

       2、 AQW0 = 6400 + 25600 * (Ix - 4) / 16 ----(对 4~20ma 模拟信号)

   具体编程可以看看我写过的帖子“对输入、输出模拟量的PLC编程的探讨及编程实例解析”,网址为:http://bbs.gongkong.com/d/201112/410897_1.shtml



热门招聘
相关主题

官方公众号

智造工程师