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).
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. |
- The mandatory Object Management shall reference the Methods defined in Table 26. Servers may add vendor-specific Parameters or Methods to the Object.
Table 26 – References of Management Object
References |
BrowseName |
Comment |
Organizes |
Restart |
Method defined in Table 30. |
- The mandatory Object Statistics shall reference the Parameters and Methods defined in Table 26. Servers may add vendor-specific Parameters or Methods to the Object.
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. |