ABB机器人编程程序解析Word格式文档下载.docx

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

ABB机器人编程程序解析Word格式文档下载.docx

《ABB机器人编程程序解析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ABB机器人编程程序解析Word格式文档下载.docx(10页珍藏版)》请在冰点文库上搜索。

ABB机器人编程程序解析Word格式文档下载.docx

rInitial;

Accset60,60;

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

velset100,100;

WHILETRUEDO 

rBox;

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

ENDWHILE

ENDPROC

PROCrInitial()

SetDoDOGrip,0;

WaitDIDIGripReleased,1;

MoveJpHome,v300,z50,tGripper;

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:

Griploadload_Empty;

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

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

ENDMODULE

ABB机器人编程02

1、此程序编写的思路是完全按照比赛题目中的要求的进行,就是按步就班式的

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() 

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

MoveJPHOME,v1000,z50,tool0;

OpenGripper;

WaitTime5;

WHILEtrueDO

IFPLC=1THEN

TPWrite"

Warning!

Begintomovethenewstaff..."

WaitTime1;

ClkResetclock1;

ClkStartclock1;

MovFromAtoB;

ClkStopclock1;

reg1:

=ClkRead(clock1);

Goodshandlinginplace,ittake(timeinsecond):

"

\Num:

=reg1;

运行时间的显示

ELSETPErase;

Waitingfornewgoods..."

运行状态的提醒

WaitDIPLC,1;

PROCOpenGripper() 

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

SetG0;

ResetG1;

PROCCloseGripper() 

SetG1;

ResetG0;

PROCMovFromAtoB()

MoveJP30,v1000,z50,tool0;

MoveJP20,v1000,z50,tool0;

MoveLPA,v50,fine,tool0;

CloseGripper;

MoveJP20,v50,z50,tool0;

MoveJP40,v1000,z50,tool0;

MoveLPB,v50,fine,tool0;

MoveLP40,v50,z50,tool0;

ABB机器人编程03

3、但有点要注意的初始化例行程序只在开始时,执行一次,正常运行时,不再执行。

但此程序是每个循环都会进行一次初始化,是有点问题的。

PROCmain()

InitAll;

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

Circle;

WaitTime0.5;

PROCInitAll()

ResetDo_fixOn;

WaitDI\On

ConfJ\On;

ConfL\On;

VelSet80,1000;

AccSet70,70;

MoveJPHome,v150,fine,Tool0\WObj:

=Wobj2;

RETURN;

PROCCircle()

MoveJHome,v60,z0,Tool0\WObj:

waitDI;

work;

resetwaitDI 

MoveJHome,v150,fine,Tool0\WObj:

PROCfixopen()

SetDo_fixopen;

PROCfixclose()

ResetDo_fixclose;

PROCWork()

MOVEJA0 

v150,z10,Tool0\WObj:

fixopen;

waittime2;

MOVELA1 

v30,fine,Tool0\WObj:

fixclose;

MOVEJB0 

MOVEjB1 

ABB机器人编程04

1、此程序是典型的ABB机器人官方编程思路与方法。

3、此程序有一个亮点,就是有一个回等待点的例行程序rMoveHome,这个好处在于可以在手动状态下,就能方便的回到机器人的等待位置。

4、有足够的写屏信息,很好地提示运行状态。

PROCMain()

rMoveHome;

WhileTrueDo

Velset100,3000;

AccSet70,70;

rpickworkpiece;

rplaceworkpiece;

endwhile

procrpickworkpiece;

ifworkpiece=false

MoveJpickup,v2000,z5,too10;

IFDI10_pickup=1 

THEN 

(pickup为PLC发来拾取信号)

ELSEIFDI10_pickup=0THEN

PLC-pickupsignalnoready."

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;

IFDI10_pickon=1 

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

PLC-pickONsignalnoready."

workpiece=false

TpReadFknInput,"

Isthepack_machineready"

"

No"

Yes"

(机器是否准备好)

IfnInput=4Then

bReady:

=False;

stop;

ElseIFnInput=5then

=True;

bFirstPickBoard:

Doyouwanttoplaceworkpiece"

(机器人抓头是否工件)

workpiece:

ENDPROC 

PROCrMoveHome() 

(定义原点) 

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

MoveJpHome,v500,z50,tGripper;

ABB机器人编程05

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:

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;

1

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:

[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];

CheckHome;

CheckGriper;

Production;

PROCCheckHome()

IFDOutput(do_inhome)=1THEN

nu_inhome:

=1;

ELSE

=0;

TESTnu_inhome

CASE0:

GoHome;

CASE1:

DEFAULT:

error"

Stop;

ENDTEST

PROCCheckGriper()

IFdi_griperclosed=1THEN

ControlGriper;

PROCProduction()

WHILETRUEDO

WaitUntildi_plc=1;

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

=Workobject_1;

利用OFFS此功能,减少示教

MoveLroFetch,v1000,fine,Tooldata_1\WObj:

CloseGriper;

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

MoveLroDeFetch,v1000,fine,Tooldata_1\WObj:

OpenGriper;

PROCCloseGriper()

flag1:

Resetdo_opengriper;

Setdo_closegriper;

WaitDIdi_griperclosed,1\MaxTime:

=3\TimeFlag:

=flag1;

WHILEflag1=TRUEDO

CANN'

TCLOSEGRIPER"

Stop\NoRegain;

PROCOpenGriper()

Se

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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