6 PROFINET OPC UA Information Model

Today OPC UA information models focused on the functional aspects of a dedicated device and the management of parameters in a device parameter set, are typically based on the OPC UA for Devices (DI) base information model (defined in [OPC 10000-100], referenced as OPC UA DI also in this document). In contradiction to this the I4.0 system modelling, including multiple aggregated devices and controllers, requires the representation of several different aspects of the system and therefore will lead to more sophisticated modelling approaches. Such a system model approach using four different independent partial models called “Facets”, linked together by typified references is shown in Figure 16. Here the Asset partial model contains an independent model related to orderable components (assets). The Physical Network partial model contains the independent model of the ethernet network structure. The PROFNET partial model contains all communication related aspects of the PN Controllers and Devices in the system. The Function partial model at least represents the application function aspect of the system. Objects out of the different partial models are connected to each other by typified references expressing semantic information about their relationship.

To be future proof and easily integrable to different base modelling approaches, this Companion Specification defines the PROFINET information model as an independent partial model using the OPC UA Interface and AddIn technology (See [OPC 10001-7]) . This gives the opportunity to connect the same unique PROFINET base information model to the OPC UA DI base model and to use the same PROFNET base model as partial model for the PROFINET communication aspect in the “Facet” modelling approach as shown in Figure 16.

Figure 16 – “Facet” modelling approach for I4.0 System Modelling

The base information model in chapter 6.3 defines all common types of the PROFINET OPC UA information model.

The Annex B shows how to use the base information model together with OPC UA for Devices.

6.1 Conventions used in the mapping to PROFINET properties

Method Meaning
DCPThe mentioned values or properties are read with the DCP Identify service
GSDMLThe mentioned values or properties are read from a GSD file
ReadThe mentioned values or properties are read with a CLRPC or RSI read record service

The mentioned values are obtained by the blocks (optionally also subblocks) and fields given in the description. The following syntax is used: “Block | field”.

6.2 General conventions

All variables are read-only unless stated otherwise explicitly.

6.3 Base Information Model

6.3.1 OPC UA Object Types

The first 4 chapters of the base information model include the object types for the internal module/submodule structure of a PROFINET device and controller.

Figure 17 shows a simplified example for a module/submodule object structure. The container folders have been skipped in the figure.

Figure 17 – Object Structure

The Device View includes devices in the PROFINET network and their real existing modules and submodules.

The Controller / Application View includes the PROFINET connections (Application Relationships) and the expected modules and submodules which have been configured in the PROFINET controller.

Both views relate to each other by non-hierarchical references.

The chapter 6.3.1.7 includes the object types for the PROFINET network mapping.

The chapter 6.3.1.8 includes the 2 object types for the asset identification within a PROFINET device.

6.3.1.1 Object instances lifetime

All object instances of the base information model represent the online view on the PROFINET network.

All PROFINET objects modeled in this specification are only created in the address space when the OPC UA Server detects their PROFINET counterpart. The objects are removed from the address space when the OPC UA Server detects their absence in the PROFINET network or PROFINET device.

The chapter 6.10 of [PN TAD] describes the possible ways of implementing the PROFINET device discovery. The chapter 11.3 of [PN TAD] describes the detection of the real modules and real submodules of a device and how to get their identification and asset data.

All these ContainerType objects only exist if objects are available in the container.

6.3.1.2 Domain
6.3.1.2.1 IPnDomainType
Table 23 – IPnDomainType Definition
Attribute Value
BrowseNameIPnDomainType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseInterfaceType defined in [OPC 10000-5].
HasComponentObjectNodesPnEquipmentContainerTypeMandatory

The Nodes object of the Domain includes all device and controller nodes which belong to the PROFINET domain.

6.3.1.3 Node
6.3.1.3.1 IPnEquipmentType
Table 24 – IPnEquipmentType Definition
Attribute Value
BrowseNameIPnEquipmentType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseInterfaceType defined in [OPC 10000-5].
HasComponentObjectInterfacesPnInterfaceContainerTypeMandatory
HasComponentObjectModulesPnRealModuleContainerTypeOptional
HasComponentObjectAssetsPnAssetContainerTypeOptional
HasComponentObjectIMPnIdentificationTypeOptional
HasPropertyVariableVendorStringPropertyTypeOptional
HasComponentVariableDiagnosisPnDeviceDiagnosisDataType[]BaseDataVariableTypeOptional
HasComponentObjectAlarmsFolderTypeOptional
HasComponentMethodShowLocationShowLocationMethodOptional
GeneratesEventObjectTypePnDiagnosisAlarmType
GeneratesEventObjectTypePnAssetChangedEventType

If the IM component is provided, it must contain the data of the representative submodule for the device in accordance with the I&M0FilterDataDevice block (See [PN TAD] – Identification & Maintenance).

The Assets and IM objects are optional. If the interface is used with the OPC UA facet model, the asset data can be part of another facet (See chapter 6PROFINET OPC UA Information Model” and Figure 16 – “Facet” modelling approach for I4.0 System Modelling).

The <Assets> objects are only assets which are directly related to this device. Assets related to the modules or submodules are components of these objects.

The server may provide diagnosis data with the Diagnosis variable or by sending PnDiagnosisAlarmType events. The diagnosis data at the device object includes the diagnosis information of the whole device including the one of all real modules and real submodules. An OPC UA Server might provide instances of the PnDiagnosisAlarmType as objects under the Alarms object.

Mapping to PROFINET properties:

BrowseName Method Source
Vendor DCPDeviceVendorBlockRes | DeviceVendorValue
Diagnosis ReadDiagnosisData (0xF80C device specific)
6.3.1.3.1.1 ShowLocation Method

This optional method shall trigger a perceivable signal which allows the identification of the physical device represented by the device object the method is invoked on. This is usually accomplished with a blinking LED.

The method has no parameters (no [in] and no [out] parameters) and no return value.

Signature

	ShowLocation (
		);
6.3.1.3.2 PnEquipmentContainerType
Table 25 – PnEquipmentContainerType Definition
Attribute Value
BrowseNamePnEquipmentContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasComponentObject<PnEquipments>BaseObjectType

Optional

Placeholder

The <PnEquipments> shall have the references and components defined in Table 26 and Table 27.

Table 26 – PnEquipmentContainerType Additional References
Source Path Reference Type Is Forward Target Path
<PnEquipments>0:HasInterfaceTrue
Table 27 – PnEquipmentContainerType Additional Subcomponents
Source Path References NodeClass BrowseName

DataType

TypeDefinition

Others
Applied from IPnEquipmentType
<PnEquipments>0:HasComponentObjectInterfacesPnInterfaceContainerTypeM
<PnEquipments>0:HasComponentObjectModulesPnRealModuleContainerTypeO
<PnEquipments>0:HasComponentObjectAssetsPnAssetContainerTypeO
<PnEquipments>0:HasComponentObjectIMPnIdentificationTypeO
<PnEquipments>0:HasPropertyVariableVendorString
PropertyType
O
<PnEquipments>0:HasComponentVariableDiagnosisPnDeviceDiagnosisDataType[]
BaseDataVariableType
O
<PnEquipments>0:HasComponentObjectAlarmsFolderTypeO
<PnEquipments>0:HasComponentMethodShowLocationShowLocationMethodO
<PnEquipments>0:GeneratesEventObjectTypePnDiagnosisAlarmType
<PnEquipments>0:GeneratesEventObjectTypePnAssetChangedEventType

Mapping to PROFINET properties:

BrowseName Method Source
<PnEquipments>DCPList of IdentifyResBlock
6.3.1.3.3 IPnDeviceType
Table 28 – IPnDeviceType Definition
Attribute Value
BrowseNameIPnDeviceType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of IPnEquipmentType
HasPropertyVariableGSDDescriptionStringPropertyTypeOptional
HasComponentVariableStatePnDeviceStateEnumerationBaseDataVariableTypeOptional

The BrowseName of a device object instance shall be the content of the NameOfStation variable of the first interface sub module. If the NameOfStation variable is not set, the content of the MAC Address variable of the first interface sub module shall be used. The MAC address string should use the canonical format (separated with -, e.g. AC-FD-CE-EC-03-80).

If the GSDDescription property is provided, it must contain the InfoText with Device Id from the GSD (see mapping table below).

Mapping to PROFINET properties:

BrowseName Method Source
GSDDescription GSDDeviceIdentity | InfoText with Device Id
State ReadARData | NumberOfARs | ARProperties
Empty block if offline. Online if at least one ARProperties block with ARProperties.DeviceAccess != 1 can be found in the record data.
6.3.1.3.4 IPnControllerType
Table 29 – IPnControllerType Definition
Attribute Value
BrowseNameIPnControllerType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of IPnEquipmentType
HasComponentObjectARsPnApplicationRelationContainerTypeOptional
6.3.1.4 Application Relationship
6.3.1.4.1 PnApplicationRelationType
Table 30 – PnApplicationRelationType Definition
Attribute Value
BrowseNamePnApplicationRelationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasComponentObjectModulesPnExpectedModuleContainerTypeOptional
HasComponentVariableStatePnARStateEnumerationBaseDataVariableTypeMandatory
HasPropertyVariableIdGuidPropertyTypeMandatory
HasPropertyVariableTypePnARTypeEnumerationPropertyTypeMandatory
HasPropertyVariableSendClockFactorUInt16PropertyTypeOptional
HasPropertyVariableReductionRatioUInt16PropertyTypeOptional
HasPropertyVariableDataHoldFactorUInt16PropertyTypeOptional

The BrowseName of an application relationship object instance shall be the Id in standard GUID string format.

The Modules container object is the root of the configuration hierarchy consisting of the expected modules of the application relationship and their expected submodules (See chapter 6.3 - Base Information Model and Figure 17 – Object Structure).

The State variable has always the value CONNECTED on devices since the object only exists if an AR is established.

An IsPnApplicationRelationControllerInterface reference points to the interface object of the controller used for the AR. If the AR relates to the device an IsPnApplicationRelationDeviceInterface reference points to the interface object of the device. See sections 6.3.2.11 and 6.3.2.12 also.

Mapping to PROFINET properties:

BrowseName Method Source
Id ReadARData | ARUUID
Type ReadARData | ARType
SendClockFactor Readavailable also on Device/Gateway since PROFINET V2.4 via ARData | SendClockFactor or PDSyncData | SendClockFactor
ReductionRatio Readavailable also on Device/Gateway since PROFINET V2.4 via ARData | ReductionRatio
DataHoldFactor ReadIOCRBlockReq | DataHoldFactor (not available on Device/Gateway)
6.3.1.4.2 PnApplicationRelationContainerType
Table 31 – PnApplicationRelationContainerType Definition
Attribute Value
BrowseNamePnApplicationRelationContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnApplicationRelationObject<ARs>PnApplicationRelationType

Optional

Placeholder

Mapping to PROFINET properties:

BrowseName Method Source
<ARs> ReadARData | NumberOfARs entries | ARUUID
6.3.1.5 Module
6.3.1.5.1 IPnModuleType
Table 32 – IPnModuleType Definition
Attribute Value
BrowseNameIPnModuleType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseInterfaceType defined in [OPC 10000-5].
HasPropertyVariableSlotUInt16PropertyTypeMandatory
HasPropertyVariableIdentNumberUInt32PropertyTypeMandatory
HasPropertyVariable GSDName StringPropertyTypeOptional
HasPropertyVariable GSDDescription StringPropertyTypeOptional

The properties Slot and IdentNumber must contain the data as described in the mapping table provided for the subtypes IPnRealModuleType and IPnExpectedModuleType.

Mapping to PROFINET properties:

BrowseName Method Source
GSDName GSDMLModuleList | ModuleItem | ModuleInfo | Name
GSDDescription GSDMLModuleList | ModuleItem | ModuleInfo | InfoText
6.3.1.5.2 IPnRealModuleType
Table 33 – IPnRealModuleType Definition
Attribute Value
BrowseNameIPnRealModuleType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of IPnModuleType
HasComponentObjectSubmodulesPnRealSubmoduleContainerTypeOptional
HasComponentObjectIMPnIdentificationTypeOptional
HasComponentVariableDiagnosisPnDeviceDiagnosisDataType[]BaseDataVariableTypeOptional
HasComponentObjectAlarmsFolderTypeOptional
GeneratesEventObjectTypePnDiagnosisAlarmType
GeneratesEventObjectTypePnAssetChangedEventType

The BrowseName of a module object instance shall be the content of the Slot variable in decimal number string format.

If the IM component is provided, it must contain the data of the representative submodule for the module in accordance with the I&M0FilterDataModule block (See [PN TAD] – Identification & Maintenance).

The server may provide diagnosis data with the Diagnosis variable or by sending PnDiagnosisAlarmType events. The diagnosis data at the real module object includes the diagnosis information of the whole module including the one of the real submodules of the module. An OPC UA Server may provide instances of the PnDiagnosisAlarmType as objects under the Alarms object.

Mapping to PROFINET properties:

BrowseName Method Source
Slot ReadRealIdentificationData | SlotNumber
IdentNumber ReadRealIdentificationData | IdentNumber
Diagnosis ReadDiagnosisData (0xC00C slot specific)
6.3.1.5.3 PnRealModuleContainerType
Table 34 – PnRealModuleContainerType Definition
Attribute Value
BrowseNamePnRealModuleContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnRealModuleObject<Modules>BaseObjectType

Optional

Placeholder

The <Modules> shall have the references and components defined in Table 35 and Table 36.

Table 35 – PnRealModuleContainerType Additional References
Source Path Reference Type Is Forward Target Path
<Modules>0:HasInterfaceTrue
Table 36 – PnRealModuleContainerType Additional Subcomponents
Source Path References NodeClass BrowseName

DataType

TypeDefinition

Others
Applied from IPnRealModuleType
<Modules>0:HasPropertyVariableSlot

UInt16

PropertyType

M
<Modules>0:HasPropertyVariableIdentNumber

UInt32

PropertyType

M
<Modules>0:HasPropertyVariableGSDNameString
PropertyType
O
<Modules>0:HasPropertyVariableGSDDescriptionString
PropertyType
O
<Modules>0:HasComponentObjectSubmodulesPnRealSubmoduleContainerTypeO
<Modules>0:HasComponentObjectIMPnIdentificationTypeO
<Modules>0:HasComponentVariableDiagnosisPnDeviceDiagnosisDataType[]
BaseDataVariableType
O
<Modules>0:HasComponentObjectAlarmsFolderTypeO
<Modules>0:GeneratesEventObjectTypePnDiagnosisAlarmType
<Modules>0:GeneratesEventObjectTypePnAssetChangedEventType

Mapping to PROFINET properties:

BrowseName Method Source
<Modules> ReadRealIdentificationData | NumberOfSlots entries | SlotNumber
6.3.1.5.4 IPnExpectedModuleType
Table 37 – IPnExpectedModuleType Definition
Attribute Value
BrowseNameIPnExpectedModuleType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of IPnModuleType
HasComponentObjectSubmodulesPnExpectedSubmoduleContainerTypeOptional
HasComponentVariableStatePnModuleStateEnumerationBaseDataVariableTypeMandatory

The BrowseName of a module object instance shall be the content of the Slot variable in decimal number string format.

An IsPnRealModule reference points to the real module which is the real realization of the expected module. See section 6.3.2.9 also.

Mapping to PROFINET properties:

BrowseName Method Source
Slot ReadExpectedIdentificationData | SlotNumber
IdentNumber ReadExpectedIdentificationData | IdentNumber
State ReadModuleDiffBlock | ModuleState
6.3.1.5.5 PnExpectedModuleContainerType
Table 38 – PnExpectedModuleContainerType Definition
Attribute Value
BrowseNamePnExpectedModuleContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnExpectedModuleObject<Modules>BaseObjectType

Optional

Placeholder

The <Modules> shall have the references and subcomponents defined in Table 39 and Table 40.

Table 39 – PnExpectedModuleContainerType Additional References
Source Path Reference Type Is Forward Target Path
<Modules>0:HasInterfaceTrue
Table 40 – PnExpectedModuleContainerType Additional Subcomponents
Source Path References NodeClass BrowseName

DataType

TypeDefinition

Others
Applied from IPnExpectedModuleType
<Modules>0:HasPropertyVariableSlot

UInt16

PropertyType

M
<Modules>0:HasPropertyVariableIdentNumber

UInt32

PropertyType

M
<Modules>0:HasPropertyVariableGSDNameString
PropertyType
O
<Modules>0:HasPropertyVariableGSDDescriptionString
PropertyType
O
<Modules>0:HasComponentVariableState

PnModuleStateEnumeration

BaseDataVariableType

