RobotStudio event

Screenmaker:Virtual FlexPendant Load error

Hi all,

This is my problem:


-I need to develop a pick and place program with an IRB4400 robot.

-The robot has three pallets to pick parts from. Each pallet can contain 40 parts.

-When a pallet has been emptied and has been replaced by a new (full one), the worker needs to push on a button (a different button for each pallet), so that the robot is made aware that a new full pallet has been inserted in the cell.

-I cannot know when the worker will push a button; it can happen anywhere in the cycle. As my robot will not have the multi-task option, there's no background task where the inputs from the buttons can be continuously scanned. I will certainly miss the moment when they are pushed, if I try to check the inputs in my main task.

-So I thought about using the screenmaker. I will develop a screen where people can reset the pallets, instead of using physical buttons. I mean a virtual button will activate a bool variable, which will then reset the pallets.

-My whole cell (programs, CAD drawings, paths, workobjects and points,...) has already been developed with a virtual controller in RobotStudio. The real robot is not available yet. I don't have it here in the workshop. I have to program everything in the VC in the first place.


-When I try to deploy a screenmaker project on the virtual controller, I always get this fault message: "FlexPendant Startup Problem".

-I have seen in some posts that I need to add some options to the virtual controller for this to work, but I do not know which options and how to add them to my existing vitual controller. I don't want to create a new controller because I'm already far in developing my current cell. I want to add the options to my current work. Would you have a detailed explanation about how to do that?


By the way, when I try to create a new virtual controller (something I try to avoid) , RS asks me for some "Controller key", and I have absolutely no idea about where I can find this key.


Thanks a lot for your help.





  • Hello Philippe,
    When creating a virtual controller system using System Builder,
    the virtual key checkbox can be selected instead of browsing for the real controller key.
    The following post would also give you some information -
    Then from the Options dialog you could select the FlexPendant Interface option and PC Interface Option. Inoder to see the screen on FlexPendant, FlexPendant Interface option is required.
    Hope this helps.

  • Hello Abhishek PM,

    Thanks a lot, it helps a lot.

    I have tried your method and have found the virtual key checkbox.


    But is there a way to add the FlexPendant Interface option to an existing virtual controller? Or is it possible, for a given station, to easily change the virtual controller from a vc without the option to a new vc with the option?


    I have created a new vc, with the FlexPendant Interface option. But the problem is that my station is already ready (design, points, paths, wobjects, tools, programs,...) with another controller that doesn't have the option. Is there a way, for my station, to migrate from the old controller (no option) to the new controller (with the option), without losing everything that I have already programmed?


    Thanks again for your help.



  • Hello Philippe,
     The existing system can be modified from System Builder as shown in the screenshot below
    You could also refer to the following chapter in RobotStudio Manual
    Working Online --> System Builder --> Modify System

  • Hello Abishek,

    Thanks again for your reply. It helped me a lot.

    I found the "modify" button. I realised taht there was no acces to the "modify" button when the virtual controller was running. I had to stop the vc, and then the "modify" button is accessible. I then added the 2 options to my current vc.


    Now, this is the situation:








    But I still get this error:





    It is not working. What do I do wrong? I have to mention that I have restarted the virtual controller after adding the options.


    Another question, on a real controller, is it still possible to order the two options and add them by updating the firmware?


    Thanks for your help!



  • Hello Philippe <?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    The robot is able to listen to an input signal at any time by using a trap routine. This could be something like the following. You have to connect the event start and restart to the event-routine: rEventStart. This is necessary because when you stop the program, the interrupt is not active any more. Even during movement of the robot the trap routine will be executed without stopping the robot.

    PROC rEventStart()

      ! start event

      ! press button

      IDelete irButton1;

      CONNECT irButton1

      WITH trButton1;

      ISignalDI diButton1,1,irButton1;




    TRAP trButton1

      ! press button




    Best regards

  • Hello Marcel,

    Thanks for your message!


    In my programme architecture, I have a main module where I sequentially call several procedures, which are located in other modules. Some of these procedures already use trap routines.


    For example, in my main module, I call a procedure named "ScanPallet". "ScanPallet" is located in another module named "LaserModule". When "ScanPallet" is called, my robot moves and uses a laser sensor to detect the edges of a product, in order to find the exact location of this product.


    The laser threshold is connected to a digital input. This digital input is connected to a trap routine (located in "LaserModule") and, when the edge of the product is detected, the robot stops moving, and the position of the part in the workobject is stored in a robot "pers" variable.


    The digital buttons (described in my first message) needed for resetting the pallets states can be pressed at any time, even during the laser scan. This would then mean that I would have to use a trap routine in my "main module" for detecting the buttons, and, at the same time, a trap routine in the module "LaserModule" for detecting the product edges with the laser sensor.

    Do you think this will work, or will the two trap routines interfere with each other?


    I wanted to use the Screenmaker in order to avoid this "potential interference" of 2 trap routines. But I would prefer to use a trap routine if possible.


    Thanks again for your help.


  • Hello Philippe

    It is possible to use different interrupts at the same time and I didn't see any interference even with 10 interrupts active at the same time.


    The laser could be connected to a SearchL instruction, that does the same as you would like to do.


    Best regards


  • Thank you Marcel!


    I think you have solved all my problems. I was not aware about the existence of SearchL. You gave me two interesting informations at the same time. Thanks a lot!


  • Hello all!

    Is it possible that everything that you wrote till now it`s not working on a DEMO version of Robot Studio?

    Because I made several times as you sad and it`s not working. I can`t see in the System info FlexPandent Interface would be added to my system.

    What do you think?

    Regards Szily
  • Where can I get the demo version?