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

ABB机器人配件服务中心    

ABB机器人配件|机器人配件

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
首页 > 新闻中心 > 如何通过 RAPID 程序控制 ABB 机器人气缸夹爪的运动?
新闻中心
如何通过 RAPID 程序控制 ABB 机器人气缸夹爪的运动?
发布时间:2026-07-26        浏览次数:4        返回列表

先区分两类电磁阀,程序写法完全不同,现场 90% 故障来自双线圈逻辑错误。

硬件前提回顾

  1. 单线圈电磁阀(弹簧复位):DO=1 夹紧;DO=0 松开。断电自动松爪。只需 1 路 DO。

  2. 双线圈电磁阀

    • DO_Grip:夹紧脉冲

    • DO_Open:松开脉冲

    • ⚠️ 禁止两路同时得电!会烧毁线圈

    • 脉冲触发即可,不需要长期通电;阀内部机械自锁保持状态。

推荐标配磁性感应开关(DI):diClosed 夹紧到位信号diOpened 松开到位信号

信号命名规范(示教器提前创建 Signal)

plaintext

DO: doGripClose    夹紧输出
DO: doGripOpen     松开输出
DI: diGripClosed   夹紧到位
DI: diGripOpened   松开到位

一、方案 1:双线圈保持电磁阀

封装子程序,全局任意调用,自带超时报警,防止卡爪、漏气掉料。

1. 夹爪松开子程序

rapid

PROC GripperOpen()
    !先复位夹紧线圈,杜绝双线圈同时导通
    ResetDO doGripClose;
    !输出松开脉冲
    SetDO doGripOpen, 1;
    WaitTime 0.2;      !脉冲宽度0.2s,足够换向
    ResetDO doGripOpen;

    !等待机械松开到位,超时1.5s报错停机
    WaitDI diGripOpened, 1 \Timeout:=1.5;
    !超时失败会触发系统错误,机器人停止
ENDPROC

2. 夹爪夹紧子程序

rapid

PROC GripperClose()
    ResetDO doGripOpen;
    SetDO doGripClose, 1;
    WaitTime 0.2;
    ResetDO doGripClose;

    WaitDI diGripClosed, 1 \Timeout:=1.5;
ENDPROC

3. 典型抓取主流程示例

rapid

PROC PickWorkpiece()
    MoveJ pSafeAbove, v600, z50, tool0;
    MoveL Offs(pPickPos,0,0,40), v300, fine, tool0;
    MoveL pPickPos, v120, fine, tool0;

    GripperClose();       !执行夹紧

    MoveL Offs(pPickPos,0,0,50), v300, z30, tool0;

    !搬运 ...
    MoveJ pSafePlace, v600, z50, tool0;
    MoveL Offs(pPlacePos,0,0,40), v300, fine, tool0;
    MoveL pPlacePos, v120, fine, tool0;

    GripperOpen();        !执行松爪
    MoveL Offs(pPlacePos,0,0,50), v300, z30, tool0;
ENDPROC

二、方案 2:单线圈弹簧复位电磁阀

仅 1 路 DO:doGrip

rapid

PROC GripperClose()
    SetDO doGrip,1;
    WaitDI diGripClosed,1 \Timeout:=1.5;
ENDPROC

PROC GripperOpen()
    ResetDO doGrip;
    WaitDI diGripOpened,1 \Timeout:=1.5;
ENDPROC

缺点:机器人急停、断电,DO 失电 → 夹爪立刻松开,工件掉落。上下料高危场景不建议。


三、进阶优化:增加错误处理

原生WaitDI \Timeout报错直接停机;如果你想要捕捉故障、自定义报警、回安全点,使用WaitDIReady手动判断:

rapid

PROC GripperClose()
    VAR bool bWaitOk;
    ResetDO doGripOpen;
    SetDO doGripClose,1;
    WaitTime 0.2;
    ResetDO doGripClose;

    !等待信号,1.5s计时
    bWaitOk := WaitDIReady(diGripClosed,1,1.5);
    IF NOT bWaitOk THEN
        TPWrite "夹爪夹紧失败!未检测到夹紧信号";
        MoveJ pSafeHome, v800, fine, tool0; !退回安全位置
        Stop; !程序暂停
    ENDIF
ENDPROC

四、关键编程禁忌(现场高频踩坑)

  1. ❌ 双线圈程序不要持续置位 DO

plaintext

SetDO doGripClose,1; 永久保持输出 → 线圈长期发热烧毁
✅ 正确:脉冲输出0.2s立刻复位
  1. ❌ 只用 WaitTime 延时,不使用 DI 到位信号气缸漏气、压力不足会导致抓空、掉料;必须依靠磁性开关确认位置

  2. ❌ 程序逻辑同时打开两路输出SetDO doGripClose,1; SetDO doGripOpen,1;直接烧毁电磁阀!代码里先 Reset 另一路,做互锁。

  3. ❌ 信号名称使用中文,部分旧系统存在兼容性报错。

五、调试步骤

  1. 示教器 → I/O 信号手动强制 DO,测试夹爪开合,确认 DI 磁性开关正常反馈;

  2. 单步运行子程序,观察 DO 输出时序;

  3. 缩短 / 延长脉冲时间(一般 0.15~0.3s),根据气缸响应速度微调;

  4. 模拟漏气、卡爪,测试超时报警功能是否生效。

六、拓展需求可选增加

  1. 抓取前预判断夹爪状态:IF DInput(diGripClosed) THEN ...

  2. 增加抓取工件检测(压力传感器 / 光电);

  3. 自动模式启动前初始化夹爪至打开位置。

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服