6 OPC UA ObjectTypes for POWERLINK Communication Profile EPSG DS 301

6.1 PowerlinkDeviceType

6.1.1 General

This OPC UA ObjectType represents a Device with one or more POWERLINK interfaces.

Figure 15 shows an overview for the PowerlinkDeviceType with its Properties and related components. It is formally defined in Table 15.

Figure 15 – PowerlinkDeviceType overview

6.1.2 PowerlinkDeviceType Definition

The PowerlinkDeviceType is formally defined in Table 15.

Table 15 – PowerlinkDeviceType Definition
Attribute Value
BrowseNamePowerlinkDeviceType
IsAbstractFalse
NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of DeviceType defined in OPC 10000-100.
Object<CNIdentifier>PowerlinkCnConnectionPointTypeOptionalPlaceholder
Object<MNIdentifier>PowerlinkMnConnectionPointTypeOptionalPlaceholder

The PowerlinkDeviceType is an example for a DeviceType that only implements POWERLINK Managing Node (MN) and/or POWERLINK Controlled Node (CN) interfaces, for instance for the representation of POWERLINK Devices by a generic gateway. Usually a Device will only implement one of these choices, but it is also possible to implement multiple POWERLINK interfaces on one Device.

The usage of the PowerlinkCnConnectionPointType and the PowerlinkMnConnectionPointType is not limited to the PowerlinkDeviceType. These ConnectionPoint-Types can be used by any other subtype of DeviceType.

6.1.3 Placeholder CNIdentifier

The object CNIdentifier of the type PowerlinkCnConnectionPointType is a placeholder for the POWERLINK Object Dictionary of a POWERLINK Controlled Node. The PowerlinkCnConnectionPointType is defined in 6.3.

6.1.4 Placeholder MNIdentifier

The object MNIdentifier of the type PowerlinkMnConnectionPointType is a placeholder for the POWERLINK Object Dictionary of a POWERLINK Managing Node. The PowerlinkMnConnectionPointType is defined in 6.4.

6.1.5 Mapping for DeviceType (Types namespace)

The Type PowerlinkDeviceType is a subtype of DeviceType defined in OPC 10000-100, which mandates a list of Properties for the Device.

Table 16 defines the values for these Properties based on the POWERLINK Objects of the implemented POWERLINK interface. If a PowerlinkDeviceType implements more than one POWERLINK interface, the selection of the interface as source for these objects is device specific.

Table 16 – DeviceType Mapping
DeviceType / OPC 10000-100POWERLINK
BrowseNameDataTypeDescription
1:SerialNumberString

Value of the POWERLINK Object SerialNo_U32 (Index 1018h, Sub-Index 4), converted to a string as decimal number.

If the optional POWERLINK Object is not provided by the device, SerialNumber shall be set to an empty string.

1:RevisionCounterInt32Always set to -1
1:ManufacturerLocalizedTextThis variable shall be set to the manufacturer name if known by the OPC UA server. If the server does not know the name the variable shall be set to the value of the POWERLINK Object VendorId_U32 (Index 1018h, Sub-Index 1), converted to a string as decimal number.
1:ModelLocalizedText

Value of the POWERLINK Object NMT_ManufactDevName_VS (Index 1008h)

If the optional POWERLINK Object is not provided by the device, Model shall be set to an empty text field.

1:DeviceManualStringPathname in the file system or URL (Web Address) specifying the address of the user manual for the Device.
1:DeviceRevisionString

Value of the POWERLINK Object RevisionNo_U32 (Index 1018h, Sub-Index 3), converted to a string with the format “major.minor”, where “major” is the decimal number of the higher 16 bit and “minor” is the decimal number of the lower 16 bit (as defined in EPSG DS 301)

Example:

POWERLINK RevisionNo_U32 = 0x00020064

DeviceRevision = “2.100”

If the optional POWERLINK Object t is not provided by the device, SoftwareRevision shall be set to an empty string.

1:SoftwareRevisionString

Value of the POWERLINK Object NMT_ManufactSwVers_VS (Index 100Ah).

If the optional POWERLINK Object is not provided by the device, SoftwareRevision shall be set to an empty string.

1:HardwareRevisionString

Value of the POWERLINK Object NMT_ManufactHwVers_VS (Index 1009h)

If the optional POWERLINK Object is not provided by the device, SoftwareRevision shall be set to an empty string.

