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