分享

ABB上料机器人程序注释,31#程序

 昵称65413715 2019-07-19

PROC rProg31()

        MoveJ pStartPOS,v300,fine,T_Gripper1;//移动到启动位置

        MoveJDO pWaitPick,v300,fine,T_Gripper1,DO112,1;//移动到等待位置

        Pos_WaitLoad:=pWaitLoad.trans.y;//等待上料点Y轴坐标参数

        Pos_OutLoad:=pOutLoad.trans.y;//离开上料点Y轴坐标参数

        PosJudge;

        LableA:

        wobj_num:=GI1;//程序号

        Ahead_Press:=GI4;//提前冲压距离

        SetAO AO5,pLoad.trans.y;//机器人放料点Y坐标

        !Pos_OutLoad:=pOutLoad.trans.y;

        GripLoad load0;

        MoveJDO pWaitPick,v3000,z200,T_Gripper1,DO112,1;//移动到等待抓料点

        rSignal(1);//信号处理程序

        Lable1:

        WaitUntil(DI32=1 AND DI38=1) OR DI26=1 OR DI29=1 OR DI7=1;//等待信号

        IF DI26=1 THEN//整线清空

            rMoveToHome;//回原点

            rGripVacuum;

            EXIT;

        ENDIF

        IF DI29=1 OR DI7=1 THEN//开门和停止信号请求

            rDoorOpen;//门打开程序

            GOTO Lable1;

        ENDIF

        Reset DO69;//在其他装置外部

        WaitUntil(DI32=1 AND DI38=1);//允许在其他装置取料和前一台机器人在干涉区域外部

        BaseCoordCall;//视觉基础位置程序调用

        CallByVar "Vision",wobj_num;//调用视觉程序

        rGrip;

        MoveJ RelTool(pPick,-x1,y1,-180\Rz:=-a1),v4000,fine,toolVision;//移动到抓料点位置1正上方

        PulseDO\PLength:=0.5,DO63;//输出DO63,给吸盘控制程序,控制阀岛打开一部分吸盘通道

        MoveL RelTool(pPick,-x1,y1,48\Rz:=-a1),v500,fine,toolVision;//移动到抓料点

        MoveJ RelTool(pPick,-x1,y1,-100\Rz:=-a1),v1000,z50,toolVision;//抓料后上升一定的位置

        BaseCoordCall;//视觉基础位置程序调用

        toolVision.tframe.trans.x:=toolVision.tframe.trans.x+OffsCoordX1;

        toolVision.tframe.trans.y:=toolVision.tframe.trans.y-OffsCoordY1;

        MoveJ RelTool(pPick,-x2,y2,-100\Rz:=-a2),v1000,fine,toolVision;//移动到抓料点位置2正上方

        PulseDO\PLength:=0.1,DO61;//输出DO61,打开全部吸盘

        MoveL RelTool(pPick,-x2,y2,48\Rz:=-a2),v500,fine,toolVision;//移动到抓料点2

        MoveJ RelTool(pPick,-x2,y2,-100\Rz:=-a2),v1000,z50,toolVision;//抓料后上升一定的位置

        Reset DO66;//复位DO66提前启动压机

        LABLE3:

        WaitUntil DI00=1 AND DI01=1\MaxTime:=1\TimeFlag:=VacuumFault0;//等待真空信号满足DI00DI01满足,否在报警停止

        IF VacuumFault0=TRUE THEN

            PulseDO\PLength:=2,DO104;

            TPWrite "Unload Vacuum Fault,Please Check!";

            Stop;

            GOTO LABLE3;

        ENDIF

        PulseDO\PLength:=0.5,DO62;//从其他装置取料完成

        rSignal(2);//信号处理程序

        BaseCoordCall;//视觉基础位置程序调用

        !MoveL pAfterPick,v800,z150,T_Gripper1;

        MoveJDO pTransit,v2500,z200,T_Gripper1,DO69,1;//机器人抓料离开皮带机点,位于等待上料点前边

        MoveJDO pWaitLoad,v3000,z200,T_Gripper1,DO118,1;//等待上料点,DO118到达上料等待点触发信号

        rSignal(3);//信号处理程序

        Lable2:

        WaitUntil(DI34=1 AND DI37=1) OR DI29=1 OR DI7=1;

        IF DI29=1 OR DI7=1 THEN

            rDoorOpen;

            GOTO Lable2;

        ENDIF

        lable4:

        WaitUntil DI00=1 AND DI01=1\MaxTime:=0.5\TimeFlag:=VacuumFault2;

        IF VacuumFault2=TRUE THEN

            PulseDO\PLength:=1,DO105;

            TPWrite "load Vacuum Fault,Please Check!";

            Stop;

            GOTO lable4;

        ENDIF

        CONNECT Int_speed WITH SpeedChange;

        ISignalDI DI63,1,Int_Speed;//DI63降低上料机器人的速率

        WaitDI DI40, 1;//模具内有料

        TriggIO trig_OverLoad,0\Start\DOp:=DO119,1;//D0119上料等待点开始向下一个压机内移动

        TriggL pOverLoad,v5000,trig_OverLoad,z50,T_Gripper1;//上料之前的点,在上料点的正上方

        Reset DO118;//复位信号DO118到达上料等待点触发信号

        MoveLSync pLoad,v800,fine,T_Gripper1,"rGripBlow";//上料点

        MoveL pAfterLoad,v1000,z50,T_Gripper1;//上料之后的点,在上料点的正上方

        IDelete Int_Speed;

        Speed100;//速度检测,100%才能开启提前量方式生产

        TriggIO trig_OutLoad,Ahead_Press\DOp:=DO66,1;//提前启动压机

        TriggL pOutLoad,v5000,trig_OutLoad,z100,T_Gripper1;//放料退出压机点?

        rSignal(4);//输出向后一台压机放料完成

        GOTO LableA;

    ENDPROC//程序结束

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多