ABB机器人程序实例.docx

上传人:b****4 文档编号:4951819 上传时间:2023-05-07 格式:DOCX 页数:9 大小:15.60KB
下载 相关 举报
ABB机器人程序实例.docx_第1页
第1页 / 共9页
ABB机器人程序实例.docx_第2页
第2页 / 共9页
ABB机器人程序实例.docx_第3页
第3页 / 共9页
ABB机器人程序实例.docx_第4页
第4页 / 共9页
ABB机器人程序实例.docx_第5页
第5页 / 共9页
ABB机器人程序实例.docx_第6页
第6页 / 共9页
ABB机器人程序实例.docx_第7页
第7页 / 共9页
ABB机器人程序实例.docx_第8页
第8页 / 共9页
ABB机器人程序实例.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ABB机器人程序实例.docx

《ABB机器人程序实例.docx》由会员分享,可在线阅读,更多相关《ABB机器人程序实例.docx(9页珍藏版)》请在冰点文库上搜索。

ABB机器人程序实例.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2