Hi
I created a cell in Robodk and post LS file for fanuc.
The prolem is that i can not get positioner and robot to work in sync when load LS file in ROBOGUIDE.
Positioner is rotating as it should but path is static does not folow positioner rotation so robot is working on that path.
Everithing is perfect in RoboDk but when I try Ls file in Robogude it does not work.
I think maybe the setting is not correct in roguide or?
09-11-2023, 04:57 PM (This post was last modified: 09-11-2023, 04:57 PM by Albert.)
You can configure extenal axes or positionners in different ways in RoboDK using post processor. This highly depends on the robot controller and your setup.
Can you provide a sample LS file you created with your controller? We can better give you advice on what setting you should change in your post processor to generate suitable LS files for your Fanuc robot controller.
09-12-2023, 05:43 AM (This post was last modified: 09-13-2023, 09:14 AM by Albert.
Edit Reason: Corrected code style
)
My setup for roboguide is with two groups robot and positioner so I have 6 axis on robot and one on positioner as a separate group which I think is corect? Uframe is set as dynamic in roboguide.
Should I set it up like 7 axis of a robot (E)?
In RoboDK the robot follows the positioner all the time on to the path, when I post in to the LS robot does not behave the same in Roboguide. The problem is when the positioner is rotating only points end to end are read and everything between does not exist so robot is not following the path.
/MN
1: ! Program generated by ;
2: ! RoboDK v5.6.3 for F ;
3: ! anuc R-2000iC/165F o ;
4: ! n 10/09/2023 18:47:3 ;
5: ! 7 ;
6: ! Using nominal kinema ;
7: ! tics. ;
8: MESSAGE[/ ALPHACAM DRAWING F] ;
9: MESSAGE[ILE - ROBOTAPT] ;
10: MESSAGE[/ NC CODE FILE - ROB] ;
11: MESSAGE[OTAPT.apt] ;
12: MESSAGE[/ POST-PROCESSED FOR] ;
13: MESSAGE[ APT-CL DATA] ;
14: MESSAGE[/ CREATED - 10 SEP 2] ;
15: MESSAGE[3] ;
16: MESSAGE[/ PROGRAMMED BY ALPH] ;
17: MESSAGE[ACAM] ;
18: MESSAGE[/ CETKA] ;
19: UFRAME_NUM=1 ;
20: ! UF1:0.0,0.0,0.0,0.0, ;
21: ! 0.0,0.0 ;
22: UTOOL_NUM=1 ;
23: ! UT1:0.0,0.0,220.0,0. ;
24: ! 0,0.0,0.0 ;
25: ! Show Vibraciona T 1 ;
26:J P[1] 20% CNT1 ;
27:L P[2] 1000mm/sec CNT1 ;
28:L P[3] 1000mm/sec CNT1 ;
29:L P[4] 50mm/sec CNT1 ;
30:C P[5]
P[6] 100mm/sec CNT1 ;
31:L P[7] 100mm/sec CNT1 ;
32:C P[8]
P[9] 100mm/sec CNT1 ;
33:L P[10] 100mm/sec CNT1 ;
34:C P[11]
P[12] 100mm/sec CNT1 ;
35:L P[13] 100mm/sec CNT1 ;
36:C P[14]
P[15] 100mm/sec CNT1 ;
37:L P[16] 1000mm/sec CNT1 ;
38:L P[17] 1000mm/sec CNT1 ;
/POS
P[1]{
GP1:
UF : 1, UT : 1,
J1= 29.905 deg, J2= 53.695 deg, J3= -33.627 deg,
J4= 0.000 deg, J5= -56.373 deg, J6= 150.094 deg
GP2:
UF : 1, UT : 1,
J1= -63.891 deg
};
P[2]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 150.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= -63.891 deg
};
P[3]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= -63.891 deg
};
P[4]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1015.000 mm, Y = 612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 126.109 deg
GP2:
UF : 1, UT : 1,
J1= 53.891 deg
};
P[5]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1121.070 mm, Y = 568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 121.893 deg
GP2:
UF : 1, UT : 1,
J1= 58.107 deg
};
P[6]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1165.000 mm, Y = 462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 116.653 deg
GP2:
UF : 1, UT : 1,
J1= 63.347 deg
};
P[7]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1165.000 mm, Y = -462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 73.347 deg
GP2:
UF : 1, UT : 1,
J1= 106.653 deg
};
P[8]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1121.070 mm, Y = -568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 68.107 deg
GP2:
UF : 1, UT : 1,
J1= 111.893 deg
};
P[9]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1015.000 mm, Y = -612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 63.891 deg
GP2:
UF : 1, UT : 1,
J1= 116.109 deg
};
P[10]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = -612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -53.891 deg
GP2:
UF : 1, UT : 1,
J1= 233.891 deg
};
P[11]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1121.070 mm, Y = -568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -58.107 deg
GP2:
UF : 1, UT : 1,
J1= 238.107 deg
};
P[12]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1165.000 mm, Y = -462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -63.347 deg
GP2:
UF : 1, UT : 1,
J1= 243.347 deg
};
P[13]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1165.000 mm, Y = 462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -106.653 deg
GP2:
UF : 1, UT : 1,
J1= 286.653 deg
};
P[14]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1121.070 mm, Y = 568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -111.893 deg
GP2:
UF : 1, UT : 1,
J1= 291.893 deg
};
P[15]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= 296.109 deg
};
P[16]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 150.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= 296.109 deg
};
P[17]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 250.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= 296.109 deg
};
/END
RoboDK automatically exports external axes as a 7th index (and onward) when you use a linear track and a separate motion group for turntables (GP2 or GP3 for example).
I understand you are using a turntable and RoboDK should generate code like the one you shared. What issues do you have?
09-15-2023, 05:16 AM (This post was last modified: 09-15-2023, 08:25 AM by Albert.)
Attached is the LS. file as it should look like.
You were right, the setting in roboguide was not right.
How can I change the post-processor to give me the result as in the text below?
Video is also attached.
/MN
1: UFRAME_NUM=1 ;
2: ! UF1:0.0,0.0,0.0,0.0, ;
3: ! 0.0,0.0 ;
4: UTOOL_NUM=1 ;
5: ! UT1:0.0,0.0,220.0,0. ;
6: ! 0,0.0,0.0 ;
7: ! Show Vibraciona T 1 ;
8:J P[1] 20% CNT1 ;
9:L P[2] 1000mm/sec CNT0 ;
10:L P[3] 1000mm/sec CNT100 [color=#c10300]COORD[/color] ;
11:L P[4] 50mm/sec CNT100 [color=#ff851b]COORD[/color] ;
12:C P[5]
: P[6] 100mm/sec CNT100 COORD ;
13:L P[7] 100mm/sec CNT100 COORD ;
14:C P[8]
: P[9] 100mm/sec CNT100 COORD ;
15:L P[10] 100mm/sec CNT100 COORD ;
16:C P[11]
: P[12] 100mm/sec CNT100 COORD ;
17:L P[13] 100mm/sec CNT100 COORD ;
18:C P[14]
: P[15] 100mm/sec CNT100 COORD ;
19:L P[16] 1000mm/sec CNT100 COORD ;
20:L P[17] 1000mm/sec CNT100 COORD ;
/POS
P[1]{
GP1:
UF : 1, UT : 1,
J1= 29.905 deg, J2= 53.695 deg, J3= -33.627 deg,
J4= 0.000 deg, J5= -56.373 deg, J6= 150.094 deg
GP2:
UF : 1, UT : 1,
J1= -63.891 deg
};
P[2]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 150.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= -63.891 deg
};
P[3]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= -63.891 deg
};
P[4]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1015.000 mm, Y = 612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 126.109 deg
GP2:
UF : 1, UT : 1,
J1= 53.891 deg
};
P[5]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1121.070 mm, Y = 568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 121.893 deg
GP2:
UF : 1, UT : 1,
J1= 58.107 deg
};
P[6]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1165.000 mm, Y = 462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 116.653 deg
GP2:
UF : 1, UT : 1,
J1= 63.347 deg
};
P[7]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1165.000 mm, Y = -462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 73.347 deg
GP2:
UF : 1, UT : 1,
J1= 106.653 deg
};
P[8]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1121.070 mm, Y = -568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 68.107 deg
GP2:
UF : 1, UT : 1,
J1= 111.893 deg
};
P[9]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = 1015.000 mm, Y = -612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = 63.891 deg
GP2:
UF : 1, UT : 1,
J1= 116.109 deg
};
P[10]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = -612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -53.891 deg
GP2:
UF : 1, UT : 1,
J1= 233.891 deg
};
P[11]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1121.070 mm, Y = -568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -58.107 deg
GP2:
UF : 1, UT : 1,
J1= 238.107 deg
};
P[12]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1165.000 mm, Y = -462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -63.347 deg
GP2:
UF : 1, UT : 1,
J1= 243.347 deg
};
P[13]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1165.000 mm, Y = 462.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -106.653 deg
GP2:
UF : 1, UT : 1,
J1= 286.653 deg
};
P[14]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1121.070 mm, Y = 568.566 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -111.893 deg
GP2:
UF : 1, UT : 1,
J1= 291.893 deg
};
P[15]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 0.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= 296.109 deg
};
P[16]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 150.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= 296.109 deg
};
P[17]{
GP1:
UF : 1, UT : 1, CONFIG : 'N U T, 0, 0, 0',
X = -1015.000 mm, Y = 612.500 mm, Z = 250.000 mm,
W = 180.000 deg, P = 0.000 deg, R = -116.109 deg
GP2:
UF : 1, UT : 1,
J1= 296.109 deg
};
/END
Remember that synchronizing complex motions between a robot and positioner can be challenging, and it may require careful configuration and testing. Be patient and methodical in your troubleshooting process, and don't hesitate to seek support from the software and hardware providers if needed.
09-15-2023, 12:28 PM (This post was last modified: 09-15-2023, 12:37 PM by Zoran.)
In the attachment.
Thanks.
I had to add COORD in to the program in each line so that the controller would recognize the coordinated movement.
8:J P[1] 20% CNT1 ; 9:L P[2] 1000mm/sec CNT0 ; 10:L P[3] 1000mm/sec CNT100 COORD ; 11:L P[4] 50mm/sec CNT100 COORD ; 12:C P[5] : P[6] 100mm/sec CNT100 COORD ; 13:L P[7] 100mm/sec CNT100 COORD ;
Everithin is ok in RoboDK only if you can help with postprocesor so I do not need to edit after post.
First and second point must not have COORD.