RobotStudio event

How to change signals simulated status

Options
Hello,

I would like to change the simulated status of a signal.
Is there a way to do that using PC SDK or FlexPendant SDK?
Maybe if it's not possible, there is a RAPID function to do that, so I can write a routine and call it with PC SDK or FlexPendant SDK.

Otherwise, I think I can use a workaround, for one signal, I use a second one which will be the "simulated status", and after I can use cross connection to combine these signals. But I have a lot of signals, and I need to have a high reactivity on signal value change. So this solution doesn't please me.

Thank you.

Comments

  • John Wiberg
    Options

    image

    Maybe I am a bit slow today (friday after lunch image) but I don't get why you want to do this? Could you explain again what it is that you want to accomplish with this?

     

  • Herve
    Options
    We use digital signals to drive some actuators. But sometimes, we want to replay some existing programs without using all actuators. The simplest way we find to do that is to disabled these actuators by setting the simulated status of the corresponding digital signals to true.

    Now, it's also friday after lunch for me too, I hope it's more comprehensible.



  • John Wiberg
    Options

    Unfortunately we can only GET the Simulated state using FPSDK. So we can only see IF it is simulated or not. But there is no way to SET the signal to Simulated.

    So RAB isn't your solution. image

     

    But what I've seen in RAPID programs for this type of issues is to have overloaded functions that takes an extra bool, bTest, and then having IF logic that ignores IO handling and similar when bTest=TRUE.
    It's a real pain to write like that but if you do then you could run test sessions as much as you like.
    But I wouldn't want to do that after the program is finished.image

  • Herve
    Options
    I also saw the Simulated GET property in FPSDK, but what a shame (sorry, my english is approximative, I hope it isn't too excessive image) that there isn't a SET property.

    Probably, we can use your solution, but as we use a lot of digital signals that we set using trigger instructions, I hope that this won't degrade the performance too much (we are already border line).

  • RussD
    Options

    If you change the ACCESS level of your signals to ALL (you might have to create such an ACCESS level first), then you can simulate di and do in auto from RSO without gaining needing to get write access. You cannot simulate signals that are the resultant of cross-connections.

    Note that in a production environment it is not safe or advisable to use the ALL access level, but for debugging it might be OK. Maybe this is why Set Simulation is not public functionality in RAB.

    Russell Drown
  • Herve
    Options
    Hy RussD,

    Thank you for your reply.

    I'm not sure to understand all your explanations. I'm not sure we have the same interpretation of "simulate". For me, it means that outside of the controller the digital signal is always at level 0 even if I put it to 1 inside the controller.

    My signals are Digital Output signals. I use them to drive my actuators. It's my RAPID programs which set and reset my DI. Sometimes I want to reuse an existing RAPID program, but not with all my actuators. So currently, I desactivate them by setting the simulated status of the DI to true. I do that in the IO menu of the FlexPendant. I want to develop a HMI to shortcut this action.
    I don't have to change the simulated status after starting the program, so I can be in manual mode to perform this action (even if I am interested to do this action also in auto mode).

  • RussD
    Options

    An HMI already exists in RobotStudio Online.

    1. Connect to your robot

    2. Select IOSystem

    3. Find the board and signals you want to simulate

    4. select a signal, right-click it, select simulate

    5. set the value to 0 or 1

    You can do this if the access level (a config. parameter of all I/O signals) of the signal is set to allow a remote client (RSO, PCSDK app, etc.) write access in manual and/or auto modes. The predefined access level ALL has these settings.

    If your signal has DEFAULT access level, you cannot do this because remote clients are not allowed write access under any circumstances. You can refer to the paremeter reference guide and RobotStudio Online help for more information.

    Russell Drown
  • Herve
    Options
    Ok, I agree with you.
    This method is right in our R&D lab, but we want to simplify the life of our customers (and ours by the way) who doesn't what to use RSO or to change the status of the signal one by one using FlexPendant. So, I want to create our own HMI using FPSDK or PCSDK.