工控肥仔
工控肥仔
級(jí)別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 675 個(gè)
工控威望: 5673 點(diǎn)
下載積分: 4291 分
在線時(shí)間: 779(小時(shí))
注冊(cè)時(shí)間: 2018-11-17
最后登錄: 2024-12-20
查看工控肥仔的 主題 / 回貼
樓主  發(fā)表于: 2022-05-10 10:21
圖片:
各位大師幫我想想,從CCD過來(lái)給出一組數(shù)據(jù),M300----M307,一共八個(gè)產(chǎn)品,

          假如:M300 ----M307為一組數(shù)據(jù),
                    1,如果全部置ON就是良品,可以一次全部擺放過去
                    2,如果產(chǎn)品中間有不良品出現(xiàn),丟掉不良品后再去擺盤,此時(shí)有空缺位,
                          假如M307,M306為良品,M305為不良品,M304后面全是良品,
                          這時(shí)就需要先放M307 M306,在往前 前進(jìn)一位,在一次放下其他產(chǎn)品
                          整個(gè)擺放流程最多不能超過四次,就是說有幾個(gè)良品先放幾個(gè),空缺位一次往前補(bǔ),知道有良品為止
                      

                       大家?guī)臀蚁脒@種程序怎么寫方便些


                        產(chǎn)品用三軸擺盤,下面是手工畫的平面圖
sjbandmm
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 237 個(gè)
工控威望: 407 點(diǎn)
下載積分: 987 分
在線時(shí)間: 168(小時(shí))
注冊(cè)時(shí)間: 2008-08-23
最后登錄: 2024-11-19
查看sjbandmm的 主題 / 回貼
1樓  發(fā)表于: 2022-05-10 22:08
這個(gè)算法要根據(jù)你的機(jī)械機(jī)構(gòu)來(lái)設(shè)計(jì)的,你沒說清楚,怎么剔除NG產(chǎn)品,是抓取后先剔除NG,你都沒說,我只能跟據(jù)你說的來(lái)猜了,看你的要求是:8個(gè)產(chǎn)品中,無(wú)論哪幾個(gè)產(chǎn)品有問題,在碼盤的時(shí)候要緊密擺放,剔除NG產(chǎn)品的空位。
看你的算法要求一次性抓取所有的產(chǎn)品,然后將最后的幾個(gè)連續(xù)的OK品放下后,再移動(dòng)前面未放下的產(chǎn)品的,消除空位。
如果是這樣的話:使用for-next指令就行,從8開始到1,先搜索到第一個(gè)NG的位置,再搜索NG后第一個(gè)OK品,第一個(gè)NG減第一個(gè)OK位置,就是需要移動(dòng)的位置。
比如M305和M304、302為異常,那么第一次搜索到NG位置位6,第一次OK位置位4,那么6-4=2(移動(dòng)距離),第一次釋放的產(chǎn)品為M300+4=M304到M307,釋放4個(gè)抓具,然后移動(dòng)2個(gè)位置。
第二次循環(huán)從4-1開始,第二次搜索到NG位置為3,OK位置位2,移動(dòng)距離位3-2=1,再次釋放復(fù)位M300+2=M302到M307,第二次移動(dòng)一個(gè)位置。
下次問問題還是描述清楚,不是你明白別人也明白。