M
<Modules>0:HasComponentObjectSubmodulesPnExpectedSubmoduleContainerTypeO

Mapping to PROFINET properties:

BrowseName Method Source
<Modules> ReadExpectedIdentificationData | NumberOfSlots entries | SlotNumber
6.3.1.6 Submodule
6.3.1.6.1 IPnSubmoduleType
Table 41 – IPnSubmoduleType Definition
Attribute Value
BrowseNameIPnSubmoduleType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseInterfaceType defined in [OPC 10000-5].
HasPropertyVariableAPIUInt32PropertyTypeMandatory
HasPropertyVariableSubslotUInt16PropertyTypeMandatory
HasPropertyVariableIdentNumberUInt32PropertyTypeMandatory
HasPropertyVariableGSDNameStringPropertyTypeOptional
HasPropertyVariableGSDDescriptionStringPropertyTypeOptional

The properties GSDName and GSDDescription must contain the data from the GSD, as described in the mapping table provided for the subtypes IPnRealSubmoduleType and IPnExpectedSubmoduleType.

6.3.1.6.2 IPnRealSubmoduleType
Table 42 – IPnRealSubmoduleType Definition
Attribute Value
BrowseNameIPnRealSubmoduleType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of IPnSubmoduleType
HasComponentObjectIMPnIdentificationTypeOptional
HasComponentVariableDiagnosisPnDeviceDiagnosisDataType[]BaseDataVariableTypeOptional
HasComponentObjectAlarmsFolderTypeOptional
GeneratesEventObjectTypePnDiagnosisAlarmType
GeneratesEventObjectTypePnAssetChangedEventType

The BrowseName of a sub module object instance shall be the content of the Subslot variable in hexadecimal number string format (e.g. 0x8001).

If the IM component is provided, it must contain the data in accordance with the I&M0FilterDataSubmodule block (See [PN TAD] – Identification & Maintenance).

The server can provide diagnosis data with the Diagnosis variable or by sending PnDiagnosisAlarmType events. The diagnosis data at the real submodule object includes only the diagnosis information of the real submodule. An OPC UA Server might provide instances of the PnDiagnosisAlarmType as objects under the Alarms object.

An IsPnInterface reference exists if the submodule is an interface submodule. See section 6.3.2.13 also.

An IsPnPort reference exists if the submodule is a port submodule. It points to the PnPortType object. See section 6.3.2.14 also.

Mapping to PROFINET properties:

BrowseName Method Source
API ReadRealIdentificationData | API
SubSlot ReadRealIdentificationData | SubslotNumber
IdentNumber ReadRealIdentificationData | SubmoduleIdentNumber
GSDName GSDMLSubmoduleList | SubmoduleItem | ModuleInfo | Name or
SubmoduleList | VirtualSubmoduleItem | ModuleInfo | Name or
SubmoduleList | PortSubmoduleItem | ModuleInfo | Name
GSDDescription GSDMLSubmoduleList | SubmoduleItem | ModuleInfo | InfoText or
SubmoduleList | VirtualSubmoduleItem | ModuleInfo | InfoText or
SubmoduleList | PortSubmoduleItem | ModuleInfo | InfoText
Diagnosis ReadDiagnosisData (0x800C subslot specific)
6.3.1.6.3 PnRealSubmoduleContainerType
Table 43 – PnRealSubmoduleContainerType Definition
Attribute Value
BrowseNamePnRealSubmoduleContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnRealSubmoduleObject<Submodules>BaseObjectType

Optional

Placeholder

The <Submodules> shall have the references defined in Table 44 and Table 45.

Table 44 – PnRealSubmoduleContainerType Additional References
Source Path Reference Type Is Forward Target Path
<Submodules>0:HasInterfaceTrue
Table 45 – PnRealSubmoduleContainerType Additional Subcomponents
Source Path References NodeClass BrowseName

DataType

TypeDefinition

Others
Applied from IPnRealSubmoduleType
<Submodules>0:HasPropertyVariableAPI

UInt32

PropertyType

M
<Submodules>0:HasPropertyVariableSubslot

UInt16

PropertyType

M
<Submodules>0:HasPropertyVariableIdentNumber

UInt32

PropertyType

M
<Submodules>0:HasPropertyVariableGSDNameString
PropertyType
O
<Submodules>0:HasPropertyVariableGSDDescriptionString
PropertyType
O
<Submodules>0:HasComponentObjectIMPnIdentificationTypeO
<Submodules>0:HasComponentVariableDiagnosisPnDeviceDiagnosisDataType[]
BaseDataVariableType
O
<Submodules>0:HasComponentObjectAlarmsFolderTypeO
<Submodules>0:GeneratesEventObjectTypePnDiagnosisAlarmType
<Submodules>0:GeneratesEventObjectTypePnAssetChangedEventType

Mapping to PROFINET properties:

BrowseName Method Source
<Submodules> ReadRealIdentificationData | NumberOfSubslots entries | SubslotNumber
6.3.1.6.4 IPnExpectedSubmoduleType
Table 46 – IPnExpectedSubmoduleType Definition
Attribute Value
BrowseNameIPnExpectedSubmoduleType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of IPnSubmoduleType
HasComponentObjectStatePnSubmoduleStateTypeOptional

An IsPnRealSubmodule reference points to the real submodule which is the real realization of the expected submodule. See section 6.3.2.10 also.

Mapping to PROFINET properties:

BrowseName Method Source
API ReadExpectedIdentificationData | API
SubSlot ReadExpectedIdentificationData | SubslotNumber
IdentNumber ReadExpectedIdentificationData | SubmoduleIdentNumber
GSDName GSDML

SubmoduleList | SubmoduleItem | ModuleInfo | Name or
SubmoduleList | VirtualSubmoduleItem | ModuleInfo | Name or

SubmoduleList | PortSubmoduleItem | ModuleInfo | Name

GSDDescription GSDML

SubmoduleList | SubmoduleItem | ModuleInfo | InfoText or

SubmoduleList | VirtualSubmoduleItem | ModuleInfo | InfoText or

SubmoduleList | PortSubmoduleItem | ModuleInfo | InfoText

State ReadModuleDiffBlock | SubmoduleState
6.3.1.6.5 PnExpectedSubmoduleContainerType
Table 47 – PnExpectedSubmoduleContainerType Definition
Attribute Value
BrowseNamePnExpectedSubmoduleContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnExpectedSubmoduleObject<Submodules>BaseObjectType

Optional

Placeholder

The <Submodules> shall have the references and subcomponents defined in Table 48 and Table 49.

Table 48 – PnExpectedSubmoduleContainerType Additional References
Source Path Reference Type Is Forward Target Path
<Submodules>0:HasInterfaceTrue
Table 49 – PnExpectedSubmoduleContainerType Additional Subcomponents
Source Path References NodeClass BrowseName

DataType

TypeDefinition

Others
Applied from IPnExpectedSubmoduleType
<Submodules>0:HasPropertyVariableAPI

UInt32

PropertyType

M
<Submodules>0:HasPropertyVariableSubslot

UInt16

PropertyType

M
<Submodules>0:HasPropertyVariableIdentNumber

UInt32

PropertyType

M
<Submodules>0:HasPropertyVariableGSDNameString
PropertyType
O
<Submodules>0:HasPropertyVariableGSDDescriptionString
PropertyType
O
<Submodules>0:HasComponentObjectStatePnSubmoduleStateTypeO

Mapping to PROFINET properties:

BrowseName Method Source
<Submodules> ReadExpectedIdentificationData | NumberOfSubslots entries | SubslotNumber
6.3.1.6.6 PnSubmoduleStateType
Table 50 – PnSubmoduleStateType Definition
Attribute Value
BrowseNamePnSubmoduleStateType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasComponentVariableAddInfoPnSubmoduleAddInfoEnumerationBaseDataVariableTypeOptional
HasComponentVariableQualifiedInfoBooleanBaseDataVariableTypeOptional
HasComponentVariable

Maintenance

Required

BooleanBaseDataVariableTypeOptional
HasComponentVariable

Maintenance

Demanded

BooleanBaseDataVariableTypeOptional
HasComponentVariableDiagInfoBooleanBaseDataVariableTypeOptional
HasComponentVariableARInfoPnSubmoduleARInfoEnumerationBaseDataVariableTypeOptional
HasComponentVariableIdentInfoPnSubmoduleIdentInfoEnumerationBaseDataVariableTypeOptional

Mapping to PROFINET properties:

BrowseName Method Source
AddInfo Read

