返回主站|会员中心|保存桌面

新松机器人综合服务商    

新松工业机器人,新松协作机器人

新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 如何对新松机器人进行编程以实现堆垛功能?
新闻中心
如何对新松机器人进行编程以实现堆垛功能?
发布时间:2026-07-23        浏览次数:11        返回列表

新松机器人语法体系接近 RAPID,同时自带堆垛工艺包,分为两条实现路线:

  1. 简易方案:调用系统内置【Pallet 堆垛工艺向导】

  2. 灵活方案:自主编写程序,FOR 循环 + 偏移计算(异形垛、奇偶交错垛,项目调试常用)

先梳理堆垛底层逻辑,再给实操步骤、标准代码、精度控制要点,适配码垛项目。

一、前期准备

  1. 工具标定 TCP吸盘 / 夹爪完成 4 点 TCP 标定,设置正确TOOL工具数据;

  2. 工件坐标系 base 标定(托盘坐标系)使用 3 点法建立托盘基准坐标系,对应 ABB WObj、库卡 base;所有垛位基于该坐标系运算。菜单:机器人设定 → 坐标系设定 → 工件坐标系 → 三点测量

原点选托盘一角,X = 托盘长度,Y = 托盘宽度。

  1. 负载数据 Load 设置录入吸盘 + 工件重量、重心,降低高速运动动态误差;

  2. 点位规划提前示教

  • pGet:取料点位

  • pGetSafe:取料上方安全点

  • pPalSafe:托盘上方全局过渡安全高度

  1. IO 信号定义DI:物料到位信号;DO:真空吸盘输出;DI 真空检测反馈

二、方式一:新松内置堆垛工艺包(快速搭建,规整矩形垛)

新松 SiRC 控制系统自带 Pallet 工艺功能,图形化配置,自动生成垛点。

操作步骤

  1. 示教器:工艺 → 堆垛(Palletizing),新建堆垛任务

  2. 参数录入:

    • 选择已经标定好的【工件坐标系】

    • 托盘基准点、安全高度、放置接近高度

    • 产品尺寸:长、宽、高

    • 每层行列数量、最大层数

    • 奇偶层偏移(交错码垛,防塌垛)

  3. 示教取料位置与取料安全点

  4. 系统自动生成垛矩阵,预览垛型,检查有无干涉

  5. 自动生成子程序,主程序直接调用堆垛子程序

✅ 优点:上手快、代码少;❌ 局限:固定矩形垛,特殊异形排布修改不方便;复杂工艺逻辑扩展弱。

三、方式二:自主编程(推荐工业堆垛,奇偶交错垛通用)

新松编程语言: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)

  1. OffSet(基准点,X偏移,Y偏移,Z偏移)等同于 ABB Offs、库卡 frame 偏移,自动生成所有垛位,无需逐个示教;

  2. MoveL 线性运动(堆垛必须使用线性,禁止全程 PTP 关节运动)

  3. SetWorkObject(n) 激活工件坐标系

  4. MOD(Layer,2) 取余数,实现奇偶层交错码垛

四、堆垛运动规范(保障精度,和前面几台机器人通用准则)

  1. 远距离空中移动:可以使用 z 区域数据(z50/z100)提升节拍;

  2. 取料下降、放料下降点位:强制使用fine精准定位;

  3. 放料低速运行 v300~v500,避免冲击物料滑移;

  4. 抓取与释放增加延时,消除机械回弹误差。

五、常见现场问题与调试方法

  1. 垛型整体偏移优先复核:工件坐标系 base 是否标定准确、TCP 是否漂移;

  2. 奇偶层对不齐检查偏移量 BoxW/2 数值,单位统一为毫米;

  3. 上层摆放误差更大核对负载 Load 参数;远端点位降低运动速度;

  4. 偶尔带走物料释放真空后增加延时,抬高后再移动。

六、六大品牌堆垛编程思路横向对照

表格

机器人品牌坐标系偏移函数循环语言
ABBWObjOffs()RAPID FOR 循环
库卡base[]frame 偏移KRL FOR 循环
爱普生WorkframeOffset()SpeL
OTCWORKOFFSETOTC 语言
新松WorkObjectOffSet()SLang
发那科UFOFFSETKAREL/TP 程序

七、拓展需求

如果你需要,我可以提供:

  1. 新松堆垛防碰撞、真空丢失急停、异常复位逻辑完整升级程序;

  2. 示教器菜单路径:零点标定、TCP 标定、工件坐标系标定完整步骤;

  3. 程序简化版本,直接导入控制柜测试。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服