1:DeviceClassStringValue of the POWERLINK Object NMT_DeviceType_U32 (Index 1000h), converted to a string as decimal number.

6.2 PowerlinkConnectionPointType

6.2.1 General

The PowerlinkConnectionPointType is an abstract Object Type that defines the POWERLINK Objects, which are common for both POWERLINK Managing Node and POWERLINK Controlled Node.

Figure 16 shows a part of the PowerlinkConnectionPointType. The Object ParameterSet contains the POWERLINK Objects, modelled as defined in 5.2. In addition to these Variables, this specification defines a list of Methods (components of the Object MethodSet).

As defined by the concepts of OPC 10000-100 the Parameters (Variables) of the ParameterSet and Methods of the MethodSet are organised in FunctionalGroups where they are referenced by Organize-References. This concept allows splitting the Parameters into different categories, and at the same time, all Parameters are accessible under ParameterSet.

Figure 16 – PowerlinkConnectionPointType

6.2.2 PowerlinkConnectionPointType Definition

The PowerlinkConnectionPointType is formally defined in Table 17.

Table 17 – PowerlinkConnectionPointType Definition
Attribute Value
BrowseNamePowerlinkConnectionPointType
IsAbstractTrue
NodeClass BrowseName DataType TypeDefinition Modelling Rule Powerlink Attributes

Subtype of ConnectionPointType defined in OPC 10000-100.

HasSubtype PowerlinkCnConnectionPointType defined in 6.3

HasSubtype PowerlinkMnConnectionPointType defined in 6.4

