Objects are used to represent systems, system components, real-world objects and software objects. Objects are defined using the Object NodeClass, specified in Table 11.

Table 11 – Object NodeClass

Name

Use

Data Type

Description

Attributes

Base NodeClass Attributes

M

--

Inherited from the Base NodeClass. See 5.2.

EventNotifier

M

EventNotifierType

The EventNotifier Attribute is used to indicate if the Node can be used to subscribe to Events or the read / write historic Events.

The EventNotifierType is defined in 0.

References

HasComponent

0..*

HasComponent References identify the DataVariables, the Methods and Objects contained in the Object.

HasProperty

0..*

HasProperty References identify the Properties of the Object.

HasModellingRule

0..1

Objects can point to at most one ModellingRule Object using a HasModellingRule Reference (see 6.4.4 for details on ModellingRules).

HasTypeDefinition

1

The HasTypeDefinition Reference points to the type definition of the Object. Each Object shall have exactly one type definition and therefore be the SourceNode of exactly one HasTypeDefinition Reference pointing to an ObjectType. See 4.5 for a description of type definitions.

HasEventSource

0..*

The HasEventSource Reference points to event sources of the Object. References of this type can only be used for Objects having their “SubscribeToEvents” bit set in the EventNotifier Attribute. See 7.17 for details.

HasNotifier

0..*

The HasNotifier Reference points to notifiers of the Object. References of this type can only be used for Objects having their “SubscribeToEvents” bit set in the EventNotifier Attribute. See 7.18 for details.

Organizes

0..*

This Reference should be used only for Objects of the ObjectType FolderType (see 5.5.3).

<other References>

0..*

Objects may contain other References.

Standard Properties

NodeVersion

O

String

The NodeVersion Property is used to indicate the version of a Node.

The NodeVersion Property is updated each time a Reference is added or deleted to the Node the Property belongs to. Attribute value changes do not cause the NodeVersion to change. Clients may read the NodeVersion Property or subscribe to it to determine when the structure of a Node has changed.

Icon

O

Image

The Icon Property provides an image that can be used by Clients when displaying the Node. It is expected that the Icon Property contains a relatively small image.

NamingRule

O

NamingRuleType

The NamingRule Property defines the NamingRule of a ModellingRule (see 6.4.4.2.1 for details). This Property shall only be used for Objects of the type ModellingRuleType defined in 6.4.4.

The Object NodeClass inherits the base Attributes from the Base NodeClass defined in 5.2.

The mandatory EventNotifier Attribute identifies whether the Object can be used to subscribe to Events or to read and write the history of the Events.

The Object NodeClass uses the HasComponent Reference to define the DataVariables, Objects and Methods of an Object.

It uses the HasProperty Reference to define the Properties of an Object. The Property NodeVersion is used to indicate the version of the Object. The Property Icon provides an icon of the Object. The Property NamingRule defines the NamingRule of a ModellingRule and shall only be applied to Objects of type ModellingRuleType. There are no additional Properties defined for Objects in this document. Additional parts of this series of standards may define additional Properties for Objects.

To specify its ModellingRule, an Object can use at most one HasModellingRule Reference pointing to a ModellingRule Object. ModellingRules are defined in 6.4.4.

HasNotifier and HasEventSource References are used to provide information about eventing and can only be applied to Objects used as event notifiers. Details are defined in 7.16 and 7.18.

The HasTypeDefinition Reference points to the ObjectType used as type definition of the Object.

Objects may use any additional References to define relationships to other Nodes. No restrictions are placed on the types of References used or on the NodeClasses of the Nodes that may be referenced. However, restrictions may be defined by the ReferenceType excluding its use for Objects. Standard ReferenceTypes are described in Clause 7.

If the Object is used as an InstanceDeclaration (see 4.5) then all Nodes referenced with forward hierarchical References direction shall have unique BrowseNames in the context of this Object.

If the Object is created based on an InstanceDeclaration then it shall have the same BrowseName as its InstanceDeclaration.

ObjectTypes provide definitions for Objects. ObjectTypes are defined using the ObjectType NodeClass, which is specified in Table 12.

Table 12 – ObjectType NodeClass

Name

Use

Data Type

Description

Attributes

Base NodeClass Attributes

M

--

Inherited from the Base NodeClass. See 5.2.

IsAbstract

M

Boolean

A boolean Attribute with the following values:

TRUEit is an abstract ObjectType, i.e. no Objects of this type shall exist, only Objects of its subtypes.

FALSEit is not an abstract ObjectType, i.e. Objects of this type can exist.

References

HasComponent

0..*

HasComponent References identify the DataVariables, the Methods, and Objects contained in the ObjectType.

