The IOLinkDeviceType provides the generic information of an IO-Link Device and is formally defined in Table 8.
Table 8 – IOLinkDeviceType Definition
Attribute |
Value |
|||||
BrowseName |
IOLinkDeviceType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of TopologyElementType defined in OPC 10000-100. |
||||||
HasComponent |
Object |
2:ParameterSet |
|
BaseObjectType |
Mandatory |
|
HasComponent |
Object |
2:MethodSet |
|
BaseObjectType |
Mandatory |
|
HasComponent |
Object |
2:Identification |
|
FunctionalGroupType |
Mandatory |
|
HasComponent |
Object |
General |
|
FunctionalGroupType |
Mandatory |
|
|
|
|
|
|
|
|
HasProperty |
Variable |
2:SerialNumber |
String |
PropertyType |
Optional |
|
HasProperty |
Variable |
2:Manufacturer |
LocalizedText |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
2:Model |
LocalizedText |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
2:HardwareRevision |
String |
PropertyType |
Optional |
|
HasProperty |
Variable |
2:SoftwareRevision |
String |
PropertyType |
Optional |
|
HasComponent |
Variable |
2:DeviceHealth |
DeviceHealthEnum |
BaseDataVariableType |
Optional |
|
HasProperty |
Variable |
MinCycleTime |
Duration |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
RevisionID |
String |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
VendorID |
UInt16 |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
DeviceID |
UInt32 |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
DeviceAccessLocks |
UInt16 |
PropertyType |
Optional |
|
HasProperty |
Variable |
ProfileCharacteristic |
UInt16[] |
PropertyType |
Optional |
|
HasProperty |
Variable |
VendorText |
String |
PropertyType |
Optional |
|
HasProperty |
Variable |
ProductID |
String |
PropertyType |
Optional |
|
HasProperty |
Variable |
ProductText |
String |
PropertyType |
Optional |
|
|
|
|
|
|
|
|
HasComponent |
Object |
Alarms |
|
FolderType |
Optional |
|
|
|
|
|
|
|
|
GeneratesEvent |
ObjectType |
IOLinkDeviceEventType |
Defined in 9.3. |
|||
GeneratesEvent |
ObjectType |
IOLinkDeviceAlarmType |
Defined in 9.8 |
The IOLinkDeviceType ObjectType is a concrete type and can be used directly, if the server does not have an IODD describing the device. If the server has such an IODD, a subtype shall be created representing the concrete IODD (see section 7.3 for details).
The ObjectType inherits the following InstanceDeclarations directly or indirectly from the TopologyElementType defined in OPC 10000-100.
- The optional Object ParameterSet is used to reference all Parameters and shall be provided. Therefore, the ObjectType overrides the Object and changes the ModellingRule to Mandatory.
- The optional Object MethodSet is used to reference all Methods and shall be provided. Therefore, the ObjectType overrides the Object and changes the ModellingRule to Mandatory.
- The optional Object Identification shall be provided and shall reference the Parameters defined in Table 9. Those Parameters together uniquely identify the device (see OPC 10000-100 for details). Therefore, the ObjectType overrides the Object and changes the ModellingRule to Mandatory.
Table 9 – References of Identification Object
References |
BrowseName |
Comment |
Organizes |
DeviceID |
Variable defined in Table 8. |
Organizes |
VendorID |
Variable defined in Table 8. |
Organizes |
2:SerialNumber |
Variable defined in Table 8. |
Organizes |
ApplicationSpecificTag |
Variable defined in Table 12. |
Organizes |
FunctionTag |
Variable defined in Table 12. |
Organizes |
LocationTag |
Variable defined in Table 12. |
- The Object <GroupIdentifier > has the ModellingRule OptionalPlaceholder and is intended to group the Parameters. It is already used in the ObjectType to define the General Object.
- The optional Object Lock can be supported by a server to provide locking capabilities (see OPC 10000-100 for details). This is intended to prevent different clients and users to configure an IO-Link Device at the same time. The DeviceAccessLocks is used to disable the configuration of an IO-Link Device in general while it is set.
The ObjectType uses some InstanceDeclarations the same way as the DeviceType defined in OPC 10000-100.
- The Variable SerialNumber of DataType String shall be mapped to ISDU Index 0x0015 (Serial Number). If the device does not support this ISDU Index, the Variable shall not be provided.
- The Variable Manufacturer of DataType LocalizedText shall be mapped to ISDU Index 0x0010 (Vendor Name). As the name is intended to be locale-agnostic in IO-Link, the server may provide it with any LocaleId, the string shall be mapped to the text part of the LocalizedText. If the device does not support this ISDU Index, the VendorID (0x07 and 0x08 of Direct Parameter Page 1) shall be used, and either provided as integer representation in the text-part or by translating it internally to the Vendor Name managed by the IO-Link Community.
- The Variable Model of DataType LocalizedText shall be mapped to ISDU Index 0x0012 (Product Name). As the name is intended to be locale-agnostic in IO-Link, the server may provide it with any LocaleId, the string shall be mapped to the text part of the LocalizedText. If the device does not support this ISDU Index, the DeviceID (0x09, 0x0A and 0x0B of Direct Parameter Page 1) shall be used, and provided as integer representation in the text-part.
- The Variable HardwareRevision of DataType String shall be mapped to ISDU Index 0x0016 (Hardware Revision). If the device does not support this ISDU Index, the Variable shall not be provided.
- The Variable SoftwareRevision of DataType String shall be mapped to ISDU Index 0x0017 (Firmware Revision). If the device does not support this ISDU Index, the Variable shall not be provided.
- The Variable DeviceHealth of DataType DeviceHealthEnum shall be mapped to ISDU Index 0x0024 (Device Status). If the device does not support this ISDU Index, the Variable shall not be provided. The mapping of the concrete values is defined in Table 10.
Table 10 – Mapping of IO-Link Device Status to OPC UA DeviceHealth
Device Status |
DeviceHealth |
0 (Device is operating properly) |
NORMAL_0 |
1 (Maintenance-Required) |
MAINTENANCE_REQUIRED_4 |
2 (Out-of-Specification) |
OFF_SPEC_3 |
3 (Functional-Check) |
CHECK_FUNCTION_2 |
4 (Failure) |
FAILURE_1 |
5 – 255 (Reserved) |
- (would return a bad code) |
The ObjectType defines additional InstanceDeclarations:
- The mandatory Object General shall reference the Parameters and Methods defined in Table 11. It provides Parameters and Methods that are generally available on IO-Link Devices based on the IO-Link Specification.
Table 11 – References of General Object
References |
BrowseName |
Comment |
Organizes |
ApplicationSpecificTag |
Variable defined in Table 12. |
Organizes |
FunctionTag |
Variable defined in Table 12. |
Organizes |
LocationTag |
Variable defined in Table 12. |
Organizes |
ErrorCount |
Variable defined in Table 12. |
Organizes |
DetailedDeviceStatus |
Variable defined in Table 12. |
Organizes |
ProcessDataOutput |
Variable defined in Table 12. |
Organizes |
ProcessDataInput |
Variable defined in Table 12. |
Organizes |
OffsetTime |
Variable defined in Table 12. |
|
|
|
Organizes |
ReadISDU |
Method defined in Table 16. |
Organizes |
WriteISDU |
Method defined in Table 16. |
Organizes |
SystemCommand |
Method defined in Table 16. |
Organizes |
ParamUploadFromDeviceStart |
Method defined in Table 16. |
Organizes |
ParamUploadFromDeviceStop |
Method defined in Table 16. |
Organizes |
ParamDownloadToDeviceStart |
Method defined in Table 16. |
Organizes |
ParamDownloadToDeviceStop |
Method defined in Table 16. |
Organizes |
ParamDownloadToDeviceStore |
Method defined in Table 16. |
Organizes |
ParamBreak |
Method defined in Table 16. |
Organizes |
DeviceReset |
Method defined in Table 16. |
Organizes |
ApplicationReset |
Method defined in Table 16. |
Organizes |
RestoreFactorySettings |
Method defined in Table 16. |
- The read-only Variable MinCycleTime shall be mapped to address 0x02 of Direct Parameter Page 1. The value shall be mapped to Duration (see 12.2.7.2 for details).
- The read-only Variable RevisionID shall be mapped to address 0x04 of Direct Parameter Page 1. The value (one byte) shall be mapped to a String using the following rules: The MajorRev (Bit 4 to 7) shall be mapped to an Integer without leading zeros, the MinorRev (Bit 0 to 3) shall be mapped to an Integer without leading zeros and composed to a String as “<MajorRev>.<MinorRev>”. For example, the RevisionID for IO-Link 1.1 shall become the String “1.1”.
- The read-only Variable VendorID shall be mapped to address 0x07 and 0x08 of Direct Parameter Page 1. The value (two bytes) shall be mapped to an UInt16, using Big Endian and 0x07 being the most significant byte (MSB).
- The read-only Variable DeviceID shall be mapped to address 0x09, 0x0A and 0x0B of Direct Parameter Page 1. The value (three bytes) shall be mapped to an UInt32 (using the lowest three bytes), using Big Endian and 0x09 being the MSB.
- The writable, optional Variable DeviceAccessLocks shall be mapped to ISDU Index 0x000C. The value (RecordT of BooleanT of length 16) shall be mapped to an UInt16, where the lowest bit represents the first Boolean of the record. The Variable gives information whether the parameterization of the device is locked in general, the local parameterization or the local user interface is locked (details see IO-Link Specification). By writing the Variable the locks can also be changed. If the device supports the ISDU Index, the server shall provide the Variable, otherwise it shall not provide the Variable.
- The read-only Variable ProfileCharacteristic shall be mapped to ISDU Index 0x000D. The value (array of UIntegerT16) shall be mapped to an array of UInt16. If the device supports the ISDU Index, the server shall provide the Variable, otherwise it shall not provide the Variable.
- The read-only Variable VendorText shall be mapped to ISDU Index 0x0011. The value (StringT) shall be mapped to a String. If the device supports the ISDU Index, the server shall provide the Variable, otherwise it shall not provide the Variable.
- The read-only Variable ProductID shall be mapped to ISDU Index 0x0013. The value (StringT) shall be mapped to a String. If the device supports the ISDU Index, the server shall provide the Variable, otherwise it shall not provide the Variable.
- The read-only Variable ProductText shall be mapped to ISDU Index 0x0014. The value (StringT) shall be mapped to a String. If the device supports the ISDU Index, the server shall provide the Variable, otherwise it shall not provide the Variable.
- The optional Alarms Object is used to group all alarms of the instance, in case the server supports representing the alarms as Objects in the AddressSpace. If the server does not support this, the Object shall not be provided.