KUKA TCP/IP interface for communication with KUKA robot controllers. More...
Public Member Functions | |
| void | CreateStandardSignals () |
| Creates standard robot signals organized in subfolders. | |
| void | CreateDigitalInputs (int count=100) |
| Creates digital input signals using FastInterface helper methods. | |
| void | CreateDigitalOutputs (int count=100) |
| Creates digital output signals using FastInterface helper methods. | |
Public Member Functions inherited from realvirtual.FastInterfaceBase | |
| override void | OpenInterface () |
| Opens the interface and starts communication thread. | |
| override void | CloseInterface () |
| Closes the interface and stops communication thread. | |
| virtual void | PreFixedUpdate () |
| Processes PLC outputs before FixedUpdate - applies data FROM PLC TO Unity objects IMPLEMENTS IPreFixedUpdate::PreFixedUpdate. | |
| virtual void | PostFixedUpdate () |
| Processes PLC inputs after FixedUpdate - reads data FROM Unity objects TO send to PLC IMPLEMENTS IPostFixedUpdate::PostFixedUpdate. | |
| void | SetManualPhysicsMode (bool enabled) |
| Enables or disables manual physics control mode. | |
| void | StepPhysics (float timestep=0f) |
| Steps physics simulation forward by a specified time duration. | |
| override void | PostAllScenesLoaded () |
| Override PostAllScenesLoaded to prevent base class from opening interface too early. | |
| void | OnInterfaceEnable () |
| Called by realvirtualController after all scenes are loaded to enable the interface. | |
Public Member Functions inherited from realvirtual.InterfaceBaseClass | |
| void | UpdateInterfaceSignals (ref int inputs, ref int outputs) |
| Creates a new List of InterfaceSignals based on the Components under this Interface GameObject. | |
| Signal | CreateSignalObject (string name, SIGNALTYPE type, SIGNALDIRECTION direction) |
| Create a signal object as sub gameobject. | |
| Signal | AddSignal (InterfaceSignal interfacesignal) |
| void | RemoveSignal (InterfaceSignal interfacesignal) |
| virtual GameObject | GetSignal (string name) |
| Gets a signal with a name. | |
| void | SetAllSignalStatus (bool connected) |
| void | DestroyAllSignals () |
| void | DeleteSignals () |
Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| virtual void | OnOwnershipChanged (bool isOwner) |
| Called when network ownership changes. | |
| void | SetNetworkOwner (bool isOwner) |
| Sets IsNetworkOwner and triggers OnOwnershipChanged callback. | |
| void | PreStartSim () |
| Is called by the realvirtualController before the component is started. | |
| void | StartSim () |
| Is called by the realvirtualController to start or stop the component. | |
| void | StopSim () |
| Vector3 | DirectionToVector (DIRECTION direction) |
| Transfers the direction enumeration to a vector. | |
| DIRECTION | VectorToDirection (bool torotatoin, Vector3 vector) |
| Transfers a vector to the direction enumeration. | |
| float | GetLocalScale (Transform thetransform, DIRECTION direction) |
| List< BehaviorInterfaceConnection > | UpdateConnectionInfo () |
| List< Signal > | GetConnectedSignals () |
| void | SetVisibility (bool visibility) |
| Sets the visibility of this object including all subobjects. | |
| List< BehaviorInterfaceConnection > | GetConnections () |
| List< Signal > | GetSignals () |
| GameObject | GetChildByName (string name) |
| Gets a child by name. | |
| List< GameObject > | GetChildsByName (string name) |
| Gets all child by name. | |
| GameObject | GetChildByNameAlsoHidden (string name) |
| List< GameObject > | GetAllMeshesWithGroup (string group) |
| List< GameObject > | GetAllWithGroup (string group) |
| List< GameObject > | GetAllWithGroups (List< string > groups) |
| List< GameObject > | GetAllMeshesWithGroups (List< string > groups) |
| List< string > | GetMyGroups () |
| List< GameObject > | GetMeshesWithSameGroups () |
| List< GameObject > | GetAllWithSameGroups () |
| MeshRenderer | GetMeshRenderer () |
| Gets the mesh renderers in the childrens. | |
| void | SetCollider (bool enabled, bool includeTriggers=true) |
| sets the collider in all child objects | |
| void | ErrorMessage (string message) |
| Displays an error message. | |
| void | ChangeConnectionMode (bool isconnected) |
| void | Log (string message) |
| Logs a message. | |
| void | Log (string message, object obj) |
| Logs a message with a relation to an object. | |
| void | Warning (string message, object obj) |
| Logs a warning with a relation to an object. | |
| void | Error (string message, object obj) |
| Logs an error with a relation to an object. | |
| void | Error (string message) |
| Logs an error. | |
| GameObject | DebugPosition (string debugname, Vector3 position, Quaternion quaternation, float scale) |
| Displays a gizmo for debugging positions. | |
| void | SetFreezePosition (bool enabled) |
| Freezes all child components to the current poosition. | |
| void | SetRbConstraints (RigidbodyConstraints constraints) |
| virtual void | AwakeAlsoDeactivated () |
Public Attributes | |
| string | ServerIP |
| IP address of the KUKA Y200 server. | |
| int | ServerPort |
| TCP port of the KUKA Y200 server. | |
| int | ConnectionTimeoutMs |
| Connection timeout in milliseconds. | |
| int | MaxDigitalSignals |
| Number of digital signals to use (max 8192) | |
| float[] | CurrentAxisValues |
| Current axis values in degrees. | |
| int | ActiveInputs |
| Number of active input signals | |
| int | ActiveOutputs |
| Number of active output signals. | |
Public Attributes inherited from realvirtual.FastInterfaceBase | |
| string | State |
| Current connection status with visual indicator. | |
| InterfaceState | state |
| Internal connection state enum. | |
| new string | ErrorMessage |
| Last error message if connection failed. | |
| int | ReconnectAttemptCount |
| Number of reconnection attempts made. | |
| bool | IsReconnecting |
| Whether interface is currently attempting to reconnect. | |
| int | InputSignals |
| Total number of input signals found. | |
| int | OutputSignals |
| Total number of output signals found. | |
| int | CommCycleMs |
| Actual communication cycle time in milliseconds. | |
| int | CycleCount |
| Total number of communication cycles completed. | |
| int | UpdateCycleMs |
| Communication thread update interval in milliseconds. | |
| bool | OnlyTransmitChangedInputs |
| Only send input signals that have changed since last transmission (performance optimization) | |
| bool | AutoReconnect |
| Automatically attempt to reconnect on connection loss. | |
| float | ReconnectIntervalSeconds |
| Time to wait between reconnection attempts. | |
| int | MaxReconnectAttempts |
| Maximum reconnection attempts (-1 = unlimited) | |
| bool | DebugMode |
Public Attributes inherited from realvirtual.InterfaceBaseClass | |
| bool | IsConnected |
| List< InterfaceSignal > | InterfaceSignals |
| Hashtable | SignalNamesOutputs |
| Hashtable | SignalNamesInputs |
Public Attributes inherited from realvirtual.realvirtualBehavior | |
| string | Name |
| The name of the component if it should be different from the GameObject name. | |
| ActiveOnly | Active |
| GameObject | FromTemplate |
| realvirtualController | realvirtualController |
| bool | HideNonG44Components |
| bool | SceneIsAdditive |
| bool | ForceStop |
| bool | IsNetworkOwner |
| True when this component owns its simulation (local authority). Set to false by MultiplayerWEB on remote clients. | |
Protected Member Functions | |
| override void | CopyPropertiesToThreadSafe () |
| Copies MonoBehaviour properties to thread-safe variables before background thread starts. | |
| override async Task | EstablishConnection (CancellationToken cancellationToken) |
| Establishes connection to the external system. | |
| override async Task | CommunicationLoop (CancellationToken cancellationToken) |
| Main communication loop executed each cycle after connection is established. | |
| override void | CloseConnection () |
| Closes the connection to the external system. | |
Protected Member Functions inherited from realvirtual.FastInterfaceBase | |
| virtual void | OnCommunicationError (Exception exception) |
| Handles communication errors and manages reconnection logic. | |
| virtual void | OnCommunicationStarted () |
| Called when communication thread starts successfully. | |
| virtual void | OnCommunicationStopped () |
| Called when communication thread stops. | |
| void | Start () |
| Unity Start - block base class behavior. | |
| new void | OnEnable () |
| Unity OnEnable - opens interface when component is enabled. | |
| new void | OnDisable () |
| virtual void | OnApplicationPause (bool pauseStatus) |
| Handles application pause events. | |
| void | FixedUpdate () |
| Unity FixedUpdate for main thread operations (signal sync moved to PrePost FixedUpdate) | |
| Dictionary< string, object > | GetInputsForPLC () |
| Gets all input signal values to send to PLC from background threads. | |
| Dictionary< string, object > | GetChangedInputsForPLC () |
| Gets only changed input signal values to send to PLC from background threads. | |
| void | ResetInputChangeDetection () |
| Resets change detection forcing all inputs to be considered changed on next call. | |
| void | SetOutputsFromPLC (Dictionary< string, object > outputs) |
| Sets output signal values from PLC data in background threads. | |
| void | SetOutputFromPLC (string signalName, object value) |
| Sets single output signal value from PLC data in background threads. | |
| void | RebuildCachedSignalArrays () |
| Rebuilds the cached signal arrays used by SyncOutputsToUnity/SyncInputsFromUnity. | |
| Dictionary< string, object > | ReadInputsThreadSafe () |
| [DEPRECATED] Use GetInputsForPLC() instead for clearer data flow direction | |
| Dictionary< string, object > | ReadChangedInputsThreadSafe () |
| [DEPRECATED] Use GetChangedInputsForPLC() instead for clearer data flow direction | |
| void | WriteOutputsThreadSafe (Dictionary< string, object > outputs) |
| [DEPRECATED] Use SetOutputsFromPLC() instead for clearer data flow direction | |
| void | WriteOutputThreadSafe (string signalName, object value) |
| [DEPRECATED] Use SetOutputFromPLC() instead for clearer data flow direction | |
| virtual void | PrepareForBackgroundThread () |
| Called on main thread to prepare any Unity GameObject data before background thread starts Override this to cache signal names, GameObject references, or other Unity-specific data that the background thread will need to access. | |
| virtual void | CleanupAfterBackgroundThread () |
| Called on main thread after background thread stops to clean up Unity-specific resources Override this to clean up cached data, reset Unity components, or perform other main-thread cleanup. | |
| virtual void | UpdateSignalCounts () |
| Updates input and output signal counts. | |
Protected Member Functions inherited from realvirtual.InterfaceBaseClass | |
| void | OnConnected () |
| void | OnDisconnected () |
| void | OnEnable () |
| void | OnDisable () |
Protected Member Functions inherited from realvirtual.realvirtualBehavior | |
| bool | hidename () |
| bool | hideactiveonly () |
| virtual void | OnStopSim () |
| virtual void | OnPreStartSim () |
| virtual void | OnStartSim () |
| MU | GetTopOfMu (GameObject obj) |
| Gets the top of an MU component (the first MU script going up in the hierarchy) | |
| void | InitGame4Automation () |
| Initialiates the components and gets the reference to the realvirtualController in the scene. | |
| virtual void | AfterAwake () |
| void | Awake () |
Additional Inherited Members | |
Public Types inherited from realvirtual.realvirtualBehavior | |
| enum | ActiveOnly { Always , Connected , Disconnected , Never , DontChange } |
Static Public Member Functions inherited from realvirtual.FastInterfaceBase | |
| static bool | IsManualPhysicsMode () |
| Gets whether manual physics mode is currently enabled globally. | |
Static Public Member Functions inherited from realvirtual.realvirtualBehavior | |
| static bool | DirectionIsLinear (DIRECTION direction) |
| Gets back if the direction is linear or a rotation. | |
Protected Attributes inherited from realvirtual.FastInterfaceBase | |
| string | threadSafeErrorMessage |
| int | privateCycleCount |
| int | privateCommCycleMs |
| bool | threadSafeDebugMode |
| int | threadSafeUpdateCycleMs |
Properties inherited from realvirtual.FastInterfaceBase | |
| new bool | IsConnected [get] |
| override bool | ShowIsConnectedField [get] |
| Used by [ShowIf] to hide IsConnected field for FastInterface classes - always returns false. | |
| bool | IsInterfaceReady [get] |
| Returns true if the interface has been initialized via OnInterfaceEnable. | |
Properties inherited from realvirtual.InterfaceBaseClass | |
| virtual string | InterfaceDisplayName [get] |
| Display name for interface in UI lists (removes "Interface" suffix by default, can be overridden for custom names) | |
| virtual bool | ShowIsConnectedField [get] |
Properties inherited from realvirtual.IOnInterfaceEnable | |
Detailed Description
KUKA TCP/IP interface for communication with KUKA robot controllers.
The KukaInterface provides communication with KUKA robot controllers using the Y200 protocol over TCP/IP. It supports exchange of robot axis values as PLCOutputFloat signals and digital I/O as PLCInputBool/PLCOutputBool signals.
Key Features:
- TCP/IP communication with KUKA Y200 Server
- Robot axis values as PLCOutputFloat signals
- Digital I/O signals as PLCInputBool/PLCOutputBool
- Thread-safe implementation
- Automatic reconnection on connection loss
Signal Naming Convention:
- Axis signals: "Axis1" to "Axis6" (PLCOutputFloat) for robot axes
- Digital input signals: "InBool0" to "InBool8191" (PLCInputBool) - maps to $IN[1] to $IN[8192]
- Digital output signals: "OutBool0" to "OutBool8191" (PLCOutputBool) - maps to $OUT[1] to $OUT[8192]
Protocol Details:
- FROM KRC: 1144 bytes (Outputs[1024] + Axes[48] + unused position/tool/base data)
- TO KRC: 1024 bytes (Inputs[1024])
For detailed documentation see: https://doc.realvirtual.io/components-and-scripts/interfaces/kuka-y200
Member Function Documentation
◆ CloseConnection()
|
protectedvirtual |
Closes the connection to the external system.
Reimplemented from realvirtual.FastInterfaceBase.
◆ CommunicationLoop()
|
protectedvirtual |
Main communication loop executed each cycle after connection is established.
Reimplemented from realvirtual.FastInterfaceBase.
◆ CopyPropertiesToThreadSafe()
|
protectedvirtual |
Copies MonoBehaviour properties to thread-safe variables before background thread starts.
Reimplemented from realvirtual.FastInterfaceBase.
◆ CreateDigitalInputs()
| void realvirtual.KukaInterface.CreateDigitalInputs | ( | int | count = 100 | ) |
Creates digital input signals using FastInterface helper methods.
◆ CreateDigitalOutputs()
| void realvirtual.KukaInterface.CreateDigitalOutputs | ( | int | count = 100 | ) |
Creates digital output signals using FastInterface helper methods.
◆ CreateStandardSignals()
| void realvirtual.KukaInterface.CreateStandardSignals | ( | ) |
Creates standard robot signals organized in subfolders.
◆ EstablishConnection()
|
protectedvirtual |
Establishes connection to the external system.
Reimplemented from realvirtual.FastInterfaceBase.
Member Data Documentation
◆ ActiveInputs
| int realvirtual.KukaInterface.ActiveInputs |
Number of active input signals
◆ ActiveOutputs
| int realvirtual.KukaInterface.ActiveOutputs |
Number of active output signals.
◆ ConnectionTimeoutMs
| int realvirtual.KukaInterface.ConnectionTimeoutMs |
Connection timeout in milliseconds.
◆ CurrentAxisValues
| float [] realvirtual.KukaInterface.CurrentAxisValues |
Current axis values in degrees.
◆ MaxDigitalSignals
| int realvirtual.KukaInterface.MaxDigitalSignals |
Number of digital signals to use (max 8192)
◆ ServerIP
| string realvirtual.KukaInterface.ServerIP |
IP address of the KUKA Y200 server.
◆ ServerPort
| int realvirtual.KukaInterface.ServerPort |
TCP port of the KUKA Y200 server.
Public Member Functions inherited from