If and how the referenced Nodes are instantiated when an Object of this type is instantiated, is specified in 6.4.

HasProperty

0..*

HasProperty References identify the Properties of the ObjectType. If and how the Properties are instantiated when an Object of this type is instantiated, is specified in 6.4.

HasSubtype

0..*

HasSubtype References identify ObjectTypes that are subtypes of this type. The inverse SubtypeOf Reference identifies the parent type of this type.

GeneratesEvent

0..*

GeneratesEvent References identify the type of Events instances of this type may generate.

<other References>

0..*

ObjectTypes may contain other References that can be instantiated by Objects defined by this ObjectType.

Standard Properties

NodeVersion

O

String

The NodeVersion Property is used to indicate the version of a Node.

The NodeVersion Property is updated each time a Reference is added or deleted to the Node the Property belongs to. Attribute value changes do not cause the NodeVersion to change. Clients may read the NodeVersion Property or subscribe to it to determine when the structure of a Node has changed.

Icon

O

Image

The Icon Property provides an image that can be used by Clients when displaying the Node. It is expected that the Icon Property contains a relatively small image.

The ObjectType NodeClass inherits the base Attributes from the Base NodeClass defined in 5.2. The additional IsAbstract Attribute indicates if the ObjectType is abstract or not.

The ObjectType NodeClass uses the HasComponent References to define the DataVariables, Objects, and Methods for it.

The HasProperty Reference is used to identify the Properties. The Property NodeVersion is used to indicate the version of the ObjectType. The Property Icon provides an icon of the ObjectType. There are no additional Properties defined for ObjectTypes in this document. Additional parts of this series of standards may define additional Properties for ObjectTypes.

HasSubtype References are used to subtype ObjectTypes. ObjectType subtypes inherit the general semantics from the parent type. The general rules for subtyping apply as defined in Clause 6. It is not required to provide the HasSubtype Reference for the supertype, but it is required that the subtype provides the inverse Reference to its supertype.

GeneratesEvent References identify the type of Events that instances of the ObjectType may generate. These Objects may be the source of an Event of the specified type or one of its subtypes. Servers should make GeneratesEvent References bidirectional References. However, it is allowed to be unidirectional when the Server is not able to expose the inverse direction pointing from the EventType to each ObjectType supporting the EventType. Note that the EventNotifier Attribute of an Object and the GeneratesEvent References of its ObjectType are completely unrelated. Objects that can generate Events might not be used as Objects to which Clients subscribe to get the corresponding Event notifications.

GeneratesEvent References are optional, i.e. Objects may generate Events of an EventType that is not exposed by its ObjectType.

ObjectTypes may use any additional References to define relationships to other Nodes. No restrictions are placed on the types of References used or on the NodeClasses of the Nodes that may be referenced. However, restrictions may be defined by the ReferenceType excluding its use for ObjectTypes. Standard ReferenceTypes are described in Clause 7.

All Nodes referenced with forward hierarchical References shall have unique BrowseNames in the context of an ObjectType (see 4.5).

The ObjectType FolderType is formally defined in OPC 10000-5. Its purpose is to provide Objects that have no other semantic than organizing of the AddressSpace. A special ReferenceType is introduced for those Folder Objects, the Organizes ReferenceType. The SourceNode of such a Reference should always be a View or an Object of the ObjectType FolderType; the TargetNode can be of any NodeClass. Organizes References can be used in any combination with HasChild References (HasComponent, HasProperty, etc.; see 7.5) and do not prevent loops. Thus, they can be used to span multiple hierarchies.

Objects are always based on an ObjectType, i.e. they have a HasTypeDefinition Reference pointing to its ObjectType.

Clients can create Objects using the AddNodes Service defined in OPC 10000-4. The Service requires specifying the TypeDefinitionNode of the Object. An Object created by the AddNodes Service contains all components defined by its ObjectType dependent on the ModellingRules specified for the components. However, the Server may add additional components and References to the Object and its components that are not defined by the ObjectType. This behaviour is Server dependent. The ObjectType only specifies the minimum set of components that shall exist for each Object of an ObjectType.

In addition to the AddNodes Service ObjectTypes may have a special Method with the BrowseNameCreate”. This Method is used to create an Object of this ObjectType. This Method may be useful for the creation of Objects where the semantic of the creation should differ from the default behaviour expected in the context of the AddNodes Service. For example, the values should directly differ from the default values or additional Objects should be added, etc. The input and output arguments of this Method depend on the ObjectType; the only commonality is the BrowseName identifying that this Method will create an Object based on the ObjectType. Servers should not provide a Method on an ObjectType with the BrowseNameCreate” for any other purpose than creating Objects of the ObjectType.