Supported Data Types

On the simulation side, you can connect i.e. component properties, signals, controller bases and tools. These simulation variables can be connected to external software and devices via connectivity plugins.

The connectivity feature supports the following simulation variable data types: boolean, real, integer, string, matrix, and vector. Note that also the robot tool and base frames can be read and written as matrices and vectors.

If the simulation variable type and the supported data type of the connectivity plugin does not match, an automatic data conversion is attempted.

Data Conversion Table

Simulation Data Type Details Plugin Conversion Data Type Conversion Information
Matrix

Matrix is a 4x4 transformation matrix in degrees. Each of the 16 fields is a 64-bit floating point variable

Each Matrix-valued simulation variable has position (P), orientation (O), and scaling (S) vector

String

Matrices are in column major format. The conversion from Matrix to string always uses specific comma-separated format with all 16 values.

Strings with 16 values define all fields of the matrix directly

Strings with 6 values create a translation and rotation matrix (X, Y, Z, W, P, R)

Strings with 3 values create a translation matrix (X,Y,Z)

Vector Vector is a 4-element (X, Y, Z, W) vector in degrees. Each of the 4 fields is a 64-bit floating point variable. String

String with single numeric value creates a vector with all X, Y and Z assigned to that value, and W set to 1.

Strings with 2-4 values create a vector with the fields assigned in the X, Y, Z, W order. Unassigned fields are left to default state, which is 0 for X, Y and Z, and 1 for W.

Conversion from Vector to string always uses specific comma-separated format with all 4 values.

The value of vector element W should be always 1 to keep the vector normalized.

Beckhoff TwinCAT

ADS Type IEC61131-3 Type .NET Type
BIT BOOL System.Boolean
INT16 INT System.Int16
INT32 DINT System.Int32
INT64 LINT System.Int64
INT8 SINT System.SByte
REAL32 REAL System.Single
REAL64 LREAL System.Double
REAL80 None System.Double (truncated to 64 bits)
STRING
1-byte (8 bits) per character ANSI string
STRING System.String
UINT16 UINT System.UInt16
UINT32 UDINT System.UInt32
UINT64 ULINT System.UInt64
UINT8 USINT System.Byte
WSTRING
UTF-16 (Unicode) 2-bytes per character
WSTRING System.String

Notes:

  • Some unsupported data types, for example TIME and ARRAY, may have their own set of variables, which may be supported and able to pair with simulation variables.

LS Electric

LS Electric Memory address .NET Type
%MX System.Boolean
%MB System.Byte
%MW System.UInt16
%MD System.UInt32
%ML System.UInt64

Notes:

  • The connector performs variable type conversion based on the variable’s memory size on the PLC. All integers are treated as unsigned, so negative values are not supported. All real or floating-point variables are also treated as integers, so they cannot be used directly.
  • Attempting to transfer any value larger than 32 bits in memory will cause the synchronization for that variable to fail.
  • Only variables in the M memory area are supported. The connector does not support variables in the I, Q, R, and W memory areas.
  • Unsupported data types include WORD, DWORD, LWORD, STRING, TIME, TIME_OF_DAY, DATE, and DATE_AND_TIME.

OPC UA Standard

OPC UA Type .NET Type
Boolean System.Boolean
Byte System.Byte
Double System.Double
Float System.Single
Int16 System.Int16
Int32 System.Int32
Int64 System.Int64
Integer System.Int32
SByte System.SByte
String System.String
LocalizedText System.String (uses default language)
UInt16 System.UInt16
UInt32 System.UInt32
UInt64 System.UInt64
UInteger System.UInt32

Notes:

  • If you want to connect a variable in an array, the server needs to support random access reading and writing of individual indexes in a static array. The OPC UA plugin cannot be used to read/write an entire array. Refer to OPC UA Standard documentation for more information.

Siemens S7

STEP7 type .NET Type
BOOL System.Boolean
BYTE System.Byte
WORD System.UInt16
DWORD System.UInt32
SINT System.SByte
USINT System.Byte
INT System.Int16
UINT System.UInt16
DINT System.Int32
UDINT System.UInt32
REAL System.Single

Universal Robots RTDE

The Universal Robots RTDE plugin supports access to all available variables. All signed and unsigned integer variables can be both paired directly or the individual bits paired as Booleans. Vectors can be read as strings, but cannot be written as a whole.

RTDE Type .NET Type
DOUBLE System.Double
INT32 System.Int32
UINT16 System.UInt16
UINT32 System.UInt32
UINT64 System.UInt64
UINT8 System.Byte
VECTOR3D System.String
VECTOR6D System.String
VECTOR6INT32 System.String
VECTOR6UINT32 System.String

Notes:

  • Vectors are converted to a single string by the RTDE plugin when read from the controller. Components Elements can be read and written separately.

WinMOD

WinMOD allows only three data types to be added to its external communication blocks that can be then read and written using the WinMOD Net communication library.

WinMOD Type .NET Type
Binary System.Boolean
Digital System.Int32
Analog System.Double

Notes:

  • The scaling range used for Analog signals is from -1,000,000 to +1,000,000, which results in value step size of about 0.0005. You may need to configure the scaling of connected Analog signals accordingly on the WinMOD side to get correct results.

Siemens SIMIT

SIMIT external couplings can have only three signal types: Binary, Integer, and Analog.

SIMIT Type .NET Type
Binary System.Boolean
Digital System.Int64
Analog System.Double

Notes:

  • VC integers are only signed 32-bit.