工控肥仔
工控肥仔
级别: 网络英雄
精华主题: 0
发帖数量: 625 个
工控威望: 5065 点
下载积分: 4591 分
在线时间: 701(小时)
注册时间: 2018-11-17
最后登录: 2024-04-29
查看工控肥仔的 主题 / 回贴
楼主  发表于: 2022-05-10 10:21
图片:
各位大师帮我想想,从CCD过来给出一组数据,M300----M307,一共八个产品,

          假如:M300 ----M307为一组数据,
                    1,如果全部置ON就是良品,可以一次全部摆放过去
                    2,如果产品中间有不良品出现,丢掉不良品后再去摆盘,此时有空缺位,
                          假如M307,M306为良品,M305为不良品,M304后面全是良品,
                          这时就需要先放M307 M306,在往前 前进一位,在一次放下其他产品
                          整个摆放流程最多不能超过四次,就是说有几个良品先放几个,空缺位一次往前补,知道有良品为止
                      

                       大家帮我想这种程序怎么写方便些


                        产品用三轴摆盘,下面是手工画的平面图
xylujian
级别: 探索解密
精华主题: 0
发帖数量: 83 个
工控威望: 161 点
下载积分: 913 分
在线时间: 109(小时)
注册时间: 2018-10-27
最后登录: 2024-04-28
查看xylujian的 主题 / 回贴
1楼  发表于: 2022-05-10 13:29
如果一组产品数据是按顺序流出,就用先入先出的流程来做。

至于摆盘,先把算法写好。摆一个+1就行(比如10*10摆盘,摆50的位置,XY坐标能立马算出来)
工控肥仔
工控肥仔
级别: 网络英雄
精华主题: 0
发帖数量: 625 个
工控威望: 5065 点
下载积分: 4591 分
在线时间: 701(小时)
注册时间: 2018-11-17
最后登录: 2024-04-29
查看工控肥仔的 主题 / 回贴
2楼  发表于: 2022-05-10 14:00
引用
引用第1楼xylujian于2022-05-10 13:29发表的  :
如果一组产品数据是按顺序流出,就用先入先出的流程来做。

至于摆盘,先把算法写好。摆一个+1就行(比如10*10摆盘,摆50的位置,XY坐标能立马算出来)



  我的遇到的问题是这样的
         假如八个中M305是不良品,我要同时放下M307,M306   在往前移动一个位置在同时放下其他的
         正常来说这八个产品过来的NG跟OK不是固定的,是随机的那种,我要用什么办法或指令去去区别呢
            而且不能一次只放一个产品
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 236 个
工控威望: 406 点
下载积分: 985 分
在线时间: 167(小时)
注册时间: 2008-08-23
最后登录: 2024-04-22
查看sjbandmm的 主题 / 回贴
3楼  发表于: 2022-05-10 22:08
这个算法要根据你的机械机构来设计的,你没说清楚,怎么剔除NG产品,是抓取后先剔除NG,你都没说,我只能跟据你说的来猜了,看你的要求是:8个产品中,无论哪几个产品有问题,在码盘的时候要紧密摆放,剔除NG产品的空位。
看你的算法要求一次性抓取所有的产品,然后将最后的几个连续的OK品放下后,再移动前面未放下的产品的,消除空位。
如果是这样的话:使用for-next指令就行,从8开始到1,先搜索到第一个NG的位置,再搜索NG后第一个OK品,第一个NG减第一个OK位置,就是需要移动的位置。
比如M305和M304、302为异常,那么第一次搜索到NG位置位6,第一次OK位置位4,那么6-4=2(移动距离),第一次释放的产品为M300+4=M304到M307,释放4个抓具,然后移动2个位置。
第二次循环从4-1开始,第二次搜索到NG位置为3,OK位置位2,移动距离位3-2=1,再次释放复位M300+2=M302到M307,第二次移动一个位置。
下次问问题还是描述清楚,不是你明白别人也明白。
xylujian
级别: 探索解密
精华主题: 0
发帖数量: 83 个
工控威望: 161 点
下载积分: 913 分
在线时间: 109(小时)
注册时间: 2018-10-27
最后登录: 2024-04-28
查看xylujian的 主题 / 回贴
4楼  发表于: 2022-05-11 08:45
引用
引用第2楼工控肥仔于2022-05-10 14:00发表的  :



  我的遇到的问题是这样的
         假如八个中M305是不良品,我要同时放下M307,M306   在往前移动一个位置在同时放下其他的
.......



说实话,还是没有理解你的意思。

同时放下产品???如果第一个和最后一个是OK,你的机构怎么同时放下产品
楼主留言:
这种情况就是先把第一个良品放在第一个位置,在往前移动六个产品位(此时不良品已经丢掉),在把第八个产品放在第二个产品位,此时八个产品才算摆放完成
龙达工控萌新
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 300 点
下载积分: 1122 分
在线时间: 84(小时)
注册时间: 2017-10-25
最后登录: 2024-04-22
查看龙达工控萌新的 主题 / 回贴
5楼  发表于: 2022-05-11 13:27
机构照片放两张上来,要是自己能描述清楚 就应该可以写出程序。。。有的时候是需要机械和电气共同配合才能达到最高效率  不要光电气的 死搞
liujian-weng
级别: 家园常客
精华主题: 0
发帖数量: 478 个
工控威望: 664 点
下载积分: 12183 分
在线时间: 2406(小时)
注册时间: 2007-11-13
最后登录: 2024-05-03
查看liujian-weng的 主题 / 回贴
6楼  发表于: 2023-10-08 10:03
为什么不能把次品在M0-0M7中直接剔除呢这样不更简单吗?