6 Programming
6.5.2. Example "SyncArc" with semi coordinated movements
3HAC021272-001 Revision: H66
© Copyright 2004-2008 ABB. All rights reserved.
CONST robtarget p11 := ...
...
CONST robtarget p17 := ...
PROC main()
...
SemiSyncMove;
...
ENDPROC
PROC SemiSyncMove()
! Wait for the positioner
WaitSyncTask sync1, all_tasks;
MoveL p11, v1000, fine, tool1 \WObj:=wobj_stn1;
MoveL p12, v300, fine, tool1 \WObj:=wobj_stn1;
MoveL p13, v1000, fine, tool1;
! Sync to let positioner move
WaitSyncTask sync2, all_tasks;
! Wait for the positioner
WaitSyncTask sync3, all_tasks;
MoveL p14, v1000, fine, tool1 \WObj:=wobj_stn1;
MoveC p15, p16, v300, z10, tool1 \WObj:=wobj_stn1;
MoveC p17, p14, v300, fine, tool1 \WObj:=wobj_stn1;
MoveL p13, v1000, fine, tool1;
ENDPROC
ENDMODULE
T_ROB2 task program
MODULE module2
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PERS tasks all_tasks{3} :=
[["T_ROB1"],["T_ROB2"],["T_STN1"]];
PERS wobjdata wobj_stn1 :=
[ FALSE, FALSE, "STN_1",
[ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 250], [1, 0, 0, 0] ] ];
TASK PERS tooldata tool2 := ...
CONST robtarget p21 := ...
...
CONST robtarget p29 := ...
PROC main()
...
SemiSyncMove;
...
ENDPROC
Continued
Continues on next page