OPC 30120: OPC Unified Architecture for IO-Link

Release 1.0
2018-12-01

Copyright (c) 2020 OPC Foundation
Generated on 6/23/2020 4:02:38 AM.

This document is subject to the license terms described here.

This document is a copy of the original which can be found here.

Table of Contents

1 Scope

2 Normative References

3 Terms, Definitions, and Conventions
    3.1 Overview
    3.2 OPC UA for IO-Link Information Model Terms
        3.2.1 IO-Link Device
        3.2.2 IO-Link Master
    3.3 Abbreviations and Symbols
    3.4 Conventions used in this Document
        3.4.1 Conventions for Terms
        3.4.2 Conventions for Node Descriptions
        3.4.3 NodeIds and BrowseNames
            3.4.3.1 NodeIds
            3.4.3.2 BrowseNames
        3.4.4 Common Attributes
            3.4.4.1 General
            3.4.4.2 Objects
            3.4.4.3 Variables
            3.4.4.4 VariableTypes
            3.4.4.5 Methods

4 General Information on IO-Link and OPC UA
    4.1 Introduction to IO-Link
        4.1.1 What is IO-Link?
        4.1.2 Basics of IO-Link
        4.1.3 Device Description
    4.2 Introduction to OPC Unified Architecture
        4.2.1 What is OPC UA?
        4.2.2 Basics of OPC UA
        4.2.3 Information Modelling in OPC UA
            4.2.3.1 Concepts
            4.2.3.2 Graphical Notation
        4.2.4 OPC UA Profiles
        4.2.5 Namespaces
        4.2.6 Companion Specifications

5 Combining OPC UA and IO-Link
    5.1 System Architecture
    5.2 Use Cases
        5.2.1 UC.001: Configure an IO-Link Master
        5.2.2 UC.002: Find IO-Link Masters
        5.2.3 UC.003: Find IO-Link Devices
        5.2.4 UC.004: Initial commissioning of IO-Link Device
        5.2.5 UC.005: Configure device metadata
        5.2.6 UC.006: Configure IO-Link subscriptions
        5.2.7 UC.007: Disconnection of IO-Link Device
        5.2.8 UC.008: Read product identification
        5.2.9 UC.009: Read diagnostics data
        5.2.10 UC.010: Read operating and failure statistics
        5.2.11 UC.011: Reset operating and failure statistics
        5.2.12 UC.012: Optimize machine settings
        5.2.13 UC.013: Plant and machine status supervision
        5.2.14 UC.014: Faulty device replacement
        5.2.15 UC.015: Firmware update
        5.2.16 UC.016: Asset Management
        5.2.17 UC.017: Cloud-connectivity at Edge Gateway

6 IO-Link Information Model Overview
    6.1 Modelling Concepts
        6.1.1 IO-Link Master
        6.1.2 IO-Link Port
        6.1.3 IO-Link Device
        6.1.4 IO-Link Events
        6.1.5 Block operations: Up- and Download
        6.1.6 Managing IODDs
        6.1.7 Relating IO-Link Devices to IO-Link Ports
    6.2 Model Overview
    6.3 Mapping IODD information to OPC UA ObjectTypes

7 OPC UA ObjectTypes
    7.1 IOLinkDeviceType ObjectType Definition
        7.1.1 Example
        7.1.2 Overview
        7.1.3 Variables of ParameterSet
        7.1.4 Methods of MethodSet
            7.1.4.1 ReadISDU
            7.1.4.2 WriteISDU
            7.1.4.3 SystemCommand
            7.1.4.4 ParamUploadFromDeviceStart
            7.1.4.5 ParamUploadFromDeviceStop
            7.1.4.6 ParamDownloadToDeviceStart
            7.1.4.7 ParamDownloadToDeviceStop
            7.1.4.8 ParamDownloadToDeviceStore
            7.1.4.9 ParamBreak
            7.1.4.10 DeviceReset
            7.1.4.11 ApplicationReset
            7.1.4.12 RestoreFactorySettings
    7.2 IOLinkIODDDeviceType
        7.2.1 General information on IODDs
        7.2.2 Example
        7.2.3 Overview
        7.2.4 Variables of the ParameterSet Object
        7.2.5 Variables of the IODDInformation Object
        7.2.6 Variables of the DeviceTypeImage Object
    7.3 ObjectTypes generated based on IODDs
        7.3.1 General
        7.3.2 NodeId of generated ObjectTypes and their InstanceDeclarations
        7.3.3 Namespace of the BrowseNames
        7.3.4 Mapping to InstanceDeclarations inherited from IOLinkIODDDeviceType
        7.3.5 Mapping of IODD Menus
        7.3.6 Mapping of IODD Variables
        7.3.7 Mapping of Methods from IODD Menus
        7.3.8 Mapping of StdVariableRef and StdRecordItemRef
        7.3.9 Mapping of ProcessDataCollection and ProcessDataRefCollection
        7.3.10 Mapping of DirectParameterOverlay
        7.3.11 Mapping of Default Values
        7.3.12 Mapping of DeviceVariantCollection
        7.3.13 Mapping of EventCollection
    7.4 Creation of Instances based on ObjectTypes generated out of IODDs
    7.5 IOLinkMasterType ObjectType Definition
        7.5.1 Example
        7.5.2 Overview
        7.5.3 Variables of ParameterSet
        7.5.4 Methods of MethodSet
            7.5.4.1 Restart
            7.5.4.2 ResetStatisticsOnAllPorts
    7.6 IOLinkPortType ObjectType Definition
        7.6.1 Example
        7.6.2 Overview
        7.6.3 Variables of ParameterSet
        7.6.4 Methods of MethodSet
            7.6.4.1 ResetStatistics
            7.6.4.2 UpdateConfiguration
    7.7 DeviceVariantType

8 OPC UA Objects, Variables and Methods
    8.1 General
    8.2 IODDManagement Object
    8.3 RemoveIODD Method
    8.4 IOLinkMasterSet Object

9 OPC UA EventTypes
    9.1 General
    9.2 IOLinkEventType
    9.3 IOLinkDeviceEventType
    9.4 IOLinkIODDDeviceEventType
    9.5 IOLinkPortEventType
    9.6 IOLinkMasterEventType
    9.7 IOLinkAlarmType
    9.8 IOLinkDeviceAlarmType
    9.9 IOLinkIODDDeviceAlarmType
    9.10 IOLinkPortAlarmType
    9.11 IOLinkMasterAlarmType

10 OPC UA VariableTypes
    10.1 ProcessDataVariableType

11 OPC UA ReferenceTypes
    11.1 HasIdentificationMenu
    11.2 HasParameterMenu
    11.3 HasObservationMenu
    11.4 HasDiagnosisMenu

12 Mapping of DataTypes
    12.1 Overview
    12.2 Primitive DataTypes
        12.2.1 Boolean DataType
        12.2.2 Integer DataTypes
        12.2.3 Float DataType
        12.2.4 String DataType
        12.2.5 Byte[] DataType
        12.2.6 DateTime DataType
            12.2.6.1 Overview
            12.2.6.2 Conversion from IO-Link TimeT to OPC UA DateTime
            12.2.6.3 Conversion from OPC UA DateTime to IO-Link TimeT
            12.2.6.4 Conversion of special values (Summary)
        12.2.7 Duration DataType
            12.2.7.1 Duration DataType used for TimeSpanT
                12.2.7.1.1 Overview
                12.2.7.1.2 Conversion from IO-Link TimeSpanT to OPC UA Duration
                12.2.7.1.3 Conversion from OPC UA Duration to IO-Link TimeSpanT
            12.2.7.2 Duration DataType used for values coded with 1 byte
    12.3 Mapping of Records and Arrays
        12.3.1 Overview
        12.3.2 Structure DataType
        12.3.3 Array DataTypes
    12.4 Enumeration and OptionSet DataTypes
        12.4.1 EncodingEnum

13 Standardized Properties and Mapping to the Properties
    13.1 InstrumentRange
    13.2 InstrumentRanges
    13.3 EnumValues
    13.4 TrueState and FalseState
    13.5 Encoding
    13.6 DisplayFormat

14 ISDU Error Handling
    14.1 Overview
    14.2 Occurrence of ISDU Errors
    14.3 Mapping of ISDU Errors in DiagnosticInfo
    14.4 Content of localizedText in DiagnosticInfo
        14.4.1 No IODD information available
        14.4.2 IODD information available

15 Profiles and Namespaces
    15.1 Namespace Metadata
        15.1.1 Namespace http://opcfoundation.org/UA/IOLink/
        15.1.2 Namespace http://opcfoundation.org/UA/IOLink/IODD/
    15.2 Conformance Units and Profiles
    15.3 Server Facets
        15.3.1 IO-Link Event Facet
        15.3.2 IO-Link Base Condition Facet
        15.3.3 IO-Link Alarm Facet
    15.4 Server Profiles
        15.4.1 IO-Link Base Profile
        15.4.2 IO-Link Advanced Profile
    15.5 Client Facets
    15.6 Handling of OPC UA namespaces

Annex A (normative): OPC UA for IO-Link Namespace and Mappings
    A.1 Namespace and identifiers for OPC UA for IO-Link Information Model
    A.2 Profile URIs for OPC UA for IO-Link Information Model

Annex B (informative): Aggregation as System Architecture Option
    B.1 Overview
    B.2 System Architecture

Annex C (normative): EngineeringUnits
    C.1 Overview