Is it possible to step backwards through a program that uses multiple User Frames?
We weld parts on a 4-station turntable, 2 parts per side. I recently reprogrammed the sequence to allow the 2nd station to be skipped, and decided to implement User Frames. I made each station its own user frame (Side A Station 1 = UFRAME [1], Side A Station 2 + UFRAME [2], etc.) so that we have "cleaner" values for our weld position coordinates.
The problem I have is when jogging through the programs to perform touch-ups I get Invalid UFrame errors when backstepping from Station 2 to 1. I have tried adding redundant points and UFRAME=[x] instructions, but the TP doesn't read those codes when going backwards.
Is there a workaround for this problem? Something I'm missing? It's only an inconvenience when doing touch-ups and doesn't negatively impact normal production, but it still slows our Weld Techs down.
The program:
1: !PNS0019 ;
2: OVERRIDE=100% ;
3: ;
4: UFRAME_NUM=0 ;
5: DO[127:WELDING SIDE A]=ON ;
6:J P[1] 50% CNT100 ;
7:J P[2] 50% CNT100 ;
8: WAIT .10(sec) ;
9: ;
10: !Weld Start A1 ;
11: UFRAME_NUM=1 ;
12:L P[3:ARC START A1] 1000.0inch/min FINE ;
13: Weld Start[1,4] ;
14: Weave Sine[1] ;
15: WAIT .10(sec) ;
16:L PR[6:ARC END A1 33] WELD_SPEED FINE ;
17: Weld End[1,2] ;
18: Weave End ;
19: WAIT .50(sec) ;
20: ;
21:L P[4] 1417.3inch/min CNT50 ;
22: ;
23: IF DI[200:A2 Bypass]=ON,JMP LBL[1] ;
24: ;
25:L P[5] 1417.3inch/min CNT50 ;
26: ;
27: !Weld Start A2 ;
28: UFRAME_NUM=2 ;
29:L P[6:ARC START A2] 1000.0inch/min FINE ;
30: Weld Start[1,4] ;
31: Weave Sine[1] ;
32: WAIT .10(sec) ;
33:L PR[7:ARC END A2 33 ] WELD_SPEED FINE ;
34: Weld End[1,2] ;
35: Weave End ;
36: WAIT .50(sec) ;
37:L P[7] 600mm/sec FINE ;
38: ;
39: LBL[1] ;
40: UFRAME_NUM=0 ;
41:L P[8] 600.0inch/min FINE ;
42:J P[9] 100% CNT100 ;
43: CALL SAFE_HOME ;
Any help is appreciated! Thank you!