FunctionalGroup NetworkAddress
VariableNMT_EPLNodeID_REC-NMT_EPLNodeID‌_TypeMandatory-
VariableNWL_IpAddrTable_0h_REC-NWL_IpAddrTable‌_TypeOptional-
Functional Group Identification
VariableNMT_ChildIdentList_AU16UInt16 [ ]PowerlinkArrayTypeOptionalR
VariableNMT_DeviceType_U32UInt32PowerlinkVariableTypeMandatoryCONST
VariableNMT_EPLVersion_U8BytePowerlinkVariableTypeMandatoryCONST
VariableNMT_FeatureFlags_U32UInt32PowerlinkVariableTypeMandatoryCONST
VariableNMT_HostName_VSTRStringPowerlinkVariableTypeOptionalRW,S
VariableNMT_IdentityObject_REC-IDENTITY_TypeMandatory-
VariableNMT_ManufactDevName_VSStringPowerlinkVariableTypeOptionalCONST
VariableNMT_ManufactHwVers_VSStringPowerlinkVariableTypeOptionalCONST
VariableNMT_ManufactSwVers_VSStringPowerlinkVariableTypeOptionalCONST
Functional Group Diagnostics
VariableDIA_ERRStatistics_REC-DIA_ERRStatistics‌_TypeOptional-
VariableDIA_NMTTelegrCount_REC-DIA_NMTTelegrCount‌_TypeOptional-
VariableERR_ErrorRegister_U8ErrorRegisterBitsPowerlinkVariableTypeMandatoryR
VariableERR_History_ADOMPowerlinkError‌EntryDataType [ ]PowerlinkArrayTypeOptionalR
VariablePDO_ErrMapVers_OSTRByteStringPowerlinkVariableTypeOptionalRW
VariablePDO_ErrShort_RX_OSTRByteStringPowerlinkVariableTypeOptionalRW
Functional Group Configuration
VariableNMT_ConsumerHeartbeatTime_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariableNMT_CycleLen_U32UInt32PowerlinkVariableTypeMandatoryRW,S,VR
VariableNMT_CycleTiming_REC-NMT_CycleTiming‌_TypeMandatory-
VariableNMT_IsochrSlotAssign_AU8Byte [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_MultiplCycleAssign_AU8Byte [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_NodeAssignment_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariableNMT_PResPayloadLimitList_AU16UInt16 [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_RestoreDefParam_REC-NMT_ParameterStorage‌_TypeOptional-
VariableNMT_StoreParam_REC
VariablePDL_MnExpAppSwDateList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariablePDL_MnExpAppSwTimeList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariablePDO_RxCommParam_00h_REC-PDO_CommParam‌Record_TypeOptional-
VariablePDO_RxCommParam_01h_REC
VariablePDO_RxCommParam_02h_REC
VariablePDO_RxCommParam_03h_REC
VariablePDO_RxMappParam_00h_AU64PowerlinkPDO‌Mapping‌Entry‌DataType [ ]PowerlinkArrayTypeOptionalRW,S
VariablePDO_RxMappParam_01h_AU64
VariablePDO_RxMappParam_02h_AU64
VariablePDO_RxMappParam_03h_AU64
VariablePDO_TxCommParam_00h_REC-PDO_CommParam‌Record_TypeOptional-
VariablePDO_TxMappParam_00h_AU64PowerlinkPDO‌Mapping‌Entry‌DataType [ ]PowerlinkArrayTypeOptionalRW,S
VariableSDO_CmdLayerTimeout_U32UInt32PowerlinkVariableTypeOptionalRW,S,VR
VariableSDO_SequLayerNoAck_U32UInt32PowerlinkVariableTypeOptionalRW,S,VR
VariableSDO_SequLayerTimeout_U32UInt32PowerlinkVariableTypeMandatoryRW,S,VR
Functional Group Status
VariableNMT_CurrNMTState_U8Powerlink‌NMTState‌EnumerationPowerlinkVariableTypeMandatoryR
VariableNMT_InterfaceGroup_0h_REC-NMT_InterfaceGroup_TypeMandatory-
VariableNMT_RelativeLatencyDiff_AU32UInt32 [ ]PowerlinkArrayTypeOptionalR
Functional Group Control
VariableINP_ProcessImage_REC-INP_ProcessImage_TypeOptional-
VariableNMT_ResetCmd_U8Powerlink‌NMTResetCmd‌EnumerationPowerlinkVariableTypeMandatoryRW
FunctionalGroup SdoServices
MethodReadByIndexDefined in 6.2.3 Method ReadByIndexMandatory
MethodWriteByIndexDefined in 6.2.4 Method WriteByIndexMandatory

6.2.3 Method ReadByIndex

The Method ReadByIndex reads the value of a POWERLINK Object addressed by Index and Sub-Index.

Signature

	ReadByIndex (
		[in]	UInt16		Index
		[in]	Byte			SubIndex
		[out]	BaseDataType	Data
		[out]	UInt32		PowerlinkAbortCode
		);
	
Argument Description
IndexIndex of the POWERLINK Object in the POWERLINK Object Dictionary
SubIndexSub-Index of the POWERLINK Object in the POWERLINK Object Dictionary
DataValue of the POWERLINK Object
PowerlinkAbortCode

SDO Abort Code as defined in EPSG DS 301

Some of the SDO Abort Codes defined in POWERLINK are mapped to an OPC UA ResultCode, see table for ‘Method Result Codes’

Method Result Codes

ResultCode SDO Abort Code Description
Good0The read access was successful
Bad_ResourceInvalid-The POWERLINK Device is not available, the output argument PowerlinkAbortCode will be set to 0x0504 0000 (timeout)
Bad_NotFound0x0602 0000Object does not exist in the POWERLINK Object Dictionary
0x0609 0011Sub-Index does not exist
Bad_Timeout0x0504 0000The operation timed out / SDO protocol timed out
Bad_NotReadable0x0601 0001Attempt to read a write-only POWERLINK Object
Bad_CommunicationErrorAll other SDO Abort Codes

6.2.4 Method WriteByIndex

The Method WriteByIndex can be used to access the POWERLINK Object Dictionary by Index and Sub-Index to write values of POWERLINK Objects.

Signature

	WriteByIndex (
		[in]	UInt16		Index
		[in]	Byte			SubIndex
		[in]	BaseDataType	Data
		[out]	UInt32		PowerlinkAbortCode
		);
	
Argument Description
IndexIndex of the POWERLINK Object in the POWERLINK Object Dictionary
SubIndexSub-Index of the POWERLINK Object in the POWERLINK Object Dictionary
DataData to be written to the POWERLINK Object
PowerlinkAbortCode

SDO Abort Code as defined in EPSG DS 301

Some of the SDO Abort Codes defined in POWERLINK are mapped to an OPC UA ResultCode, see table for ‘Method Result Codes’

Method Result Codes

ResultCode SDO Abort Code Description
Good0The write access was successful
Bad_ResourceInvalid-The POWERLINK Device is not available, the output argument PowerlinkAbortCode will be set to 0x0504 0000 (timeout)
Bad_NotFound0x0602 0000Object does not exist in the POWERLINK Object Dictionary
0x0609 0011Sub-Index does not exist
Bad_Timeout0x0504 0000The operation timed out / SDO protocol timed out
Bad_NotSupported0x0601 0000Unsupported access to an POWERLINK Object
Bad_NotWritable0x0601 0002Attempt to write a read-only POWERLINK Object
Bad_OutOfRange0x0609 0030Value range of parameter exceeded
0x0609 0031Value of parameter written too high
0x0609 0032Value of parameter written too low
Bad_TypeMismatch0x0607 0010length of service parameter does not match
0x0607 0012length of service parameter too high
0x0607 0013length of service parameter too low
Bad_CommunicationErrorAll other SDO Abort Codes

6.3 PowerlinkCnConnectionPointType

6.3.1 General

The PowerlinkCnConnectionPointType is a subtype of PowerlinkConnectionPointType and adds the POWERLINK Objects that are specific to the POWERLINK Controlled Node. It also provides the possibility to implement POWERLINK Device Profiles and customer specific POWERLINK Objects by adding components of the Type PowerlinkDeviceProfileType.

6.3.2 PowerlinkCnConnectionPointType Definition

The PowerlinkCnConnectionPointType is formally defined in Table 18.

Table 18 – PowerlinkCnConnectionPointType Definition
Attribute Value
BrowseNamePowerlinkCnConnectionPointType
IsAbstractFalse
NodeClass BrowseName DataType TypeDefinition Modelling Rule Powerlink Attributes
Subtype of PowerlinkConnectionPointType defined in 6.2.2.
Object<DeviceProfileIdentifier>-PowerlinkDeviceProfileTypeOptionalPlaceholder
FunctionalGroup Diagnostics
VariableDLL_CNCollision_REC-DLL_ErrorCntRec_TypeOptional-
VariableDLL_CNCRCError_REC-DLL_ErrorCntRec_TypeMandatory-
VariableDLL_CNLossOfLinkCum_U32UInt32PowerlinkVariableTypeOptionalRW
VariableDLL_CNLossOfSocTolerance_U32UInt32PowerlinkVariableTypeMandatoryRW,S
VariableDLL_CNLossPReq_REC-DLL_ErrorCntRec_TypeOptional-
VariableDLL_CNLossSoA_REC-DLL_ErrorCntRec_TypeOptional-
VariableDLL_CNLossSoC_REC-DLL_ErrorCntRec_TypeMandatory-
VariableDLL_CNSoCJitter_REC-DLL_ErrorCntRec_TypeOptional-
FunctionalGroup Configuration
VariableDLL_CNSoCJitterRange_U32UInt32PowerlinkVariableTypeOptionalRW
VariableNMT_CNBasicEthernetTimeout_U32UInt32PowerlinkVariableTypeMandatoryRW,S,VR

6.3.3 Placeholder DeviceProfileIdentifier

The object DeviceProfileIdentifier of the type PowerlinkDeviceProfileType is a placeholder for the device- or vendor-specific part of the POWERLINK Object Dictionary.

The PowerlinkDeviceProfileType is formally defined in Table 19.

Table 19 – PowerlinkDeviceProfileType Definition
Attribute Value
BrowseNamePowerlinkDeviceProfileType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Modelling
Rule
Access
Level
Subtype of TopologyElementType defined in OPC 10000-100
HasPropertyVariableIndexRangeStartUInt16PropertyTypeMandatoryRead
HasPropertyVariableIndexRangeSizeUInt16PropertyTypeMandatoryRead

The Properties IndexRangeStart and IndexRangeSize indicate the range of POWERLINK Objects represented by the instance. The POWERLINK Objects shall be components of the Object ParameterSet, which is defined in the TopologyElementType by OPC 10000-100.

Table 20 shows the ranges that are available for objects defined by POWERLINK Device Profiles and manufacturer specific POWERLINK Objects.

Table 20 – Device Profile Ranges
Index Range Description
2000h – 5FFFhManufacturer Specific Profile Area
6000h – 67FFhStandardised Device Profile Area, device 0
6800h – 6FFFhStandardised Device Profile Area, device 1
7000h – 77FFhStandardised Device Profile Area, device 2
7800h – 7FFFhStandardised Device Profile Area, device 3
8000h – 87FFhStandardised Device Profile Area, device 4
8800h – 8FFFhStandardised Device Profile Area, device 5
9000h – 97FFhStandardised Device Profile Area, device 6
9800h – 9FFFhStandardised Device Profile Area, device 7

6.4 PowerlinkMnConnectionPointType

6.4.1 General

The PowerlinkMnConnectionPointType is a subtype of PowerlinkConnectionPointType and adds the POWERLINK Objects that are specific to the POWERLINK Managing Node.

6.4.2 PowerlinkMnConnectionPointType Definition

The PowerlinkMnConnectionPointType is formally defined in Table 21.

Table 21 – PowerlinkMnConnectionPointType Definition
Attribute Value
BrowseNamePowerlinkMnConnectionPointType
IsAbstractFalse
NodeClass BrowseName DataType TypeDefinition Modelling Rule Powerlink Attributes
Subtype of PowerlinkConnectionPointType defined in 6.2.2.
FunctionalGroup Diagnostics
VariableDLL_MNCNLatePResCumCnt_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW
VariableDLL_MNCNLatePResThrCnt_AU32UInt32 [ ]PowerlinkArrayTypeOptionalR
VariableDLL_MNCNLatePResThreshold_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariableDLL_MNCNLossPResCumCnt_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW
VariableDLL_MNCNLossPResThrCnt_AU32UInt32 [ ]PowerlinkArrayTypeMandatoryR
VariableDLL_MNCNLossPResThreshold_AU32UInt32 [ ]PowerlinkArrayTypeMandatoryRW,S
VariableDLL_MNCollision_REC-DLL_ErrorCntRec_TypeOptional-
VariableDLL_MNCRCError_REC-DLL_ErrorCntRec_TypeMandatory-
VariableDLL_MNCycTimeExceed_REC-DLL_ErrorCntRec_TypeOptional-
VariableDLL_MNLossOfLinkCum_U32UInt32 [ ]PowerlinkVariableTypeOptionalRW
VariableDLL_MNLossStatusResCumCnt_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW
VariableDLL_MNLossStatusResThrCnt_AU32UInt32 [ ]PowerlinkArrayTypeMandatoryR
VariableDLL_MNLossStatusResThreshold_AU32UInt32 [ ]PowerlinkArrayTypeMandatoryRW,S
VariableNMT_MNNodeCurrState_AU8Powerlink‌NMTState‌Enumeration [ ]PowerlinkArrayTypeMandatoryR
VariableNMT_MNNodeExpState_AU8Powerlink‌NMTState‌Enumeration [ ]PowerlinkArrayTypeOptionalR
VariableNMT_RequestCmd_REC-NMT_RequestCmd_TypeMandatory-
FunctionalGroup Configuration
VariableCFM_ExpConfDateList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariableCFM_ExpConfIdList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariableCFM_ExpConfTimeList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S
VariableDLL_MNCycleSuspendNumber_U32UInt32PowerlinkVariableTypeMandatoryRW
VariableNMT_BootTime_REC-NMT_BootTime_TypeMandatory-
VariableNMT_MNCNPResTimeout_AU32UInt32 [ ]PowerlinkArrayTypeMandatoryRW,S,VR
VariableNMT_MNCycleTiming_REC-NMT_MNCycleTiming_TypeMandatory-
VariableNMT_MNDeviceTypeIdList_AU32UInt32 [ ]PowerlinkArrayTypeMandatoryRW,S,VR
VariableNMT_MNPReqPayloadLimitList_AU16UInt16 [ ]PowerlinkArrayTypeMandatoryRW,S,VR
VariableNMT_MNProductCodeList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_MNRevisionNoList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_MNSerialNoList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_MNVendorIdList_AU32UInt32 [ ]PowerlinkArrayTypeOptionalRW,S,VR
VariableNMT_StartUp_U32UInt32PowerlinkVariableTypeMandatoryRW,S,VR
VariablePDO_TxCommParam_01h_REC-PDO_CommParam‌Record_TypeOptional-
VariablePDO_TxCommParam_02h_REC
VariablePDO_TxCommParam_03h_REC
VariablePDO_TxMappParam_01h_AU64PowerlinkPDO‌MappingEntry‌DataType [ ]PowerlinkArrayTypeOptionalRW,S
VariablePDO_TxMappParam_02h_AU64
VariablePDO_TxMappParam_03h_AU64