Introduction

The OPC UA embedded server in the BMENUA0100 module uses Unified Messaging Application Services (UMAS) data dictionary requests to browse and discover M580 PAC application variables. You will need to activate the data dictionary in the Control Expert project settings.

NOTE:

All collected variables are translated from the Control Expert data logic model view to the OPC UA data logic model view using the appropriate OPC UA stack services. An OPC UA client connected to the BMENUA0100 module–over its control port, or over its backplane port via the CPU or a BMENOC0301/11 communication module–can retrieve this collection of data using the services of the Data Access Server Facet supported by the Embedded 2017 UA Server Profile.

Preloading the Data Dictionary to Avoid Communication Interruptions

An online application change made with Control Expert temporarily breaks OPC UA server/client communication while the server acquires an updated data dictionary. This interruption is caused by inconsistent CPU data mapping while the data dictionary is updated. During the period of communication loss, the status of the monitored nodes goes to BAD. To avoid this disruption of operations, a synchronization mechanism can be set up between the BMENUA0100 module and the Control Expert configuration software, based on a preload of the updated data dictionary.

This feature is enabled in Control Expert in the Tools > Project Settings... window, in the General > PLC embedded data area, using the Preload on build changes and Effective Build changes time-out settings. Refer to the Control Expert online help for these topics for information on how to configure this feature.

Activating the Data Dictionary

To activate the data dictionary in Control Expert:

Step

Action

1

In Control Expert, with the project open, select Tools > Project Settings.

2

In the Project Settings window, navigate to General > PLC embedded data , then select Data dictionary .

NOTE: If the EcoStruxure™ Control Expert project includes a BMENUA0100 module and this setting is not selected, a detected error is generated during the application build.

Variable Data Type Conversion

The BMENUA0100 module can discover and convert to OPC UA data types the following basic variable types supported by the Control Expert data logic model:

Control Expert Elementary Data Type

OPC UA Data Type

BOOL

Boolean

EBOOL

Boolean

INT

Int16

DINT

Int32

UINT

UInt16

UDINT

UInt32

REAL

Float

BYTE

Byte

WORD

UInt16

DWORD

UInt32

DATE*

UInt32

TIME*

UInt32

TOD*

UInt32

DT*

Double

STRING

Byte array

* Refer to following table describing date-related data type conversion.

For Control Expert data of types DATE, TIME, TOD, DT, the corresponding OPC UA data types are as follows:

Control Expert Elementary Data Type

Example value displayed in Control Expert

OPC UA Data Type

Corresponding value in OPC UA type

DATE

D#2017-05-17

UInt32

0x20170517

TIME

T#07h44m01s100ms

UInt32

27841100

TOD

TOD#07:44:01

UInt32

0x07440100

DT1

DT#2017-05-17-07:44:01

Double

4.29E-154

1. The returned data for Date and Time values is UATypeUInt64 which is the internal encoding of IEC 1131 DT in Control Expert - binary coded decimal (BCD) encoding.

Discoverable Variables

For all variables, the OPC UA client does not directly access a discovered PAC data logic variable. Instead, the client accesses the discovered PAC variable through an OPC UA data logic variable, which exists in the BMENUA0100 module and is mapped to the underlying PAC variable. Because of the pass-through nature of data variable access, the acquisition request process is not optimized, and data dictionary acquisition performance is not representative of PAC performance.

NOTE: References, of the REF_TO type, to application variables in the OPC UA server are not accessible by the OPC UA client.

Examples of Control Expert PAC variables discoverable by the OPC UA server in the BMENUA0100 module include:

  • Structured variables with sub-fields: DDT and array variables.

  • Program Unit variables are discoverable as follows:

    • Input/Output variables are accessible by the OPC UA client only for the BOOL type.

    • Input variables and Output variables are accessible by the OPC UA client, except for the types REF_TO, ARRAY, String, and Structure.

In addition, the following variables are discoverable by the OPC UA server by mapping them to application varables, then discovering the mapped application variables:

  • Topological I/O variables:

    • Inputs: %I, %IW, %ID, %IF.

    • Outputs: %Q, %QW, %QD, %QF.

  • Located variables: %M, %MW, %MD, %MF.

  • System variables: %S, %SW, %SD.

NOTE: Variable discovery includes a variable (or symbol) for an extracted bit (for example, MyBoolVar located on %MW100.1).

Presentation of Discovered Variables in the OPC UA Client

The OPC UA server in the BMENUA0100 module can organize and graphically display discovered PAC variables. An OPC UA client tool can connect to the BMENUA0100 module and view a node tree presentation of OPC UA server variables.

In the following example, an OPC UA client (in this example, the Unified Automation UaExpert client tool) connected to the BMENUA0100 module can view PAC variables in its Address Space windows. The M580 PAC IP address is represented by the node ePAC:192.168.10.1. Its child nodes represent Control Expert application variables:

In the example above, the first sub-node, BMEP58_ECPU_EXT, represents the device DDT for the M580 CPU, which is automatically instantiated when the CPU was added to the Control Expert application. The subsequent nodes represent other objects added to the application.

Using the OPC UA client tool, the node TEST_S6 was dragged and dropped into the tool's Data Access View window, where the details of the variable are displayed:

In this case, the variable OPC UA data type is Boolean (indicating the underlying PAC data type is BOOL) and its value is false.

NOTE: The Server Timestamp attribute of the OPC UA nodes is received from the BMENUA0100 OPC UA server in UTC (Universal Time Coordinated). It is displayed to the user in local time. The data are not timestamped at their respective sources, but are timestamped by the OPC UA server. To avoid compatibility conflicts with some OPC UA clients, both source timestamp and server timestamp values are setup with the same server timestamp value.

Reading and Writing Discovered Variables in the OPC UA Client

An OPC UA tag in an OPC UA client (for example a SCADA) that refers to an array variable allows the client to read or write all elements of the array. For example the tag ‘MyArray’ declared as ARRAY[0...31] OF INT.

However, for the client to be able to read or write only a single element of an array, it is necessary to declare a specific tag that references the targeted single array element. For example ‘MyInt’ declared as INT referring to MyArray[2].