KUKA iiQKA.OS2 VRC (Pro)
Live coupling to a KUKA iiQKA.OS2 Virtual Robot Controller (VRC) via the Robot Sensor Interface (RSI) for virtual commissioning
The KUKA iiQKA.OS2 VRC Interface couples realvirtual live to a KUKA iiQKA.OS2 Virtual Robot Controller (VRC) over the Robot Sensor Interface (RSI). The VRC runs the real robot code (real axis interpolation, real cycle times); realvirtual visualizes the robot axes, checks collisions and exchanges digital/analog I/O with the controller. This enables robot-in-the-loop virtual commissioning without physical hardware.
Beta Notice: This interface is in beta. It is validated against a software loopback and built strictly to the documented RSI specification, but has not yet been field-validated against every iiQKA.OS2 configuration. Test on the real controller first with a reduced speed override, and please get in direct contact with us for support or feedback.
Not the same as the KUKA (Y200) interface. That one targets KUKA OfficeLite via the Y200/OC_Assistant protocol. This interface targets the newer iiQKA.OS2 generation via RSI.
Overview
iiQKA.OS2 ships with a full Virtual Robot Controller that runs standalone on a PC. This interface connects to that VRC over RSI Ethernet (XML over UDP) and:
Receives robot axis positions (A1–A6 and beyond) each RSI cycle and drives the linked robot joints
Exchanges digital and analog I/O in both directions, so realvirtual can set inputs on the controller (simulated sensor states as robot inputs)
The interface is built on the realvirtual FastInterface standard and drives the robot exactly like every other robot interface in realvirtual: it writes each axis value to the linked Drive's current position.

Scope: what this interface does and does not do
Virtual commissioning with a robot involves three layers. This interface covers two of them; the third stays with your PLC.
1. Axes
Joint positions for visualization
This interface (RSI)
2. Robot I/O
Digital/analog signals both ways (e.g. set robot inputs)
This interface (RSI)
3. Sequencing
Program select/start, drives on, mode, program number
Your PLC (Automatic External / fieldbus)
Important limitation (RSI): RSI I/O is bound to an active RSI context, so it only works while an RSI motion is running. For reliable I/O the KRL carrier program must keep a continuous RSI context (the robot effectively always runs with RSI active). If the robot must wait at standstill for a realvirtual signal before it starts moving, RSI cannot set that signal — that case is covered by a future EthernetKRL (EKI) channel and is not part of this beta.
Properties
Axis Configuration
Axis (list of Drive) holds the robot joint drives in order (Axis 1 first). Each RSI axis value received from the controller is written to the corresponding Drive's current position. Drag your robot's joint drives here in the correct order. The number of axes is taken from the list, so 6-axis robots, 7-axis robots and external axes are all supported.
I/O Configuration
Digital Channels (integer) sets how many digital I/O bits are exchanged with the controller (ST_DIGIN / ST_DIGOUT). Click Create IO Signals after changing this to (re)generate the signal objects.
Analog Channels (integer) sets how many analog values are exchanged in each direction.
Connection
Listen IP (string) is the local IP address the RSI UDP socket binds to. Use 0.0.0.0 to listen on all network interfaces, or a specific adapter IP to bind to one network.
Rsi Port (integer) is the UDP port the controller sends its RSI packets to. Default is 49152. This must match the port configured in the controller's RSI Ethernet configuration.
RSI Configuration
Cycle Ms (integer) is the expected RSI cycle time in milliseconds (default 4, i.e. 250 Hz). It must be smaller than the controller's RSI send cycle so the reply is always ready in time.
Axis Pos Tag (string) is the XML tag name carrying the actual axis positions in your RSI configuration (default AIPos). It must match the tag defined in your .rsix / RSI Ethernet config.
Receive Timeout Ms (integer) is the per-cycle receive timeout. A missed packet counts as a timeout toward the reconnect logic.
Reconnect
Max Consecutive Timeouts (integer) is how many consecutive missed RSI cycles are tolerated before the connection is considered lost and reconnection is triggered.
Configuration (FastInterface)
Update Cycle Ms (integer) is the communication loop interval. Only Transmit Changed Inputs (boolean) reduces traffic by sending only changed values. Auto Reconnect (boolean) re-establishes the connection automatically after a drop. Reconnect Interval Seconds (integer) is the wait between attempts. Max Reconnect Attempts (integer, -1 = unlimited) caps the attempts. Debug Mode (boolean) logs detailed communication activity for troubleshooting.
Status (Read-Only)
State shows the connection status (Disconnected, Connecting, Connected, Error). Current Axis Deg lists the live axis values in degrees. VRC Cycle Count and Last Cycle Ms report throughput and the duration of the last cycle. Reconnect Attempt Count, Input/Output Signals, Comm Cycle Ms and Cycle Count provide further diagnostics.
Signal Structure
Click Create IO Signals to generate the I/O signal objects as children of the interface. With 8 digital and 2 analog channels the hierarchy looks like this:

DigOut0 … DigOutN
PLCOutputBool
controller → realvirtual
ST_DIGOUT bits
DigIn0 … DigInN
PLCInputBool
realvirtual → controller
ST_DIGIN bits (set robot inputs)
AnaOut0 … AnaOutN
PLCOutputFloat
controller → realvirtual
analog out
AnaIn0 … AnaInN
PLCInputFloat
realvirtual → controller
analog in
The robot axes are not signals here — they are written directly to the Drives referenced in the Axis list.
Quick Start
Add the component to an empty GameObject (
realvirtual/Interfaces/KUKA iiQKA.OS2 (VRC, RSI)).Link the axes: drag your robot's joint Drives into the Axis list in order (Axis 1 first).
Set the channels (Digital/Analog) and click Create IO Signals.
Configure the connection: set Listen IP and Rsi Port to match your controller's RSI Ethernet config; set Cycle Ms and Axis Pos Tag to match the
.rsix.On the controller: install the RSI option package, deploy the RSI configuration (
.rsix+ Ethernet config), and run a KRL carrier program that keeps a continuous RSI context.Enable the interface (Active) and check that State turns to Connected and Current Axis Deg updates.
Wire the I/O to your plant simulation (link
DigIn*/AnaIn*to simulated sensors so realvirtual sets the robot inputs; readDigOut*/AnaOut*to react to robot outputs).
Requirements
A KUKA iiQKA.OS2 Virtual Robot Controller (runs standalone on a PC).
The iiQKA.RobotSensorInterface (RSI) option package on the controller (separate KUKA option, not part of the free base).
iiQWorks.Sim Basic (free) for configuring and deploying the RSI configuration.
Sequencing (program start, drives on, program number) is driven by your PLC via Automatic External — not by this interface.
See Also
KUKA (Y200) – KUKA OfficeLite interface via Y200 (different generation)
Drive – the joint drives linked in the Axis list
Signal Manager – managing interface signals
Custom Interfaces – building interfaces on the FastInterface standard
Last updated