Program transfer

  • I have to change item Tobe welded by another robot . With another cell. I have the program transfered on the other robot however there are differences between the cells. What is the best way to measure and correct the difference. I did it once with program offset but still had to correct a lot

  • Can you elaborate on how to use them in the original program so that they are useful, would appreciate a reference to a book or a video where they show an example. I will look also thanks for the direction 🙏

  • You should check and see if it is using a UF and UT. It may be. A simple way would be to go into the program, highlight your cursor on one of the points and press the function key for Position. Then see if it has a UF and UT number defined. Then you can go to Menu>Setup>Frames, select type as User or Tool and see if those frames have a defined location.


    Also try to get ahold of the manual and read up on frames.

  • So what i did is i copied the UF and UT from the source robot and transfered it to the new one via direct entry. Than i used offset UF TF to transfer the points into the new UF and TF. It worker but still the points are quite far from where they should be. So something is missing...

  • So what i did is i copied the UF and UT from the source robot and transfered it to the new one via direct entry. Than i used offset UF TF to transfer the points into the new UF and TF. It worker but still the points are quite far from where they should be. So something is missing...

    What's missing is that you used direct entry of the User frame without actually teaching the frame to the robot. What basically a user frame does is translate a point in space in relation to the origin of the User frame. I for example have an application that uses grinding wheels to grind different kinds of pieces with the robots. I have 10 robots all in their own cells but many times I want to have the flexibility of moving the grinding process of a workpiece from onr robot to another.

    This is where User frames come into play. So by using a global tool (a tool that I can install on all my robots) I teach every robot a user frame that is basically the center of the shaft the grinding wheel is added onto. Now when using this User frame, all of the positions of the grinding program are saved as a translation of the distance the robot tool is away from the center of the grinding wheel shaft (the user frame). The key here is teaching the User Frame and not COPY the user frame. Because, even though all cells are identical, there are factors like cell assembly tolerances, robot assembly tollerances, grinding wheel position tolerances that will not be accounted for unless I actually TEACH every robot the center of their working shaft. You do not need to use any offset utility when copying a program this way, you just need to make sure that the UFRAME and the UTOOL used in the original program are the same on both robots. To clarify, if the original program was taught on a robot using UFRAME 1 (= the origin of the table the workpiece is put at) with UTOOL 1 being a welding torch, then you must make sure that on the robot that is going to recieve the copy of the program, UFRAME 1 must be the origin of the table the workpiece is going to be put, and UTOOL 1 must be its torch and both of them should be TAUGHT. You must also make sure that the reference used in teaching the User Frames, better be the same on both fixtures inside the cells. Use a DIN pin located on the same position on both fixtures.

    Also something worth adding here is that even if the original program to be copied did not take advantage of any user frames you can still create (teach) a user frame and convert the positions using UFRAME offset utility or by touching up each position in the program with the new user frame selected. The procedure is: choose the user frame the points are saved with, visit the point, change User frame with SHIFT+COORD press touchup, on the popup that shows up change the old user frame number the position is stored with the new user frame you created, press enter, visit the next point, and so on and so forth. Believe it or not, I use the second method because I dont really trust automated shift functions for a reason I dont know yet. :smiling_face_with_sunglasses:

  • Thx for the detailed explanation. I have here 10 robots and each one is doing different models of a crane arm. The thing is the frames are thaught from the integrators so I'll have to copy the points coordinates in order to teach it to another robot 🤔 or maybe make a new frame

  • Thx for the detailed explanation. I have here 10 robots and each one is doing different models of a crane arm. The thing is the frames are thaught from the integrators so I'll have to copy the points coordinates in order to teach it to another robot 🤔 or maybe make a new frame

    No you don't. Take the robot with the taught frame for a spin. Get the robot to hit the FRAME's origin. To do that, go to SETUP > FRAMES press F3 OTHER choose user frames, go inside the frame you are interested and check the positions used by the integrator to teach the frame by using the MOVE TO command. By doing so you get a glance of which reference point the integrator used on the fixture. Another way would be to create a program, select the user frame, create a point anywhere and change its coords to zero. Move to that point and you got yourself a USER FRAME origin. USE SMALL SPEED OVERRIDES !!!!

  • It worked good when I thaught the same UF, i have noticed that the integrators left few robots with UF that have almost the same coordinates that means that i don't have to teach extra UF right? I mean is it important that the UF is related with the item?

  • It worked good when I thaught the same UF, i have noticed that the integrators left few robots with UF that have almost the same coordinates that means that i don't have to teach extra UF right? I mean is it important that the UF is related with the item?

    Yes. As I already stated on my previous post it is very important that the User Frames are taught. Because teaching accounts for small tolerances of mechanical part assemblies. Almost is not same. The "almost" part is related to the difference in tolerances I explained before.

    There is no need to teach any extra UFs. But it is very important that you verify the UF of the robot(s) that will recieve a copy of the program you wish to run.

  • Yes thank you very much i feel i got a deeper understanding of the importance is user frames. Just wanted to ask does it apply for dynamic frames too. Because i have two robots with the same UF that is labeled as dynamic? Anyway i am going to do a research on that. Thx again

  • There is no such thing as a "Dynamic User Frame" as far as FANUC terminology stands. The label "dynamic" is just a label used by the integrator to give the user frame a meaning. There are many ways to make a User Frame "dynamic" (=a user frame that changes based on parameters and conditions defined by the programmer) but all this is dependant on the application. You should talk to the integrator if you wish to know why he labeled this frame as dynamic, chances are the frame is used inside a program that manipulates it (the frame) based on conditions met, fixture used or workpiece to be welded, and there should also be an automated procedure (a tp program or a Karel program maybe?) that modifies it based on parameters or a search function?

    All these are wild guesses. You should talk to your integrator anyway. As I can figure out there are a lot of info left unclarified about your robots by them.

  • Thanks a lot. Makes sense regarding the change of parameters and the dynamic frame label. It was just presented like this to me and without prior experience with it i never gave it a thaught. I am starting to realize how much i need to learn

  • When I've used the frame offset option the points don't match on both robots bit if i touch up every point with the new thaught frame, center of the shaft, they are the same on both robots. The thing is that i have 500 points in the program would take a long time to touch them all. With offset frame would be easier if it worked

  • Chances are you are doing something wrong. You do not need to use Frame Offset on the robot to recieve the copy of the program, only on the orginator and that is if positional data are not already recorded in respect to an already declared User Frame.
    Select case:
    1) Original program has positions recorded in a User Frame. Copy program to the desired robot making sure that the robot to recieve the program has the same User Frame taught in the same position in the list. if the program is using UF1, UF1 being the center of something, a table, a fixture, a shaft then you need to make sure that the robot to recieve that copy of the program has the same User Frame taught in the same position on the list, that being UF1_originator = UF1_reciever. Not coordinate-wise but space wise, do not copy the values of one UF to the the other, but teach it using the same reference position.
    2) Original program has positions not recorded in a User Frame. Make (teach) a User Frame on the originator Robot. Use the Coordinate shift function under UTILITIES > Frame Offset. Convert the UF of the program to the newly created UF.
    All these actions are done on the orginator robot.
    Now go to the reciever robot. Teach the same User Frame in the same position in the list, copy your program, done.-

  • Did it with MENU SETUP COORD option i was told so. We used a calibration table to teach the frame. Seems that it worked, i am halfway through the sample and the seams look good. But thx for answering i want to try again the frame offset function, i feal i am still doing smt wrong there 🙏

Advertising from our partners