ABB机器人程序实例.docx
- 文档编号:10973915
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:9
- 大小:15.60KB
ABB机器人程序实例.docx
《ABB机器人程序实例.docx》由会员分享,可在线阅读,更多相关《ABB机器人程序实例.docx(9页珍藏版)》请在冰豆网上搜索。
ABB机器人程序实例
MODULEMainModule
CONSTrobtargetpHome:
=[[,,],[,,,],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePickMould:
=[[,,],[,,,],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePickClapboard:
=[[,,],[,,,],[-1,-2,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPickMould:
=[[,,],[,,,],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPickClapboard:
=[[,,],[,,,],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePlace:
=[[,,],[,,,],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePlace10:
=[[,,],[,,,],[-2,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePlace20:
=[[,,],[,,,],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPlaceMould:
=[[,,],[,,,],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPlaceClapboard:
=[[,,],[,,,],[0,1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePlaceClapboard:
=[[,,],[,,,],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePickClapboard10:
=[[,,],[,,,],[-1,-1,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetpPrePickMould10:
=[[,,],[,,,],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTnumnOffs:
=100;
PERSnumnCurOffs:
=100;
CONSTnumnLayer:
=0;
PERSnumnCurLayer:
=0;
CONSTnumnThickness:
=40;
VARboolbTimeOut:
=FALSE;
PERSboolbDryCycle:
=FALSE;
VARintnumiDryCycle;
VARintnumiResDryCycle;
VARintnumiVacuum;
PERStooldatatGripper:
=[TRUE,[[0,0,100],[1,0,0,0]],[,[,,],[1,0,0,0],,,]];
PROCmain()
rInitAll;
WHILETRUEDO
IFsiDryCycle=1ornCurLayer<1then
rPickClapboard;
ELSE
rPickMould;
ENDIF
Waittime;
ENDWHILE
ENDPROC
PROCrPickMould()
DIWaitdiMouldready,1,3,"entranceConveyer","readyforpick";
DIWaitdiPlaceReady,1,3,"exitConveyer","readyforremove";
MoveJpPrePickMould,v1500,z50,tGripper;
IFBitCheck(nCurlayer,1)THEN
nCurOffs:
=nOffs;
ELSE
nCurOffs:
=-nOffs;
ENDIF
MoveLoffs(pPickMould,0,nCurOffs,100+nCurLayer*nThickness),v1000,z50,tGripper;
MoveLoffs(pPickMould,0,nCurOffs,(nCurLayer-1)*nThickness),v200,fine,tGripper;
GripClose;
DecrnCurLayer;
MoveLoffs(pPickMould,0,nCurOffs,100+nCurLayer*nThickness),v200,z50,tGripper;
MoveJpPrePickMould,v1000,z50,tGripper;
DIWaitdiPlaceReady,1,3,"exitConveyer","readyforremove";
MoveJpPrePlace10,v1500,z10,tGripper;
MoveLoffs(pPlaceMould,0,0,100),v1500,z10,tGripper;
MoveLpPlaceMould,v200,fine,tGripper;
GripOpen;
MoveLoffs(pPlaceMould,0,0,100),v200,z10,tGripper;
MoveLpPrePlace10,v1500,z10,tGripper;
MoveJpPrePickMould,v1500,z10,tGripper;
PulseDO\PLength:
=2,doMouldPlaceOK;
ENDPROC
PROCrPickClapboard()
DIWaitdiMouldready,1,3,"entranceConveyer","readyforpick";
MoveLoffs(pPickClapboard,0,0,100),v1000,z50,tGripper;
MoveLpPickClapboard,v200,fine,tGripper;
GripClose;
MoveLoffs(pPickClapboard,0,0,100),v200,z50,tGripper;
MoveLoffs(pPickClapboard,0,0,500),v1000,z50,tGripper;
MoveLpPrePlaceClapboard,v1000,z10,tGripper;
DIWaitdiClapboardReady,1,3,"exitConveyer","readyforremove";
MoveLoffs(pPlaceClapboard,-700,-200,250),v1000,z10,tGripper;
MoveLoffs(pPlaceClapboard,00,-10,100),v1000,z10,tGripper;
MoveLpPlaceClapboard,v100,fine,tGripper;
GripOpen;
MoveLoffs(pPlaceClapboard,0,-50,100),v1000,z10,tGripper;
MoveLoffs(pPlaceClapboard,-700,-200,250),v1000,z10,tGripper;
MoveLpPrePlaceClapboard,v1000,z10,tGripper;
PulseDO\PLength:
=,doClapboardPickOK;
MoveJpHome,v1500,fine,tGripper;
PulseDO\PLength:
=,doUnStackOk;
WaitTime2;
DIWaitdiMouldready,0,3,"exitConveyer","readyforremove";
nCurLayer:
=nLayer;
ENDPROC
PROCrInitAll()
IFdiVacuum1=0THEN
WaitTime1;
ELSE
ErrWrite"TheRob1grippererror!
","Thegripperisnotopened!
"\RL2:
="Checkthegrippersignalpostion."\RL3:
="openthegrippermanuallyandtakeawaythepartfromgripper.";
Stop;
Exit;
ENDIF
rMoveHome;
nCurLayer:
=nLayer;
IDeleteiVacuum;
CONNECTiVacuumWITHtLostPart;
ISignalDIdiVacuum1,1,iVacuum;
ISleepiVacuum;
ENDPROC
ROCGripClose()
SetDOdoVacuum,1;
SetDOdoBlow,0;
WaitUntildiVacuum1=1\MaxTime:
=10\TimeFlag:
=bTimeOut;
IFbTimeOutTHEN
ErrWrite"RobGripperSignalerror!
","FatalerrorinGripper"\RL2:
="Checkthegrippersignalpostion."\RL3:
="changeanewsensor.";
Stop;
ENDIF
Waittime;
IWatchiVacuum;
ENDPROC
PROCGripOpen()
ISleepiVacuum;
SetDOdoVacuum,0;
PulseDO\PLength:
=,doBlow;
WaitUntildiVacuum1=0\MaxTime:
=5\TimeFlag:
=bTimeOut;
IFbTimeOutTHEN
ErrWrite"RobGripperSignalerror!
","FatalerrorinGripper"\RL2:
="Checkthegrippersignalpostion."\RL3:
="changeanewsensor.";
Stop;
ENDIF
Waittime;
ENDPROC
PROCrMoveHome()
VARstringHomeOffset;
CONSTnumMinX:
=-500;
CONSTnumMaxX:
=500;
CONSTnumMinY:
=-500;
CONSTnumMaxY:
=500;
CONSTnumMinZ:
=500;
CONSTnumMaxZ:
=1200;
VARrobtargetActualPos;
VelSet100,500;
AccSet70,70;
IFbCurrentPos(pHome,tGripper,50)=TRUETHEN
MoveJpHome,v500,fine,tGripper\WObj:
=wobj0;
ENDIF
IFbCurrentPos(pPrePickMould,tGripper,50\wobj:
=Wobj0)=TRUETHEN
MoveJpHome,v500,fine,tGripper\WObj:
=wobj0;
ENDIF
IFbCurrentPos(pPrePickClapboard,tGripper,100\wobj:
=Wobj0)=TRUETHEN
MoveJpHome,v500,fine,tGripper\WObj:
=wobj0;
ENDIF
IFbCurrentPos(pPreplace,tGripper,100\wobj:
=Wobj0)=TRUETHEN
MoveJpHome,v500,fine,tGripper\WObj:
=wobj0;
ENDIF
IFbCurrentPos(pHome,tGripper,100)=FALSETHEN
!
Ifnoknownpositionisfound,checkiftherobotisinaspecified
!
windowandmovehimtothefirstpositionintheprogram
ActualPos:
=CRobT(\Tool:
=tGripper\WObj:
=wobj0);
IFORORORORORTHEN
HomeOffset:
="";
IFTHEN
HomeOffset:
=HomeOffset+"X:
"+NumToStr"";
ELSEIFTHEN
HomeOffset:
=HomeOffset+"X:
"+NumToStr"";
ELSE
HomeOffset:
=HomeOffset+"X:
OK";
ENDIF
IFTHEN
HomeOffset:
=HomeOffset+"Y:
"+NumToStr"";
ELSEIFTHEN
HomeOffset:
=HomeOffset+"Y:
"+NumToStr"";
ELSE
HomeOffset:
=HomeOffset+"Y:
OK";
ENDIF
IFTHEN
HomeOffset:
=HomeOffset+"Z:
"+NumToStr"";
ELSEIFTHEN
HomeOffset:
=HomeOffset+"Z:
"+NumToStr"";
ELSE
HomeOffset:
=HomeOffset+"Z:
OK";
ENDIF
ErrWriteHomeOffset,"Moverobotmanuallynearhomeposition";
WHILEOpMode()<>OP_MAN_PROGDO
TPErase;
TPWrite"PleaseswitchrobottoManualmode";
!
TPErase;
Stop;
ENDWHILE
Stop;
MoveJpHome,v500,fine,tGripper;
!
npallet:
=4;
ActualPos:
=CRobT(\Tool:
=tGripper\WObj:
=wobj0);
WHILEOpMode()<>OP_AUTODO
TPErase;
TPWrite"PleaseswitchrobottoAUTOmode";
!
TPErase;
Stop;
ENDWHILE
ENDIF
ENDIF
VelSet100,3000;
ENDPROC
TRAPtLostPart
ErrWrite"Partlost!
","FatalerrorinGripper"\RL2:
="Checkthegripper."\RL3:
="checkthevacuum.";
Stop;
ENDTRAP
ENDMODULE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABB 机器人 程序 实例