ModuleDiffBlock | SubmoduleState.AddInfo

If entry not found, use: None

QualifiedInfo Read

ModuleDiffBlock | SubmoduleState.Advice

If entry not found, use: No Advice information available

MaintenanceRequired Read

ModuleDiffBlock | SubmoduleState.MaintenanceRequired

If entry not found, use: No MaintenanceRequired information available

MaintenanceDemanded Read

ModuleDiffBlock | SubmoduleState.MaintenanceDemanded

If entry not found, use: No MaintenanceDemanded information available

DiagInfo Read

ModuleDiffBlock | SubmoduleState.Fault

If entry not found, use: No Fault information available

ARInfo Read

ModuleDiffBlock | SubmoduleState.ARInfo

If entry not found, use: Own

IdentInfo Read

ModuleDiffBlock | SubmoduleState.IdentInfo

If entry not found, use: OK

6.3.1.7 Network

This chapter includes all object types needed to represent the physical network topology of a PROFINET network.

Figure 18 shows an example which illustrates the relations between network objects of a single port PROFINET device and a 4 port Ethernet switch.

Figure 18 – Network Topology

The Ethernet interface, ports and cables are represented by objects in the address space. This Ethernet objects relate to each other by CommLinkTo references. This enables the OPC UA Server to represent the physical network topology of the PROFINET network.

6.3.1.7.1 IPnInterfaceType
Table 51 – IPnInterfaceType Definition
Attribute Value
BrowseNameIPnInterfaceType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseInterfaceType defined in [OPC 10000-5].
HasComponentObjectPortsPnPortContainerTypeMandatory
HasPropertyVariableNameOfStationStringPropertyTypeMandatory
HasPropertyVariableDeviceRolePnDeviceRoleOptionSetPropertyTypeMandatory
HasPropertyVariableDeviceVendorStringPropertyTypeOptional
HasPropertyVariableVendorIdUInt16PropertyTypeMandatory
HasPropertyVariableDeviceIdUInt16PropertyTypeMandatory
HasPropertyVariableDeviceInstanceUInt16PropertyTypeOptional
HasPropertyVariableOEMVendorIdUInt16PropertyTypeOptional
HasPropertyVariableOEMDeviceIdUInt16PropertyTypeOptional
CommLinkToObjectEthernetInterfaceEthernetInterfaceTypeOptional
HasComponentObjectStatisticPnPortStatisticTypeOptional
HasComponentMethodSetNameOfStationSetNameOfStationMethodOptional

The BrowseName of an interface object instance shall be the PROFINET interface id with the range 1..16 in decimal number string format.

The NameOfStation variable may be set with the SetNameOfStation method. Nevertheless, the variable itself shall always be read-only.

The CommLinkTo reference points to an EthernetInterfaceType object instance. An object of the IPv4FeatureType must be implemented in this EthernetInterfaceType object instance.

Mapping to PROFINET properties:

BrowseName Method Source
NameOfStation DCPDCP-Identify-ResPDU | NameOfStationValue
DeviceRole DCPDCP-Identify-ResPDU | DeviceRoleDetails
DeviceVendor DCPDCP-Identify-ResPDU | DeviceVendorValue
VendorId DCPDCP-Identify-ResPDU | DeviceIDBlockRes | DeviceIDValue
DeviceId DCPDCP-Identify-ResPDU | DeviceIDBlockRes | DeviceIDValue
DeviceInstance DCPDCP-Identify-ResPDU | DeviceInstanceValue
OEMVendorId DCPDCP-Identify-ResPDU | OEMDeviceIDBlockRes | DeviceIDValue
OEMDeviceId DCPDCP-Identify-ResPDU | OEMDeviceIDBlockRes | DeviceIDValue
6.3.1.7.1.1 SetNameOfStation Method

This optional method writes the NameOfStation remanent to the PROFINET device and sets the NameOfStation variable accordingly.

Signature

	SetNameOfStation (
		[in]	String NameOfStation
		);
	
Argument Description
NameOfStationString containing the new NameOfStation to be written remanent to the device. The maximum length shall be limited to 240 characters (See [PN Protocol] for details).

Method Result Codes

ResultCode Description
Bad_InvalidArgumentThe Server is not able to apply the name. The name may be too long or may contain invalid characters.
Bad_UnexpectedErrorThe Server is not able to apply the name because an unexpected error occurred. The device might be temporarily unavailable or unreachable due to network failure.
6.3.1.7.2 PnInterfaceContainerType
Table 52 – PnInterfaceContainerType Definition
Attribute Value
BrowseNamePnInterfaceContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnInterfaceObject<Interfaces>BaseObjectType

Optional

Placeholder

The <Interfaces> shall have the references defined in Table 53 and Table 54.

Table 53 – PnInterfaceContainerType Additional References
Source Path Reference Type Is Forward Target Path
<Interfaces>0:HasInterfaceTrue
Table 54 – PnInterfaceContainerType Additional Subcomponents
Source Path References NodeClass BrowseName

DataType

TypeDefinition

Others
Applied from IPnInterfaceType
<Interfaces>0:HasComponentObjectPortsPnPortContainerTypeM
<Interfaces>0:HasPropertyVariableNameOfStation

String

PropertyType

M
<Interfaces>0:HasPropertyVariableDeviceRole

PnDeviceRoleOptionSet

PropertyType

M
<Interfaces>0:HasPropertyVariableDeviceVendorString
PropertyType
O
<Interfaces>0:HasPropertyVariableVendorId

UInt16

PropertyType

M
<Interfaces>0:HasPropertyVariableDeviceId

UInt16

PropertyType

M
<Interfaces>0:HasPropertyVariableDeviceInstanceUInt16
PropertyType
O
<Interfaces>0:HasPropertyVariableOEMVendorIdUInt16
PropertyType
O
<Interfaces>0:HasPropertyVariableOEMDeviceIdUInt16
PropertyType
O
<Interfaces>CommLinkToObjectEthernetInterfaceEthernetInterfaceTypeO
<Interfaces>0:HasComponentObjectStatisticPnPortStatisticTypeO
<Interfaces>0:HasComponentMethodSetNameOfStationSetNameOfStationMethodO
6.3.1.7.3 PnPortType

The PnPortType Object Type includes the port specific data of a port submodule.

A PnRealSubmoduleType instance representing a port submodule has an IsPnPort reference to a PnPortType object instance.

Table 55 – PnPortType Definition
Attribute Value
BrowseNamePnPortType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasComponentObjectStatisticPnPortStatisticTypeOptional
HasComponentVariableLinkStatePnLinkStateEnumerationBaseDataVariableType Optional
HasComponentVariablePortStatePnPortStateEnumerationBaseDataVariableType Optional
HasComponentVariableMAUTypeUInt16BaseDataVariableType Optional
HasComponentVariableCableDelayUInt32BaseDataVariableType Optional
HasComponentVariablePowerBudgetUInt32BaseDataVariableType Optional
HasComponentVariableIsWirelessBooleanBaseDataVariableType Optional
CommLinkToObjectEthernetPortEthernetPortTypeOptional
GeneratesEventObjectTypePnTopologyChangedEventType

Mapping to PROFINET properties:

BrowseName Method Source
MAUType ReadPDPortDataReal | MAUType
CableDelay ReadPDPortDataReal | LineDelay
PowerBudget ReadPDPortFODataReal | FiberOpticDiagnosisInfo | FiberOpticPowerBudgetReal
IsWireless ReadPDPortDataReal | MediaType
6.3.1.7.4 PnPortContainerType
Table 56 – PnPortContainerType Definition
Attribute Value
BrowseNamePnPortContainerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnPortObject<Ports>PnPortType

Optional

Placeholder

6.3.1.7.5 PnPortStatisticType
Table 57 – PnPortStatisticType Definition
Attribute Value
BrowseNamePnPortStatisticType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasComponentVariableInOctetsUInt32BaseDataVariableTypeOptional
HasComponentVariableOutOctetsUInt32BaseDataVariableTypeOptional
HasComponentVariableInDiscardsUInt32BaseDataVariableTypeOptional
HasComponentVariableOutDiscardsUInt32BaseDataVariableTypeOptional
HasComponentVariableInErrorsUInt32BaseDataVariableTypeOptional
HasComponentVariableOutErrorsUInt32BaseDataVariableTypeOptional

The port statistic counters can be read from a PROFINET device with the Read PD Port Statistic PROFINET service.

6.3.1.7.6 NetworkComponentType

The NetworkComponentType is the abstract base ObjectType for different types of network components.

Table 58 – NetworkComponentType Definition
Attribute Value
BrowseNameNetworkComponentType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasComponentObject<FeatureName>NetworkComponentFeatureTypeOptionalPlaceholder
HasComponentVariableEnabledBooleanBaseDataVariableTypeOptional
CommLinkToObject<ComponentName>NetworkComponentTypeOptionalPlaceholder

The Enabled variable indicates if the network component is activated (Enabled == True) or deactivated (Enabled == False).

6.3.1.7.7 EthernetInterfaceType

The EthernetInterfaceType is used to represent Ethernet network interfaces.

Table 59 – EthernetInterfaceType Definition
Attribute Value
BrowseNameEthernetInterfaceType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of NetworkComponentType.
HasComponentVariableMacAddressByte [6]BaseDataVariableTypeMandatory
CommLinkToObject<PortName>EthernetPortTypeMandatoryPlaceholder

The MacAddress Variable is read only and represents the unique Layer2 source MAC address of the related interface.

Mapping to PROFINET properties:

BrowseName Method Source
MacAddress DCPDCP-Identify-ResPDU | MACAddressBlockRes | MACAddressValue
6.3.1.7.8 EthernetPortType

The EthernetPortType is used to represent Ethernet ports.

Table 60 – EthernetPortType Definition
Attribute Value
BrowseNameEthernetPortType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of NetworkComponentType.
HasComponentVariablePhysAddressByte [6] BaseDataVariableTypeOptional
CommLinkToObject<EthernetPort>EthernetPortTypeOptional

The PhysAddress Variable is read only and contains a MAC address representing the Port.

6.3.1.7.9 NetworkComponentFeatureType

The NetworkComponentFeatureType is the abstract base ObjectType for different types of network components.

Table 61 – NetworkComponentFeatureType Definition
Attribute Value
BrowseNameNetworkComponentFeatureType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
6.3.1.7.10 IPv4FeatureType

The IPv4FeatureType is used to represent IPv4 settings of a network interface.

Table 62 – IPv4FeatureType Definition
Attribute Value
BrowseNameIPv4FeatureType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of NetworkComponentFeatureType.
HasComponentVariableIpAddressByte[4]BaseDataVariableTypeMandatory
HasComponentVariableSubnetMaskByte[4]BaseDataVariableTypeMandatory
HasComponentVariableDefaultGatewayByte[4]BaseDataVariableTypeMandatory
HasComponentVariableDhcpEnabledBooleanBaseDataVariableTypeMandatory

Mapping to PROFINET properties:

BrowseName Method Source
IpAddress DCPDCP-Identify-ResPDU | IPParameterBlockRes | IPParameterValue | IPAddress
SubnetMask DCPDCP-Identify-ResPDU | IPParameterBlockRes | IPParameterValue | Subnetmask
DefaultGateway DCPDCP-Identify-ResPDU | IPParameterBlockRes | IPParameterValue | StandardGateway
DhcpEnabled DCPDCP-Identify-ResPDU | DHCPParameterBlockRes | DHCPParameter | DHCPParameterLength

The IpAddress Variable describes the IPv4 address on the interface.

The SubnetMask Variable describes the IPv4 Subnet mask on the interface.

The DefaultGateway Variable describes the IPv4 address of the default gateway.

The DhcpEnabled Variable specifies whether the DHCPv4 Client functionality for this interface is enabled.

6.3.1.8 Identification
6.3.1.8.1 PnIdentificationType
Table 63 – PnIdentificationType Definition
Attribute Value
BrowseNamePnIdentificationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPropertyVariableVendorIdUInt16PropertyTypeMandatory
HasPropertyVariableOrderIdStringPropertyTypeMandatory
HasPropertyVariableSerialNumberStringPropertyTypeMandatory
HasPropertyVariableSoftwareRevisionStringPropertyTypeMandatory
HasPropertyVariableHardwareRevisionStringPropertyTypeMandatory
HasPropertyVariableProfileIdUInt32PropertyTypeMandatory
HasPropertyVariableProfileSpecificTypeUInt16PropertyTypeMandatory
HasPropertyVariableVersionStringPropertyTypeMandatory
HasPropertyVariableRevisionCounterUInt16PropertyTypeOptional
HasPropertyVariableIMSupportedUInt16PropertyTypeOptional
HasPropertyVariableTagFunctionStringPropertyTypeOptional
HasPropertyVariableTagLocationStringPropertyTypeOptional
HasPropertyVariableDateDateTimePropertyTypeOptional
HasPropertyVariableDescriptorStringPropertyTypeOptional
HasPropertyVariableSignatureByteStringPropertyTypeOptional
HasPropertyVariableIM5PnIM5DataType[]PropertyTypeOptional
HasComponentMethodSetTagsSetTagsMethodOptional
HasComponentMethodSetDateSetDateMethodOptional
HasComponentMethodSetDescriptorSetDescriptorMethodOptional

Mapping to PROFINET properties:

BrowseName Method Source
VendorId ReadI&M0 | VendorID
OrderId ReadI&M0 | OrderID
SerialNumber ReadI&M0 | IM_Serial_Number
SoftwareRevision ReadI&M0 | IM_Software_Revision
HardwareRevision ReadI&M0 | IM_Hardware_Revision
ProfileId ReadI&M0 | IM_Profile_ID
ProfileSpecificType ReadI&M0 | IM_Profile_Specific_Type
Version ReadI&M0 | IM_Version
RevisionCounter ReadI&M0 | IM_Revision_Counter
IMSupported ReadI&M0 | IM_Supported
TagFunction ReadI&M1 | IM_Tag_Function
TagLocation ReadI&M1 | IM_Tag_Location
Date ReadI&M2 | IM_Date
Descriptor ReadI&M3 | IM_Descriptor
Signature ReadI&M4 | IM_Signature
IM5 Read

I&M5 | I&M5Data, see chapter 6.3.3.1.2 for details

Array size: I&M5 | NumberOfEntries

6.3.1.8.1.1 SetTags Method

This optional method writes the I&M1 fields IM_TagFunction and IM_Tag_Location remanent to the PROFINET device and sets the TagFunction and TagLocation variables accordingly.

Signature

	SetTags (
		[in] IMTagSelectorEnumeration Tag_Selector,
		[in] String Tag_Function,
		[in] String Tag_Location
		);
	
Argument Description
Tag_SelectorIf FUNCTION, Tag_Function shall be written, If LOCATION, Tag_Location shall be written, if BOTH both.
Tag_FunctionString containing the new I&M1 | IM_Tag_Function to be written remanent to the device.
Tag_LocationString containing the new I&M1 | IM_Tag_Location to be written remanent to the device.

Method Result Codes

ResultCode Description
Bad_InvalidArgumentThe Server is not able to apply an argument. The argument may be too long or may contain invalid characters.
Bad_UnexpectedErrorThe Server is not able to apply the name because an unexpected error occurred. The device might be temporarily unavailable or unreachable due to network failure.
6.3.1.8.1.2 SetDate Method

This optional method writes the I&M2 field IM_Date remanent to the PROFINET device and sets the Date variable accordingly.

Signature

	SetDate (
		[in] DateTime IM_Date
		);
	
Argument Description
IM_DateNew I&M2 | IM_Date to be written remanent to the device.

Method Result Codes

ResultCode Description
Bad_InvalidArgumentThe Server is not able to apply an argument.
Bad_UnexpectedErrorThe Server is not able to apply the name because an unexpected error occurred. The device might be temporarily unavailable or unreachable due to network failure.
6.3.1.8.1.3 SetDescriptor Method

This optional method writes the I&M3 field IM_Descriptor remanent to the PROFINET device and sets the Descriptor variable accordingly.

Signature

	SetDescriptor (
		[in] String Descriptor
		);
	
Argument Description
DescriptorNew I&M3 | IM_Descriptor to be written remanent to the device.

Method Result Codes

ResultCode Description
Bad_InvalidArgumentThe Server is not able to apply an argument. The argument may be too long or may contain invalid characters.
Bad_UnexpectedErrorThe Server is not able to apply the name because an unexpected error occurred. The device might be temporarily unavailable or unreachable due to network failure.
6.3.1.8.2 PnAssetType
Table 64 – PnAssetType Definition
Attribute Value
BrowseNamePnAssetType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPropertyVariableUniqueIdentifierGuidPropertyTypeMandatory
HasPropertyVariableLocationStringPropertyTypeMandatory
HasPropertyVariableAnnotationStringPropertyTypeMandatory
HasPropertyVariableOrderIdStringPropertyTypeMandatory
HasPropertyVariableSoftwareRevisionStringPropertyTypeOptional
HasPropertyVariableHardwareRevisionStringPropertyTypeOptional
HasPropertyVariableSerialNumberStringPropertyTypeMandatory
HasPropertyVariableTypeIdentificationUInt16PropertyTypeMandatory
HasPropertyVariableOrganizationUInt16PropertyTypeMandatory
HasPropertyVariableVendorIdUInt16PropertyTypeMandatory
HasPropertyVariableDeviceIdUInt16PropertyTypeMandatory
HasPropertyVariableDeviceSubIdUInt16PropertyTypeMandatory
GeneratesEventObjectTypePnAssetChangedEventType

The BrowseName of an asset object instance shall be the content of the UniqueIdentifier variable in standard GUID string format.

Mapping to PROFINET properties:

BrowseName Method Source
UniqueIdentifier ReadAssetManagementData | IM_UniqueIdentifier
Location ReadAssetManagementData | AM_Location
Annotation ReadAssetManagementData | IM_Annotation
OrderId ReadAssetManagementData | IM_OrderID
SoftwareRevision ReadAssetManagementData | IM_Software_Revision or AM_SoftwareRevision
HardwareRevision ReadAssetManagementData | IM_Hardware_Revision or AM_HardwareRevision
SerialNumber ReadAssetManagementData | IM_Serial_Number
TypeIdentification ReadAssetManagementData | AM_TypeIdentification
Organization ReadAssetManagementData | AM_DeviceIdentification.Organization
VendorId ReadAssetManagementData | AM_DeviceIdentification.VendorID
DeviceId ReadAssetManagementData | AM_DeviceIdentification.DeviceID
DeviceSubId ReadAssetManagementData | AM_DeviceIdentification.DeviceSubID

If the AM_Location field is coded using the level tree format, each used level shall be encoded in the Location string with a ‘.’ followed by the value of the level bits encoded as decimal number string. According to [PN TAD] – Figure 38, the HART sensor has the Location string ”.0.4.1.1”.

If the AM_Location field is coded using the slot- and subslotnumber format, the Location string shall be encoded as ‘BeginSlotNumber/BeginSubslotNumber-EndSlotNumber/EndSubslotNumber’. BeginSlotNumber and EndSlotNumber shall be encoded as decimal number strings. BeginSubslotNumber and EndSubslotNumber shall be encoded as hexadecimal number strings (0x…) According to [PN TAD] – Figure 38, the IO-MC 1 asset has the Location string ”2/0x1-4/0x1”.

6.3.1.8.3 PnAssetContainerType
Table 65 – PnAssetContainerType Definition
Attribute Value
BrowseNamePnAssetContainerType
IsAbstractFalse
ReferencesNode ClassBrowseName DataTypeTypeDefinitionModelling Rule
Subtype of BaseObjectType defined in [OPC 10000-5].
HasPnAssetObject<Assets>PnAssetType

Optional

Placeholder

6.3.2 OPC UA Reference Types

6.3.2.1 HasPnApplicationRelation
Table 66 – HasPnApplicationRelation Definition
Attribute Value
BrowseNameHasPnApplicationRelation
InverseNameIsPnApplicationRelationOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnApplicationRelation reference is used to append nodes to the PnApplicationRelationContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object of the ObjectType PnApplicationRelationType.

6.3.2.2 HasPnRealModule
Table 67 – HasPnRealModule Definition
Attribute Value
BrowseNameHasPnRealModule
InverseNameIsPnRealModuleOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnRealModule reference type is used to append nodes to the PnRealModuleContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnRealModuleType interface.

6.3.2.3 HasPnRealSubmodule
Table 68 – HasPnRealSubmodule Definition
Attribute Value
BrowseNameHasPnRealSubmodule
InverseNameIsPnRealSubmoduleOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnRealSubmodule reference type is used to append nodes to the PnRealSubmoduleContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnRealSubmoduleType interface.

6.3.2.4 HasPnExpectedModule
Table 69 – HasPnExpectedModule Definition
Attribute Value
BrowseNameHasPnExpectedModule
InverseNameIsPnExpectedModuleOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnExpectedModule reference type is used to append nodes to the PnExpectedModuleContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnExpectedModuleType interface.

6.3.2.5 HasPnExpectedSubmodule
Table 70 – HasPnExpectedSubmodule Definition
Attribute Value
BrowseNameHasPnExpectedSubmodule
InverseNameIsPnExpectedSubmoduleOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnExpectedSubmodule reference type is used to append nodes to the PnExpectedSubmoduleContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnExpectedSubmoduleType interface.

6.3.2.6 HasPnAsset
Table 71 – HasPnAsset Definition
Attribute Value
BrowseNameHasPnAsset
InverseNameIsPnAssetOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnAsset reference type is used to append nodes to the PnAssetContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object of the ObjectType PnAssetType.

6.3.2.7 HasPnInterface
Table 72 – HasPnInterface Definition
Attribute Value
BrowseNameHasPnInterface
InverseNameIsPnInterfaceOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnInterface reference type is used to append nodes to the PnInterfaceContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnInterfaceType interface.

6.3.2.8 HasPnPort
Table 73 – HasPnPort Definition
Attribute Value
BrowseNameHasPnPort
InverseNameIsPnPortOf
SymmetricFalse
IsAbstractFalse
Subtype of the HasComponent from [OPC 10000-5].

The HasPnPort reference type is used to append nodes to the PnPortContainerType node.

This reference should always be bidirectional.

The destination of the reference shall be an object of the ObjectType PnPortType.

6.3.2.9 IsPnRealModule
Table 74 – IsPnRealModule Definition
Attribute Value
BrowseNameIsPnRealModule
InverseNameIsPnExpectedModule
SymmetricFalse
IsAbstractFalse
Subtype of the NonHierarchicalReferences from [OPC 10000-5].

The IsPnRealModule reference type is used to link ExpectedModule objects to their RealModule counterparts (See Figure 17 – Object Structure).

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnRealModuleType interface.

The source of the reference shall be an object implementing the IPnExpectedModuleType interface.

6.3.2.10 IsPnRealSubmodule
Table 75 – IsPnRealSubmodule Definition
Attribute Value
BrowseNameIsPnRealSubmodule
InverseNameIsPnExpectedSubmodule
SymmetricFalse
IsAbstractFalse
Subtype of the NonHierarchicalReferences from [OPC 10000-5].

The IsPnRealSubmodule reference type is used to link ExpectedSubmodule objects to their RealSubmodule counterparts (See Figure 17 – Object Structure).

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnRealSubmoduleType interface.

The source of the reference shall be an object implementing the IPnExpectedSubmoduleType interface.

6.3.2.11 IsPnApplicationRelationDeviceInterface
Table 76 – IsPnApplicationRelationDeviceInterface Definition
Attribute Value
BrowseNameIsPnApplicationRelationDeviceInterface
InverseNameUsedByPnApplicationRelation
SymmetricFalse
IsAbstractFalse
Subtype of the NonHierarchicalReferences from [OPC 10000-5].

The IsPnApplicationRelationDeviceInterface is used to link PnApplicationRelationType objects to the PN Interface object of the Device object (objects implementing IDeviceType) the application relation connects to (See Figure 17 – Object Structure).

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnInterfaceType interface.

The source of the reference shall be an object of the ObjectType PnApplicationRelationType and shall not use the reference type more than once.

6.3.2.12 IsPnApplicationRelationControllerInterface
Table 77 – IsPnApplicationRelationControllerInterface Definition
Attribute Value
BrowseNameIsPnApplicationRelationControllerInterface
InverseNameUsedByPnApplicationRelation
SymmetricFalse
IsAbstractFalse
Subtype of the NonHierarchicalReferences from [OPC 10000-5].

The IsPnApplicationRelationControllerInterface is used to link PnApplicationRelationType objects to the PN Interface object of the controller object (objects implementing IControllerType) the application relation belongs to (See Figure 17 – Object Structure).

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnInterfaceType interface.

The source of the reference shall be an object of the ObjectType PnApplicationRelationType and shall not use the reference more than once.

