-
1
程序解析:
p>
1
、此程序是典型的
ABB
机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。
p>
2
、思路清晰,结构编排明确,方便使用者阅读。
< br>
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE MainModule
PERS
tooldata tGripper:=[TRUE,[[0,0,100],[1,0,0,0]],[25
,[0,0,10],[1,0,0,0],0,0,0]];
?
PERS wobjdata
WobBox:=[FALSE,TRUE,
CONST robtarget pPo
intA:=[[1,1,1],[1,1,1,1],[-1,0,0,0],[9E+09,9E+09,9
E+09,9E+09,9E+09,9E+09]];
CONST
robtarget pPointB:=[[1,1,1],[1,1,1,1],[-1,0,0,0],[
9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget PHome:=[[1,1,1],[1,1,1,
1],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09
]];
?
PERS
loaddata load_Empty:=[1,[0,0,0],[1,0,0,0],0,0,0];
PERS loaddata load_Box:=[20,[0,0,0],[1,
0,0,0],0,0,0];
以上是固定的数据存放位置。
?
PROC
main()
主程序,是一个程序的开始
rInitial;
Accset 60,60;
此部分其实可放入到
rInitial
中去,这样
管理起来更方便
velset 100,100;
此部分其实可放入到
rInitial
中去,这样
管理起来更方便
WHILE TRUE
DO
?
rBox;
< br>在此指令后插入秒的等待指令,防止
CPU
过负荷的情况
出现。
ENDWHILE
ENDPROC
PROC rInitial()
?
SetDo DOGrip,0;
WaitDI DIGripReleased,1;
?
MoveJ pHome,
v300, z50, tGripper;
?
ENDPROC
PROC rBox()
MoveJ offs(pPointA,0,200,500), v1500,
z100,tGripper;
MoveJ
offs(pPointA,0,200,0), v1500, z50,tGripper;
A:
TPErase;
IF
DIAllowPick=1THEN
WaitTime 0;
ELSEIF DIAllowPick=0 THEN
TPWrite
GOTO A;
ENDIF
?
MoveL pPointA,v800, fine,
tGripper;
?
SetDo
DOGrip,1;
WaitDI DIGripPicked,1;
Gripload load_Box;
这一句很重要的,设定
机器人的实际负荷情况,有利于机器人伺服控制的优化
MoveJ offs(pPointA,0,0,500), v1000,
z100, tGripper;
?
MoveJ offs(pPointB,0,0,200), v1000,
z50, tGripperWObj:=WobBox;
?
MoveL pPointB, v1000, fine,
tGripperWObj:=WobBox;
SetDo DOGrip,0;
WaitDI
DIGripReleased,1;
?
Gripload load_Empty;
MoveL
offs(pPointB,0,200,0), v800, z50,
tGripperWObj:=WobBox;
MoveJ
offs(pPointB,0,200,500), v1500, z100,
tGripperWObj:=WobBox;
ENDPROC
ENDMODULE
ABB
机器人编程
02
程序解析:
1
、此程序编写的思路是完全按照比赛题目中的要求的进行,就是按步就班式的
2
、思路清晰,结构编排明确,方便使用者阅读。
3
、有相应的写屏信息提示,方便操作员对机器人运行状
态的了解。
4
、有一点小问题,就是
缺少初始化的部分。
MODULEMainModule <
/p>
CONSTrobtargetPHOME:=[[,,],[,,,],[0,0,0,
1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobtargetPA:=[[,,],[,,,],[-1,0,-2,1],[9E+
09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CON
STrobtargetP20:=[[,,],[,,,],[-1,0,-3,1],[9E+09,9E+
09,9E+09,9E+09,9E+09,9E+09]];
CONSTrobt
argetP30:=[[,,],[,,,],[0,0,-2,1],[9E+09,9E+09,9E+0
9,9E+09,9E+09,9E+09]];
CONSTrobtargetP4
0:=[[,,],[,,,],[0,0,-3,1],[9E+09,9E+09,9E+09,9E+09
,9E+09,9E+09]];
CONSTrobtargetPB:=[[,,]
,[,,,],[0,0,-2,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9
E+09]];
PROCmain()
在主程序里,过于臃肿
,将具体功能尽量细分到例行程序
TPErase;
MoveJPHOME,v1000,z50,tool0;
OpenGripper;
WaitTime5;
WHILEtrueDO
IFPLC=1THEN
TPErase;
TPWrite
WaitTime1;
ClkResetclock1;
ClkStartclock1;
MovFromAtoB;
ClkStopclock1;
reg1:=ClkRead(clock1);
TPErase;
TPWrite
运行时间的显示
WaitTime5;
ELSETPErase;
TPWrite
运行状态的提醒
WaitDIPLC,1;
ENDIF
ENDWHILE
ENDPROC
PROCOpenGripper()
将对夹具的控制做在一个例行程序里,方便管理<
/p>
SetG0;
ResetG1;
ENDPROC
PROCCloseGripper()
p>
将对夹具的控制做在一个例行程序里,方便管理
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
程序解析:
1
、此程序是典型的
ABB
机器人官
方编程思路与方法,分为主程序,初始化例行程序和轨迹程序。
2
、思路清晰,结构编排明确,方便使用者阅读。
3
、但有点要注意的初始化例行程序只在开始时,执行一次,正常运行时
,不再执行。但此程序是每
个循环都会进行一次初始化,是有点问题的。
PROC main()
InitAll;
此初始化程序应与循环执行的程序隔离开,使用
WHILE
指令
Circle;
WaitTime
ENDPROC
?
PROC InitAll()
Reset Do_fixOn;
WaitDIOn
ConfJOn;
ConfLOn;
VelSet 80, 1000;
AccSet
70,70;
MoveJ PHome, v150, fine,
Tool0WObj:=Wobj2;
RETURN;
ENDPROC
?
?
PROC Circle()
MoveJ Home, v60, z0, Tool0WObj:=Wobj2;
waitDI;
work;
reset waitDI
?
MoveJ Home, v150, fine,
Tool0WObj:=Wobj2;
ENDPROC
?
?
PROC fixopen()
Set
Do_fixopen;
ENDPROC
?
PROC fixclose()
Reset Do_fixclose;
ENDPROC
?
?
PROC Work()
MOVEJ A0v150,
z10, Tool0WObj:=Wobj2;
fixopen;
waittime 2;
MOVEL A1v30,
fine,Tool0WObj:=Wobj2;
fixclose;
waittime 2;
MOVEJ B0v150,
z10, Tool0WObj:=Wobj2;
MOVEj B1v30,
fine,Tool0WObj:=Wobj2;
fixopen;
waittime 2;
MoveJ PHome,
v150, fine, Tool0WObj:=Wobj2;
ENDPROC
ABB
机器人编程
04
程序解析:
1
、此程序是典型的
ABB
机器人官方编程思路与方法。
2
、思路清晰,结构编排明确,方便使用者
阅读。
3
、此程序有一个亮点,就是
有一个回等待点的例行程序
rMoveHome
,这个好处在于
可以在手动状态
下,就能方便的回到机器人的等待位置。
p>
4
、有足够的写屏信息,很好地提示运行状态。
PROC Main()
?
rInitial;
rMoveHome;
While True Do
Velset
100,3000;
AccSet 70, 70;
rpickworkpiece;
rplaceworkpiece;
?
endwhile
?
proc rpickworkpiece;
if
workpiece=false
MoveJ pickup, v2000,
z5, too10;
A:
TPErase;
?
IF DI10_pickup=1THEN(pickup
为
PLC
发来拾取信号
)
WaitTime 0;
?
ELSEIF DI10_pickup=0 THEN
TPWrite
GOTO A;
ENDIF
MoveJ
Offs(pickup,0,0,300), v500, z200, too10;
SetDo DO10_pickup1,1;
wait
time1;
workpiece=ture
endif
-
-
-
-
-
-
-
-
-
上一篇:pick短语
下一篇:高级英语词汇总结(一)