Posts by diglo

    Hey people,
    I know this is an old discussion, but I'm looking for some documentation on how to interface directly to CrossComm, on KRC4... (currently i'm using KUKAVARPROXY)

    Can you help me, Vyastrebov?


    you could declare a GLOBAL INT variable and initilize it in the DAT file, like


    and then each time you will do RUNTIME=RUMTIME+1, the value will be written in the DAT file and is non-volatile

    At the end of the day your dat file will look like:

    ciao ciao!

    Hello people!

    Has anyone ever worked with "extended" or "midsize" KRC4 cabinets?
    I was wondering if the extra space, when not used by KPP's or KSP's may be used to install DIN rails and mount some additiona stuff such as relays, contact blocks, 24V power supply, profibus I/O, etc...

    We usually adopt normal KRC4's and use an additional cabinet to install all our application-specific electronics.

    The option to have only one "big" cabinet wich cointains everything is interesting!

    (attached you will see KRC4 rack, normal, midsize and extended)

    Let me know!

    OPC package is not free...
    I have self-answered my question with this, using KUKAVARPROXY:…xy-native-vb-net-library/

    With KUKAVARPROXY you have ALL the system variables, $IN, $OUT and all your own GLOBAL variables to read/write.

    KUKAVARPROXY exposes the variables through a TCP socket but you cannot direcly move the robot, you should make a robot program which is always reading a POS variable, and you change the variable using kukavarproxy, but the connection latency won't make this realtime...

    Of course you can set velocity and acceleration in PTP movements, the only thing is you can't set a metric speed like m/s od gedg/s, only the percentage of maximum.
    PTP is a best-effort motion strategy which will move the TCP between points as fast as possible given the payload (mass and inertia)

    All values are in percentage of max.

    BAS(#VEL_PTP, 30)
    BAS(#ACC_PTP, 100)

    EDIT: BAS() instruction is available in KRC4, i don't know if it's present in KRC2 also. Using BAS() is easier than setting each sys variable...


    As far as i know, PTP movements do not allow to set exact speeds/accelerations.

    You are only able to exactly control the linear and rotational accelerations of the robot's TCP through the motion interpolation so you must use LIN, CIRC or SPLINE movements in conjuction with motion dynamics modifiers.
    You can't set the acceleratons in m/s^2 or deg/s^2 because the maximum value is dependent on the payload.

    Example, move 1000mm at 200mm/s with maximum acceleration possible.

    ;init movement and BCO run
    ;test movement
    LIN {x 0, y 0, z 0, a 0, b 0, c 0} c_dis
    BAS(#VEL_CP, 0.2)
    BAS(#ACC_cp, 100)
    LIN {x 0, y 1000, z 0, a 0, b 0, c 0} c_dis

    Motion dynamic modifiers:

    Set TCP linear velocity to 0.5 m/s
    BAS(#VEL_CP, 0.5)

    Set angular velocities for TCP rotation in degrees/s
    (I don't know exactly what 1 and 2 refer to, you have to experiment a little as i did)
    $VEL.ORI1= 90
    $VEL.ORI2= 70

    Set TCP linear acceleration in percentage of the maximum reachable in relation to the payload.
    You can't set the value in m/s^2
    BAS(#ACC_CP, 20)

    Set angular acceleration of TCP in percentage of maximum rechable.


    Ok so i must copy KUKAVARPROXY.exe on krc4 and start, correct?
    but KUKAVARPROXY.exe not create problem when robot running?

    Yes, KUKAVARPROXY has been long time tested by the robot community and seems not to have problems but it's supplied without any warranties.
    Don't forget to open port 7000 TCP on robot's firewal.


    Hello everyone!

    I've built a simple VB.NET native library to communicate with KUKAVARPROXY.
    It builds the TCP packet to make the read/write requests to KUKAVARPROXY.exe without using JOpenShowVar.
    Read/write time is around 7-8ms.

    KUKAVARPROXY.exe is included in the archive you are downloading, just unzip it and run it on the robot controller, you may also put it into the windows startup folder, to ,make it start when robot is tuned on.
    Also, modify KUKA firewall to allow port 7000 TCP.

    Attached you will find the visual studio 2012 project with a demo application

    UPDATE March 2020:

    - some bugs in the TCP communication corrected

    - have a look at for the KUKAVARPROXY program.


    K350 strenght, have a look at this video:

    External Content
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    $ACCU_STATE to monitor backup batteries
    $POS_ACT, $AXIS_ACT to get the current commandend cartesian/axes position
    $POS_ACT_MES to get the current measured cartesian position
    $POS_INT, $AXIS_INT to get the position at the last interrupt event
    $TORQUE_AXIS[1-6] to get the current motor torque

    inside custom.dat
    $CP_VEL_TYPE if set to #VAR_ALL will not trigger the over speed error near singularities

    then, i use this function to limit the torque of the axes



    to reset torque to default

    Hello everyone!

    I developed a vision application which is light enough to run directly onto the KRC4 to which an ethernet 3D camera is attached. (screenshot FIY)
    Currently, the output of the processing (a set of points) is written onto a text file in the /UserFiles directory, the file is then parsed by a robot program.

    What do you suggest to implement a robot <-> application communication?
    I'm currently working on an OPC class to add native OPC capability to my apps, but which are the other options? KUKAVARPROXY+JOpenShowVar?
    I don't really need realtime communcation...


Advertising from our partners