RobotStudio event

OPC or RAB????

Options
Hi Users.
 

I a application were i use kepware to comunicate with both an AB plc and a siemens S7.

My MHI cotrolls all tags though the kepware server. I also have a multimove system and from my HMI i use RAB to monitor IO and Download recipe data to Num in my rapid program.

 

I am thinking of using opc to the robots and not rab. It seems that my application runs better when my addhandler to my IO monitor is disbled.

When i only monitor from my kepware iruns faster.

 

Is it faster to use OPC than the direct way in RAB?

 

BR klaus
Best Regards

Klaus Soenderhegn
www.cadalysator.dk

Comments

  • RussD
    Options

    Your question is difficult to answer with yes or no, but here is some information that might help clarify the situation.

    1. The IRC5 OPC Server is a RobAPI client of the robot, just like your RAB application. In other words, IRC5 OPC server and your app are using the same communications infrastructure to access I/O and data. The OPC server might use some private interfaces to communicate with the robot that you can't use from RAB, but it still is basically the same mechanism.

     

    2. It is difficult to see how there would be much performance difference between OPC Server I/O subscriptions and RAB I/O subscriptions, as they would both use the SignalChanged event (or some variation) to receive change notifications from the controller. In other words, as long as your RAB application is not polling your I/O, it works the same way as the OPC Server.

     

    Is there more than one PC in your configuration, i.e. does the RAB application run on a separate PC than the KepWare PC? Does the KepWare PC have the IRC5 OPC installed on it?

     

    One issue that may affect performance is the number of client connections that the robot has to support. If you have more than one physical (or virtual) PC connecting to the robot, the robot must maintain two or more separate client connections, which requires additional controller overhead.

     

    If you are running a multimove cell, which itself requires a lot of controller resources, the performance of RobAPI applications in general may be less than ideal, as higher priority services in the controller, e.g. motion control, will take precedence over communications and may cause some latency.

     

    Finally, what is your RAB application doing with SignalChange event notifications vs. what the Kepware PC is doing with them? It is possible that the perfomance difference lies in your updating mechanism, i.e. if you invoke the SignalChange event back top the MainGUI thread.

     

    It is possible that the OPC Sever does not have to do this cross-thread invocation, or at least it does not have to update a UI like your RAB application does. It offloads that responsibility to the OPC client, which may update itself more efficiently than your RAB application. There may be ways of optimizing the RAB application to improve the UI performance, but that is a more general Windows programming topic.

     

    If all you need to do is monitor I/O and send RAPID data to the controller, then you may well be better off using only the IRC5 OPC Server, instead of developing a RAB application, especially if you can use an off-the-shelf OPC client as the user interface. The benefit of RAB is that there is a far more complete set of functionality than is available via OPC, so it is possible to develop robot-based cell control applications.
    RussD2009-02-08 18:31:25
    Russell Drown