Welcome, Guest. Please login or register.
Did you miss your activation email?
December 04, 2008, 05:18:29 AM
Home Help Search Calendar Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Robot Help and Discussion Center
| |-+  Fanuc Robots (Moderators: Sven Weyer, Jim Tyrer)
| | |-+  another user frame question
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: another user frame question  (Read 462 times)
pknack
Newbie
*
Offline Offline

Posts: 3


« on: August 05, 2008, 08:33:31 PM »

Hello!  I'm new to this board but have exhausted my resources trying to solve what should be a simple problem.

We're building a 4-station deflash cell with interchangeable nest plates.  I've got a used Fanuc S420iF with a RJ2 controller.

I want to be able to program the deflash path for Part "A" at station "1" and then be able to shift that same path to any of the other 3 stations.

I was told the easiest way to do this is with multiple user frames but try as I may can't get a simple set of points to shift from one station to another.

I'd like to just do this through the teach pendant, since I don't have any Karel experience or software/cables.

If someone could walk me through this (or set me in the right direction, at least) I'd be forever grateful!!!

Thanks ahead of time for any help!!!!
Logged
anonymous
Newbie
*
Offline Offline

Posts: 21


« Reply #1 on: August 06, 2008, 02:55:26 PM »

Set the system variable $USEUFRAME=TRUE to enable user frames.
Logged
potis
Newbie
*
Offline Offline

Posts: 21


« Reply #2 on: August 07, 2008, 11:49:09 AM »

i will give you some hints for user frames.

When you start a program you must make the user frame back to 0 (UFRAME_NUM = 0).

before saving your ponts you must set your userframe. this is done with 2 ways.
1) make your user frame at the frames menu
2) make your user frame from a specific location for example

        PR[1]=LPOS
        UFRAME[1] = PR[1]

then write your code and when you want a point to be taught by a user frame make the user frame enable

       UFRAME_NUM = 1
   L P[1] 1200mm/sec FINE
       UFRAME_NUM = 0

as you can see above the user frame 1 is enabled the robotis moving to P1 and when it reaches that point the user frame returns to 0 (robot frame)

Pay attention at the frame that the position is saved. you can see that if you go at the command of the point and press position. at the top it says at which user frame and tool frame the position is saved.

so if you want now you can change the user frame and the position is moved to new frame.

i hope i helped you enough...
Logged
pknack
Newbie
*
Offline Offline

Posts: 3


« Reply #3 on: August 18, 2008, 06:45:47 PM »

Hey thanks for the replies!

I'm still not getting it here...I know it's got to be something simple I'm missing.

Here's what I'm doing:

-I enabled the $USEUFRAME variable to "TRUE."

-I've taught (2) user frames, user frame 2 and user frame 3 for nest tables 1 & 2 respectively using the 3-point method in the frame setup screens.
(question: do I need to set a particular user frame active when I do this?)

-Next I set user frame 2 (table 1) active and teach 3-4 random points at the table 1 location.

-Now when I set user frame 3 active and try to go to those same points (hoping they'll translate themselves to table 2),  i get a "Invalid UFRAME" and "User Frame Mismatch" error...

I tried teaching the points in user frame 0 but the robot just keeps going back to those points no matter what user frame I have active.

Thanks ahead for any help you guys can give!!!!!!!
Logged
Professor_J
Jr. Member
**
Offline Offline

Gender: Male
Posts: 76



« Reply #4 on: August 18, 2008, 11:22:03 PM »

This may help, from the manual:

"Setting of the system variable Description:
$FRM_CHKTYP = -1 Disables FWD/BWD execution between two points having different
coordinate system numbers.

$FRM_CHKTYP = -2 Enables FWD/BWD execution between two points having different
numbers.

$FRM_CHKTYP = 2 Enables FWD/BWD execution between two points having different
numbers, and changes the current coordinate system number
($MNUFRAME_NUM or $MNUTOOL_NUM) to the number specified in the position data in the program."

This is from an R-J3iB manual, I assume R-J2 is the same..


Logged
Jim Tyrer
Global Moderator
Sr. Member
*****
Offline Offline

Gender: Male
Posts: 394


If all else fails, read the manual.


« Reply #5 on: August 18, 2008, 11:41:39 PM »

"Invalid UFRAME" means that the bot has been told to move to a point that is taught on a different frame than the currently selected one, you can use the same frame and change it to move from one station to the next.
Choose a UFRAME, make sure all values are set to 0, and teach points on one of your stations. Now you need to know the dimensional differences between the stations, so that you can adjust the same original user frame to shift/change the taught points to do the motions over the other stations. Coords of the taught points remain the same.
Example:
if you teach with frame set to [0,0,0,0,0,0] and then change frame to [300,0,0,0,0,0] the taught points will move 300mm further up along world X axis.

If you can't easily measure the differences between the stations easily then find a point that is common to all stations and teach said point on each station, the subtract the each point from your master point to get the delta coords of each station. (PR[1:station2Frame] = LPOS - P[1: masterStation], PR[2:station3Frame] = LPOS - P[1:masterStation] etc)
« Last Edit: August 18, 2008, 11:44:06 PM by Jim Tyrer » Logged
anonymous
Newbie
*
Offline Offline

Posts: 21


« Reply #6 on: August 19, 2008, 02:54:19 AM »

You could try this approach, which uses one user frame.

Essentially, you define the location of each nest using a position register, then assign the nest location to a common user frame in which to teach points.

1) First, teach a user frame (3-point method is okay) on the first nest (the user frame that's currently active when you do this is not relevant). Record the values X, Y, Z, W, P, and R for this particular nest.

2) Repeat step 1 for each nest. (You can teach using the same user frame each time in step 1 if you want.)

3) Enter the frame data for each nest in an available position register. You need a position register for each nest. If you have four nests, for example, position register 1 could correspond to nest 1, position register 2 could corresond to nest 2, and so on.

4) Create a TP program that will do the motion. If the software you are using has a header where you can specify the user frame to use when recording positions, enter the user frame number there. (Don't use user frame 0, as that is world frame.) Otherwise, go to step 5.

5) In your program, prior to any motion instructions, define the location of the user frame (really, the nest) that you specified in step 4. If you couldn't specify a user frame in step 4, the instruction on line 2 of the program will take care of it (I chose user frame 1 in this example, but use another if you want).

  1:  UFRAME[1]=PR
  • ;
  2:  UFRAME_NUM=1 ;
  3:  motion instruction...

6) Teach the points in the program--be sure you execute the first two lines in the program before recording any positions (position register x corresponds to nest x, so be sure to records points on nest x.)

After you teach the program, change the position register number (x) in the first line of this example program to cause the program to execute on a different nest (in this example x = 1 for nest 1, x = 2 for nest 2, and so on).

Logged
pknack
Newbie
*
Offline Offline

Posts: 3


« Reply #7 on: August 19, 2008, 03:51:21 PM »

Hey guys, thanks for the responses!!!

Actually, your combined answers helped solve this.

The system variable change got me past the frame mismatch errors.

I found that something isn't happening quite correctly when I set the user frames using the 3-point method.   This morning I sat down and found the actual positions of the robot at the nest tables weren't jiving with the frames the robot was calculating.   I manually entered values based on the robot's actual positions and the points transposed correctly from one nest to the other.

So thanks again for your help!!! I think I'll be able to sleep tonight without seeing the TP frame setup screen when I close my eyes! beerchug
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!