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.