讨论

abb机器人moc功能到底怎么用?项目里要做视觉抓取换产

潘广志
潘广志
2026/03/21 20:33

最近接了个汽车零部件的集成项目,上料用的是ABB IRB1200,配了康耐视的视觉。客户那边换产频率挺高的,每次换型号都要重新示教点位,烦得要命。听说ABB有个MOC功能可以挂在RAPID里用,能根据外部信号或者变量切换程序分支,不知道这个到底怎么调用?是直接在main里加个IF判断就行,还是要走什么专门的指令?

另外我手头是RobotStudio 2023,装的是RW 6.x的系统,有没有大佬实际项目里用过这个MOC的,说说大概的编程思路和注意事项,踩过啥坑也讲讲。

25 3

全部回复 (3)

魏广志
魏广志#1

MOC全称是Move Object Correction,说白了就是给当前运动指令加个偏移补偿。一般用法是视觉那边算出来x、y、r的角度,发给机器人,机器人在做MoveL或者MoveJ之前用MOC指令把偏移叠上去。语法大概就是MOC vweldobj, x, y, z, rx, ry, rz这样,vweldobj是个robtarget类型的变量,提前在数据里声明好。

你说的换产切换程序分支,其实更推荐用程序指针切换或者多程序并行,MOC本质是位置补偿,不是程序分支控制。如果是不同型号走完全不同的路径,那直接main里IF判断调用不同的例行程序更直接,MOC更适合同一条路径下产品来料位置有偏差的场景,比如视觉抓取、焊接跟踪这种。

2026/03/23 03:31
13787439110
13787439110#2

你那个版本RW 6.x直接用就行,不用额外装什么选项包,注意MOC的单位要和Move指令的单位一致,别robtarget用度偏移写成mm。另外记得补偿完之后下一条运动指令才生效,别MOC加在最后一条Move后面,那就白加了。

2026/03/23 09:47
老董
老董#3

等下,你那个1200配康耐视做换产,为啥不直接走视觉伺服?MOC这种方式每次换型还是要重新对基准点的,基准点没标定准的话偏移量再准也白搭。我们厂里类似的应用是用PC SDK或者Socket直接发robtarget整个过去,灵活度更高一些。

2026/03/23 10:28