One reason to assign the UOPs to IO is so you can fire macros off of them. You can fire macros off of UOPs as well, but you have to dig through the system variables to enable that functionality.
Posts by Nation
-
-
There is a way. It is under the I/O Interconnects item under the cell menu. I usually just connect one of the robot's outputs to a SFDI when I have to test stuff like this.
-
I assume you mean V8.2. V3.2 is really old.
Did you check the 3D view of your zones? You might have the floor of your zone intersecting the robot model.
-
They tell the arm how to reach a certain point. With joint moves on standard 6 axis arms, they govern where J1, J4, and J6 end up. I recommend reading the this: http://www.onerobotics.com/posts/2013/the…ix-axis-robots/
If it is still unclear, I made a video explaining them:
https://www.youtube.com/watch?v=QVRqgc2ak4k -
Judging by the title of your post, does your robot not have a HOMEIO program in it?
The HOMEIO program is a non-group lock program that runs once anytime the robot reaches a home position. You could just create an empty one and I bet it would get rid of the error.
-
Nice. Thanks for sharing your solution. I hope more people do stuff like this in the future.
You can condense your program a bit if you would like to. Like so:
Code: DO[17]=($RSPACE1[1].$WAITING) ; : DO[24]=($RSPACE1[2].$WAITING) ; : DO[33]=($RSPACE1[3].$WAITING) ; : DO[40]=($RSPACE1[4].$WAITING) ;
Your way is more readable though.
-
Yep, you can use the program utility (under menu, then utilities (1)) to change the user frame. It will prompt you to keep the absolute position, or the relative.
Another way is to take the program offline and then manually change all the userframe declarations in the /POS area, then re-upload it to the robot controller. This option requires ASCII program loader, and will keep the points relative.
-
I am not sure about the numerical limit, but there is an option that does allow the storage of programs outside the controller, while accessing them when needed. It is option R798 DRAM File Storage. Reading over the documentation, it looks like you can access files on the USB using it, or even via a PC Share.
It is covered in detail in the HandlingTool manual under section 7.6.
-
I've seen this occur when the tp program that calls the karel is still in one of the edit screens. Try selecting something else and then rebooting.
Also, you probably did this already, but make sure the caller program does not have anything selected in its group mask.
-
-
This error means that the commanded speed in your move is above 250mm/s. Try reducing the speed in the move.
-
-
I wish Fanuc stated the angular repeatability as well as the Cartesianal. It would make your selection a bit easier.
Windshield decking systems typically have that level of repeatability. They involve several cameras placed on the EOAT to guide the robot in to the final deck.
-
The overall 6 axis. More specifically that the TCP will come within the commanded point by +/- 0.2mm. A correct payload is critical for this though.
You can get the robot to repeat far better than advertised if the robot is allowed to settle after a FINE point move (1-2 second delay).
-
Connect to the robot's webserver, and look at files available on the MD:. It will give a brief description of what each extension is (usually).
-
They tell the arm how to reach a certain point. With joint moves on standard 6 axis arms, they govern where J1, J4, and J6 end up. I recommend reading the link BigFrank612 posted.
If it is still unclear, I made a video explaining them:
https://www.youtube.com/watch?v=QVRqgc2ak4k -
I had a project with a similar issue that Jay describes. I was looking at a pallet with a vision system, and the first move into the pallet was a J move very close to the turn number for J6. Depending on the offset sent from the camera, the robot would work fine, or do a stupid 360 degree move on J6 on entry. The rest of the moves were linear, so turn numbers didn't matter.
I solved the issue by utilizing the $GROUP[1].$USETURNS system variable. When it is off, it tells the robot to ignore the turn numbers on joint moves and take the shortest angle. I only turned it off in that one move, and placed a reset into the HOMEIO program in the event the operator jogged the robot home during the move.
My code looked like this:
-
You could interconnect the immediate stop signal to a DO in the interconnect menu. To get to it, go to the IO screen, then press F1 type, then interconnects, then hit F3 for select, and then choose ES->DO, and then set it up there.
-
I've used them for indirectly calling programs, and for looking at barcodes. The barcode reading tool in IrVision populates a string register when it scans a barcode.
-
You could expand the IF statement to encompess the conditions you want. A mixed logic IF statement can support up to 20 items in it.
Otherwise you could break up the IF statement into multiple if statements.
For example:
Code: IF (RI[1:HxBlnkGrip_CLSD] AND R[1:Part Number]<4), JMP LBL[5] ; : IF (R[1:Part Number]=7), JMP LBL[5] ; : IF (R[1:Part Number]=11), JMP LBL[5] ; : IF (R[1:Part Number]=7=25), JMP LBL[5] ; : !None of the above are true... ; : JMP LBL[10] ; : ; : LBL[5:True] ; : CALL M_LOAD_CYCLE ; : LBL[10:End] ;