首页 上一页 1 2 下一页 尾页

ABB机器人外部信号一键回原 点击:3481 | 回复:29



gk2017

    
  • 精华:1帖
  • 求助:1帖
  • 帖子:5帖 | 22回
  • 年度积分:594
  • 历史总积分:956
  • 注册:2018年9月11日
发表于:2023-03-12 22:40:12
楼主
求助帖30分-已结帖

请问ABB机器人如何实现外部IO信号触发自动回原点,机器人在停止状态下一键回原点。



楼主最近还看过



puxianqiang

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 128回
  • 年度积分:4
  • 历史总积分:344
  • 注册:2022年8月11日
发表于:2023-06-10 20:58:15
21楼

1、2013最新整理eplan部件库

介绍:每个品牌系列都是可以单独导入的,需要用时才导入以免太大被卡死现象

https://item.taobao.com/item.htm?ft=t&id=714364562044

2、西门子博途 博图plc案例程序s7 200smart 300 1200 1500编程实例工程 最全

https://item.taobao.com/item.htm?spm=a213gs.success.result.1.18407a86KyfmZJ&id=717575723845


shuiwuya

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 126回
  • 年度积分:75
  • 历史总积分:198
  • 注册:2017年11月04日
发表于:2023-07-04 09:46:43
22楼

学习学习

微信用户

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 112回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2014年12月05日
发表于:2023-09-04 11:31:09
23楼

我也有个疑问,哪位大哥能指点一二:

就是机器人在运行过程中,想采用外部信号触发中断,调用回原点子程序,但是每次都是程序直接跳入跟随子程序没法触发跳出。

我把我的程序发出来:


