紧急求助

码垛程序里垛型切换一般写几种合理?

yong666
yong666
2026/05/09 08:11

现场用的是ABB的IRB6700,配的是标准码垛包,产量不大一天也就两三千箱,但箱规换得勤,一个上午可能切三四个垛型。现在程序里垛型切换我都是用routines分开的,一个垛型一个routine,切换的时候goto跳过去,但感觉管起来有点乱,特别是改抓取点偏移的时候得每个routine都改一遍。

想问问大家码垛程序里垛型切换一般写几种算合理?是用case分支集中写,还是像我这样每个routine单独放?有没有更省事的套路,最好是改一个数就能切垛型那种。

10 4

全部回复 (4)

吴宁
吴宁#1

看你这产量和切换频率,分routine其实没啥大问题,调试的时候还好排查。但你那个每个routine都改偏移确实烦,我之前做法是把所有跟位置相关的参数都扔到一张配置表里——就是普通的数组,索引对应箱长宽高、层数、行列数、抓取点偏移、放置点偏移这些,routine里只做逻辑,比如算当前抓哪个放哪个,坐标全从表里取。新垛型来了加一行配置就行,routine不用动。gripper那边如果是同一款,只改一套偏移就够了。ABB的话用那种persistent变量存表,重启不丢。

2026/05/09 09:34
老婆孩子热炕头
老婆孩子热炕头#2

想问下你一个上午切三四个垛型,箱子尺寸差得多吗?还有就是抓取点偏移是每个垛型都不一样的还是只跟箱子本身有关?如果只是箱子尺寸变,垛型布局一样,routine里很多计算是通用的,没必要每个都单独写一份。

2026/05/09 10:39
宋传东
宋传东#3

直接说,你分routine这做法在产量低的时候凑合能跑,但现场真要长期用迟早出事。case分支集中写才方便维护,我这边一条产线最多的时候写过12个垛型,全部走case,主程序就一个循环,切换时改一个变量名就行。调试时间比分routine还短,前提是你一开始就把坐标系和工具统一规划好,别让每个垛型自己搞一套基准。

2026/05/11 00:39
slj2000
slj2000#4

routines分开的路子别全扔,调试阶段我反而觉得分开了好定位问题,出了问题知道是哪个垛型在跑。但你最终交付的程序肯定得收一收,几十个routine散着后续接手的人会骂娘。建议调试完用脚本把分开的routine合并到case里,注释保留好就行。

2026/05/12 18:27