How to quickly/conveniently update a points coordinate inside a DAT file

  • Hi,


    If I don't use inline forms in my SRC file and all my points are defined in a global DAT file, how can I conveniently update the coordinates?

    MY SRC File:

    ...

    PTP Point1

    LIN Point2

    PTP Point3

    PTP Point4

    ...


    So far I have just:

    • Move the robot to the desired position, using the right tool and the right base coordinate system
    • On the HMI look at "Display > Actual position"
    • Manually write these positions to the Global DAT file


    Is there a better way?

  • You could create all your points in Excel, and export them as a list that could be easily copy&pasted into the .DAT file, or even generate the entire .DAT file and import it into the robot.


    If your robot has a version of KSS that supports reading/writing ASCII files, you could create a KRL program that "reads in" the data from a local, or even network, file.


    Of course, the risks of any of these approaches should be obvious: it's going to be really easy to wreck the robot with a simple typo. At minimum, any "fresh load" of points should be hand-tested in T1 before being trusted to run in auto.

  • if you need to accomplish same thing as touchup functionality without using inline form instructions or ExpertTech, you can use Single Variable Monitor.

    but rather than entering values for each element (up to 12 if E6POS or E6AXIS) just assign current robot position to point of choice.

    if the point is declared as one of AXIS types just say the new value is $AXIS_ACT

    and if it is Cartesian, just say tat new value is $POS_ACT.


    like with using ExpertTech, YOU need to make sure that correct tool and base are selected.


    And this is one of the key advantages of using Inline Form Instructions ... they don't care what tool or base you have selected,

    They will still use tool and base that is associated with that point - every time.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Hi,


    I wanted to test the Single Variable Monitor method.

    • I wrote the name of my point to the "NAME:" area... pressed "update" and it showed the coordinate values.
    • I wrote "$AXIS_POS" in the "NEW VALUE:" area... pressed "Set Value" but got the error "Object is not available"


    I was wondering why $AXIS_POS is not available... but... it should be $POS_ACT ... and then it worked.

    The method is much, much faster than doing it manually. Thank you panicmode!


    Sidequestion...

    Is there a way to limit the decimal places of "$POS_ACT" ... X 595.886108 seems a bit exessive... I used one decimal place for my manual coordinates and things looked a lot cleaner... X 595.9 is good enough for me. I don't need to know the last nanometer.

    Edited once, last by Koppel ().

  • Is there a way to limit the decimal places of "$POS_ACT"...

    No, where is the problem? You don't have to type all the decimals. It's only a visual 'problem'.

    Even if you use only 2 decimals while typing the value in the variable monitor it is possible that the stored value will have more decimals. That is because the reals are stored in binary but not decimal encoding.

  • Quote

    I wrote "$AXIS_POS" in the "NEW VALUE:" area... pressed "Set Value" but got the error "Object is not available"


    the object that is unavailable is your variable. it is either wrong name or not visible due to its scope.



    you can type $AXIS_ACT and it is always there

    you can type $POS_ACT and it is not always there - Cartesian positions are only available when both tool and base are known (selected).

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • ....if the point is declared as one of AXIS types just say the new value is $AXIS_ACT

    and if it is Cartesian, just say tat new value is $AXIS_POS.

    You said $AXIS_POS ... and that was not available... I guess it was a typo on your behalf and you meant to say $POS_ACT


    My variable was always available and I got the same results as on the images.

    How do you not get the external axis coordinates when transfer $POS_ACT values to your POS_PT3.


    Is it because your point was declared as POS and not E6POS.

    I think I got the external axis values (E1 0.0, E2 0.0 ....) on both cases. I might remember incorrectly though.

    The question about the digits was purely visual. I could just glance over my point coordinates and get an idea where they are. If things are displayed on multiple rows with six decimal places, it gets visually overloaded and difficult.


    I think the method "panic mode" shared is fantastic and straight to the point. Exactly what I hoped for. Thank you!

  • yes sorry for typo, it is corrected now. but this is something everyone should be able to lookup, it is in a key manuals listed in READ FIRST.

    there are three versions of each position data, depending on how many external axes you need to manage (none, up to 3, up to 6):

    AXIS, E3AXIS, E6AXIS

    POS, E3POS, E6POS


    the POS variants are derivatives of FRAME. FRAME is perfectly fine to specify point in space and orientation but it does not tell how robot pose would look like so it is not unique. this is why Status and Turn are added... then external axes...

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Koppel

    can you give an example of how and why updating your coordinates?


    Do you want to do this only once in a while, or more frequently?


    If this is quite often I would use either a windows program doing it (could be excel as mentioned by Skyfire, using a python script or a real nice fancy net application).


    By doing it manually I would expect problems (missing one digit, using ',' instead of '.') and thus maybe your robot is trying to kill itself (KUKA is happy to sell a new one)

  • Koppel

    can you give an example of how and why updating your coordinates?

    Do you want to do this only once in a while, or more frequently?

    We are building a duplicate of a machine and need to go over the positions inside nests for the new machine.
    Ideally this points adjustment would be required just once but in practice the the very best position is determined by running the machine for a while and doing small adjustmets here and there.

Advertising from our partners