6.3.2.13 IsPnInterface
Table 78 – IsPnInterface Definition
Attribute Value
BrowseNameIsPnInterface
InverseNameRealizedByPnSubmodule
SymmetricFalse
IsAbstractFalse
Subtype of the NonHierarchicalReferences from [OPC 10000-5].

The IsPnInterface reference type is used to link RealSubmodule objects to PN Interface objects (See Figure 18 – Network Topology).

This reference should always be bidirectional.

The destination of the reference shall be an object implementing the IPnInterfaceType interface.

The source of the reference shall be an object implementing the IPnRealSubmoduleType interface.

6.3.2.14 IsPnPort
Table 79 – IsPnPort Definition
Attribute Value
BrowseNameIsPnPort
InverseNameRealizedByPnSubmodule
SymmetricFalse
IsAbstractFalse
Subtype of the NonHierarchicalReferences from [OPC 10000-5].

The IsPnPort reference type is used to link RealSubmodule objects to PN Port objects (Figure 18 – Network Topology).

This reference should always be bidirectional.

The destination of the reference shall be an object of the ObjectType PnPortType.

The source of the reference shall be an object implementing the IPnRealSubmoduleType interface.

6.3.2.15 CommLinkTo
Table 80 – CommLinkTo Definition
Attribute Value
BrowseNameCommLinkTo
InverseNameCommLinkFrom
SymmetricFalse
IsAbstractFalse
Subtype of the Organizes from [OPC 10000-5].

The CommLinkTo reference type is used between object instances representing network entities like Ethernet interfaces and Ethernet ports to describe their communication as well as their topology dependencies. (See Figure 18 – Network Topology).

This reference should always be bidirectional.

6.3.3 OPC UA Data Types

6.3.3.1 Structures
6.3.3.1.1 PnDeviceDiagnosisDataType
Table 81 – PnDeviceDiagnosisDataType Structure
Name Type Description
PnDeviceDiagnosisDataTypeStructure
APIUInt32
SlotUInt16
SubslotUInt16
ChannelNumberUInt16
TypePnChannelTypeEnumeration
AccumulativePnChannelAccumulativeEnumeration
MaintenancePnChannelMaintenanceEnumeration
SpecifierPnChannelSpecifierEnumeration
DirectionPnChannelDirectionEnumeration
UserStructureIdentifierUInt16
ChannelErrorTypeUInt16
ExtChannelErrorTypeUInt16
ExtChannelAddValueUInt32
QualifiedChannelQualifierUInt32
ManufacturerDataByteStringManufacturer specific diagnosis data
MessageLocalizedTextDiagnosis message read from the GSDML
HelpTextLocalizedTextHelp text read from the GSDML

If the field UserStructureIdentifier indicates manufacturer specific diagnosis information, the ByteString ManufacturerData contains the manufacturer specific diagnosis data.

The Message and the HelpText variables are retrieved from the GSDML file. If the Message includes a dynamic format string, this is replaced by the ExtChannelAddValue.

6.3.3.1.2 PnIM5DataType
Table 82 – PnIM5DataType Structure
Name Type Description
PnIM5DataTypeStructureContains the fields of the APDU element I&M5 | I&M5Data
AnnotationStringI&M5Data | IM_Annotation
OrderIdStringI&M5Data | IM_OrderID
VendorId UInt16I&M5Data | VendorID
SerialNumberStringI&M5Data | IM_Serial_Number
HardwareRevisionStringI&M5Data | IM_Hardware_Revision
SoftwareRevisionStringI&M5Data | IM_Software_Revision
6.3.3.2 OptionSets
6.3.3.2.1 PnDeviceRoleOptionSet
Table 83 – PnDeviceRoleOptionSet
Value Bit No. Description
IO_DEVICE0The device contains an IO device interface.
IO_CONTROLLER1The device contains an IO controller interface.
IO_MULTIDEVICE2The device contains multiple IO device interfaces.
IO_SUPERVISOR3The device contains an IO supervisor interface.
IO_CIM4The device contains a CIM device interface.

The PnDeviceRoleOptionSet representation in the AddressSpace is defined in Table 84.

Table 84 – PnDeviceRoleOptionSet Definition
Attribute Value
BrowseNamePnDeviceRoleOptionSet
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the OptionSet type defined in [OPC 10000-5]
0:HasPropertyVariable0:OptionSetValues0:LocalizedText []0:PropertyType

See: [PN Protocol], Table – DeviceRoleDetails

6.3.3.3 Enumerations
6.3.3.3.1 PnDeviceStateEnumeration
Table 85 – PnDeviceStateEnumeration
NameDescription
OFFLINE_0The device is not online, or no information is available. The device is offline if no ARs other than possible Device Access AR’s exist.
OFFLINE_DOCKING_1The device is a docking device and currently not online.
ONLINE_2The device is online. This is the case if at least one AR other than possible Device Access AR’s exists.
ONLINE_DOCKING_3The device is a docking device and currently online.
6.3.3.3.2 PnARStateEnumeration
Table 86 – PnARStateEnumeration
NameDescription
CONNECTED_0The AR connection to the device is established
UNCONNECTED_1The AR connection to the device is not established
UNCONNECTED_ERR_DEVICE_NOT_FOUND_2The AR connection to the device is not established because the device is not available in the network
UNCONNECTED_ERR_DUPLICATE_IP_3The AR connection to the device is not established because the IP address of the device exists multiple times
UNCONNECTED_ERR_DUPLICATE_NOS_4The AR connection to the device is not established because the Name of Station of the device exists multiple times
6.3.3.3.3 PnARTypeEnumeration
Table 87 – PnARTypeEnumeration
NameDescription
IOCARSingle_0-
IOSAR_6The supervisor AR is a special form of the IOCARSingle allowing takeover of the ownership of a submodule
IOCARSingleUsingRT_CLASS_3_16This is a special form of the IOCARSingle indicating RT_CLASS_3 communication
IOCARSR_32The SR AR is a special form of the IOCARSingle indicating system redundancy or dynamic reconfiguration usage

See: [PN Protocol], Table 508 – ARType

6.3.3.3.4 PnModuleStateEnumeration
Table 88 – PnModuleStateEnumeration
NameDescription
NO_MODULE_0For example module not plugged
WRONG_MODULE_1For example ModuleIdentNumber wrong
PROPER_MODULE_2Module is okay but at least one submodule is locked, wrong or missing
SUBSTITUTE_3Module is not the same as requested – but the IO device was able to adapt by its own knowledge
OK_4Default state

See: [PN Protocol], Table 586 – ModuleState

6.3.3.3.5 PnSubmoduleAddInfoEnumeration
Table 89 – PnSubmoduleAddInfoEnumeration
NameDescription
NO_ADD_INFO_0-
TAKEOVER_NOT_ALLOWED_1This Submodule is not available for takeover by IOSAR.

See: [PN Protocol], Table 587 – SubmoduleState.AddInfo

6.3.3.3.6 PnSubmoduleARInfoEnumeration
Table 90 – PnSubmoduleARInfoEnumeration
NameDescription
OWN_0This AR is owner of the submodule
APPLICATION_READY_PENDING_128This AR is owner of the submodule but it is blocked. For example parameter checking pending
SUPERORDINATED_LOCKED_256This AR is not owner of the submodule. It is blocked by superordinated means
LOCKED_BY_IO_CONTROLLER_384This AR is not owner of the submodule. It is owned by another IOAR
LOCKED_BY_IO_SUPERVISOR_512This AR is not owner of the submodule. It is owned by another IOSAR

See: [PN Protocol], Table 592 – SubmoduleState.ARInfo

6.3.3.3.7 PnSubmoduleIdentInfoEnumeration
Table 91 – PnSubmoduleIdentInfoEnumeration
NameDescription
OK_0OK
SUBSTITUTE_2048Substitute (SU)
WRONG_4096Wrong (WR)
NO_SUBMODULE_6144NoSubmodule (NO)

See: [PN Protocol], Table 593 – SubmoduleState.IdentInfo

6.3.3.3.8 PnChannelTypeEnumeration
Table 92 – PnChannelTypeEnumeration
NameDescription
UNSPECIFIC_0Shall be used if the field ChannelNumber contains the value 0x8000 (submodule)
Furthermore, it shall be used if none of the below defined types are appropriate.
1BIT_1The data length of this channel is 1 Bit.
2BIT_2The data length of this channel is 2 Bit.
4BIT_3The data length of this channel is 4 Bit.
8BIT_4The data length of this channel is 8 Bit.
16BIT_5The data length of this channel is 16 Bit.
32BIT_6The data length of this channel is 32 Bit.
64BIT_7The data length of this channel is 64 Bit.