MODULE MainModule

    PROC main()

        rInitial;

        rGoHome;

        WHILE TRUE DO

            IF Local_DI5_DropHeight=1 THEN

                nHeight:=0;

                rPick;

                IF Local_DI6_StickyPowder=1 THEN

                    rPutDreg;

                    rStickyPowder;

                ELSE

                    rPutDreg;

                ENDIF

            ELSE

                nHeight:=150;

                rPick;

                IF Local_DI6_StickyPowder=1 THEN

                    rPutDreg;

                    rStickyPowder;

                ELSE

                    rPutDreg;

                ENDIF

            ENDIF

            IF Local_DI7_ChangeShovel=1 THEN

                rChangeShovel;

            ENDIF


        ENDWHILE

    ENDPROC


    PROC rInitial()

        Reset Local_DO4_ScratchTime;

        DeactUnit CNV1;

        ConfL\Off;

        DropWObj wobjcnv1;

    ENDPROC


    PROC rGoHome()

        pCurrentPos:=CRobT(\Tool:=SlagHand\WObj:=wobj0);


        IF (500<pCurrentPos.trans.x) AND pCurrentPos.trans.x<2400 THEN

            IF (-800<pCurrentPos.trans.y) AND pCurrentPos.trans.y<500 THEN

                !pCurrentPos.trans.z:=pGoHome.trans.z;

                MoveJ Offs(pCurrentPos,0,0,nCurrentPos_Z),v100,z50,SlagHand;

                MoveJ pGoHome_Mid02,v300,z50,SlagHand;

                MoveJ pGoHome_Mid01,v300,z50,SlagHand;

                MoveJ pGoHome,v300,z50,SlagHand;

                MoveJ pChangeShovel_End,v200,fine,SlagHand;

                rAutoMotorOff;

            ENDIF

        ELSEIF (-600<pCurrentPos.trans.x) AND pCurrentPos.trans.x<600 THEN

            IF (-2000<pCurrentPos.trans.y) AND pCurrentPos.trans.y<-500 THEN

                MoveJ Offs(pCurrentPos,0,-50,0),v150,z50,SlagHand;

                pCurrentPos.trans.z:=pGoHome_Mid01.trans.z;

                MoveJ pCurrentPos,v300,z50,SlagHand;

                MoveJ pGoHome_Mid01,v300,z50,SlagHand;

                MoveJ pGoHome,v300,z50,SlagHand;

                MoveJ pChangeShovel_End,v200,z50,SlagHand;

                rAutoMotorOff;

            ENDIF

        ENDIF

        IF (-2000<pCurrentPos.trans.x) AND pCurrentPos.trans.x<-500 THEN

            IF (-1000<pCurrentPos.trans.y) AND pCurrentPos.trans.y<0 THEN

                MoveJ pGoHome,v400,z50,SlagHand;

                MoveJ pGoHome_Mid01,v400,z50,SlagHand;

                MoveJ pGoHome_Mid02,v500,z50,SlagHand;

                MoveJ pWaitPoint,v500,z50,SlagHand;

            ENDIF

        ENDIF

    ENDPROC


    PROC rPick()

        MoveJ pWaitPoint,vSpeed_pWait,z50,SlagHand;

        MoveJ pWait,vSpeed_pWait,z200,SlagHand;


        nHeight:=nHeight-Local_Gi_DropDepth;

        e:

        ActUnit CNV1;

        WaitWObj wobjcnv1\RelDist:=0;

        IF c1Position>1 THEN

            DropWObj wobjcnv1;

            WaitUntil c1Connected=0;

            DeactUnit CNV1;

            GOTO e;

        ENDIF


        GOTO a;

        DropWObj wobjCNV1;

        ActUnit CNV1;

        WaitWObj wobjCNV1;

        a:


        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry1\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y1,nOffset_Z1+nHeight),vPickSpeed_01,z10,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry2\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y2,nOffset_Z2+nHeight),vPickSpeed_02,z50,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry3\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y3,nOffset_Z3+nHeight),vPickSpeed_03,z50,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry4\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y4,nOffset_Z4+nHeight),vPickSpeed_04,z10,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry5\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y5,nOffset_Z5+nHeight),vPickSpeed_05,z40,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry6\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y6,nOffset_Z6+nHeight),vPickSpeed_06,z50,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry7\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y7,nOffset_Z7+nHeight),vPickSpeed_07,z50,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry8\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y8,nOffset_Z8+nHeight),vPickSpeed_08,z30,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry9\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y9,nOffset_Z9+nHeight),vPickSpeed_09,z30,SlagHand\WObj:=wobjCNV1;

        MoveL Offs(RelTool(pPick,0,0,0\Rx:=nRotationAngle_Rx\Ry:=nRotationAngle_Ry10\Rz:=nRotationAngle_Rz),nOffset_X,nOffset_Y10,nOffset_Z10+nHeight),vPickSpeed_End,z100,SlagHand\WObj:=wobjCNV1;

    ENDPROC


    PROC rPutDreg()

        AccSet 100,10;

        MoveJ pPutDreg_Start,vPutDreg_Start,z50,SlagHand;

        MoveJ pPutDreg_Mid01,vPutDreg_Mid01,z100,SlagHand;

        MoveJ pPutDreg_Mid02,vPutDreg_Mid02,z100,SlagHand;

        MoveJ pPutDreg_Mid03,vPutDreg_Mid03,z50,SlagHand;

        MoveL pPutDreg_End,vPutDreg_End,fine,SlagHand;

        Set Local_DO4_ScratchTime;

        WaitTime 0.5;

        AccSet 100,100;

        DropWObj wobjCNV1;

        DeactUnit CNV1;

        MoveL RelTool(pPutDreg_End,-400,0,0\Ry:=0),vPutDreg_finish,fine,SlagHand;

        Reset Local_DO4_ScratchTime;

    ENDPROC


    PROC rStickyPowder()

        MoveJ pStickyPowder_Start,vStickyPowder_Start,z50,SlagHand;

        MoveJ offs(pStickyPowder_in,nStickyPowder_in_X,nStickyPowder_in_Y,nStickyPowder_in_Z),vStickyPowder_in,z20,SlagHand;

        WaitTime nTime;

        MoveJ pStickyPowder_out,vStickyPowder_out,z50,SlagHand;

        PulseDO\PLength:=1.5,Local_DO3_SlagFinish;

    ENDPROC


    PROC rChangeShovel()

        AccSet 100,25;

        MoveJ pChangeShovel_Start,v400,z50,SlagHand;

        MoveJ pChangeShovel_Mid,v400,Z50,SlagHand;

        MoveJ pChangeShovel_End,v200,fine,SlagHand;

        rAutoMotorOff;

    ENDPROC


    PROC rAutoMotorOff()

        WaitTime 1;

        PulseDO\PLength:=0.5,Local_DO10_AutoMotorOff;

    ENDPROC



ENDMODULE


Cheart

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 290回
  • 年度积分:37
  • 历史总积分:776
  • 注册:2020年9月02日
发表于:2024-04-26 08:38:05
24楼

感谢楼主分享资源

jeff301

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:81
  • 历史总积分:81
  • 注册:2024年7月19日
发表于:2024-07-19 05:29:41
25楼

先做一个判断,当DI有信号过来时,读取当前位置,原来依次回Z轴,后面X/Y轴

回复本条

    

alay

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 34回
  • 年度积分:97
  • 历史总积分:130
  • 注册:2015年3月23日
发表于:2024-09-26 10:41:04
26楼

膜拜大佬 小白前来学习

回复本条

    

薛省卫

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:53
  • 历史总积分:53
  • 注册:2015年9月30日
发表于:2024-09-30 08:56:59
27楼

用中断处理,收到外部回原点信号后,判断当前机器人是否具备回原点条件,条件满足,就可以通过会原点处理回原点,否则结束中断。

回复本条

    

monzer

  • [版主]
  • 精华:11帖
  • 求助:2帖
  • 帖子:49帖 | 123回
  • 年度积分:1059
  • 历史总积分:12916
  • 注册:2020年3月27日
发表于:2024-10-06 21:03:04
28楼

这就要看你对算法的认识,和算法的一般存在形态之间的差异有多大了。

回复本条

    

洛洛

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 7回
  • 年度积分:23
  • 历史总积分:101
  • 注册:2022年4月11日
发表于:2024-10-24 11:15:27
29楼

6代 7代选项 可以si我

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师
    
    首页 上一页 1 2 下一页 尾页