Data Types

  • Data type table
  • Data type coercion
  • Array support
  • Dynamic configuration mode

Data Type Table

The CIMPLICITY OPC Server represents CIMPLICITY point values in a canonical (or baseline) format. This format, or data type, is compatible with Microsoft COM/DCOM technology and is called a VARIANT data type.

Each Item ID attribute has a pre-defined canonical data type. The canonical data types for VALUE and RAW_VALUE attributes are dependent on the CIMPLICITY point type. The following table maps the CIMPLICITY point type to the canonical form. The table is grouped by CIMPLICITY point class.

CIMPLICITY Point Type OPC Server Canonical Form
Analog DINT
INT
REAL
SINT
UDINT
UINT
USINT
Boolean BOOL
BYTE
WORD
DWORD
Text STRING
STRING_20
STRING_8
STRING_80

Data Type Coercion

To ensure the highest throughput of point values through the CIMPLICITY OPC Server to an OPC Client, the client should always request the canonical data type of an attribute.

For example, if an OPC client wants to subscribe to changes in a CIMPLICITY analog class point configured as a real point type, the fastest throughput is achieved by requesting the value (when added to a group) as an eight byte real value (VT_R8).

By requesting a point in canonical form, the OPC Server does not have to coerce (or convert) between the data type stored internally and the data type requested by the OPC client.

The OPC Server provides coercion support for all non-array OPC items. The OPC Server utilizes standard Microsoft coercion support routines. A drawback to relying on coercion is the penalty of extra processing overhead required for each transaction. However, relying on coercion in the OPC Server may simplify the OPC client or provide the user with the ability to select the data type most applicable.

Array Support

The CIMPLICITY OPC Server supports arrays of all CIMPLICITY point types (with the exception of the STRING type). The OPC Server does not support coercion of array items. OPC clients must request an array item in canonical form when adding items to an OPC group.

Access to arrays is best done in canonical form as the overhead imposed by coercion could increase proportionally by the size of the array.

Dynamic Configuration Mode

The data type of a point can be changed dynamically (i.e. while a CIMPLICITY project is running) using the Dynamic Configuration mode in CIMPLICITY Workbench. If an OPC client is accessing a point while the point type changes, these changes are reflected in the state of the OPC item maintained by the OPC Server.

For non-array points, changes to the point type are transparent to OPC client as the OPC Server automatically coerces the new canonical data type to the data type requested when the client added the item to an OPC group.

For array points, the OPC client must be prepared to accept array information in a new data type form (and possibly with a new number of array elements).