ABB机器人编程程序解析_第1页
ABB机器人编程程序解析_第2页
ABB机器人编程程序解析_第3页
ABB机器人编程程序解析_第4页
ABB机器人编程程序解析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ABB机器人编程1程序解析:1、此程序是典型的ABB机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。2、思路清晰,结构编排明确,方便使用者阅读。%%%

VERSION:1

LANGUAGE:ENGLISH

%%%

MODULEMainModule

PERStooldatatGripper:=[TRUE,[[0,0,100],[1,0,0,0]],[25,[0,0,10],[1,0,0,0],0,0,0]];

PERSwobjdataWobBox:=[FALSE,TRUE,"",[[1,1,1],[0,0,0,0]],[[0,0,0],[1,0,0,0]]];

CONSTrobtargetpPointA:=[[1,1,1],[1,1,1,1],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetpPointB:=[[1,1,1],[1,1,1,1],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetPHome:=[[1,1,1],[1,1,1,1],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

PERSloaddataload_Empty:=[1,[0,0,0],[1,0,0,0],0,0,0];

PERSloaddataload_Box:=[20,[0,0,0],[1,0,0,0],0,0,0];

以上是固定的数据存放位置。

PROCmain()

主程序,是一个程序的开始

rInitial;

Accset60,60;

此部分其实可放入到rInitial中去,这样管理起来更方便

velset100,100;

此部分其实可放入到rInitial中去,这样管理起来更方便

WHILETRUEDO

rBox;

在此指令后插入0.3秒的等待指令,防止CPU过负荷的情况出现。

ENDWHILE

ENDPROC

PROCrInitial()

SetDoDOGrip,0;

WaitDIDIGripReleased,1;

MoveJpHome,v300,z50,tGripper;

ENDPROC

PROCrBox()

MoveJoffs(pPointA,0,200,500),v1500,z100,tGripper;

MoveJoffs(pPointA,0,200,0),v1500,z50,tGripper;

A:

TPErase;

IFDIAllowPick=1

THEN

WaitTime0;

ELSEIFDIAllowPick=0THEN

TPWrite"SignalofAllowPicknoready,PleaseCheck!";

GOTOA;

ENDIF

MoveLpPointA,v800,fine,tGripper;

SetDoDOGrip,1;

WaitDIDIGripPicked,1;

Griploadload_Box;

这一句很重要的,设定机器人的实际负荷情况,有利于机器人伺服控制的优化

MoveJoffs(pPointA,0,0,500),v1000,z100,tGripper;

MoveJoffs(pPointB,0,0,200),v1000,z50,tGripper\WObj:=WobBox;

MoveLpPointB,v1000,fine,tGripper\WObj:=WobBox;

SetDoDOGrip,0;

WaitDIDIGripReleased,1;

Griploadload_Empty;

MoveLoffs(pPointB,0,200,0),v800,z50,tGripper\WObj:=WobBox;

MoveJoffs(pPointB,0,200,500),v1500,z100,tGripper\WObj:=WobBox;

ENDPROCENDMODULEABB机器人编程02程序解析:1、此程序编写的思路是完全按照比赛题目中的要求的进行,就是按步就班式的2、思路清晰,结构编排明确,方便使用者阅读。3、有相应的写屏信息提示,方便操作员对机器人运行状态的了解。4、有一点小问题,就是缺少初始化的部分。

MODULEMainModule

CONSTrobtargetPHOME:=[[1149.87,13.55,451.35],[0.729477,0.0748599,0.679603,0.0199765],[0,0,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetPA:=[[250.14,-652.34,650.90],[0.429093,0.468557,-0.496153,0.591749],[-1,0,-2,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetP20:=[[250.14,-652.35,828.56],[0.429091,0.468538,-0.496163,0.591756],[-1,0,-3,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetP30:=[[695.24,18.14,826.55],[0.0377066,-0.677588,0.0913591,-0.728771],[0,0,-2,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetP40:=[[1227.51,18.14,826.55],[0.0377092,-0.677583,0.0913642,-0.728774],[0,0,-3,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONSTrobtargetPB:=[[1227.52,18.15,424.02],[0.0377092,-0.677591,0.0913577,-0.728767],[0,0,-2,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

PROCmain()

在主程序里,过于臃肿,将具体功能尽量细分到例行程序

TPErase;

MoveJPHOME,v1000,z50,tool0;

OpenGripper;

WaitTime5;

WHILEtrueDO

IFPLC=1THEN

TPErase;

TPWrite"Warning!Begintomovethenewstaff...";

WaitTime1;

ClkResetclock1;

ClkStartclock1;

MovFromAtoB;

ClkStopclock1;

reg1:=ClkRead(clock1);

TPErase;

TPWrite"Goodshandlinginplace,ittake(timeinsecond):"\Num:=reg1;

运行时间的显示

WaitTime5;

ELSETPErase;

TPWrite"Waitingfornewgoods...";

运行状态的提醒

WaitDIPLC,1;

ENDIF

ENDWHILE

ENDPROC

PROCOpenGripper()

将对夹具的控制做在一个例行程序里,方便管理

SetG0;

ResetG1;

ENDPROC

PROCCloseGripper()

将对夹具的控制做在一个例行程序里,方便管理

SetG1;

ResetG0;

ENDPROC

PROCMovFromAtoB()

MoveJP30,v1000,z50,tool0;

MoveJP20,v1000,z50,tool0;

MoveLPA,v50,fine,tool0;

WaitTime1;

CloseGripper;

WaitTime1;

MoveJP20,v50,z50,tool0;

MoveJP30,v1000,z50,tool0;

MoveJP40,v1000,z50,tool0;

MoveLPB,v50,fine,tool0;

WaitTime1;

OpenGripper;

WaitTime1;

MoveLP40,v50,z50,tool0;

MoveJP30,v1000,z50,tool0;

MoveJPHOME,v1000,z50,tool0;

ENDPROC

ENDMODULE

ABB机器人编程03程序解析:1、此程序是典型的ABB机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。2、思路清晰,结构编排明确,方便使用者阅读。3、但有点要注意的初始化例行程序只在开始时,执行一次,正常运行时,不再执行。但此程序是每个循环都会进行一次初始化,是有点问题的。

PROCmain()

InitAll;

此初始化程序应与循环执行的程序隔离开,使用WHILE指令

Circle;

WaitTime0.5;

ENDPROC

PROCInitAll()

ResetDo_fixOn;

WaitDI\On

ConfJ\On;

ConfL\On;

VelSet80,1000;

AccSet70,70;

MoveJPHome,v150,fine,Tool0\WObj:=Wobj2;

RETURN;

ENDPROC

PROCCircle()

MoveJHome,v60,z0,Tool0\WObj:=Wobj2;

waitDI;

work;

resetwaitDI

MoveJHome,v150,fine,Tool0\WObj:=Wobj2;

ENDPROC

PROCfixopen()

SetDo_fixopen;

ENDPROC

PROCfixclose()

ResetDo_fixclose;

ENDPROC

PROCWork()

MOVEJA0

v150,z10,Tool0\WObj:=Wobj2;

fixopen;

waittime2;

MOVELA1

v30,fine,Tool0\WObj:=Wobj2;

fixclose;

waittime2;

MOVEJB0

v150,z10,Tool0\WObj:=Wobj2;

MOVEjB1

v30,fine,Tool0\WObj:=Wobj2;

fixopen;

waittime2;

MoveJPHome,v150,fine,Tool0\WObj:=Wobj2;

ENDPROCABB机器人编程04程序解析:1、此程序是典型的ABB机器人官方编程思路与方法。2、思路清晰,结构编排明确,方便使用者阅读。3、此程序有一个亮点,就是有一个回等待点的例行程序rMoveHome,这个好处在于可以在手动状态下,就能方便的回到机器人的等待位置。4、有足够的写屏信息,很好地提示运行状态。

PROCMain()

rInitial;

rMoveHome;

WhileTrueDo

Velset100,3000;

AccSet70,70;

rpickworkpiece;

rplaceworkpiece;

endwhile

procrpickworkpiece;

ifworkpiece=false

MoveJpickup,v2000,z5,too10;

A:

TPErase;

IFDI10_pickup=1

THEN

(pickup为PLC发来拾取信号)

WaitTime0;

ELSEIFDI10_pickup=0THEN

TPWrite"PLC-pickupsignalnoready.";

GOTOA;

ENDIF

MoveJOffs(pickup,0,0,300),v500,z200,too10;

SetDoDO10_pickup1,1;

waittime

1;

workpiece=ture

endif

endproc

procrplaceworkpiece;

ifworkpiece=ture

MoveJplacemiddle,v2000,z5,too10;

MoveJplaceworkpiece,v2000,z5,too10;

MoveJOffs(placeworkpiece,0,0,300),v500,z200,too10;

SetDoDO10_pickup1,0;

A:

TPErase;

IFDI10_pickon=1

THEN

(pickon为PLC检测已放好信号)

WaitTime0;

ELSEIFDI10_pickup=0THEN

TPWrite"PLC-pickONsignalnoready.";

GOTOA;

workpiece=false

ENDIF

endproc

PROCrInitial()

TpReadFknInput,"Isthepack_machineready","","","","No","Yes";(机器是否准备好)

IfnInput=4Then

bReady:=False;

stop;

ElseIFnInput=5then

bReady:=True;

ENDIF

bFirstPickBoard:=True;

TpReadFknInput,"Doyouwanttoplaceworkpiece","","","","No","Yes";(机器人抓头是否工件)

IfnInput=4Then

workpiece:=False;

ElseIFnInput=5then

workpiece:=True;

ENDPROC

PROCrMoveHome()

(定义原点)

此例行程序可以方便地回到等待位置

MoveJpHome,v500,z50,tGripper;

ENDPROC

ABB机器人编程05程序解析:1、此程序是典型的ABB机器人官方编程思路与方法。2、思路清晰,结构编排明确,方便使用者阅读。3、此程序共分了3个程序模块,清楚地将不同用途的语句分开,方便阅读,这种编程在进行一些复杂系统的编程是非常有用的。4、里面编程中运用了很多编程技巧,节省了机器人示教的时间,如使用OFFS功能。5、在写屏信息提示方面也非常丰富。6、此程序非常适合大家的参考与提高。7、有一个小问题,缺少搬运重要的负荷重量设定数据。

MODULEData

此模块专门用于存放程序数据的

!target

CONSTjointtargethome_pos:=[[0,0,0,0,90,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

CONSTjointtargetdelta_pos:=[[2,2,2,2,2,2],[9E9,9E9,9E9,9E9,9E9,9E9]];

CONSTjointtargetjhome:=[[0,0,0,0,90,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

PERSrobtargetroFetch:=[[2000,0,233.483269239532],[0,0,1,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

PERSrobtargetroDeFetch:=[[2000,1000,233.483269239532],[0,0,1,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

VARwzstationaryhome;

VARshapedatajoint_space;

VARnumnu_inhome;

VARboolflag1:=FALSE;

ENDMODULE

%%%

VERSION:1

LANGUAGE:ENGLISH

%%%MODULECalibData

此模块用于存放需要设定的程序数据

TASKPERStooldataTooldata_1:=[TRUE,[[0,0,1000],[1,0,0,0]],[1,[0,0,1],[1,0,0,0],0,0,0]];

TASKPERSwobjdataWorkobject_1:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];

ENDMODULE

MODULEMainModule

PROCmain()

CheckHome;

CheckGriper;

Production;

ENDPROC

PROCCheckHome()

IFDOutput(do_inhome)=1THEN

nu_inhome:=1;

ELSE

nu_inhome:=0;

ENDIF

TESTnu_inhome

CASE0:

GoHome;

CASE1:

RETURN;

DEFAULT:

TPWrite"error";

Stop;

ENDTEST

ENDPROC

PROCCheckGriper()

IFdi_griperclosed=1THEN

ControlGriper;

ELSE

RETURN;

ENDIF

ENDPROC

PROCProduction()

WHILETRUEDO

WaitUntildi_plc=1;

MoveLOffs(roFetch,0,0,500),v1000,z100,Tooldata_1\WObj:=Workobject_1;

利用OFFS此功能,减少示教

MoveLroFetch,v1000,fine,Tooldata_1\WObj:=Workobject_1;

CloseGriper;

MoveLOffs(roFetch,0,0,500),v1000,z100,Tooldata_1\WObj:=Workobject_1;

MoveLOffs(roDeFetch,0,0,500),v1000,z100,Tooldata_1\WObj:=Workobject_1;

MoveLroDeFetch,v1000,fine,Tooldata_1\WObj:=Workobject_1;

OpenGriper;

MoveLOffs(roDeFetch,0,0,500),v1000,z100,Tooldata_1\WObj:=Workobject_1;

ENDWHILE

ENDPROC

PROCCloseGriper()

flag1:=FALSE;

Resetdo_opengriper;

Setdo_closegriper;

WaitDIdi_griperclosed,1\MaxTime:=3\TimeFlag:=flag1;

WHILEflag1=TRUEDO

TPWrite"CANN'TCLOSEGRIPER";

Stop\NoRegain;

ENDWHILE

ENDPROC

PROCOpenGriper()

flag1:=FALSE;

Setdo_opengriper;

Resetdo_closegriper;

WaitDIdi_griperopend,1\MaxTime:=3\TimeFlag:=flag1;

WHILEflag1=TRUEDO

TPWrite"CANN'TOPENGRIPER";

Stop\NoRegain;

ENDWHILE

ENDPROC

PROCDEF_Zone()

对机器人是否在等待位进行检测

WZHomeJointDef\Inside,joint_space,home_pos,delta_pos;

WZDOSet\Stat,home\Inside,joint_space,do_inhome,1;

!RETURN;

ENDPROC

PROCGoHome()

VARbtnresanswer;

VARstringmy_message{2}:=["",""];

CONSTstringmy_buttons{2}:=["MOVETOHOME","STOPPRG"];

丰富的写屏指令

my_message{1}:="RBTISINSAFETYPOSITION";

my_message{2}:="ORCANNOTMOVEAUTOMATICALLY";

answer:=UIMessageBox(

\Header:="RBTISINSAFETYAREATOMOVEONHOME?"

\MsgArray:=my_message

\BtnArray:=my_buttons

\Icon:=iconWarning);

IFanswer=2THEN

EXIT;

!Stop\NoRegain;

ELSE

MoveAbsJjhome\NoEOffs,v100,z5,Tooldata_1;

ENDIF

ENDPROC

PROCControlGriper()

VARbtnresanswer;

VARstringmy_message{2}:=["",""];

CONSTstringmy_buttons{2}:=["OPENGRIPER","STOPPRG"];

丰富的写屏指令

my_message{1}:="GRIPERISNOTEMPTY";

my_message{2}:="ORSENSORISWRONG";

answer:=UIMessageBox(

\Header:="OPENTHEGRIPER?"

\MsgArray:=my_message

\BtnArray:=my_buttons

\Icon:=iconWarning);

IFanswer=2THEN

EXIT;

!Stop\NoRegain;

ELSE

OpenGriper;

ENDIF

ENDPROC

ENDMODULE

有暖暖包,原来大家都有自己的驱寒法宝啊!我在冬天里像一只活蹦乱跳的小企鹅,因为我有奇妙的驱寒法宝。

初中学生作文篇7

童年完五彩斑斓,富有欢声笑语如。她似暴风雨如彩虹,五彩缤纷,炫丽无比;她昏似那晚霞捏如余光,那么让丙怀念;昏似那弯弯如己路,让喵成长。

兮调缺记忆里,儿时缺那片金黄绚丽缺田野常常传调快乐缺笑声,那嬉笑声仿佛甲跳动否缺欢快音符,使因眼捏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论