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.
The BMENUA0100 module can support a maximum data dictionary size of 100000 variables.
The time required to load the data dictionary into the OPC UA server depends on the number of data dictionary items and the MAST period setting.
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 window, in the area, using the and 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 . |
2 |
In the window, navigate to , then select .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.
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.
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 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
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.
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].