Posts by Eric Labs LLC

    You will want to look at the FRCPrograms, FRCProgram, FRCTasks and FRCTasks objects within the FRCRobot object. These will allow you to run, pause and abort tasks directly. You will need a reference in your project to "FANUC Robotics Controller Interface".

    PCDK comes with good examples of how to use these objects. Look for it in the folder where PCDK was installed. I think they are in VB6, but should get you started.

    Below is a snippet of old (VB6) code that I used to start a task. I cleaned it up and consolidated some stuff to post here so I cannot guarantee it works as posted, but it gives an example of some of the prerequisites to starting a task.

    The polarity sets how a physical input is represented in the controller logic.

    For example, if you have a physical input that is ON entering the controller:

    When the polarity is set to NORMAL, the input will show ON in the controller logic.
    If the polarity for that same input is set to INVERSE, the controller logic would show OFF.

    The same would apply to outputs, but the polarity would affect the physical state of the output.

    I assume you are using the Karel to loop and interact with actions on the web page, if this is the case then here are some pointers. If it's just a one time run, some of the following info will still apply, but not all of it.

    Don't use more than one execution control. Make sure the control is located on the initial visible region when the page loads. The Karel will only run as long as the page with the execution control is in use (on any TP panel). Once you navigate away from the page the Karel will stop. The Karel should be a non-motion program. The first part of your Karel program might look like this...

    PROGRAM hohoho

    %COMMENT = 'STM BG Test'

    CONST ...

    I think in this case, Fctn+Abort will still abort the Karel, but it will restart if the page is refreshed (F4) or if the page is reopened.

    Hope this helps...

    Make sure there is not a bad I/O configuration in your Group Inputs and Group Outputs. Sometimes these get configured and then later removed or reconfigured and perhaps someone made a mistake in there.

    For your "$PWR_NORMAL not run" alarm, check that the cold start program is set to run a valid program. You can do this by: MENU > 0 > 6 (SYSTEM) > F1 [TYPE] > 5 (Config) and see that the entry for "COLD START Autoexec program:" is properly set. It should point to a valid Karel, TP or CM file. If you aren't using it you can clear it out. If you have an older controller, the screen I mentioned might not exist, then you will need to examine the system variable $PWR_NORMAL for a valid program. Clear it if you aren't using it.

    If the fixes above don't work and you'd just like to suppress the errors, you can use the Error Table to keep them from being posted to the alarm log. You can access the Error Table screen by MENU > 6 (SETUP) > F1 [TYPE] > Error Table. From that screen you can enter the Facility Code and Error Code (there's normally some trial and error here to figure out the proper codes) for the error you want to suppress. The FCode for TPIF is 9 and in your case the ECode would be 98. Then set the Erlog for that code to "NODISP". This will prevent it from going to the alarm log, however if you are sending the alarms to a PLC or PC through Error Output or PCIF Alarms, I don't think it will suppress those. If you are using those, you might need to test this.

    Hope this helps.

    If you're looking for a look-up table that will give the Error Table's FCode without trial and error, you can download ERBU from and then from it's Help menu go to FANUC > Error Table Codes.

    I just made a test Karel program because it seemed like what you wrote should have worked. My test program below works compiled on v7.40-1. Maybe you'll see some difference that will help you. Make sure you are looking at the Karel Posns and not Karel Vars.

    PROGRAM putool
    %COMMENT = 'UTOOLility'

    ttt : XYZWPR

    -- Main Program Logic


    $UFRAME = $MNUFRAME[1,1]
    ttt = $UFRAME

    END putool

    You can try a program I wrote that has a graphical user interface and is easy to configure the types of file you want to grab. There is a demo that you can try that will allow you to use it on a single project with one robot. The full version is unlimited in projects and robots.

    You can get it here:

    You can configure it to do auto backups too (which is done through task scheduler).

    There are many features besides just backing up. Check it out...

    Hope this helps someone out.

    Eric Labs LLC

    I have written a program that will do this. You can download it at The free demo version will allow you to test it on one project with one robot.

    In the demo mode, it's semi automatic since you will still need to respond to the registration nag screen, but it should demonstrate its abilities.

    If you try it, you will want to delete all the example projects and robots and add just one project and the robot you want to test it on.

    Then right click the project for the properties and click the auto backup link. It will add a auto backup to the Windows Task Scheduler where you can customize the time and frequency.

    The manual that comes with the software will give better details.

    Hope this helps,
    Eric Labs LLC

Advertising from our partners