Posts by hiimtom

    I remember once I had to add some new programs to a robot that grabbed injection molded plastic chairs and placed them on an array of 6 shelves for the chairs to cool. Shelves didn't have any sensors to tell the PLC which locations were occupied, this was all tracked in the (locked) PLC program.

    A day of running in an out of the cell manually removing the hot chairs, resetting the sequence on the HMI, and trying to coordinate with the Injection Mold operator, definitely resulted in the robot placing the fresh chairs in the location of an existing chair - sending them flying into the fence..

    Another funny memory of that job, grabbing a (still warm) chair off the racking, and sitting on it while teaching some of the place points - after about 40s my knees are above my ears and my bum is on the ground, the warm chair had turned into a Salvador Dali clock ^^

    Probably best to use the KUKA Recovery USB to restore the windows image that you took before changing IP addresses.
    Can you see anything if you plug in an external monitor into the control PC?

    I would recommend reading through the "Operating and Programming Instructions for System Integrators" for your relevant KSS version.
    Section 6.18 Configuring Automatic External outlines the signals required for getting your robot moving via External Automatic.

    Should be able to find Manual in this forum, or from your local KUKA support :dance2:

    Check that ProConOS is running from the Diagnostics Monitor.
    Note that mxA versions < 3.0 require ProConOS to be installed on the robot controller via USB before mxA is installed via WoV.
    Make sure your I/O mapping as added to your project with the Controller Reset.

    Ah Ha! :applaus:
    I was opening it using the standard windows notepad that comes with OfficeLite (Win7).

    Opening with Notepad++ shows that krl_fwriteln only adds the unprintable "LF".
    If I open with standard notepad and add text on a new line, it adds "CR""LF'.

    Thanks for the tip to use krl_fputs! + view all characters in np++. That is very good to know..
    No 8.5 version on Xpert yet, but the 8.3 will be perfect for now. Thanks for all the help! :beerchug:

    Hi There! Does anyone have a manual for KSS 8.5 similar to: KSS_82_83_CREAD_CWRITE_en.pdf ??

    KSS 8.5.7 HF1

    It seems that the:

    CWRITE($FCT_CALL,STAT,MODE,"krl_fwriteln", HANDLE, logText[])

    command does not produce a new line..


    CWRITE($FCT_CALL,STAT,MODE,"krl_fwriteln", HANDLE, "hello"
    CWRITE($FCT_CALL,STAT,MODE,"krl_fwriteln", HANDLE, "world"

    will output the file in C:\KRC\ROBOTER\UserFiles\test.csv: helloworld

    From the KSS 8.3 manual for krl_fwriteln: "An end-of-line character is appended to the character string to be written."

    Thanks in advance!

    Thanks NoMad!

    I have also just found the following from the Sys Variables manual..



    Description: Wait time for shutdown of the robot controller
    The robot controller is shut down after the time set here.

    Type: INT; unit: s

      • 1 … 30,000

      • 0: The robot controller is shut down despite external power supply.

    Default: 3

    Hi All,

    My question is: How can I modify the "Power-off delay time" to a larger number. eg: 240s.
    KSS8.5 System integrator manual Section 4.6.1.

    I am currently on KRC4 KSS8.5 (KSS8.3 should be similar).
    I am looking at the 'Power-off delay time' (Under the Main Menu > Shutdown).
    I was able to run a program in EXT AUT, then switch the mains off for 3s, (causing Stop 0) then switch mains back on and restart my application using ConfMess, DrivesOn, ExtStart. (Emulating a recovery program with the use of a UPS).

    I have found a number of timeouts within C:\KRC\SERVICES\Powermanagement\PMService.config, however I thought I may ask before playing around with these parameters. Thanks!

    I do not believe this value is linked to any readable variable (PERI_RDY etc).
    The 'I' symbol can be green even if there is no power to the drives.

      • When you are in T1 and hold in dead man switch; the I turns green, but the brakes will only release once press a jog key.

      • When in operation, if the robot is stationary for >30s while waiting for an input etc.., the drives will switch off and the robot will close the brakes. The robot could theoretically be sitting in this state for hours/days while waiting for product. This timeout value can be modified somewhere i believe...

    I believe the Keyboard will only work on the HMI if plugged into the back of the SmartPAD.
    Otherwise, press the Pencil button on the Top left of the SmartPAD, this will bring up the onscreen keyboard.

    There is no such thing as a KR2150.. this is the name for your robot machine data file.
    The model name will be on a sticker on the rotating column of the robot.

    Hi Razzo!

    If I use a break when on an individual motion within a motion block, I am not able to approximate using moveAsync.

    This is the only issue I am having, the other information was just for background..
    HRC is installed and all other parts of the robot program are exactly how I want them.

    My only issue is trying to approximate motions while still monitoring for a collision..

    Cheers for the response!

    Hi There!

    I am working on commissioning an LBR iiwa to work collaboratively with humans.

    Collision detection via the HRC option is already active @ Max external torque: 20Nm.

    One part of the process is as follows:
    1. Robot is moving normally, operator taps the robot and the robot stops.
    2. The robot has stopped and holds its position under impedance control mode.
    3. The user 'taps' the robot again and it continues on its planned path.

    I have done this via wrapping motions in MotionContainers:

    condition = createCollisionCondition();	
                    IMotionContainer motion;
    		do { // motion started
    			motion = festoTool.move(ptp(myFrame).breakWhen(condition));
    			if (motion.hasFired(condition)){
    		} while (motion.getFiredBreakConditionInfo() != null); // motion finished

    The Collision condition:

    My problem is that this will only work for Single motions.
    I would like to be able to do this using Approximations motions or batch motions, however after the collision it always will return the beginning of the first motion in the block.

    Any ideas would be greatly appreciated! :help: