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.

image020.png

Figure 16 – PowerlinkConnectionPointType

The PowerlinkConnectionPointType is formally defined in Table 17.

Table 17 – PowerlinkConnectionPointType Definition

Attribute

Value

BrowseName

PowerlinkConnectionPointType

IsAbstract

True

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

Variable

NMT_EPLNodeID_REC

-

NMT_EPLNodeID‌_Type

Mandatory

-

Variable

NWL_IpAddrTable_0h_REC

-

NWL_IpAddrTable‌_Type

Optional

-

Functional Group Identification

Variable

NMT_ChildIdentList_AU16

UInt16 [ ]

PowerlinkArrayType

Optional

R

Variable

NMT_DeviceType_U32

UInt32

PowerlinkVariableType

Mandatory

CONST

Variable

NMT_EPLVersion_U8

Byte

PowerlinkVariableType

Mandatory

CONST

Variable

NMT_FeatureFlags_U32

UInt32

PowerlinkVariableType

Mandatory

CONST

Variable

NMT_HostName_VSTR

String

PowerlinkVariableType

Optional

RW,S

Variable

NMT_IdentityObject_REC

-

IDENTITY_Type

Mandatory

-

Variable

NMT_ManufactDevName_VS

String

PowerlinkVariableType

Optional

CONST

Variable

NMT_ManufactHwVers_VS

String

PowerlinkVariableType

Optional

CONST

Variable

NMT_ManufactSwVers_VS

String

PowerlinkVariableType

Optional

CONST

Functional Group Diagnostics

Variable

DIA_ERRStatistics_REC

-

DIA_ERRStatistics‌_Type

Optional

-

Variable

DIA_NMTTelegrCount_REC

-

DIA_NMTTelegrCount‌_Type

Optional

-

Variable

ERR_ErrorRegister_U8

ErrorRegisterBits

PowerlinkVariableType

Mandatory

R

Variable

ERR_History_ADOM

PowerlinkError‌EntryDataType [ ]

PowerlinkArrayType

Optional

R

Variable

PDO_ErrMapVers_OSTR

ByteString

PowerlinkVariableType

Optional

RW

Variable

PDO_ErrShort_RX_OSTR

ByteString

PowerlinkVariableType

Optional

RW

Functional Group Configuration

Variable

NMT_ConsumerHeartbeatTime_AU32

UInt32 [ ]

PowerlinkArrayType

Optional

RW,S

Variable

NMT_CycleLen_U32

UInt32

PowerlinkVariableType

Mandatory

RW,S,VR

Variable

NMT_CycleTiming_REC

-

NMT_CycleTiming‌_Type

Mandatory

-

Variable

NMT_IsochrSlotAssign_AU8

Byte [ ]

PowerlinkArrayType

Optional

RW,S,VR

Variable

NMT_MultiplCycleAssign_AU8

Byte [ ]

PowerlinkArrayType

Optional

RW,S,VR

Variable

NMT_NodeAssignment_AU32

UInt32 [ ]

PowerlinkArrayType

Optional

RW,S

Variable

NMT_PResPayloadLimitList_AU16

UInt16 [ ]

PowerlinkArrayType

Optional

RW,S,VR

Variable

NMT_RestoreDefParam_REC

-

NMT_ParameterStorage‌_Type

Optional

-

Variable

NMT_StoreParam_REC

Variable

PDL_MnExpAppSwDateList_AU32

UInt32 [ ]

PowerlinkArrayType

Optional

RW,S

Variable

PDL_MnExpAppSwTimeList_AU32

UInt32 [ ]

PowerlinkArrayType

Optional

RW,S

Variable

PDO_RxCommParam_00h_REC

-

PDO_CommParam‌Record_Type

Optional

-

Variable

PDO_RxCommParam_01h_REC

Variable

PDO_RxCommParam_02h_REC

Variable

PDO_RxCommParam_03h_REC

Variable

PDO_RxMappParam_00h_AU64

PowerlinkPDO‌Mapping‌Entry‌DataType [ ]

