In Figure 24 an example of an instance of the IOLinkMasterType is shown. The example is using only the mandatory InstanceDeclarations, in order to give an overview on the ObjectType. Several Properties are directly connected to the Object, whereas the Parameters are connected via the ParameterSet, Methods via the MethodSet and both are organized via different FunctionalGroups (Identification, Capabilities, Statistics and Management).

image028.png

Figure 24 – Example instance of IOLinkMasterType (only mandatory InstanceDeclarations)

The IOLinkMasterType provides information of an IO-Link Master and is formally defined in Table 23.

Table 23 – IOLinkMasterType Definition

Attribute

Value

BrowseName

IOLinkMasterType

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

Capabilities

FunctionalGroupType

Mandatory

HasComponent

Object

Management

FunctionalGroupType

Mandatory

HasComponent

Object

Statistics

FunctionalGroupType

Mandatory

HasProperty

Variable

DeviceID

UInt32

PropertyType

Mandatory

HasProperty

Variable

ProductID

String

PropertyType

Optional

HasProperty

Variable

ProductText

String

PropertyType

Optional

HasProperty

Variable

RevisionID

String

PropertyType

Optional

HasProperty

Variable

VendorID

UInt16

PropertyType

Optional

HasProperty

Variable

VendorURL

String

PropertyType

Optional

HasProperty

Variable

IOLinkStackRevision

String

PropertyType

Optional

HasProperty

Variable

MasterConfigurationDisabled

Boolean

PropertyType

Mandatory

HasComponent

Object

Port<n>

IOLinkPortType

MandatoryPlaceholder

HasComponent

Object

Alarms

FolderType

Optional

GeneratesEvent

ObjectType

IOLinkMasterEventType

Defined in 9.6.

GeneratesEvent

ObjectType

IOLinkMasterAlarmType

Defined in 9.11.

The IOLinkMasterType ObjectType is a concrete type and can be used directly. Vendors may create subtypes of the IOLinkMasterType to add vendor-specific extensions.

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 24. Those Parameters together uniquely identify the IO-Link Master (see OPC 10000-100 for details). Therefore, the ObjectType overrides the Object and changes the ModellingRule to Mandatory.

Table 24 – References of Identification Object

References

BrowseName

Comment

Organizes

DeviceID

Variable defined in Table 23.

Organizes

VendorID

Variable defined in Table 23.

Organizes

ApplicationSpecificTag

Variable defined in Table 28.

Organizes

FunctionTag

Variable defined in Table 28.

Organizes

LocationTag

Variable defined in Table 28.

Organizes

MasterType

Variable defined in Table 28.

  • The Object <GroupIdentifier > has the ModellingRule OptionalPlaceholder and is intended to group the Parameters. It is already used in this ObjectType by adding the Objects Capabilities, Management and Statistics. Vendors may add vendor-specific Objects to group additional Parameters.
  • 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 Master at the same time. Locking an IOLinkMasterType Object includes locking all its ports and the IOLinkDeviceType Objects connected to the ports.

The ObjectType defines additional InstanceDeclarations:

  • The mandatory Object Capabilities shall reference the Parameters defined in Table 25. Servers may add vendor-specific Parameters or Methods to this Object.

Table 25 – References of Capabilities Object

References

BrowseName

Comment

Organizes

MaxNumberOfPorts

Variable defined in Table 28.

Organizes

MaxPowerSupply

Variable defined in Table 28.

Table 26 – References of Management Object

References

BrowseName

Comment

Organizes

Restart

Method defined in Table 30.

Table 27 – References of Statistics Object

References

BrowseName

Comment

Organizes

ResetStatisticsOnAllPorts

Method defined in Table 30.

Organizes

NumberOfIOLinkMasterStarts

Variable defined in Table 28.

Organizes

DateOfLastStatisticsReset

Variable defined in Table 28.

  • The mandatory, read-only Variable DeviceID shall be mapped to MasterID of the MasterIdent structure defined in the SMI (see IO-Link Addendum). The value (three bytes) shall be mapped to an UInt32, using Big Endian.
  • The optional, read-only Variable ProductID provides a vendor-specific product or type identification like the ProductID of the IOLinkDeviceType. The implementation is vendor-specific.
  • The optional, read-only Variable ProductText provides additional, vendor-specific product information like the ProductText of the IOLinkDeviceType. The implementation is vendor-specific.
  • The optional, read-only Variable RevisionID contains the IO-Link protocol version supported by the IO-Link Master, like the RevisionID of the IOLinkDeviceType. The same rules as defined for RevisionID in IOLinkDeviceType apply (see section 7.1).
  • The optional, read-only Variable VendorID of type UInt16 shall be mapped to VendorID of the MasterIdent structure defined in the SMI (see IO-Link Addendum), using the same type.
  • The optional Variable VendorURL provides a link to the website of the vendor of the IO-Link Master. The implementation is vendor-specific.
  • The optional read-only Variable IOLinkStackRevision provides the revision of the IO-Link stack implementation used by the IO-Link Master. The implementation is vendor-specific.
  • The mandatory Variable MasterConfigurationDisabled indicates whether configuration changes are allowed via OPC UA. If set to “True”, nearly all configuration settings become read-only and cannot be changed via OPC UA anymore. The Variable setting is vendor-specific, including whether it can be changed via OPC UA. For example, if a fieldbus is currently active on the IO-Link Master, a server might set this Variable to “True”.

That includes in detail following rules:

  • The Method Restart of the IO-Link Master becomes not executable.
  • For all Ports of the IO-Link Master the Method UpdateConfiguration becomes not executable.
  • For all Ethernet configurations connected to the Fieldbus the configuration becomes read-only.

The Method ResetStatistics on the Port and ResetStatisticsOnAllPorts on the IO-Link Master shall still be executable.

There is no direct relation between the MasterConfigurationDisabled Variable and the Lock Object. The Lock Objects prevents different OPC UA Clients to configure the IO-Link Master at the same time whereas the MasterConfigurationDisabled Variable indicates that the IO-Link Master is in a state within it cannot be configured by any OPC UA Client. When the MasterConfigurationDisabled Variable is set to “True” Servers may prevent the usage of the Lock Object for all Clients.

  • The Port<n> Object of ModellingRule MandatoryPlaceholder represents the ports of the IO-Link Master. For each port of the IO-Link Master one Object of type IOLinkPortType shall be provided, where <n> represents the number of the port. For example, a master having two ports has the Objects Port1 and Port2. How the counting starts (e.g. Port0 or Port1) is vendor-specific.
  • 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.

In Table 28, the Parameters of the ObjectType, referenced via the ParameterSet Object, are defined.

Table 28 – ParameterSet of IOLinkMasterType

References

Node Class

BrowseName

DataType

TypeDefinition

Modelling Rule

The following Parameters are also referenced by the Capabilities Object

HasComponent

Variable

MaxNumberOfPorts

Byte

BaseDataVariableType

Mandatory

HasComponent

Variable

MaxPowerSupply

Double

BaseDataVariableType

Mandatory

The following Parameters are also referenced by the Identification Object

HasComponent

Variable

ApplicationSpecificTag

String

BaseDataVariableType

Mandatory

HasComponent

Variable

FunctionTag

String

BaseDataVariableType

Mandatory

HasComponent

Variable

LocationTag

String

BaseDataVariableType

Mandatory

HasProperty

Variable

MasterType

Byte

MultiStateDiscreteType

Mandatory

The following Parameters are also referenced by the Statistics Object

HasComponent

Variable

DateOfLastStatisticsReset

DateTime

BaseDataVariableType

Optional

HasComponent

Variable

NumberOfIOLinkMasterStarts

UInt32

BaseDataVariableType

Optional

The mandatory, read-only Variable MaxNumberOfPorts shall be mapped to MaxNumberOfPorts of the MasterIdent structure defined in the SMI interface (see IO-Link Addendum).

The mandatory, read-only Variable MaxPowerSupply shall provide the overall amount of power provided together on all ports of the IO-Link Master in ampere. For example, a 4-port IO-Link Master may provide max. 2 A on each port but an overall MaxPowerSupply of 6 A, so not each port can consume 2 A at the same time. The Variable shall provide the EngineeringUnits Property defined in OPC 10000-3, having the value set to {namespaceUri = “http://www.opcfoundation.org/UA/units/un/cefact”; unitId = 4279632; displayName = {“en”,"A"}; description = {“en”, "ampere"}} (for ampere). The Property shall be read-only and have the ModellingRule Mandatory, so it is reflected on all instances.

The mandatory, writeable Variable ApplicationSpecificTag provides the same information as the ApplicationSpecificTag defined for an IO-Link Device on the IO-Link Master level. The server shall manage the value in a persistent manner. If a fieldbus mapping of the IO-Link Master exists providing the same information, consistency shall be provided by the OPC UA Server.

The mandatory, writeable Variable FunctionTag provides the same information as the FunctionTag defined on an IO-Link Device on the IO-Link Master level. The server shall manage the value in a persistent manner. If a fieldbus mapping of the IO-Link Master exists providing the same information, consistency shall be provided by the OPC UA Server.

The mandatory, writeable Variable LocationTag provides the same information as the LocationTag defined for an IO-Link Device on the IO-Link Master level. The server shall manage the value in a persistent manner. If a fieldbus mapping of the IO-Link Master exists providing the same information, consistency shall be provided by the OPC UA Server.

The mandatory, read-only Variable MasterType shall be mapped to MasterType of the MasterIdent structure defined in the SMI (see IO-Link Addendum). The Unsigned8 is mapped directly to the DataType Byte. The Variable is of VariableType MultiStateDiscreteType defined in OPC 10000-8. The mandatory Property EnumStrings of the VariableType, which is an array of LocalizedText, shall contain the content as defined in Table 29.

Table 29 – Defined elements of EnumStrings array of MasterType Variable

Element number (starting with 0)

Message (for locale “en”)

0

Unspecific

1

Master acc. V1.0

2

Master acc. V1.1

Servers are allowed to add additional entries into the EnumStrings array. Servers may provide translations of the texts in different locales.

The optional, read-only Variable DateOfLastStatisticsReset contains the timestamp of the answer to the last call of the Method ResetStatisticsOnAllPorts. The timestamp information shall be as precise as possible. If the ResetStatisticsOnAllPorts Method was never called then DateOfLastStatisticsReset indicates the startup time. The optional Variable shall be provided when the optional Method ResetStatisticsOnAllPorts is provided.

The following Variable indicates the incidents since DateOfLastStatisticsReset. The server should persist statistics, also when the IO-Link Master or the OPC UA Server is restarted. However, if the statistics become inconsistent, the server is allowed to do an internal reset. This will result in the update of DateOfLastStatisticsReset. If the value of a counting Variable becomes larger than the maximum value of the DataType, the value shall remain on the maximum value.

The optional, read-only Variable NumberOfIOLinkMasterStarts indicates how often the IO-Link Master was started since DateOfLastStatisticsReset. This includes starts on power up as well as warm starts and restarts due to errors. This variable is reset with the Method ResetStatisticsOnAllPorts to 0. When the IO-Link Master starts for the very first time, the value is 1 as it has started once.

In Table 30, the Methods of the ObjectType, referenced via the MethodSet Object are defined.

Table 30 – MethodSet of IOLinkMasterType

References

Node Class

BrowseName

Modelling Rule

The following Methods are also referenced by the Management Object

HasComponent

Method

Restart

Mandatory

The following Methods are also referenced by the Statistics Object

HasComponent

Method

ResetStatisticsOnAllPorts

Optional

The Method Restart restarts the IO-Link Master.

Signature

Restart (

[in]Duration Delay,

[out]Int32 Status

);

Argument

Description

Delay

Time before the restart becomes effective.

Status

Returns the status of the operation.

0: OK, operation successful

-1: Operation already running

-2: Operation cannot be executed

-3: Operation cannot be executed because master reconfiguration is disabled.

The optional Method ResetStatisticsOnAllPorts resets all statistic data, including statistic data of the ports of the IO-Link Master. Statistic data of a port are all Parameters referenced by the Statistics Object of the IOLinkPortType Object starting with “NumberOf” and potentially vendor-specific extensions. Statistic data directly on the IO-Link Master includes the Variable NumberOfIOLinkMasterStarts and potential vendor-specific extensions. As soon as statistic data is provided by the server, the optional Method shall be provided.

Signature

ResetStatisticsOnAllPorts (

[out]Int32 Status

);

Argument

Description

Delay

Time before the reset becomes effective.

Status

Returns the status of the operation.

0: OK, operation successful

-1: Operation already running

-2: Operation cannot be executed.