RobotStudio event

RAPID - Get tooldata by name [MOVED]

Options
apox
apox ✭✭
edited April 2014 in Robot Controller
Hi,

is there a way to get a tooldata object by its name?

var tooldata tool1 = ....
var tooldata tool2 = ....

var string name = "tool1";

var tooldata currentTool = STR_TO_TOOLDATA(name)


Any help would be appreciated,
ASC
Post edited by Jonathan Karlsson on

Comments

  • kioog
    kioog ✭✭
    edited April 2014
    Options

    Hello, you can use GetDataVal for this:

    here i made quick exemple :

        PERS tooldata tool1:=[TRUE,[[1,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
        PERS tooldata tool2:=[TRUE,[[2,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
        PERS tooldata currentTool:=[TRUE,[[1,0,0],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];

        PROC main()
            STR_TO_TOOLDATA currentTool,"tool1";
            waittime 3;
            STR_TO_TOOLDATA currentTool,"tool2";
            waittime 3;
        ENDPROC

        PROC STR_TO_TOOLDATA(inout tooldata tooldat,string toolname)
            VAR tooldata tooltemp;
            getdataval toolname,tooltemp;
            tooldat:=tooltemp;
        ENDPROC

    BR

    Peter

     

  • apox
    apox ✭✭
    Options
    Hi,

    thanks a lot, this is exactly what i was looking for.

    Regards,
    ASC
  • Micky
    Micky ✭✭✭
    Options

    Hi,

    you can also use the function ArgName to get the name of the tool.

    Example:

    VAR string stToolName;

    TASK PERS tooldata tGripper:=--

     

    TPwrite "Tool name: "+ArgName(tGripper);

     

    In case of you want to get or set the current tool, work object or loaddata you can also use the instructions GetSysData or SetSysData.

     

    Best regards

    Micky