Thanks for your help. I'm guessing what I did was basically the same as a quick skip.
Since I'm searching very slow, 10 mm/sec, should I worry about having a deceleration higher than 100% effecting the life of my joints?
Thanks for your help. I'm guessing what I did was basically the same as a quick skip.
Since I'm searching very slow, 10 mm/sec, should I worry about having a deceleration higher than 100% effecting the life of my joints?
Work around found! I turned up the deceleration on that line to improve accuracy. I'm open to any other suggestions for work around.
According to Fanuc, Arc Mate doesn't support quick skip. If you know differently, please let me know.
When I highlighted Skip LBL and pressed choice, the only options I had were:
1. No Option
2. Arc Start[]
3. Search
4. Arc End[]
5. Wrist joint
6. ACC
7. Skip,LBL[]
8. Offset/Frames
9. Offset,PR[]
10. Incrimental
11. Tool_Offset
12. Tool_Offset, PR[]
13. Coord
14. PTH
When I checked choices on the PR[100]=LPOS the only options were:
1: <cr>
2: +
3: -
What I meant was at the end of the line after skip LBL. I couldn't find the option to add in the PR = LPOS. I didn't try to change the skip function itself however. I'll try it on Monday morning. Thanks for your help.
I got this search to work, however, it has a delay from when it touches until the DI comes on.
/PROG DF_SRCH2
/ATTR
OWNER = MNEDITOR;
COMMENT = "";
PROG_SIZE = 745;
CREATE = DATE 23-04-14 TIME 07:38:04;
MODIFIED = DATE 23-04-14 TIME 13:24:10;
FILE_NAME = ;
VERSION = 0;
LINE_COUNT = 33;
MEMORY_SIZE = 1213;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
ARC Welding Equipment : 1,*,*,*,*;
/MN
1: ;
2: DO[27:TOUCH OUTPUT]=ON ;
3: ;
4: R[1]=AR[1] ;
5: R[2]=AR[2] ;
6: R[3]=AR[3] ;
7: R[4]=AR[4] ;
8: ;
9: IF (R[4]=0),JMP LBL[1] ;
10: JMP LBL[2] ;
11: LBL[1] ;
12: PR[GP1:R[3]]=PR[GP1:R[3]]-PR[GP1:R[3]] ;
13: LBL[2] ;
14: ;
15: PR[GP1:R[1],1]=(PR[GP1:R[2],1]+PR[GP1:R[2],1]-PR[GP1:R[1],1]) ;
16: PR[GP1:R[1],2]=(PR[GP1:R[2],2]+PR[GP1:R[2],2]-PR[GP1:R[1],2]) ;
17: PR[GP1:R[1],3]=(PR[GP1:R[2],3]+PR[GP1:R[2],3]-PR[GP1:R[1],3]) ;
18: ;
19:L PR[R[1]] 10mm/sec FINE Offset,PR[R[3]] Skip,LBL[5] ;
20: PR[GP1:100]=LPOS ;
21: ;
22: PR[GP1:R[3],1]=(PR[GP1:100,1]-PR[GP1:R[2],1]) ;
23: PR[GP1:R[3],2]=(PR[GP1:100,2]-PR[GP1:R[2],2]) ;
24: PR[GP1:R[3],3]=(PR[GP1:100,3]-PR[GP1:R[2],3]) ;
25: ;
26: JMP LBL[6] ;
27: LBL[5] ;
28: UALM[1] ;
29: LBL[6] ;
30: ;
31: DO[27:TOUCH OUTPUT]=OFF ;
32: ;
33: ;
/POS
/END
Loaded wrong search program. I couldn't get PR[100] to fit on line 19. I had to move it to line 20.
/PROG DF_SRCH2
/ATTR
OWNER = MNEDITOR;
COMMENT = "";
PROG_SIZE = 695;
CREATE = DATE 23-04-14 TIME 07:38:04;
MODIFIED = DATE 23-04-14 TIME 13:14:27;
FILE_NAME = ;
VERSION = 0;
LINE_COUNT = 33;
MEMORY_SIZE = 1163;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
ARC Welding Equipment : 1,*,*,*,*;
/MN
1: ;
2: DO[27:TOUCH OUTPUT]=ON ;
3: ;
4: R[1]=AR[1] ;
5: R[2]=AR[2] ;
6: R[3]=AR[3] ;
7: R[4]=AR[4] ;
8: ;
9: IF (R[4]=0),JMP LBL[1] ;
10: JMP LBL[2] ;
11: LBL[1] ;
12: PR[R[3]]=PR[R[3]]-PR[R[3]] ;
13: LBL[2] ;
14: ;
15: PR[R[1],1]=(PR[R[2],1]+PR[R[2],1]-PR[R[1],1]) ;
16: PR[R[1],2]=(PR[R[2],2]+PR[R[2],2]-PR[R[1],2]) ;
17: PR[R[1],3]=(PR[R[2],3]+PR[R[2],3]-PR[R[1],3]) ;
18: ;
19:L PR[R[1]] 10mm/sec FINE Offset,PR[R[3]] Skip,LBL[5] ;
20: PR[100]=LPOS ;
21: ;
22: PR[R[3],1]=(PR[100,1]-PR[R[2],1]) ;
23: PR[R[3],2]=(PR[100,2]-PR[R[2],2]) ;
24: PR[R[3],3]=(PR[100,3]-PR[R[2],3]) ;
25: ;
26: JMP LBL[6] ;
27: LBL[5] ;
28: UALM[1] ;
29: LBL[6] ;
30: ;
31: DO[27:TOUCH OUTPUT]=OFF ;
32: ;
33: ;
/POS
/END
Sorry it took so long been fighting syntax errors and for information overload. Currently showing error INTP-215 (DF_SRCH2, 15). Group Mismatch. I assume this is from the default groups not matching. However, when I changing the DF search to contain both default groups doesn't help.
The arguments are passing in correctly?
Registars
[*NUMREG*]$NUMREG Storage: CMOS Access: RW : ARRAY[200] OF Numeric Reg [1] = 97 '' [2] = 98 '' [3] = 1 '' [4] = 0 ''
Position registars
Don't know about PR[0]
[*POSREG*]$POSREG Storage: CMOS Access: RW : ARRAY[2,200] OF Position Reg [1,1] = 'TORCH_MATE' Group: 1 Config: N U T, 0, 0, 0 X: 0.000 Y: 0.000 Z: 0.000 W: 0.000 P: 0.000 R: 0.000
[1,97] = '' Group: 1 Config: N U T, 0, 0, 0 X: 1311.341 Y: -264.416 Z: -221.024 W: -44.983 P: .294 R: -178.707 [1,98] = '' Group: 1 Config: N U T, 0, 0, 0 X: 1311.444 Y: -264.419 Z: -241.024 W: -44.983 P: .294 R: -178.707
[2,97] = '' Group: 2 J1 = 0.000 deg J2 = 0.000 deg [2,98] = '' Group: 2 J1 = 0.000 deg J2 = 0.000 deg
Program that is calling search.
/PROG test0088
/ATTR
OWNER = MNEDITOR;
COMMENT = "test0088 by Delfoi 4";
PROG_SIZE = 64000;
CREATE = DATE 23-04-14 TIME 10:46:35;
MODIFIED = DATE 23-04-14 TIME 10:46:35;
FILE_NAME = test0088;
VERSION = 0;
LINE_COUNT = 32;
MEMORY_SIZE = 64000;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,1,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
ARC Welding Equipment : 1,*,*,*,*;
/MN
1: ;
2: !S1 ;
3: UFRAME_NUM=1 ;
4: UTOOL_NUM=1 ;
5:J P[1] 100% CNT100 ;
6:L P[2] 1000mm/sec CNT100 ;
7:L P[3] 400mm/sec FINE ;
8: ;
9: SKIP CONDITION DI[26]=ON ;
10:L P[4] 60mm/sec FINE ;
11: PR[97]=P[4] ;
12: PR[98]=P[5] ;
13: !L P[5] 10mm/sec FINE ;
14: CALL DF_SRCH2(97,98,1,0) ;
15:L P[4] 60mm/sec FINE Offset,PR[1] ;
16: SKIP CONDITION DI[26]=OFF ;
17: ;
18:L P[7] 400mm/sec FINE ;
19:L P[8] 1000mm/sec CNT100 ;
20:L P[9] 1000mm/sec CNT100 ;
21: ;
22: !W2 ;
23:J P[10] 100% CNT100 ;
24:L P[11] 1000mm/sec CNT100 ;
25:L P[12] 400mm/sec FINE ;
26:L P[13] 100mm/sec FINE ;
: Arc Start[1];
: Weave Sine[4];
27: Track TAST[1] ;
28:L P[14] WELD_SPEED CNT100 ;
29:L P[15] WELD_SPEED CNT100 ;
30:L P[16] WELD_SPEED FINE ;
: Arc End[1];
: Track End;
: Weave End ;
31:L P[17] 400mm/sec FINE ;
32:L P[18] 1000mm/sec CNT100 ;
Search Program
/PROG DF_SRCH2
/ATTR
OWNER = MNEDITOR;
COMMENT = "";
PROG_SIZE = 681;
CREATE = DATE 23-04-14 TIME 07:38:04;
MODIFIED = DATE 23-04-14 TIME 07:40:14;
FILE_NAME = ;
VERSION = 0;
LINE_COUNT = 32;
MEMORY_SIZE = 1153;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
ARC Welding Equipment : 1,*,*,*,*;
/MN
1: ;
2: DO[27:TOUCH OUTPUT]=ON ;
3: ;
4: R[1]=AR[1] ;
5: R[2]=AR[2] ;
6: R[3]=AR[3] ;
7: R[4]=AR[4] ;
8: ;
9: IF (R[4]=0),JMP LBL[1] ;
10: JMP LBL[2] ;
11: LBL[1] ;
12: PR[R[3]]=PR[R[3]]-PR[R[3]] ;
13: LBL[2] ;
14: ;
15: PR[R[1],1]=(PR[R[2],1]+PR[R[2],1]-PR[R[1],1]) ;
16: PR[R[1],2]=(PR[R[2],2]+PR[R[2],2]-PR[R[1],2]) ;
17: PR[R[1],3]=(PR[R[2],3]+PR[R[2],3]-PR[R[1],3]) ;
18: ;
19:L PR[R[1]] 10mm/sec FINE Offset,PR[R[3]] Skip,LBL[5] ;
20: ;
21: PR[R[3],1]=(PR[100,1]-PR[R[2],1]) ;
22: PR[R[3],2]=(PR[100,2]-PR[R[2],2]) ;
23: PR[R[3],3]=(PR[100,3]-PR[R[2],3]) ;
24: ;
25: JMP LBL[6] ;
26: LBL[5] ;
27: UALM[1] ;
28: LBL[6] ;
29: ;
30: DO[27:TOUCH OUTPUT]=OFF ;
31: ;
32: ;
/POS
/END
Will do. Thanks again. Do you know if any place I can get a book on syntax for fanuc coding?
Thanks. I'll try it first thing in the morning.
The skip condition, DI[26]=ON, is called out in the main program before it calls the df_search. Not sure why, but that is how their post processor work.
I'm new to coding robots and can not find any good literature on the language.
Is this what you are suggesting? What is the offset actually doing?
18: ,PR[100]=LPOS Offset,PR[R[3]];
19: L PR[R[1]] 10mm/sec FINE Skip,LBL[5] ;
I got a rough idea that it is storing the last linear position into PR[100]. The skip condition works backwards from what you would expect. if it reaches PR[R[1]] it'll skip to LBL[5]. If the skip condition is met, it'll read the next line of code.
Program line 19 is where it'll fail to load into controller. When I move the PR[100] part of line to the next line down, It'll load in and work. However, it makes a delay in the touch sense and makes an inaccurate search.
/PROG DF_SRCH2
/ATTR
OWNER = MNEDITOR;
COMMENT = "";
PROG_SIZE = 623;
CREATE = DATE 20-06-02 TIME 14:07:48;
MODIFIED = DATE 20-06-10 TIME 08:27:54;
FILE_NAME = ;
VERSION = 0;
LINE_COUNT = 32;
MEMORY_SIZE = 1031;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
ARC : TRUE ;
ARC Welding Equipment : 1,*,*,*,*;
/MN
1: ;
2: DO[27]=ON ;
3: ;
4: R[1]=AR[1] ;
5: R[2]=AR[2] ;
6: R[3]=AR[3] ;
7: R[4]=AR[4] ;
8: ;
9: IF (R[4]=0),JMP LBL[1] ;
10: JMP LBL[2] ;
11: LBL[1] ;
12: PR[R[3]]=PR[R[3]]-PR[R[3]] ;
13: LBL[2] ;
14: ;
15: PR[R[1],1]=(PR[R[2],1]+PR[R[2],1]-PR[R[1],1]) ;
16: PR[R[1],2]=(PR[R[2],2]+PR[R[2],2]-PR[R[1],2]) ;
17: PR[R[1],3]=(PR[R[2],3]+PR[R[2],3]-PR[R[1],3]) ;
18: ;
19: L PR[R[1]] 10mm/sec FINE Skip,LBL[5],PR[100]=LPOS Offset,PR[R[3]] ;
20: ;
21: PR[R[3],1]=(PR[100,1]-PR[R[2],1]) ;
22: PR[R[3],2]=(PR[100,2]-PR[R[2],2]) ;
23: PR[R[3],3]=(PR[100,3]-PR[R[2],3]) ;
24: ;
25: JMP LBL[6] ;
26: LBL[5] ;
27: UALM[1] ;
28: LBL[6] ;
29: ;
30: DO[27]=OFF ;
31: ;
32: ;
/POS
/END
Does anyone use Delfoi and have an RJ3iB controller? Having issues with Delfoi search program.
Used just arc start s to change schedule.
Yes I am. I switched to pulse weld. Fine termination before and after the corner with C and CNT move in between. Still a small bit but don't think it'll ever be perfect.
I'm having an issue with undercut when wrapping a weld around sharp corners. I have a 3/4" thick plate T with a 1" thick plate. the 3/4 requires 1/2" all around weld. .052 wire size, 375 ipm wire speed 14.5 ipm travel speed 30V tracking at 350 amps. Rj3ib controller Fanuc 120ib arm. Any suggestions?