PowerlinkArrayType

Optional

RW,S

Variable

PDO_RxMappParam_01h_AU64

Variable

PDO_RxMappParam_02h_AU64

Variable

PDO_RxMappParam_03h_AU64

Variable

PDO_TxCommParam_00h_REC

-

PDO_CommParam‌Record_Type

Optional

-

Variable

PDO_TxMappParam_00h_AU64

PowerlinkPDO‌Mapping‌Entry‌DataType [ ]

PowerlinkArrayType

Optional

RW,S

Variable

SDO_CmdLayerTimeout_U32

UInt32

PowerlinkVariableType

Optional

RW,S,VR

Variable

SDO_SequLayerNoAck_U32

UInt32

PowerlinkVariableType

Optional

RW,S,VR

Variable

SDO_SequLayerTimeout_U32

UInt32

PowerlinkVariableType

Mandatory

RW,S,VR

Functional Group Status

Variable

NMT_CurrNMTState_U8

Powerlink‌NMTState‌Enumeration

PowerlinkVariableType

Mandatory

R

Variable

NMT_InterfaceGroup_0h_REC

-

NMT_InterfaceGroup_Type

Mandatory

-

Variable

NMT_RelativeLatencyDiff_AU32

UInt32 [ ]

PowerlinkArrayType

Optional

R

Functional Group Control

Variable

INP_ProcessImage_REC

-

INP_ProcessImage_Type

Optional

-

Variable

NMT_ResetCmd_U8

Powerlink‌NMTResetCmd‌Enumeration

PowerlinkVariableType

Mandatory

RW

FunctionalGroup SdoServices

Method

ReadByIndex

Defined in 6.2.3 Method ReadByIndex

Mandatory

Method

WriteByIndex

Defined in 6.2.4 Method WriteByIndex

Mandatory

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]BaseDataTypeData

[out]UInt32 PowerlinkAbortCode

);

Argument

Description

Index

Index of the POWERLINK Object in the POWERLINK Object Dictionary

SubIndex

Sub-Index of the POWERLINK Object in the POWERLINK Object Dictionary

Data

Value 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

Good

0

The read access was successful

Bad_ResourceInvalid

-

The POWERLINK Device is not available, the output argument PowerlinkAbortCode will be set to 0x0504 0000 (timeout)

Bad_NotFound

0x0602 0000

Object does not exist in the POWERLINK Object Dictionary

0x0609 0011

Sub-Index does not exist

Bad_Timeout

0x0504 0000

The operation timed out / SDO protocol timed out

Bad_NotReadable

0x0601 0001

Attempt to read a write-only POWERLINK Object

Bad_CommunicationError

All other SDO Abort Codes

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]BaseDataTypeData

[out]UInt32 PowerlinkAbortCode

);

Argument

Description

Index

Index of the POWERLINK Object in the POWERLINK Object Dictionary

SubIndex

Sub-Index of the POWERLINK Object in the POWERLINK Object Dictionary

Data

Data 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

Good

0

The write access was successful

Bad_ResourceInvalid

-

The POWERLINK Device is not available, the output argument PowerlinkAbortCode will be set to 0x0504 0000 (timeout)

Bad_NotFound

0x0602 0000

Object does not exist in the POWERLINK Object Dictionary

0x0609 0011

Sub-Index does not exist

Bad_Timeout

0x0504 0000

The operation timed out / SDO protocol timed out

Bad_NotSupported

0x0601 0000

Unsupported access to an POWERLINK Object

Bad_NotWritable

0x0601 0002

Attempt to write a read-only POWERLINK Object

Bad_OutOfRange

0x0609 0030

Value range of parameter exceeded

0x0609 0031

Value of parameter written too high

0x0609 0032

Value of parameter written too low

Bad_TypeMismatch

0x0607 0010

length of service parameter does not match

0x0607 0012

length of service parameter too high

0x0607 0013

length of service parameter too low

Bad_CommunicationError

All other SDO Abort Codes