Alternatives to RWS

Is there an alternative to RWS which can perform the same set of basic tasks (start/stop RAPID program, get/set robot targets, IOs, variables etc.), but is less expensive in terms of communication overhead?

PC SDK or any of the OPC servers can do these things. What is you problem with overhead? are the data transfers to slow?

@NilsOlofsson yes. Below is my benchmark of typical RWS requests to the robot:


Benchmark Time CPU Iterations

BM_getIoSignals 20.2 ms 1.62 ms 452
BM_getIoSignal 2.21 ms 0.199 ms 3546
BM_setIoSignal 2.07 ms 0.090 ms 7509
BM_getJointTarget 2.44 ms 0.286 ms 2668
BM_getRobTarget 2.73 ms 0.379 ms 1000

Things like getting/setting an IO or getting joint/TCP position take ~2-3ms. And getting all IO values takes 20ms, which is really a lot (and we don’t have lots of IOs).

Can you tell me more about PC SDK and OPC servers? What communication protocol do they use?

PC SDK as well as the OPC servers along with their manuals are available at https://developercenter.robotstudio.com/
PC SDK mainly uses the ROB API to communicate with the controller, but for some requests it will use the RWS API.
The ROB API uses TCP/IP.
The OPC servers are built using PC SDK