Posts by nhfMinion

    I should have mentioned that I want to abort the BG logic so that I can overwrite the program.

    The solution you suggested would allow me to essentially stop the execution of the program via a flag. But the BG Logic status would still be 'running'. If I try to overwrite the program via FTP, I get an error stating that the 'the specific program is in use'.

    I know that you can run and stop BG Logic by going to MENU->SYSTEM->BG Logic and pressing the Stop soft key for the programs.

    I was wondering if there is a Karel operation (similar to ABORT_TASK) that can stop the BG Logic?

    I use the following code to get the current position in the current user and tool frames:

    currentPos = CURPOS(0,0)

    I suppose you can do the following to get the position in some particular frames (in this case UF3 and TF3):

    $GROUP[1].$UTOOL = $MNUTOOL[1,3]
    $GROUP[1].$UFRAME = $MNUFRAME[1,3]
    currentPos = CURPOS(0,0)

    If you want to convert the point to world frame, you can do the following:

    currentFrame = $MNUFRAME[1,$MNUFRAMENUM[1]]
    currentPos = CURPOS(0,0)
    worldPos = currentFrame : currentPos

    I was wondering if there is a way to check what pipe files exist on a given robot (essentially get all contents of the PIP: directory).

    I am currently able to check do the following to read pipe files from our R30-iB robot by entering the following into a web browser: http:/

    I get a 404 error if I try to use http:/

    Furthermore, I can access other directories via FTP via the following on command prompt:



    cd ..

    dir md:

    If I replace the md: directory with pip: , it says 'Invalid device or path name' error.

    The system variable "$EADER_FRM " you are are using doesn't seem to be a standard system variable, could you show the path you are taking to get to your screen?

    Below is an example of how you can use the SET_VAR instruction in a Karel Routine (note: the parameter name might not be correct):


    --Translation Directive to work with system variables

    %ENVIRONMENT sysdef

    --Variable Definitions


    status: INTEGER


    parameter: STRING[40]

    value: REAL

    --Program Logic


    parameter = '$EADER_FRM[1].$X'

    value = 563.000

    SET_VAR(tempInteger, '*SYSTEM*',parameter, value,status)


    Is there a system variable that can show the current alarm, or if a specific error code has occurred?

    For instance, if I want to create a karel program if the error 'SRVO-105' occurs, can I do something like this?:

    !11105 = SRVO-105 (11 is the facility code for SRVO)

    IF ($System_Variable = '11105'), CALL KAREL_PRG

    Hey Guys,

    We resolved this a while ago actually. I figure I should put the solution that worked for us:

    1) We got a brand new USB drive, and reformatted it to FAT32 from a PC

    2) We put in the AutoUpdate contents onto this USB

    3) We restored a previous image backup on the robot to get it back to V8.30/P17

    4) Then we simply performed the normal Auto-Update stuffs I mentioned above

    It seems like there is an issue with using USBs that were used for other purposes (as mentioned above).

    I think just using a brand new USB and reformatting it prior to usage did the trick for us.

    I was trying to perform an auto-update on two of our robots from V8.30/P17 to V8.30/P63. This was done to install a newer software option (R739) on the robots.

    One of the robots updated versions without issue, but the other robot froze with a grey screen that only says ''UD1: ¥plp¥M332896.COM Opening".

    I did the following to perform the auto-update:

    1) Downloaded V8.30/P63 from the Fanuc Crc Website.

    2) Extracted the files and put them onto a USB (formatted as FAT32)

    3) Ran the ap.verify batch script to confirm the auto-update contents was in-tact

    4) Inserted the Auto-Update USB into R30iB Controller's UD1: port

    5) On the teach pendant, I went to Menu->File->UTIL->Set Device, and chose UD1:

    6) Then, I pressed NEXT and INSTAL->Auto Update.

    The auto-update process started up correctly, but after about 10-30 minutes it ends up freezing with the aforementioned message.

    I can get the robot back to a working state by restoring an image backup. However, the same issue occurs if I try to perform the update again.

    Has anyone faced this issue before?

    The ':' operator worked. Thanks for the insight!

    Below is the Karel code that allows me to convert a position between any pair of user frames:

    I want to convert an XYZWPR position from the world frame to a specific user frame programmatically (so via a Karel/TP program instead of menu utility).

    I am able to successfully convert the XYZ values from the world frame to a specific user frame by computing the below equation:

    x', y', z' = New coordinate values

    x, y, z = Old coordinate values

    Xt, Yt, Zt, W, P, R = User Frame values

    However, it seems that the point's orientation values are not as easy to convert. For instance, if I apply a user frame with a W offset, it also changes a point's P and R values.

    I was wondering if anyone has insight into how to calculate the WPR values of a point based on a user frame.