wenliang
擡頭白雲悠悠,前竟一片黯愁……
级别: 家园常客
精华主题: 0
发帖数量: 695 个
工控威望: 883 点
下载积分: 42959 分
在线时间: 530(小时)
注册时间: 2014-04-04
最后登录: 2024-04-22
查看wenliang的 主题 / 回贴
楼主  发表于: 2019-08-02 11:15
请问各位老师一个分拣线的问题?我现在在做一条分拣线,分拣结构是由滚筒+气缸及光电组合、一条主线+有10个出货口,系统是由CCD+工业电脑+西门子1200PLC组成,现在动作大至原理是 CCD扫码识别发送相对应的出货口信息给PLC,PLC收到上位机的信息就开始执行子程序去跟踪当前这个产品位置等待产品到达对应位置再启动气缸推到出货口(具体跟踪是这样 做的:例如CCD给我发6号出货口时,我会从当前位置开始每走到一个光电位置我计数一次,直到我走到第6个光电位置时、我就判断到达我要的位置了),但是现在由于机构问题没办法做到两箱之间的距离是一样,由于两箱之间距离太近会造成程序误两箱误判,不知道各位老师 和大侠有什么好的提议?
小小蜗牛
级别: 网络英雄

精华主题: 1 篇
发帖数量: 1230 个
工控威望: 10702 点
下载积分: 39719 分
在线时间: 1789(小时)
注册时间: 2014-07-12
最后登录: 2024-04-25
查看小小蜗牛的 主题 / 回贴
1楼  发表于: 2019-08-02 13:44
如果速度基本不变,就可以用时间来锁定位置,另外可以CCD扫码识别将两箱之间的距离拉大。就是主输送线分段,CCD扫码识别前一个速度,扫码识别后一个速度,后面快。
楼主留言:
谢谢 大师指点! 我现在就是用时间来做的,当从第一个光电位置开始计时,时间到了才启用第二个光电开始检测,但是会出现分错的情况,偶而一箱或者是几天才会出现一次这种情况,不知道怎么处理才好???
zhutaodtyy
级别: 略有小成
精华主题: 0
发帖数量: 74 个
工控威望: 244 点
下载积分: 3591 分
在线时间: 49(小时)
注册时间: 2018-04-13
最后登录: 2024-04-18
查看zhutaodtyy的 主题 / 回贴
2楼  发表于: 2019-08-02 16:23
CCD前的滚筒线与CCD后的滚筒线是同一个电机控制吗?
楼主留言:
不是一个电机控制的,因为产线比较长,做了5段的,但是5段是一模一样的,速度也是一样的,所以两箱贴近了就会出现交叉分错了
wenliang
擡頭白雲悠悠,前竟一片黯愁……
级别: 家园常客
精华主题: 0
发帖数量: 695 个
工控威望: 883 点
下载积分: 42959 分
在线时间: 530(小时)
注册时间: 2014-04-04
最后登录: 2024-04-22
查看wenliang的 主题 / 回贴
3楼  发表于: 2019-08-02 17:25
首先 谢谢各位老师的指点!最近一直在网上查这方面的资料,刚好看到有一篇有写到类似做法,但是所讲的我还是不能理解,还请各位老师 帮我看看可行不可行?在此先行谢过了!
seafar
目前C#
级别: 家园常客
精华主题: 0
发帖数量: 619 个
工控威望: 764 点
下载积分: 1909 分
在线时间: 594(小时)
注册时间: 2018-03-23
最后登录: 2023-10-27
查看seafar的 主题 / 回贴
4楼  发表于: 2019-08-02 20:28
图片:
一个箱子用3个寄存器D0D1D2第二个箱子就D2D3D4,用它20组也就是60个寄存器保险点,前面的箱子排掉就把他的寄存器清空,后面箱子又可以用。D0用来存CCD给的信号(1-10),D1用来计数,传感器感应一次加一,D2寄存器当位用作D1加1的条件。
打个比方,CCD检测到第一个箱子给D0赋值5,同时把D2.0置位,,前进感应到传感器一,D1加1,(记得加条件只有D2.0置位的情况下触发传感器一才能对D1加1),同时把D2.0复位(这样就不会后面箱子触发传感器D1再次加1啦),把D2.1置位;加条件D2.1置位的情况下触发传感器二才能对D1再次加1,同时把D2.1复位,D2.2置位。。。。。。。。就这样第三个传感器复位D2.2置位D2.3,D1=3啦。。。。。。。第四个传感器复位D2.3置位D2.4,D1=4啦。。。。。。第五个传感器复位D2.4,D1=D0=5啦,OK把箱子推出去,同时把D0D1D2都复位啊。第二个箱子D3D4D5跟在后面不会影响第一个箱子D0D1D2啦。。。。。
本帖最近评分记录:
  • 下载积分:+1(学者来)
  • 下载积分:+1(苛刻柯) 好办法
  • 下载积分:+1(天剑流星) 热心助人!
  • 下载积分:+2(zyfstc544) 这个方法 比较巧妙
  • 下载积分:+1(风行天下) 学习了
  • 枕星河之倒影兮与星光同流,望群星之包覆兮随繁星同辉。
    B站资源分享链接https://space.bilibili.com/39855180
    wenliang
    擡頭白雲悠悠,前竟一片黯愁……
    级别: 家园常客
    精华主题: 0
    发帖数量: 695 个
    工控威望: 883 点
    下载积分: 42959 分
    在线时间: 530(小时)
    注册时间: 2014-04-04
    最后登录: 2024-04-22
    查看wenliang的 主题 / 回贴
    5楼  发表于: 2019-08-03 08:50
    引用
    引用第4楼seafar于2019-08-02 20:28发表的  :
    一个箱子用3个寄存器D0D1D2第二个箱子就D2D3D4,用它20组也就是60个寄存器保险点,前面的箱子排掉就把他的寄存器清空,后面箱子又可以用。D0用来存CCD给的信号(1-10),D1用来计数,传感器感应一次加一,D2寄存器当位用作D1加1的条件。
    打个比方,CCD检测到第一个箱子给D0赋值5,同时把D2.0置位,,前进感应到传感器一,D1加1,(记得加条件只有D2.0置位的情况下触发传感器一才能对D1加1),同时把D2.0复位(这样就不会后面箱子触发传感器D1再次加1啦),把D2.1置位;加条件D2.1置位的情况下触发传感器二才能对D1再次加1,同时把D2.1复位,D2.2置位。。。。。。。。就这样第三个传感器复位D2.2置位D2.3,D1=3啦。。。。。。。第四个传感器复位D2.3置位D2.4,D1=4啦。。。。。。第五个传感器复位D2.4,D1=D0=5啦,OK把箱子推出去,同时把D0D1D2都复位啊。第二个箱子D3D4D5跟在后面不会影响第一个箱子D0D1D2啦。。。。。



    请问老师 你的这个说法有验证过吗,不知道这行可行否,因为有可能每次来的产品都是一个出货口,而且同时会有很多箱都会启动那几个光电(例如 :同时有5箱产品都是去5#出货口的,而且是一箱接着一箱来的),这样用上面的方法会不会有什么问题呢?
    seafar
    目前C#
    级别: 家园常客
    精华主题: 0
    发帖数量: 619 个
    工控威望: 764 点
    下载积分: 1909 分
    在线时间: 594(小时)
    注册时间: 2018-03-23
    最后登录: 2023-10-27
    查看seafar的 主题 / 回贴
    6楼  发表于: 2019-08-03 08:58
    引用
    引用第5楼wenliang于2019-08-03 08:50发表的  :



    请问老师 你的这个说法有验证过吗,不知道这行可行否,因为有可能每次来的产品都是一个出货口,而且同时会有很多箱都会启动那几个光电(例如 :同时有5箱产品都是去5#出货口的,而且是一箱接着一箱来的),这样用上面的方法会不会有什么问题呢?

    你自己想哪里不行再说,不然帮不了你
    枕星河之倒影兮与星光同流,望群星之包覆兮随繁星同辉。
    B站资源分享链接https://space.bilibili.com/39855180
    keeplearning
    mark
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 132 个
    工控威望: 1382 点
    下载积分: 893 分
    在线时间: 190(小时)
    注册时间: 2018-09-03
    最后登录: 2024-03-19
    查看keeplearning的 主题 / 回贴
    7楼  发表于: 2019-08-03 09:16
    引用
    引用第4楼seafar于2019-08-02 20:28发表的  :
    一个箱子用3个寄存器D0D1D2第二个箱子就D3D4D5,用它20组也就是60个寄存器保险点,前面的箱子排掉就把他的寄存器清空,后面箱子又可以用。D0用来存CCD给的信号(1-10),D1用来计数,传感器感应一次加一,D2寄存器当位用作D1加1的条件。
    打个比方,CCD检测到第一个箱子给D0赋值5,同时把D2.0置位,,前进感应到传感器一,D1加1,(记得加条件只有D2.0置位的情况下触发传感器一才能对D1加1),同时把D2.0复位(这样就不会后面箱子触发传感器D1再次加1啦),把D2.1置位;加条件D2.1置位的情况下触发传感器二才能对D1再次加1,同时把D2.1复位,D2.2置位。。。。。。。。就这样第三个传感器复位D2.2置位D2.3,D1=3啦。。。。。。。第四个传感器复位D2.3置位D2.4,D1=4啦。。。。。。第五个传感器复位D2.4,D1=D0=5啦,OK把箱子推出去,同时把D0D1D2都复位啊。第二个箱子D3D4D5跟在后面不会影响第一个箱子D0D1D2啦。。。。。

    补充一下:需要把D2.0常闭串联至D5.0,D.8.0,,,,置位条件中,D5.0常闭串联至D.8.0,,,,置位条件中,以此类推,还需要一个组号寄存器比如说D100,光电感应一次D100加1,以此来把各个箱子的数据进行分组寄存,当D100=20时清零循环
    楼主留言:
    请问老师 :为什么需要把D2.0常闭串联至D5.0,D.8.0,,,,置位条件中,D5.0常闭串联至D.8.0,,,,置位条件中,以此类推,其中D5.0,D8.0不是其他组在使用的吗?
    苏碧湖砍柴人
    人无我有,人有我精,人精我异
    级别: 家园常客
    精华主题: 0
    发帖数量: 130 个
    工控威望: 646 点
    下载积分: 1107 分
    在线时间: 81(小时)
    注册时间: 2019-06-26
    最后登录: 2023-11-18
    查看苏碧湖砍柴人的 主题 / 回贴
    8楼  发表于: 2019-08-03 10:20
    我来总结一下,4楼的这种方法不完全可行,因为如果两个光电开关之间存在多个箱子的话就会出现计数错误,这也是5楼补充的问题,然后7楼的回应正好解决了这个BUG,也就是说,如果刚好两个箱子在两个光电之间,必须要等前面一个箱子过去了,后面的箱子才能计数
    其实有很多种方法都可以实现的,每个人的想法都不一样,看个人思维
    楼主留言:
    请问老师 :为什么要把D2.0常闭串联至D5.0,D.8.0,,,,置位条件中,D5.0常闭串联至D.8.0,,,,置位条件中,以此类推,这是什么原理呢,且这其中D5.0,D8.0不是其他组在使用的吗,如果是为了解决两个光电之间有两箱的情况第一箱没有推进去的时候、那第二箱岂不是不计数了?
    本帖最近评分记录:
  • 下载积分:+1(gaoyingchun)
    苏碧湖砍柴人
    人无我有,人有我精,人精我异
    级别: 家园常客
    精华主题: 0
    发帖数量: 130 个
    工控威望: 646 点
    下载积分: 1107 分
    在线时间: 81(小时)
    注册时间: 2019-06-26
    最后登录: 2023-11-18
    查看苏碧湖砍柴人的 主题 / 回贴
    9楼  发表于: 2019-08-03 10:22
    楼主要是还不明白,可以私我,我可以一步一步教你
    hjl76
    级别: 探索解密
    精华主题: 0
    发帖数量: 81 个
    工控威望: 173 点
    下载积分: 692 分
    在线时间: 71(小时)
    注册时间: 2009-12-02
    最后登录: 2023-12-22
    查看hjl76的 主题 / 回贴
    10楼  发表于: 2019-08-03 15:27
    滚筒线在进CCD之前可以做积存啊,拉开一小段距离不可以吗?
    wenliang
    擡頭白雲悠悠,前竟一片黯愁……
    级别: 家园常客
    精华主题: 0
    发帖数量: 695 个
    工控威望: 883 点
    下载积分: 42959 分
    在线时间: 530(小时)
    注册时间: 2014-04-04
    最后登录: 2024-04-22
    查看wenliang的 主题 / 回贴
    11楼  发表于: 2019-08-03 20:11
    谢谢 各位老师的指导!我先按照上述的方法做个测试吧,要是有什么问题再向各位老师请教,真心感谢各位老师耐心的解答!