7.1.4 Methods of MethodSet

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
HasComponentMethodReadISDUMandatory
HasComponentMethodWriteISDUMandatory
HasComponentMethodSystemCommandMandatory
HasComponentMethodParamUploadFromDeviceStartMandatory
HasComponentMethodParamUploadFromDeviceStopMandatory
HasComponentMethodParamDownloadToDeviceStartMandatory
HasComponentMethodParamDownloadToDeviceStopMandatory
HasComponentMethodParamDownloadToDeviceStoreMandatory
HasComponentMethodParamBreakMandatory
HasComponentMethodDeviceResetMandatory
HasComponentMethodApplicationResetMandatory
HasComponentMethodRestoreFactorySettingsMandatory
7.1.4.1 ReadISDU

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
IndexIndex, 8-bit index and 16-bit index are both mapped to UInt16
SubIndexSubIndex, set to 0 if not used
ResultHex 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.
ErrorTypeHex 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

7.1.4.2 WriteISDU

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
IndexIndex, 8-bit index and 16-bit index are both mapped to UInt16
SubIndexSubIndex, set to 0 if not used
DataHex Values that need to be composed according to the IO-Link Specification
ErrorTypeHex 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

7.1.4.3 SystemCommand

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
CmdIndex 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

7.1.4.4 ParamUploadFromDeviceStart

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

7.1.4.5 ParamUploadFromDeviceStop

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
		);
	
7.1.4.6 ParamDownloadToDeviceStart

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
		);
	
7.1.4.7 ParamDownloadToDeviceStop

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
		);
	
7.1.4.8 ParamDownloadToDeviceStore

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
		);
	
7.1.4.9 ParamBreak

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
		);
	
7.1.4.10 DeviceReset

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
		);
	
7.1.4.11 ApplicationReset

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
		);
	
7.1.4.12 RestoreFactorySettings

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
		);