Same position with multiple TCP

  • Hey guys,


    I have a position in my fanuc program I am looking to go to with multiple UTs. I have multiple clip install fingers and I want to use the same positions but just go to them with a different UT (clip driver). This way if I touchup 1 position it will adjust for the 7 other fingers (UTs). So I wouldnt need 8 different positions for the same physical position on the part. Is this possible?


    Thanks,

  • If I am understanding your question correctly you should be able to simply use the same position number. So, for example if that position was P[8] then later one when you want to bring it to the same position just set the position number to 8 as well. In the future if you touch up one of those P[8]s it will ask if you want to give it a new number or edit all calls of that position. That way you can edit all instances of that position at once.

  • EPeters1 is almost correct. While his method would work if you change a system variable, by default, P[x] points are stored with a User and Tool frame. If you try to move to them with the wrong frames selected, you will get an fault (frame type mismatch). There is a system variable to skip the frame type check, but it is advisable to keep it set to its default value.


    Instead of using P[x] points, you would use Position Registers PR[x]. Position Registers are not stored with a user or tool frame. They are also global, i.e. they can be accessed from any program, not just the program they were created in. Also, each element of a position register is addressable, meaning you can modify any of the XYZWPR individually.


    In theory, this plan will work to only use one taught position register, but it will only work if your individual tool frames are taught accurately enough to deal with any non-compliance that your fixture may have.


    Looks like hermann beat me to it while I was typing :grinning_squinting_face:

  • Alternately, you could use P[x] points, stay in a single tool frame, and programmatically change the value of your tool frame. (Bad pseudocode example follows)


  • Just one thing.


    Be extra careful to save the PR[] as "Joint representation"


    you can save the PR[]s as joint or cartesian coordinates.


    If you use the joint option, the robot will go to the axis positions recorded ignoring tools and frames.

    If you use the cartesian option, the robot will go to wherever the frame + tool marks as "the correct coordinates"


    I don't know if I'm explaining myself in this, but the important thing is:


    If you want to use a PR[] with different tools, but mantaining the same physical position, be sure to use the "Represent as Joint".

    "Hell...Yesterday it was workinG... I sweaR" :o)

  • So,

    This is a good solution and I believe says it all.


    Save the position as a PR and be sure each tool is accurate for what you intend to do.

    You sould have no issues.

  • So,

    This is a good solution and I believe says it all.


    Save the position as a PR and be sure each tool is accurate for what you intend to do.

    You sould have no issues.

    Trust me, the joint vs cart represent is one of the most important things here.


    I saw how a gripper crashed against a pillar due to this config.

    "Hell...Yesterday it was workinG... I sweaR" :o)

  • Trust me, the joint vs cart represent is one of the most important things here.


    I saw how a gripper crashed against a pillar due to this config.

    Oh, yes, absolutely. I'm just saying that this is the method I would use.


    He should check the pr has joint coordinates.


    Anyway, what he intends to do is run the same point with different UTool. Therefore, if the PR is saved as joint coordinates the robot would always move to the same position.

  • Anyway, what he intends to do is run the same point with different UTool. Therefore, if the PR is saved as joint coordinates the robot would always move to the same position.

    Not necessarily. It depends on what they want to accomplish. Imagine a robot doing a drilling application, with two different drills on the EOAT, each one a separate TCP. And the process is to drill a hole with the first drill (maybe it has a narrower cutter), then the second drill (larger cutter, or a countersinking cutter).


    In that case, moving to the same Cartesian PR with two different UTools is what the programmer might want, instead of using a Joint PR. It's all application dependent.

Advertising from our partners