I checked the GI and RI are they were changing as required. I decided to go ahead and just re-program the place point, I ran the code couple of times and it works fine. Thanks for your input, I really appreciate.
Posts by AY_Robot
-
-
Let me try that and see what happens. I will be back.
-
So, what the robot is doing is after placing part 1 at point 0mm which is shown on the HMI. It comes back and place part 2 at location 0mm also even tho it shows on the HMI as point 25mm. Part 3 is then place at the location where part 2 should have been, on the HMI it will display 50mm but in reality the part was part at 25mm from the starting position and it keep accumulating like that until it get to the last part and everything is one position off because part 1 and 2 where placed on the same spot.
-
I currently do not know, I have just been working to modify the code because a lot of steps were missing earlier, so I checked a similar program from Cart 2 (The code I posted is for cart 1). I am only having this problem when the robot is placing the part in cart 1, the same robot will not do that when placing in cart 2. Cart 1 is to the left of the robot, while cart 2 is to the right of the robot. It just started doing this, I have ran this same program before and it worked fine, until I decide to touchup some position registers. I did not mess with the GI's.
-
1: TIMER[1]=START ;
2: DO[24:Cycle Time Bit 1]=PULSE,1.0sec ;
3: COL DETECT ON ;
4: UFRAME_NUM=0 ;
5: UTOOL_NUM=1 ;
6: PAYLOAD[1] ;
7: R[200:SPEED]=GI[3:SPEED OVERIDE] ;
8: OVERRIDE=R[200:SPEED] ;
9: GO[1:SPEED OVERIDE ACK]=R[200:SPEED] ;
10: ;
11: ;
12:J PR[5:HOME] 90% FINE ;
13: ;
14: R[10:HOMING]=100 ;
15: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
16:L P[4] 4000mm/sec CNT100 ;
17: DO[56:BlowOff On To PLC]=PULSE,1.0sec ;
18:L P[5] 4000mm/sec CNT100 ;
19: //L PR[17:MiniPickAppr] 4000mm/sec CNT100 ;
20: WAIT DI[49:Part At Pickup]=ON ;
21: ;
22: IF DI[53:Dry Run Request]=ON,JMP LBL[4] ;
23: //L P[2] 4000mm/sec FINE ;
24:L PR[16:MiniPickPoint] 4000mm/sec FINE ;
25: LBL[4] ;
26: DO[55:Suction Off To PLC]=OFF ;
27: DO[54:Suction On To PLC]=ON ;
28: IF DI[53:Dry Run Request]=ON,JMP LBL[2] ;
29: WAIT RI[2:SUCTION 2]=ON AND RI[3:SUCTION 3]=ON AND RI[4:PART PRESENT]=ON TIMEOUT,LBL[86] ;
30: LBL[2] ;
31: PAYLOAD[2] ;
32: //L PR[17:MiniPickAppr] 4000mm/sec CNT10 ;
33:L P[1] 4000mm/sec CNT10 ;
34: IF DI[53:Dry Run Request]=ON,JMP LBL[3] ;
35: WAIT RI[2:SUCTION 2]=ON AND RI[3:SUCTION 3]=ON AND RI[4:PART PRESENT]=ON TIMEOUT,LBL[86] ;
36: LBL[3] ;
37: DO[49:Part Picked / EOAT Clear]=PULSE,3.0sec ;
38:L P[7] 4000mm/sec CNT50 ;
39: ;
40: R[10:HOMING]=120 ;
41: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
42:L P[9] 4000mm/sec CNT50 ;
43: ;
44: R[10:HOMING]=200 ;
45: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
46:L PR[8:EnterCart1] 4000mm/sec CNT50 ;
47: ;
48: ;
49: UFRAME_NUM=1 ;
50: UTOOL_NUM=1 ;
51: R[1:X~OFFSET ]=GI[1:POS X~OFFSET] ;
52: R[2:Z~OFFSET]=GI[2:POS Z~OFFSET] ;
53: PR[1,1:OffsetX~Z]=R[1:X~OFFSET ] ;
54: PR[1,3:OffsetX~Z]=R[2:Z~OFFSET] ;
55: ;
56: ;
57: PR[10:1MiniAbovePoint]=PR[11:1MiniAboveReset] ;
58: PR[10,1:1MiniAbovePoint]=PR[10,1:1MiniAbovePoint]+PR[1,1:OffsetX~Z] ;
59: R[10:HOMING]=220 ;
60: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
61:L PR[10:1MiniAbovePoint] 3000mm/sec CNT50 ;
62: ;
63: PR[12:1MiniNearPoint]=PR[13:1MiniNearReset] ;
64: PR[12,1:1MiniNearPoint]=PR[12,1:1MiniNearPoint]+PR[1,1:OffsetX~Z] ;
65:L PR[12:1MiniNearPoint] 1000mm/sec FINE ;
66: ;
67: ;
68: PR[14:1MiniPlacePoint]=PR[15:1MiniPlaceReset] ;
69: PR[14,1:1MiniPlacePoint]=PR[14,1:1MiniPlacePoint]+PR[1,1:OffsetX~Z] ;
70:L PR[14:1MiniPlacePoint] 750mm/sec FINE ;
71: ;
72: IF RI[4:PART PRESENT]=OFF,JMP LBL[9999] ;
73: DO[54:Suction On To PLC]=OFF ;
74: DO[55:Suction Off To PLC]=ON ;
75: DO[56:BlowOff On To PLC]=PULSE,1.0sec ;
76: DO[51:Part Placing To Cart 1]=PULSE,2.0sec ;
77: DO[50:Part Placed]=PULSE,0.5sec ;
78: WAIT .25(sec) ;
79: ;
80: PAYLOAD[1] ;
81:L PR[14:1MiniPlacePoint] 1000mm/sec CNT10 Offset,PR[2:OffsetZ 300] ;
82: ;
83: ;
84: UFRAME_NUM=0 ;
85: UTOOL_NUM=1 ;
86: PAYLOAD[1] ;
87: ;
88:L PR[8:EnterCart1] 4000mm/sec CNT10 ;
89: ;
90: R[10:HOMING]=200 ;
91: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
92:L P[16] 4000mm/sec CNT50 ;
93: ;
94: R[10:HOMING]=120 ;
95: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
96:J PR[5:HOME] 100% FINE ;
97: R[10:HOMING]=1 ;
98: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
99: ;
100: ;
101: TIMER[1]=STOP ;
102: DO[37:Cycle Time Bit 2]=PULSE,1.0sec ;
103: R[11:CYCLE TIME C1Mi]=TIMER[1] ;
104: TIMER[1]=RESET ;
105: ;
106: ABORT ;
-
Good evening,
I am currently having a problem placing a part on the cart with the FANUC robot I am working on. The cart can take up to 48 parts, the robot will load all the parts but is off by one position. The robot will place a part in the same location for part 1 and the next part (Part 2) after then it will now begin to apply the offset (in this case 25mm) to subsequent parts. The robot is programmed to apply an offset of 25mm from one part to another. The problem I am having is the robot will place part 1 and part 2 in the same location and then place part 3 in the location of where part 2 suppose to be and then it goes on like that until it gets to the last part which is 48, it then will place part 48 in the location of where part 47 suppose to be. I am off by one position and I don't know how to get this rectify. It wasn't doing this before, it just started doing it after I made a change using the TP to reprogram position 1 to prevent the robot from crashing into the cart when the parts placement gets to position 48 cos it was very close and will crash at times. Any suggestion will be highly welcome.
Thanks!
-
-
Honestly I do not know if there's something in the background changing the values. I recorded new positions for PR49, PR51, PR53 for the position I will want them to be, but the moment i run the program it will go back to the very first position that was there before I started working on the problem. Also, I Just found out the last time I ran this program on the TP that PR49, PR51, PR53 went to a new position completely from what I have been seeing since I started working on the robot. I think something is placing the offset without my knowledge and I'm trying to figure out what and where is it.
-
Hey Guys,
I have been having problems running a program on my robot from the TP efficiently. The issues have been with some particular PR positions, line numbers 58, 62, and 67 (please see program below) will not go to the new recorded position, but will always end up in the previously recorded position that was initially loaded. If I go to Data - PR - and do a Shift + Move to - to PR 49,51,53 the robot will move to the position I wanted (i.e the position I just recorded) but when I run the program going through one line at a time it will end up in a different position (i.e the position initially loaded). I don't know if it's the offset added between the linear movement in the program that is causing this or something else, it's really confusing and I don't understand what is going on. Any suggestion will be very much appreciated.
42:L PR[9:EnterCart2] 4000mm/sec CNT50 ;
43: ;
44: ;
45: UFRAME_NUM=2 ;
46: UTOOL_NUM=1 ;
47: ;
48: R[1:X~OFFSET ]=GI[1:POS X~OFFSET] ;
49: R[2:Z~OFFSET]=GI[2:POS Z~OFFSET] ;
50: PR[1,1:OffsetX~Z]=R[1:X~OFFSET ] ;
51: PR[1,3:OffsetX~Z]=R[2:Z~OFFSET] ;
52: ;
53: ;
54: PR[48:2MiniAbovePoint]=PR[49:2MiniAboveReset] ;
55: PR[48,1:2MiniAbovePoint]=PR[48,1:2MiniAbovePoint]+PR[1,1:OffsetX~Z] ;
56: R[10:HOMING]=320 ;
57: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
58:L PR[48:2MiniAbovePoint] 3000mm/sec CNT25 ;
59: ;
60: PR[50:2MiniNearPoint]=PR[51:2MiniNearReset] ;
61: PR[50,1:2MiniNearPoint]=PR[50,1:2MiniNearPoint]+PR[1,1:OffsetX~Z] ;
62:L PR[50:2MiniNearPoint] 1000mm/sec FINE ;
63: ;
64: ;
65: PR[52:2MiniPlacePoint]=PR[53:2MiniPlaceReset] ;
66: PR[52,1:2MiniPlacePoint]=PR[52,1:2MiniPlacePoint]+PR[1,1:OffsetX~Z] ;
67:L PR[52:2MiniPlacePoint] 750mm/sec FINE ;
68: ;
69: IF DI[53:Dry Run Request]=ON,JMP LBL[4] ;
70: IF RI[4:PART PRESENT]=OFF,JMP LBL[9999] ;
71: LBL[4] ;
72: DO[55:Suction Off To PLC]=OFF ;
73: DO[56:BlowOff On To PLC]=PULSE,1.0sec ;
74: DO[52:Part Placing To Cart 2]=PULSE,2.0sec ;
75: DO[50:Part Placed]=PULSE,0.5sec ;
76: WAIT .25(sec) ;
77: ;
78:L PR[52:2MiniPlacePoint] 1000mm/sec CNT10 Offset,PR[2:OffsetZ 300] ;
79: ;
80: ;
81: UFRAME_NUM=0 ;
82: UTOOL_NUM=1 ;
83: PAYLOAD[1] ;
84: ;
85:L PR[9:EnterCart2] 4000mm/sec CNT50 ;
86: ;
87: R[10:HOMING]=300 ;
88: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
89:L P[15] 4000mm/sec CNT50 ;
90:L P[16] 4000mm/sec CNT100 ;
91: ;
92: R[10:HOMING]=140 ;
93: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
-
Yes, it is in the position where turning on the suction should grab the part. I will try to investigate which signal is not turning on when the robot is at line 29
-
Yeah I understand they are inputs. I'm using these same inputs to pick up another parts (small, medium, and large) on the same ROBOT A and it works, that's why I am confused.
-
Hey Guys,
I am having an issue with my Robot picking up a mini part from a conveyor system. I have two identical robots doing similar jobs (Robot A and Robot B). Robot B will pick up mini parts easily and place them in a cart. I copied the same program from Robot B to Robot A, Robot A will move from the home position to the pick position (which is right on top of the mini part) and stays there without moving to the next point in the program. I get this error on the HMI: Robot A fault - "Check Suction or EOAT". I found out Robot A gets to line 29 in the program (see below) waits, and after a while, just goes straight to LBL [86] which is the "EOAT SUCTION FAULT" and it aborts the program. I'm currently dealing with this issue, any suggestion will be helpful. Thanks!
12:J PR[5:HOME] 90% FINE ;
13: ;
14: R[10:HOMING]=100 ;
15: GO[2:HOME TRACKER BITS]=R[10:HOMING] ;
16:L P[4] 4000mm/sec CNT100 ;
17: DO[56:BlowOff On To PLC]=PULSE,1.0sec ;
18:L P[5] 4000mm/sec CNT100 ;
19: //L PR[17:MiniPickAppr] 4000mm/sec CNT100 ;
20: WAIT DI[49:Part At Pickup]=ON ;
21: ;
22: IF DI[53:Dry Run Request]=ON,JMP LBL[4] ;
23: //L P[2] 4000mm/sec FINE ;
24:L PR[16:MiniPickPoint] 4000mm/sec FINE ;
25: LBL[4] ;
26: DO[55:Suction Off To PLC]=OFF ;
27: DO[54:Suction On To PLC]=ON ;
28: IF DI[53:Dry Run Request]=ON,JMP LBL[2] ;
29: WAIT RI[1:SUCTION 1]=ON AND RI[3:SUCTION 3]=ON AND RI[4:PART PRESENT]=ON TIMEOUT,LBL[86] ;
30: LBL[2] ;
31: PAYLOAD[2] ;
32: //L PR[17:MiniPickAppr] 4000mm/sec CNT10 ;
33:L P[1] 4000mm/sec CNT10 ;
100: ;
101: TIMER[1]=STOP ;
102: DO[37:Cycle Time Bit 2]=PULSE,1.0sec ;
103: R[11:CYCLE TIME C1Mi]=TIMER[1] ;
104: TIMER[1]=RESET ;
105: ;
106: ABORT ;
107: ;
108: LBL[86] ;
109: !EOAT SUCTION FAULT ;
110: DO[61:EOAT Vacuum Fault]=PULSE,2.0sec ;
111: ABORT ;
112: ;
113: ;
-
Thanks, that was helpful. It fixed my problem. I was actually touching up PR[12] and PR[14].
-
I have two FANUC Robots M-710iC, (robot A and robot B) that do the same jobs but are a few distance from each other. Robot A and Robot B are set-up the same way and are almost exactly alike. These Robots picks a part and place them in two carts (Cart 1 left side of the robot, cart 2 right side of the robot) please see attached picture. in one of the jobs the robotS execute, Robot B will effectively picks up the part and place it, Robot A will pick up the part but can't place it instead it will crash into the carts when trying to place. I Found out the program that was suppose to run the job on Robot A was broken, I copied the program from Robot B and load it in Robot A. I ran this copied program on the TP of Robot A and found out at a particular line in the code (line 65, 70), Robot A still crashes into the carts even though I was running the program I copied from Robot B. Robot B never crashes into the carts on this same line. I re-touch this point (i.e line 65) several times, I get a verification that the point has been recorded, but anytime I re-ran the program, Robot A still crashes into the cart like I never re-touch the point. I can't continue to mimic the job I want from robot B to robot A because I am currently stuck at this point. Any suggestion will help.
Below is the code starting from line 61 to 75;
61:L PR[10:1MiniAbovePoint] 3000mm/sec CNT50 ;
62: ;
63: PR[12:1MiniNearPoint]=PR[13:1MiniNearReset] ;
64: PR[12,1:1MiniNearPoint]=PR[12,1:1MiniNearPoint]+PR[1,1:OffsetX~Z] ;
65:L PR[12:1MiniNearPoint] 1000mm/sec FINE ;
66: ;
67: ;
68: PR[14:1MiniPlacePoint]=PR[15:1MiniPlaceReset] ;
69: PR[14,1:1MiniPlacePoint]=PR[14,1:1MiniPlacePoint]+PR[1,1:OffsetX~Z] ;
70:L PR[14:1MiniPlacePoint] 750mm/sec FINE ;
71: ;
There is an attachment to this thread, please check to see how Robot A and Robot B are located.