6 Programming
6.5.2. Example "SyncArc" with semi coordinated movements
673HAC021272-001 Revision: H
© Copyright 2004-2008 ABB. All rights reserved.
PROC SemiSyncMove()
! Wait for the positioner
WaitSyncTask sync1, all_tasks;
MoveL p21, v1000, fine, tool2 \WObj:=wobj_stn1;
MoveL p22, v300, z10, tool2 \WObj:=wobj_stn1;
MoveL p23, v300, z10, tool2 \WObj:=wobj_stn1;
MoveL p24, v300, z10, tool2 \WObj:=wobj_stn1;
MoveL p21, v300, fine, tool2 \WObj:=wobj_stn1;
MoveL p25, v1000, fine, tool2;
! Sync to let positioner move
WaitSyncTask sync2, all_tasks;
! Wait for the positioner
WaitSyncTask sync3, all_tasks;
MoveL p26, v1000, fine, tool2 \WObj:=wobj_stn1;
MoveL p27, v300, z10, tool2 \WObj:=wobj_stn1;
MoveL p28, v300, z10, tool2 \WObj:=wobj_stn1;
MoveL p29, v300, z10, tool2 \WObj:=wobj_stn1;
MoveL p26, v300, fine, tool2 \WObj:=wobj_stn1;
MoveL p25, v1000, fine, tool2;
ENDPROC
ENDMODULE
T_STN1 task program
MODULE module3
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PERS tasks all_tasks{3} :=
[["T_ROB1"],["T_ROB2"],["T_STN1"]];
CONST jointtarget angle_0 :=
[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],
[ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST jointtarget angle_neg90 :=
[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],
[ -90, 9E9, 9E9, 9E9, 9E9, 9E9] ];
PROC main()
...
SemiSyncMove;
...
ENDPROC
PROC SemiSyncMove()
MoveExtJ angle_0, vrot50, fine;
! Sync to let the robots move
WaitSyncTask sync1, all_tasks;
Continued
Continues on next page