SETE TL#()

  • Hi all,


    I found this in some job:


    REFP 1 C00000 BC00000

    GETS PX001 $PX011

    DIN B150 IG#(19)

    SETE P001 TL#(B150)

    '--------------------

    MOVJ P001 BP001 VJ=20.00

    DOUT OG#(104) 1

    '--------------------

    So this sets the tool for P001 to the current connected end effector's toolcode.

    I'm tryng to figure out what it does exactly.


    I tried to set it t to different tools and I would have expected to see some shift depending on the TCP, but they I can'see anything happening when I try to move t the same position with another tool...


    Anyone who knows why this is done?

    There are 2 rules for success:

    1. Never reveal everything you know,

  • The REFP was taught in pulse in some tool.


    The GETS is getting that pulse position and storing the position in P001 in whatever tool the REFP was taught in.


    The DIN is reading what tool number to use. Coming from a die plug, fixture plug, or plc?


    The next line is not written correctly. It is either a different instruction or more information is written with the SETE. Nevertheless, P001 is being set to the correct tool. Changing to a different tool number isn’t going to change the position. The REFP is in pulse and there aren’t any instructions to change it to XYZ. The different tool number could affect the path trajectory, interference areas, and more.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • The next line is not written correctly. It is either a different instruction or more information is written with the SETE

    That's what I was aiming at, since this is pretty much the entire job.


    I suppose this is more likely to do what I was thinking of?

    There are 2 rules for success:

    1. Never reveal everything you know,

  • ???


    Maybe the "author" wants to test or don't know that exist the SETTOOL and GETTOOL instructions.

    Maybe. Those instructions are part of the purchased PMT function.


    Back to the original:

    Code
    SETE P001 TL#(B150)

    This line looks incorrect. I have not seen the tool tag on the SETE instruction. The SETE writes either a constant value or the value in a D-variable into an element (piece) of a position variable. The way the instruction is written there is not an element number nor what/where the data is/coming from. Is this the correct instruction written in the job or is it something else?

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • Well, as you can see in this picture, it is an existing instruction...




    I also asked the system integrator why this is done.

    They said it's sole purpose is to assign the correct tool specific load values.

    There are 2 rules for success:

    1. Never reveal everything you know,

  • You write a code different from the one in the image:


    here you have SETE P001 TL#(FSU_actGripper) that for sure will be an ALIAS for an integer.

    Until you will pass a value that match a tool number will be ok.


    In your previous code you pass a B-VAR and I don't know the controller (only DX200 or newer can use the SETE Pxxx TL# option).


    In the previous post I believe that you are doing an attempt of using those lines to get rid of SETTOOL/GETOOL instructions (that yes, 95devils, is a pay option), but seems not.


    If you save that job you can see what is the variable linked to FSU_actGripper).

    Also I see that this controller has the FSU installed, so if I remember well every change of the tool dimensions will need a refresh of the FSU flash memory and in the end PMT Functions is incompatible wit FSU.

    Edited once, last by Motouser ().

  • I figured how to write that line. It's doing what I said up in post 2. Just setting the active tool based on the value of B150, going from OP post 1. Since it is in pulse changing the tool number does not change the position in P001 just the active tool.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • Also I see that this controller has the FSU installed, so if I remember well every change of the tool dimensions will need a refresh of the FSU flash memory and in the end PMT Functions is incompatible wit FSU.

    YRC1000 can have tool data changed without a reflash. The SETTOOL and GETTOOL can be used as long as the software is new enough, YAS2.50. The OP's code is not changing tool data just which tool is active.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • I started cleaning up the code here and there,

    I also used the alias function to improve readability because there are so many variables in the code.

    I moved the reading of the gripper code to system

    The SETTOOL and GETTOOL can be used as long as the software is new enough, YAS2.50

    I have a YAS3.02.00A, but I haven't found the SETTOOL or GETTOOL instruction anywhere.

    There are 2 rules for success:

    1. Never reveal everything you know,

  • GETTOOL and SETTOOL is still a purchased option. But it can be used on YRC with the FSU. On older generations GETTOOL and SETTOOL would not work with the FSU. The controller would have to be reflashed after the instruction SETTOOL was executed.


    On YRC YAS2.50 and newer a reflash is not necessary after the SETTOOL is executed.

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

Advertising from our partners