See: [PN Protocol], Table 651 – ChannelProperties.Type

6.3.3.3.9 PnChannelAccumulativeEnumeration
Table 93 – PnChannelAccumulativeEnumeration
NameDescription
SINGLE_0

Single channel

Diagnosis only for the reported channel

ACCUMULATIVE_256

Multiple channel

Accumulative diagnosis from more than one channel

See: [PN Protocol], Table 652 – ChannelProperties.Accumulative

6.3.3.3.10 PnChannelMaintenanceEnumeration
Table 94 – PnChannelMaintenanceEnumeration
NameDescription
FAULT_0Fault
MAINTENANCE_REQUIRED_512Maintenance required
MAINTENANCE_DEMANDED_1024Maintenance demanded
USE_QUALIFIED_CHANNEL_QUALIFIER_1536Use QualifiedChannelQualifier variable

See: [PN Protocol], Table 653 – ChannelProperties.Maintenance

6.3.3.3.11 PnChannelSpecifierEnumeration
Table 95 – PnChannelSpecifierEnumeration
NameDescription
ALL_DISAPPEARS_0The Diagnosis ASE contains no longer any entries (of any severity) for this channel
APPEARS_2048

An event appears and/or exists further

The Diagnosis ASE contains this and possible other entries for this channel.

DISAPPEARS_4096

An event disappears and/or exists no longer

The Diagnosis ASE contains no longer any entries of the same severity for this channel

DISAPPEARS_OTHER_REMAIN_6144

An event disappears

The Diagnosis ASE still contains other entries of the same severity for this channel

See: [PN Protocol], Table 656 – ChannelProperties.Specifier

6.3.3.3.12 PnChannelDirectionEnumeration
Table 96 – PnChannelDirectionEnumeration
NameDescription
MANUFACTURER_SPECIFIC_0Manufacturer specific
INPUT_CHANNEL_8192Input
OUTPUT_CHANNEL_16384Output
BIDIRECTIONAL_CHANNEL_24576Input/Output

See: [PN Protocol], Table 585 – ChannelProperties.Direction

6.3.3.3.13 PnAssetTypeEnumeration
Table 97 – PnAssetTypeEnumeration
NameDescription
DEVICE_0Device
MODULE_1Real Module
SUBMODULE_2Real Submodule
ASSET_3Asset
6.3.3.3.14 PnAssetChangeEnumeration
Table 98 – PnAssetChangeEnumeration
NameDescription
INSERTED_0Asset has been added
REMOVED_1Asset has been removed
CHANGED_2Asset has been changed
6.3.3.3.15 PnLinkStateEnumeration
Table 99 – PnLinkStateEnumeration
NameDescription
UP_1Ready to pass packets
DOWN_2No packets are passed
TESTING_3In some test mode
UNKNOWN_4Status cannot be determined
DORMANT_5In pending state waiting for some external event
NOT_PRESENT_6Port not present
LOWER_LAYER_DOWN_7Down due to lower layer
6.3.3.3.16 PnPortStateEnumeration
Table 100 – PnPortStateEnumeration
NameDescription
UNKNOWN_0Status cannot be determined
DISABLED_DISCARDING_1The port is administratively disabled and discarding frames
BLOCKING_2The port blocks incoming frames
LISTENING_3The port is listening to and sending BPDUs (Bridge Protocol Data Units).
LEARNING_4The port is listening for and processing BPDUs and starts learning MAC’s
FORWARDING_5The port is processing BPDUs and forwarding frames
BROKEN_6The port blocks incoming frames since a configuration error is detected
6.3.3.3.17 IMTagSelectorEnumeration
Table 101 – IMTagSelectorEnumeration
NameDescription
FUNCTION_0The Tag_Function argument shall be written.
LOCATION_1The Tag_Location argument shall be written.
BOTH_2Both arguments, Tag_Function and Tag_Location, shall be written.

6.3.4 OPC UA Event Types

6.3.4.1 PnDiagnosisAlarmType

This event type is used for PROFINET diagnosis events.

Table 102 – PnDiagnosisAlarmType Definition
Attribute Value
BrowseNamePnDiagnosisAlarmType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of AlarmConditionType defined in [OPC 10000-9].
HasPropertyVariableAPIUInt32PropertyTypeMandatory
HasPropertyVariableSlotUInt16PropertyTypeMandatory
HasPropertyVariableSubslotUInt16PropertyTypeMandatory
HasPropertyVariableChannelNumberUInt16PropertyTypeMandatory
HasPropertyVariableTypePnChannelTypeEnumerationPropertyTypeMandatory
HasPropertyVariableAccumulativePnChannelAccumulativeEnumerationPropertyTypeMandatory
HasPropertyVariableMaintenancePnChannelMaintenanceEnumerationPropertyTypeOptional
HasPropertyVariableSpecifierPnChannelSpecifierEnumerationPropertyTypeMandatory
HasPropertyVariableDirectionPnChannelDirectionEnumerationPropertyTypeMandatory
HasPropertyVariableUserStructureIdentifierUInt16PropertyTypeMandatory
HasPropertyVariableChannelErrorTypeUInt16PropertyTypeMandatory
HasPropertyVariableExtChannelErrorTypeUInt16PropertyTypeOptional
HasPropertyVariableExtChannelAddValueUInt32PropertyTypeOptional
HasPropertyVariableQualifiedChannelQualifierUInt32PropertyTypeOptional
HasPropertyVariableManufacturerDataByteStringPropertyTypeOptional
HasPropertyVariableHelpTextLocalizedTextPropertyTypeOptional

If the variable UserStructureIdentifier indicates manufacturer specific diagnosis information, the variable ManufacturerData contains the manufacturer specific diagnosis data.

The Message variable of the Event and the HelpText variable are retrieved from the GSDML file. If the message includes a dynamic format string, this is replaced by the ExtChannelAddValue.

For an active alarm the Severity variable of the Event must be dependent on the Maintenance and the QualifiedChannelQualifier variables.

The Severity is divided into the 4 categories shown in the following table:

Category Severity Range
Fault750 – 1000
Maintenance demanded500 – 749
Maintenance required250 – 499
Advise2 – 249

If the Maintenance variable is provided, the following mapping is used for the Severity value:

Maintenance Severity
FAULT1000
MAINTENANCE_DEMANDED 612
MAINTENANCE_REQUIRED362

If the QualifiedChannelQualifier is provided, the Severity value depends on the bit set in the UInt32 value of the QualifiedChannelQualifier. The bits 0 – 2 are not used.

The following mapping is used for the Severity value:

Bit Severity
311000
30937
29875
28812
27750
26725
25700
24675
23650
22625
21600
20575
19550
18525
17500
16475
15450
14425
13400
12375
11350
10325
9300
8275
7250
6200
5150
4100
350
6.3.4.2 PnAssetChangedEventType

This event is fired when a new asset (controller, device, real module, real submodule or asset) is detected, an asset was removed, or the data of an asset changed. The event is fired on the object with the change.

An asset change for a device, real module or real submodule means that its I&M data (PnIdentificationType) has changed. See section 5.3.2.6Asset change detection” for details.

Table 103 – PnAssetChangedEventType Definition
Attribute Value
BrowseNamePnAssetChangedEventType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseEventType defined in [OPC 10000-5].
HasPropertyVariableAssetTypePnAssetTypeEnumerationPropertyTypeMandatory
HasPropertyVariableAssetChangePnAssetChangeEnumerationPropertyTypeMandatory

The SourceNode variable of the event includes the NodeId of the asset object.

The Severity variable shall be set according to the following table.

Severity Cause
10Minor important asset detected
20Normal important asset detected
30Asset of vital importance detected
110Minor important asset changed
120Normal important asset changed
130Asset of vital importance changed
1100Minor important asset removed
1200Normal important asset removed
1300Asset of vital importance removed
6.3.4.3 PnTopologyChangedEventType

This event is fired when the CommLinkTo reference between two EthernetPortType objects is created, removed or changed. The event is fired by the PnPortType object.

This means that the physical network topology has changed.

The Severity variable (inherited from BaseEventType) shall be set to 1.

Table 104 – PnTopologyChangedEventType Definition
Attribute Value
BrowseNamePnTopologyChangedEventType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of BaseEventType defined in [OPC 10000-5].

The SourceNode variable of the event includes the NodeId of the PnPortType object.