In Table 16, the Methods of the ObjectType, referenced via the MethodSet Object are defined. The first three Methods provide access rather on the protocol level and require the user calling the Methods to understand those protocol-level data transfers. The other Methods are specific IO-Link system commands mapped to OPC UA Methods.

Table 16 – MethodSet of IOLinkDeviceType

References

Node Class

BrowseName

Modelling Rule

The following Methods are also referenced by the General Object

HasComponent

Method

ReadISDU

Mandatory

HasComponent

Method

WriteISDU

Mandatory

HasComponent

Method

SystemCommand

Mandatory

HasComponent

Method

ParamUploadFromDeviceStart

Mandatory

HasComponent

Method

ParamUploadFromDeviceStop

Mandatory

HasComponent

Method

ParamDownloadToDeviceStart

Mandatory

HasComponent

Method

ParamDownloadToDeviceStop

Mandatory

HasComponent

Method

ParamDownloadToDeviceStore

Mandatory

HasComponent

Method

ParamBreak

Mandatory

HasComponent

Method

DeviceReset

Mandatory

HasComponent

Method

ApplicationReset

Mandatory

HasComponent

Method

RestoreFactorySettings

Mandatory

The Method ReadISDU reads parameters from the device using the ISDU mechanism.

Signature

ReadISDU (

[in]UInt16 Index,

[in]Byte SubIndex,

[out]Byte[] Result,

[out]UInt16 ErrorType,

[out]Int32 Status

);

Argument

Description

Index

Index, 8-bit index and 16-bit index are both mapped to UInt16

SubIndex

SubIndex, set to 0 if not used

Result

Hex Values returned as data in case of a successful operation. Data needs to be interpreted according to the IO-Link Specification. Empty array if operation was not successful.

ErrorType

Hex Values converted to UInt16 returned as ErrorType in case the operation was not successful. Data needs to be interpreted according to the IO-Link Specification. 0 if the operation was successful.

Status

Returns the status of the operation.

0: OK, operation successful

-1: Operation already running, either by same or different ISDU read or write

-2: Device not active, either device not connected, not in operation mode or port is configured not to be in IO-Link mode

-3: Operation executed but error code returned from device, details are provided in ErrorType

The Method WriteISDU writes parameters on the device using the ISDU mechanism.

Signature

WriteISDU (

[in]UInt16 Index,

[in]Byte SubIndex,

[in]Byte[] Data,

[out]UInt16 ErrorType,

[out]Int32 Status

);

Argument

Description

Index

Index, 8-bit index and 16-bit index are both mapped to UInt16

SubIndex

SubIndex, set to 0 if not used

Data

Hex Values that need to be composed according to the IO-Link Specification

ErrorType

Hex Values converted to UInt16 returned as ErrorType in case the operation was not successful. Data needs to be interpreted according to the IO-Link Specification. 0 if the operation was successful.

Status

Returns the status of the operation.

0: OK, operation successful

-1: Operation already running, either by same or different ISDU read or write

-2: Device not active, either device not connected, not in operation mode or port is configured not to be in IO-Link mode

-3: Operation executed but error code returned from device, details are provided in ErrorType

The method SystemCommand executes an IO-Link SystemCommand as defined in IO-Link Specification.

IO-Link SystemCommands shall be executed by an ISDU write request on Index 0x0002, or, in case ISDUs are not supported, via a write on Index 0x0F on Direct Parameter Page 1.

Signature

SystemCommand (

[in]Byte Cmd,

[out]UInt16 ErrorType,

[out]Int32 Status

);

Argument

Description

Cmd

Index of the SystemCommand

ErrorType

Hex Values converted to UInt16 returned as ErrorType in case the operation was not successful. Data needs to be interpreted according to the IO-Link Specification. 0 if the operation was successful.

Note that in case the device supports no ISDUs and the SystemCommand is triggered via writing Parameter Page 1, no indication of a positive or negative response is provided and the ErrorType is always 0.

Note that the SystemCommand is optional. In case the IO-Link Device does not support it, the ErrorType returned by the IO-Link Device shall be returned.

Status

Returns the status of the operation.

0: OK, operation successful

-1: Operation already running, either by same or different ISDU read or write

-2: Device not active, either device not connected, not in operation mode or port is configured not to be in IO-Link mode

-3: Operation executed but error code returned from device, details are provided in ErrorType

This method executes the SystemCommand 0x01.

Signature

ParamUploadFromDeviceStart (

[out]UInt16 ErrorType,

[out]Int32 Status

);

Argument

Description

ErrorType

Hex Values converted to UInt16 returned as ErrorType in case the operation was not successful. Data needs to be interpreted according to the IO-Link Specification. 0 if the operation was successful.

Note that in case the device supports no ISDUs and the SystemCommand is triggered via writing Parameter Page 1, no indication of a positive or negative response is provided and the ErrorType is always a 0.

Status

Returns the status of the operation.

0: OK, operation successful

-1: Operation already running, either by same or different ISDU read or write

-2: Device not active, either device not connected, not in operation mode or port is configured not to be in IO-Link mode

-3: Operation executed but error code returned from device, details are provided in ErrorType

This method executes the SystemCommand 0x02. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

ParamUploadFromDeviceStop (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x03. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

ParamDownloadToDeviceStart (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x04. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

ParamDownloadToDeviceStop (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x05. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

ParamDownloadToDeviceStore (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x06. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

ParamBreak (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x80. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

DeviceReset (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x81. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

ApplicationReset (

[out]UInt16 ErrorType,

[out]Int32 Status

);

This method executes the SystemCommand 0x82. The same argument description as for ParamUploadFromDeviceStart (see 7.1.4.4) applies.

Signature

RestoreFactorySettings (

[out]UInt16 ErrorType,

[out]Int32 Status

);