您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页ABB机器人程序实例

ABB机器人程序实例

来源:筏尚旅游网
实用标准文案

MODULE MainModule

CONST robtarget

pHome:=[[1525.42,272.18,1873.69],[4.42963E-05,0.699969,-0.714173,-2.80277E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPrePickMould:=[[1653.99,272.19,1779.41],[5.83312E-05,0.69997,-0.714172,-3.47922E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPrePickClapboard:=[[2036.17,-741.24,1235.05],[0.678651,0.73435,-0.0119011,0.00467586],[-1,-2,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPickMould:=[[1943.13,173.08,630.],[4.66987E-05,0.699977,-0.714166,-3.24109E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPickClapboard:=[[1943.19,173.08,620.72],[1.61422E-05,0.699977,-0.714165,-7.62858E-06],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPrePlace:=[[785.90,-957.40,1722.38],[0.00231652,0.0492402,-0.998779,-0.00310842],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

文档大全

实用标准文案

CONST robtarget

pPrePlace10:=[[-277.40,-1202.57,1621.17],[0.00183571,-0.0139794,-0.9995,-0.00341408],[-2,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPrePlace20:=[[-491.18,-1082.85,1505.90],[0.0006634,0.69408,0.719887,0.003863],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPlaceMould:=[[-92.13,-2580.19,1171.45],[0.0007716,0.713144,0.701007,0.00383692],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPlaceClapboard:=[[1585.08,1761.04,787.33],[0.005323,-0.00552996,-0.726358,-0.687263],[0,1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPrePlaceClapboard:=[[1017.30,955.85,1443.17],[1.0621E-05,-0.00849593,-0.9999,4.01139E-05],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

pPrePickClapboard10:=[[2257.17,-841.03,1579.56],[0.667517,0.74457,-0.00360206,0.00487631],[-1,-1,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget

文档大全

实用标准文案

pPrePickMould10:=[[530.24,-1703.27,1762.63],[5.07659E-05,0.96161,0.274421,2.37287E-05],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST num nOffs:=100;

PERS num nCurOffs:=100;

CONST num nLayer:=0;

PERS num nCurLayer:=0;

CONST num nThickness:=40;

VAR bool bTimeOut:=FALSE;

PERS bool bDryCycle:=FALSE;

VAR intnum iDryCycle;

VAR intnum iResDryCycle;

VAR intnum iVacuum;

PERS tooldata

tGripper:=[TRUE,[[0,0,100],[1,0,0,0]],[88.5,[-3.7,-1.4,132.1],[1,0,0,0],5.5,17.831,25.067]];

文档大全

实用标准文案

PROC main()

rInitAll;

WHILE TRUE DO

IF siDryCycle=1 or nCurLayer<1 then

rPickClapboard;

ELSE

rPickMould;

ENDIF

Waittime 0.2;

ENDWHILE

ENDPROC

PROC rPickMould()

DIWait diMouldready,1,3,\"entrance Conveyer\

文档大全

实用标准文案

DIWait diPlaceReady,1,3,\"exit Conveyer\

MoveJ pPrePickMould, v1500, z50, tGripper;

IF BitCheck(nCurlayer,1) THEN

nCurOffs:=nOffs;

ELSE

nCurOffs:=-nOffs;

ENDIF

MoveL offs(pPickMould,0,nCurOffs,100+nCurLayer*nThickness), v1000, z50, tGripper;

MoveL offs(pPickMould,0,nCurOffs,(nCurLayer-1)*nThickness), v200, fine, tGripper;

GripClose;

Decr nCurLayer;

MoveL offs(pPickMould,0,nCurOffs,100+nCurLayer*nThickness), v200, z50, tGripper;

文档大全

实用标准文案

MoveJ pPrePickMould, v1000, z50, tGripper;

DIWait diPlaceReady,1,3,\"exit Conveyer\

MoveJ pPrePlace10, v1500, z10, tGripper;

MoveL offs(pPlaceMould,0,0,100), v1500, z10, tGripper;

MoveL pPlaceMould, v200, fine, tGripper;

GripOpen;

MoveL offs(pPlaceMould,0,0,100), v200, z10, tGripper;

MoveL pPrePlace10, v1500, z10, tGripper;

MoveJ pPrePickMould, v1500, z10, tGripper;

PulseDO\\PLength:=2, doMouldPlaceOK;

ENDPROC

PROC rPickClapboard()

DIWait diMouldready,1,3,\"entrance Conveyer\

文档大全

实用标准文案

MoveL offs(pPickClapboard,0,0,100), v1000, z50, tGripper;

MoveL pPickClapboard, v200, fine, tGripper;

GripClose;

MoveL offs(pPickClapboard,0,0,100) ,v200, z50, tGripper;

MoveL offs(pPickClapboard,0,0,500) ,v1000, z50, tGripper;

MoveL pPrePlaceClapboard, v1000, z10, tGripper;

DIWait diClapboardReady, 1, 3, \"exit Conveyer\

MoveL offs(pPlaceClapboard,-700,-200,250), v1000, z10, tGripper;

MoveL offs(pPlaceClapboard,00,-10,100), v1000, z10, tGripper;

MoveL pPlaceClapboard, v100, fine, tGripper;

GripOpen;

MoveL offs(pPlaceClapboard,0,-50,100), v1000, z10, tGripper;

MoveL offs(pPlaceClapboard,-700,-200,250), v1000, z10, tGripper;

文档大全

实用标准文案

MoveL pPrePlaceClapboard, v1000, z10, tGripper;

PulseDO\\PLength:=1.0, doClapboardPickOK;

MoveJ pHome, v1500, fine, tGripper;

PulseDO\\PLength:=1.0, doUnStackOk;

WaitTime 2;

DIWait diMouldready,0,3,\"exit Conveyer\

nCurLayer:=nLayer;

ENDPROC

PROC rInitAll()

IF diVacuum1=0 THEN

WaitTime 1;

ELSE

ErrWrite \"The Rob1 gripper error! \" ,\"The gripper is not opened!\"\\RL2:=\"Check the gripper signal postion .\"\\RL3:=\" open the gripper

文档大全

实用标准文案

manually and take away the part from gripper.\";

Stop;

Exit;

ENDIF

rMoveHome;

nCurLayer:=nLayer;

IDelete iVacuum;

CONNECT iVacuum WITH tLostPart;

ISignalDI diVacuum1, 1, iVacuum;

ISleep iVacuum;

ENDPROC

ROC GripClose()

SetDO doVacuum,1;

文档大全

实用标准文案

SetDO doBlow,0;

WaitUntil diVacuum1=1\\MaxTime:=10\\TimeFlag:=bTimeOut;

IF bTimeOut THEN

ErrWrite \"Rob Gripper Signal error ! \" ,\"Fatal error in

Gripper\"\\RL2:=\"Check the gripper signal postion .\"\\RL3:=\" change a new sensor .\";

Stop;

ENDIF

Waittime 0.5;

IWatch iVacuum;

ENDPROC

PROC GripOpen()

ISleep iVacuum;

SetDO doVacuum,0;

PulseDO \\PLength:=2.0, doBlow;

文档大全

实用标准文案

WaitUntil diVacuum1=0 \\MaxTime:=5\\TimeFlag:=bTimeOut;

IF bTimeOut THEN

ErrWrite \"Rob Gripper Signal error ! \" ,\"Fatal error in

Gripper\"\\RL2:=\"Check the gripper signal postion .\"\\RL3:=\" change a new sensor .\";

Stop;

ENDIF

Waittime 0.5;

ENDPROC

PROC rMoveHome()

VAR string HomeOffset;

CONST num MinX:=-500;

CONST num MaxX:=500;

CONST num MinY:=-500;

CONST num MaxY:=500;

文档大全

实用标准文案

CONST num MinZ:=500;

CONST num MaxZ:=1200;

VAR robtarget ActualPos;

VelSet 100,500;

AccSet 70, 70;

IF bCurrentPos(pHome,tGripper,50)=TRUE THEN

MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0;

ENDIF

IF bCurrentPos(pPrePickMould,tGripper,50\\wobj:=Wobj0)= TRUE THEN

MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0;

ENDIF

IF bCurrentPos(pPrePickClapboard,tGripper,100\\wobj:=Wobj0)= TRUE THEN

MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0;

文档大全

实用标准文案

ENDIF

IF bCurrentPos(pPreplace,tGripper,100\\wobj:=Wobj0)= TRUE THEN

MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0;

ENDIF

IF bCurrentPos(pHome,tGripper,100)=FALSE THEN

! If no known position is found, check if the robot is in a specified

! window and move him to the first position in the program

ActualPos:=CRobT(\\Tool:=tGripper\\WObj:=wobj0);

IF ActualPos.trans.xMaxX OR

ActualPos.trans.yMaxY OR ActualPos.trans.zMaxZ THEN

HomeOffset:=\"\";

IF ActualPos.trans.xHomeOffset:=HomeOffset+\"X :\"+NumToStr(MinX-ActualPos.trans.x,0)+\" \";

文档大全

实用标准文案

ELSEIF ActualPos.trans.x>MaxX THEN

HomeOffset:=HomeOffset+\"X :\"+NumToStr(MaxX-ActualPos.trans.x,0)+\" \";

ELSE

HomeOffset:=HomeOffset+\"X : OK \";

ENDIF

IF ActualPos.trans.yHomeOffset:=HomeOffset+\"Y :\"+NumToStr(MinY-ActualPos.trans.y,0)+\" \";

ELSEIF ActualPos.trans.y>MaxY THEN

HomeOffset:=HomeOffset+\"Y :\"+NumToStr(MaxY-ActualPos.trans.y,0)+\" \";

ELSE

HomeOffset:=HomeOffset+\"Y : OK \";

ENDIF

文档大全

实用标准文案

IF ActualPos.trans.zHomeOffset:=HomeOffset+\"Z :\"+NumToStr(MinZ-ActualPos.trans.z,0)+\" \";

ELSEIF ActualPos.trans.z>MaxZ THEN

HomeOffset:=HomeOffset+\"Z :\"+NumToStr(MaxZ-ActualPos.trans.z,0)+\" \";

ELSE

HomeOffset:=HomeOffset+\"Z : OK \";

ENDIF

ErrWrite HomeOffset,\"Move robot manually near homeposition\";

WHILE OpMode()<>OP_MAN_PROG DO

TPErase;

TPWrite \"Please switch robot to Manual mode\";

!TPErase;

文档大全

实用标准文案

Stop;

ENDWHILE

Stop;

MoveJ pHome,v500,fine,tGripper;

!npallet:=4;

ActualPos:=CRobT(\\Tool:=tGripper\\WObj:=wobj0);

WHILE OpMode()<>OP_AUTO DO

TPErase;

TPWrite \"Please switch robot to AUTO mode\";

!TPErase;

Stop;

ENDWHILE

ENDIF

文档大全

实用标准文案

ENDIF

VelSet 100,3000;

ENDPROC

TRAP tLostPart

ErrWrite \"Part lost!\" ,\"Fatal gripper .\"\\RL3:=\" check the vacuum .\";

Stop;

ENDTRAP

ENDMODULE

文档大全

error in Gripper\"\\RL2:=\"Check the

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务