One of the very significant differences between POWERLINK and OPC UA is that OPC UA provides metadata to each object directly through the Server, whereas POWERLINK can transport metadata only through XDD files or specification documents. Table 9 and Table 10 show examples for object definitions in the POWERLINK Communication Profile EPSG DS 301.
Table 9 – Example for the description of Objects in POWERLINK specifications
Index |
1006h |
Object Type |
VAR |
Name |
NMT_CycleLen_U32 |
||
Data Type |
UNSIGNED32 |
Category |
M |
Value Range |
refer below |
Access |
rws, valid on reset |
Default Range |
- |
PDO Mapping |
No |
Table 10 – Example for the description of SubObjects in POWERLINK specifications
Sub-Index |
09h |
||
Name |
Prescaler_U16 |
||
Data Type |
UNSIGNED16 |
Category |
MN: M, CN: O |
Value Range |
0, 1-1000 |
Access |
rws, valid on reset |
Default Range |
2 |
PDO Mapping |
No |
Figure 14 shows the same information in the XDD format defined in EPSG DS311.
Figure 14 – Example for XDD format
Table 11 lists the attributes that are specified for POWERLINK Objects, and how they are mapped to OPC UA mechanisms.
Table 11 – Mapping of attributes
POWERLINK Attribute |
Description |
Index |
Index and Sub-Index are provided by the Information Model as Properties of the Objects as defined in 5.2.2, 5.2.3 and 5.2.4. |
SubIndex |
|
Name |
The name of the POWERLINK Object shall be used as the BrowseName and the DisplayName of the OPC UA Node |
Object Type |
The relevant object types of POWERLINK are VAR, ARRAY and RECORD.
The VariableTypes PowerlinkArrayType, PowerlinkRecordType and PowerlinkVariableType are used to represent such objects from the POWERLINK Object Dictionary and extend the BaseDataVariableType by POWERLINK specific information about the object.
POWERLINK Objects of the type ARRAY shall be modelled as PowerlinkArrayType (5.2.2) POWERLINK Objects of the type RECORD shall be modelled as PowerlinkRecordType (5.2.3) POWERLINK Objects of the type VAR shall be modelled as PowerlinkVariableType (5.2.4) |
Data Type |
The mapping of primitive datatypes is defined in Table 22. In certain cases the Information Model makes an exception and uses a Structure DataType to improve the usability. Examples for such exceptions:
Also for usability reasons some variables are modelled as Enumeration. Examples for such cases:
|
Value Range |
The Value Range of the POWERLINK Object can be provided by the optional Property Range of the PowerlinkVariableType (5.2.4). |
Category |
POWERLINK defines the 3 categories Mandatory (M), Optional (O) and Conditional (Cond). OPC UA defines the ModellingRules Mandatory and Optional. Since OPC UA does provide an ModellingRule which can be mapped to Conditional of POWERLINK, the mapping is the following:
|
Access |
Access and PDO Mapping are provided by the Property PowerlinkAttributes defined for the PowerlinkVariableType (5.2.4). |
PDO Mapping |
|
Default Value |
The default value of the object is provided by the optional Property DefaultValue of the PowerlinkVariableType (5.2.4). |
The VariableType PowerlinkArrayType is formally defined in Table 12 and represents POWERLINK Objects of the type ARRAY as defined in 5.2.
Table 12 – PowerlinkArrayType Definition
Attribute |
Value |
||||||
BrowseName |
PowerlinkArrayType |
||||||
IsAbstract |
False |
||||||
ValueRank |
1 (1 = OneDimension) |
||||||
DataType |
BaseDataType |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Access Level |
|
Subtype of BaseDataVariableType defined in OPC 10000-5. |
|||||||
HasProperty |
Variable |
PowerlinkAttributes |
PowerlinkAttributes |
PropertyType |
Mandatory |
Read |
|
HasProperty |
Variable |
Index |
UInt16 |
PropertyType |
Mandatory |
Read |
|
HasProperty |
Variable |
NumberOfEntries |
Byte |
PropertyType |
Mandatory |
Read / Write |
|
HasProperty |
Variable |
Range |
Range |
PropertyType |
Optional |
Read |
|
HasProperty |
Variable |
DefaultValue |
BaseDataType |
PropertyType |
Optional |
Read |
The Property PowerlinkAttributes provides the information of the XML-Attribute ‘accessType’ from the POWERLINK XML Device Description.
The Property Index provides the Index of the object in the POWERLINK Object Dictionary.
The Property NumberOfEntries provides the value of Sub-Index 0 of the POWERLINK Object. For most POWERLINK Objects this value is read-only. For a few, like ERR_History_ADOM or PDO_RxMappParam_XXh_AU64, this Property is also writable.
The optional Property Range provides the Value Range of the array elements.
The optional Property DefaultValue provides the default value of the array elements. The DataType of this Property shall be identical to the DataType of the DataVariable itself.
The VariableType PowerlinkRecordType is formally defined in Table 13 and represents POWERLINK Objects of the type RECORD as defined in 5.2.
Table 13 – PowerlinkRecordType Definition
Attribute |
Value |
||||||
BrowseName |
PowerlinkRecordType |
||||||
IsAbstract |
True |
||||||
ValueRank |
-1 (-1 = Scalar) |
||||||
DataType |
Byte |
||||||
Value |
0 |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Access Level |
|
Subtype of BaseDataVariableType defined in OPC 10000-5. |
|||||||
HasProperty |
Variable |
Index |
UInt16 |
PropertyType |
Mandatory |
Read |
|
HasProperty |
Variable |
NumberOfEntries |
Byte |
PropertyType |
Mandatory |
Read |
The Property Index provides the Index of the object in the POWERLINK Object Dictionary.
The Property NumberOfEntries provides the value of Sub-Index 0 of the POWERLINK Object.
The VariableType PowerlinkVariableType if formally defined in Table 14 and represents POWERLINK Objects of the type VAR as defined in 5.2.
Table 14 – PowerlinkVariableType Definition
Attribute |
Value |
||||||
BrowseName |
PowerlinkVariableType |
||||||
IsAbstract |
False |
||||||
ValueRank |
-1 (-1 = Scalar) |
||||||
DataType |
BaseDataType |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Access Level |
|
Subtype of BaseDataVariableType defined in OPC 10000-5. |
|||||||
HasProperty |
Variable |
PowerlinkAttributes |
PowerlinkAttributes |
PropertyType |
Mandatory |
Read |
|
HasProperty |
Variable |
Index |
UInt16 |
PropertyType |
Mandatory |
Read |
|
HasProperty |
Variable |
SubIndex |
Byte |
PropertyType |
Mandatory |
Read |
|
HasProperty |
Variable |
Range |
Range |
PropertyType |
Optional |
Read |
|
HasProperty |
Variable |
DefaultValue |
BaseDataType |
PropertyType |
Optional |
Read |
The Property PowerlinkAttributes provides the information of the XML-Attribute ‘accessType’ from ‘Object’ and ‘SubObject’-Elements in the POWERLINK XML Device Description. The DataType PowerlinkAttributes is formally defined in 7.3.1.
The Properties Index and SubIndex provide the address information of the object in the POWERLINK Object Dictionary.
The optional Property Range provides the Value Range of the POWERLINK Object.
The optional Property DefaultValue provides the default value of the POWERLINK Object. The DataType of this Property shall be identical to the DataType of the DataVariable itself.
Note 1 to entry:
The Properties Index and SubIndex serve two purposes. It is not only additional information for the Client, but it also allows a generic implementation to interpret an imported Information Model because it already provides the required addressing information.