新松机器人语法体系接近 RAPID,同时自带堆垛工艺包,分为两条实现路线:
简易方案:调用系统内置【Pallet 堆垛工艺向导】
灵活方案:自主编写程序,FOR 循环 + 偏移计算(异形垛、奇偶交错垛,项目调试常用)
先梳理堆垛底层逻辑,再给实操步骤、标准代码、精度控制要点,适配码垛项目。
一、前期准备
工具标定 TCP吸盘 / 夹爪完成 4 点 TCP 标定,设置正确
TOOL工具数据;工件坐标系 base 标定(托盘坐标系)使用 3 点法建立托盘基准坐标系,对应 ABB WObj、库卡 base;所有垛位基于该坐标系运算。菜单:机器人设定 → 坐标系设定 → 工件坐标系 → 三点测量
原点选托盘一角,X = 托盘长度,Y = 托盘宽度。
负载数据 Load 设置录入吸盘 + 工件重量、重心,降低高速运动动态误差;
点位规划提前示教
pGet:取料点位
pGetSafe:取料上方安全点
pPalSafe:托盘上方全局过渡安全高度
IO 信号定义DI:物料到位信号;DO:真空吸盘输出;DI 真空检测反馈
二、方式一:新松内置堆垛工艺包(快速搭建,规整矩形垛)
新松 SiRC 控制系统自带 Pallet 工艺功能,图形化配置,自动生成垛点。
操作步骤
示教器:工艺 → 堆垛(Palletizing),新建堆垛任务
参数录入:
选择已经标定好的【工件坐标系】
托盘基准点、安全高度、放置接近高度
产品尺寸:长、宽、高
每层行列数量、最大层数
奇偶层偏移(交错码垛,防塌垛)
示教取料位置与取料安全点
系统自动生成垛矩阵,预览垛型,检查有无干涉
自动生成子程序,主程序直接调用堆垛子程序
✅ 优点:上手快、代码少;❌ 局限:固定矩形垛,特殊异形排布修改不方便;复杂工艺逻辑扩展弱。
三、方式二:自主编程(推荐工业堆垛,奇偶交错垛通用)
新松编程语言:SLang,语法风格参考下方模板。核心原理:多重 FOR 循环 + OffSet 坐标偏移函数变量说明:
slang
// 全局变量定义 VAR INT i,j,Layer; // i列 j行 Layer层数 VAR REAL BoxL,BoxW,BoxH;// 箱体长宽高 VAR POS pbase; // 托盘基准点(绑定工件坐标系) VAR POS pPlace; // 实时计算的放料点 VAR POS pApproach; // 放料接近点
完整标准堆垛示例程序
slang
PROG Main_Palletizing
// ==========参数初始化==========
BoxL=400; //箱体长度mm
BoxW=300; //箱体宽度mm
BoxH=250; //箱体高度mm
Layer=0; //当前层数清零
//激活托盘工件坐标系
SetWorkObject(1);
//循环堆垛,最多堆6层
WHILE(Layer<6)
{
Layer=Layer+1;
//每层循环排布:3列×2行
FOR i=0 TO 2
{
FOR j=0 TO 1
{
//奇偶层交错判断
IF MOD(Layer,2)==0 THEN
//偶数层 XY偏移实现交错
pPlace=OffSet(pbase,i*BoxL,j*BoxW+BoxW/2,(Layer-1)*BoxH);
ELSE
//奇数层标准排布
pPlace=OffSet(pbase,i*BoxL,j*BoxW,(Layer-1)*BoxH);
ENDIF
//========取料流程========
MoveL pGetSafe,v1000,fine,tool1;
MoveL pGet,v500,fine,tool1;
SetDO(1,ON); //打开真空吸盘
Delay(0.2);
WaitDI(1,ON,1.0); //等待真空确认,超时报警
MoveL pGetSafe,v800,fine,tool1;
//========放料流程========
MoveL pPalSafe,v1200,z50,tool1;
pApproach=OffSet(pPlace,0,0,80); //放料上方80mm接近点
MoveL pApproach,v800,fine,tool1;
MoveL pPlace,v400,fine,tool1;
Delay(0.15);
SetDO(1,OFF); //释放物料
Delay(0.15); //等待吸盘脱离,防止带起箱体
MoveL pApproach,v800,fine,tool1;
}
}
}
//满垛完成提示
SetDO(2,ON);
Delay(0.5);
SetDO(2,OFF);
END_PROG关键指令说明(新松 SLang)
OffSet(基准点,X偏移,Y偏移,Z偏移)等同于 ABB Offs、库卡 frame 偏移,自动生成所有垛位,无需逐个示教;MoveL线性运动(堆垛必须使用线性,禁止全程 PTP 关节运动)SetWorkObject(n)激活工件坐标系MOD(Layer,2)取余数,实现奇偶层交错码垛
四、堆垛运动规范(保障精度,和前面几台机器人通用准则)
远距离空中移动:可以使用 z 区域数据(z50/z100)提升节拍;
取料下降、放料下降点位:强制使用
fine精准定位;放料低速运行 v300~v500,避免冲击物料滑移;
抓取与释放增加延时,消除机械回弹误差。
五、常见现场问题与调试方法
垛型整体偏移优先复核:工件坐标系 base 是否标定准确、TCP 是否漂移;
奇偶层对不齐检查偏移量 BoxW/2 数值,单位统一为毫米;
上层摆放误差更大核对负载 Load 参数;远端点位降低运动速度;
偶尔带走物料释放真空后增加延时,抬高后再移动。
六、六大品牌堆垛编程思路横向对照
表格
| 机器人品牌 | 坐标系 | 偏移函数 | 循环语言 |
|---|---|---|---|
| ABB | WObj | Offs() | RAPID FOR 循环 |
| 库卡 | base[] | frame 偏移 | KRL FOR 循环 |
| 爱普生 | Workframe | Offset() | SpeL |
| OTC | WORK | OFFSET | OTC 语言 |
| 新松 | WorkObject | OffSet() | SLang |
| 发那科 | UF | OFFSET | KAREL/TP 程序 |
七、拓展需求
如果你需要,我可以提供:
新松堆垛防碰撞、真空丢失急停、异常复位逻辑完整升级程序;
示教器菜单路径:零点标定、TCP 标定、工件坐标系标定完整步骤;
程序简化版本,直接导入控制柜测试。

