Introduction

The OPC 40100-2 specifications contain OPC UA Companion Specifications of several industry sectors and are developed by members of VDMA and/or the OPC Foundation. OPC UA is a machine to machine communication technology to transmit characteristics of products (e.g. manufacturer name, device type or components) and process data (e.g. temperatures, pressures or feed rates). To enable vendor unspecific interoperability the description of product characteristics and process data must be standardized utilizing technical specifications, the OPC UA companion specifications.

Associations

VDMA Robotics + Automation

The VDMA represents around 3300 German and European companies in the mechanical engineering industry. The industry represents innovation, export orientation, medium-sized companies and employs around four million people in Europe, more than one million of them in Germany.

The Robotics + Automation Association as part of VDMA represents one of the most dynamic and fastest growing sectors of the machinery industry and consists of the three groups Robotics, Machine Vision, and Integrated Assembly Solutions. The German Robotics + Automation sector, which reached close to €15 billion in turnover in 2019, is a pacemaker for the digitalization of production. With future studies, trade fair policy and activities such as OPC UA the association is ready for the future.

OPC Foundation

OPC is the interoperability standard for the secure and reliable exchange of data and information in the industrial automation space and in other industries. It is platform independent and ensures the seamless flow of information among devices from multiple vendors. The OPC Foundation is responsible for the development and maintenance of this standard.

OPC UA is a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework. This multi-layered approach accomplishes the original design specification goals of:

Platform independence: from an embedded microcontroller to cloud-based infrastructure

Security: encryption, authentication, authorization, and auditing

Extensibility: ability to add new features including transports without affecting existing applications

Comprehensive information modelling capabilities: for defining any model from simple to complex

1 Scope

This document specifies an OPC UA Information Model for the representation of a machine vision system.

OPC Machine Vision Part 1 concerned itself with the control & behavior of machine vision systems and their integration into production control and IT systems.

OPC Machine Vision Part 2 focuses on the management and monitoring of machine vision systems and their components for asset management systems, taking into account existing and emerging standards in these areas, like OPC for Devices and OPC for Machinery.

Part 2 thus aims at integrating machine vision systems into Industry 4.0 systems for monitoring the health of production equipment, predictive maintenance, data analytics, optimization of processes, resource efficiency, etc.

2 Normative references

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments and errata) applies

There are no normative references in this document.

OPC 10000-1, OPC Unified Architecture - Part 1: Overview and Concepts

OPC 10000-1

OPC 10000-2, OPC Unified Architecture - Part 2: Security Model

OPC 10000-2

OPC 10000-3, OPC Unified Architecture - Part 3: Address Space Model

OPC 10000-3

OPC 10000-4, OPC Unified Architecture - Part 4: Services

OPC 10000-4

OPC 10000-5, OPC Unified Architecture - Part 5: Information Model

OPC 10000-5

OPC 10000-6, OPC Unified Architecture - Part 6: Mappings

OPC 10000-6

OPC 10000-7, OPC Unified Architecture - Part 7: Profiles

OPC 10000-7

OPC 10000-8, OPC Unified Architecture - Part 8: Data Access

OPC 10000-8

OPC 10000-100, OPC Unified Architecture - Part 100: Devices

OPC 10000-100

OPC 40001-1, OPC UA for Machinery - Part 1: Basic Building Blocks

http://www.opcfoundation.org/UA/Machinery/

OPC 40010-1, OPC UA for Robotics - Part 1: Vertical Integration

http://www.opcfoundation.org/UA/Robotics/

SEMI E10-0312: SEMI E10 Standard: Specification for Definition and Measurement of Equipment Reliability, Availability, and Maintainability (RAM) and Utilization).

https://store-us.semi.org/products/e01000-semi-e10-specification-for-definition-and-measurement-of-equipment-reliability-availability-and-maintainability-ram-and-utilization

3 Terms, definitions, and conventions

3.1 Overview

It is assumed that basic concepts of OPC UA information modelling are understood in this specification. This specification will use these concepts to describe the OPC UA for Machine Vision Information Model. For the purposes of this document, the terms and definitions given in OPC 10000-1, OPC 10000-3, OPC 10000-4, OPC 10000-5, OPC 10000-7, OPC 10000-100, OPC 40001-1 as well as the following apply.

Note that OPC UA terms and terms defined in this specification are italicized in the specification.

3.2 OPC UA for Machine Vision Part 2 terms

Term Definition of Term
Computing DeviceA device performing the actual processing of input and intermediate data and/or aggregation of prior results.
LightRefers to visible light, infrared, ultraviolet, x-ray, radar, ultrasonic, virtual imaging, etc. it is used as a catch-all term for all current and future imaging techniques used to gather data in a machine vision context.
Display UnitA device enabling the computing unit to show information to a human operator.
Physical InterfaceAn interface other than the named components (e.g., Fieldbus, Digital IO).
Image SensorA sensor that converts an optical signal into an electrical signal (VDI 2632).
Frame GrabberA hardware component to connect an image source to a computer (VDI 2632).
LensAn imaging optical system, usually implemented as a combination of several optical elements (lens elements, aperture, among others) in an enclosure (VDI 2632). The optics referred to in this specification is in line with the definition of light mentioned here.
Lens ControllerA device allowing to control specific parameters of the lens to adapt the image sensor to changing acquisition situations.
Optical FilterA device used to limit/modify light before it reaches the image sensor or after it leaves the lamp.
Other Optical EquipmentDevices other than the named ones mentioned in this table, in the path of light between lamp and image sensor.
Object of InterestThe object being inspected in the scene sensed by the image sensor. The whole scene itself could also be the object of interest.
Way EncoderA device providing distance or movement information of an object of interest.
Trigger SensorA device providing information on the presence of an object of interest to the image sensor.
LampThe source of light that is used by the image sensor to create an image of an object of interest. This definition is in line with the definition of light mentioned above.
Lighting ControllerA device allowing to control parameters of light created by a lamp.
Pattern GeneratorA device allowing to create specific patterns (spatial distributions) of light.
Calibration TargetAn object with well-known properties needed to calibrate aspects of the system
Acquisition BackgroundThe scene around the object of interest as seen by the image sensor.
Surrounding EnvironmentParameters of the environment around the vision system (brightness of ambient light, ambient temperature etc.).
HousingA housing / casing / fencing around the vision system / image sensor
Motion DeviceA motion device has as least one axis and is a multifunctional manipulator designed to move material, parts, tools, or specialized devices through variable programmed motions for the performance of a variety of tasks. Examples are an industrial robot, positioner, or mobile platform (OPC 40010-1).
Power SupplyA device supplying power to other components (electrical, hydraulic etc.)
Climate ControllerA device maintaining the climate of the vision system i.e., it might be used for cooling/heating other components or providing cooled/heated flow of media (air, water etc.), maintaining the humidity of the system etc.
LicenseA non-physical entity – which may have a physical anchor – controlling access to software functionality.
SoftwareA non-physical entity. A collection of instructions that are executed by a computing device.
Network DeviceAn infrastructure device providing data communication paths to interconnected devices (at the time of writing this specification, this definition encapsulates all types of communication).
Vision Item (or just Item)An identifiable component or machine that is part of the machine vision system

3.3 Abbreviated terms

AMCMMachine Vision – Asset Management and Condition Monitoring
MVMachine Vision
RAIDRedundant Array of Independent Disks
RAMRandom Access Memory
OSOperating System
CCUClimate Control Unit
PLCProgrammable Logic Controller
VSAVision System Asset

3.4 Conventions used in this document

3.4.1 Conventions for Node descriptions

3.4.1.1 Node definitions

Node definitions are specified using tables (see Table 2 ).

Attributes are defined by providing the Attribute name and a value, or a description of the value.

References are defined by providing the ReferenceType name, the BrowseName of the TargetNode and its NodeClass.

If the TargetNode is a component of the Node being defined in the table the Attributes of the composed Node are defined in the same row of the table.

The DataType is only specified for Variables; “[<number>]” indicates a single-dimensional array, for multi-dimensional arrays the expression is repeated for each dimension (e.g. [2][3] for a two-dimensional array). For all arrays the ArrayDimensions is set as identified by <number> values. If no <number> is set, the corresponding dimension is set to 0, indicating an unknown size. If no number is provided at all the ArrayDimensions can be omitted. If no brackets are provided, it identifies a scalar DataType and the ValueRank is set to the corresponding value (see OPC 10000-3). In addition, ArrayDimensions is set to null or is omitted. If it can be Any or ScalarOrOneDimension, the value is put into “{<value>}”, so either “{Any}” or “{ScalarOrOneDimension}” and the ValueRank is set to the corresponding value (see OPC 10000-3) and the ArrayDimensions is set to null or is omitted. Examples are given in Table 1.

Table 1 – Examples of DataTypes
NotationData­TypeValue­RankArray­DimensionsDescription
0:Int320:Int32-1omitted or nullA scalar Int32.
0:Int32[]0:Int321omitted or {0}Single-dimensional array of Int32 with an unknown size.
0:Int32[][]0:Int322omitted or {0,0}Two-dimensional array of Int32 with unknown sizes for both dimensions.
0:Int32[3][]0:Int322{3,0}Two-dimensional array of Int32 with a size of 3 for the first dimension and an unknown size for the second dimension.
0:Int32[5][3]0:Int322{5,3}Two-dimensional array of Int32 with a size of 5 for the first dimension and a size of 3 for the second dimension.
0:Int32{Any}0:Int32-2omitted or nullAn Int32 where it is unknown if it is scalar or array with any number of dimensions.
0:Int32{ScalarOrOneDimension}0:Int32-3omitted or nullAn Int32 where it is either a single-dimensional array or a scalar.

The TypeDefinition is specified for Objects and Variables.

The TypeDefinition column specifies a symbolic name for a NodeId, i.e., the specified Node points to the corresponding Node, with a HasTypeDefinition Reference.

The ModellingRule of the referenced component is provided by specifying the symbolic name of the rule in the ModellingRule column. In the AddressSpace, the Node shall use a HasModellingRule Reference to point to the corresponding ModellingRule Object.

If the NodeId of a DataType is provided, the symbolic name of the Node representing the DataType shall be used.

Note that if a symbolic name of a different namespace is used, it is prefixed by the NamespaceIndex (see 3.4.2.2).

Nodes of all other NodeClasses cannot be defined in the same table; therefore, only the used ReferenceType, their NodeClass and their BrowseName are specified. A reference to another part of this document points to their definition.

Table 2 explains the content/structure of a Type definition table. If no components are provided, the DataType, TypeDefinition and ModellingRule columns may be omitted and only a Comment column is introduced to point to the Node definition.

Table 2 – Type Definition Table
Attribute Value
Attribute nameAttribute value. If it is an optional Attribute that is not set “--“ will be used.
References NodeClass BrowseName DataType TypeDefinition Other
ReferenceType name NodeClass of the target Node. BrowseName of the target Node. DataType of the referenced Node, only applicable for Variables. TypeDefinition of the referenced Node, only applicable for Variables and Objects.Additional characteristics of the TargetNode such as the ModellingRule or AccessLevel.
NOTE Notes referencing footnotes of the table content.

Components of Nodes can be complex that is containing components by themselves. The TypeDefinition, NodeClass and DataType can be derived from the type definitions, and the symbolic name can be created as defined in 3.4.3.1. Therefore, those containing components are not explicitly specified; they are implicitly specified by the type definitions.

The Other column defines additional characteristics of the Node. Examples of characteristics that can appear in this column are show in Table 3.

Table 3 – Examples of Other Characteristics
Name Short Name Description
0:MandatoryMThe Node has the Mandatory ModellingRule.
0:OptionalOThe Node has the Optional ModellingRule.
0:MandatoryPlaceholderMPThe Node has the MandatoryPlaceholder ModellingRule.
0:OptionalPlaceholderOPThe Node has the OptionalPlaceholder ModellingRule.
ReadOnlyROThe Node AccessLevel has the CurrentRead bit set but not the CurrentWrite bit.
ReadWriteRWThe Node AccessLevel has the CurrentRead and CurrentWrite bits set.
WriteOnlyWOThe Node AccessLevel has the CurrentWrite bit set but not the CurrentRead bit.

If multiple characteristics are defined, they are separated by commas. The name or the short name may be used.

3.4.1.2 Additional References

To provide information about additional References, the format as shown in Table 4 is used.

The components of the ObjectType have additional references which are defined in Table 4.

Table 4 – <some> Additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
SourceBrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table. ReferenceType nameTrue = forward Reference

TargetBrowsePath points to another Node, which can be a well-known instance or a TypeDefinition. You can use BrowsePaths here as well, which is either relative to the TypeDefinition or absolute.

If absolute, the first entry needs to refer to a type or well-known instance, uniquely identified within a namespace by the BrowseName.

References can be to any other Node.

3.4.1.3 Additional sub-components

To provide information about sub-components, the format as shown in Table 5 is used.

Table 5 – <some>Type Additional Subcomponents
BrowsePath Reference NodeClass BrowseName DataType TypeDefinition Others
BrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested tableNOTE Same as for Table 2
3.4.1.4 Additional Attribute values

The type definition table provides columns to specify the values for required Node Attributes for InstanceDeclarations. To provide information about additional Attributes, the format as shown in Table 6 is used.

Table 6 – <some>Type Attribute values for child nodes
BrowsePath <Attribute name> Attribute
BrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table

The values of attributes are converted to text by adapting the reversible JSON encoding rules defined in OPC 10000-6.

If the JSON encoding of a value is a JSON string or a JSON number, then that value is entered in the value field. Double quotes are not included.

If the DataType includes a NamespaceIndex (QualifiedNames, NodeIds or ExpandedNodeIds) then the notation used for BrowseNames is used.

If the value is an Enumeration the name of the enumeration value is entered.

If the value is a Structure then a sequence of name and value pairs is entered. Each pair is followed by a newline. The name is followed by a colon. The names are the names of the fields in the DataTypeDefinition.

If the value is an array of non-structures then a sequence of values is entered where each value is followed by a newline.

If the value is an array of Structures or a Structure with fields that are arrays or with nested Structures then the complete JSON array or JSON object is entered. Double quotes are not included.

There can be multiple columns to define more than one Attribute.

3.4.2 NodeIds and BrowseNames

3.4.2.1 NodeIds

The NodeIds of all Nodes described in this standard are only symbolic names. Annex A defines the actual NodeIds.

The symbolic name of each Node defined in this document is its BrowseName, or, when it is part of another Node, the BrowseName of the other Node, a “.”, and the BrowseName of itself. In this case “part of” means that the whole has a HasProperty or HasComponent Reference to its part. Since all Nodes not being part of another Node have a unique name in this document, the symbolic name is unique.

The NamespaceUri for all NodeIds defined in this document is defined in Annex A. The NamespaceIndex for this NamespaceUri is vendor-specific and depends on the position of the NamespaceUri in the server namespace table.

Note that this document not only defines concrete Nodes, but also requires that some Nodes shall be generated, for example one for each Session running on the Server. The NodeIds of those Nodes are Server-specific, including the namespace. But the NamespaceIndex of those Nodes cannot be the NamespaceIndex used for the Nodes defined in this document, because they are not defined by this document but generated by the Server.

3.4.2.2 BrowseNames

The text part of the BrowseNames for all Nodes defined in this document is specified in the tables defining the Nodes. The NamespaceUri for all BrowseNames defined in this document is defined in 14.2.

For InstanceDeclarations of NodeClass Object and Variable that are placeholders (OptionalPlaceholder and MandatoryPlaceholder ModellingRule), the BrowseName and the DisplayName are enclosed in angle brackets (<>) as recommended in OPC 10000-3. If the BrowseName is not defined by this document, a namespace index prefix is added to the BrowseName (e.g., prefix '0' leading to ‘0:EngineeringUnits’ or prefix '2' leading to ‘2:DeviceRevision’). This is typically necessary if a Property of another specification is overwritten or used in the OPC UA types defined in this document. Table 81 provides a list of namespaces and their indexes as used in this document.

3.4.3 Common Attributes

3.4.3.1 General

The Attributes of Nodes, their DataTypes and descriptions are defined in OPC 10000-3. Attributes not marked as optional are mandatory and shall be provided by a Server. The following tables define if the Attribute value is defined by this specification or if it is server-specific.

For all Nodes specified in this specification, the Attributes named in Table 7 shall be set as specified in the table.

Table 7 – Common Node Attributes
Attribute Value
DisplayNameThe DisplayName is a LocalizedText. Each server shall provide the DisplayName identical to the BrowseName of the Node for the LocaleId “en”. Whether the server provides translated names for other LocaleIds is server-specific.
DescriptionOptionally a server-specific description is provided.
NodeClassShall reflect the NodeClass of the Node.
NodeIdThe NodeId is described by BrowseNames as defined in 3.4.2.1.
WriteMaskOptionally the WriteMask Attribute can be provided. If the WriteMask Attribute is provided, it shall set all non-server-specific Attributes to not writable. For example, the Description Attribute may be set to writable since a Server may provide a server-specific description for the Node. The NodeId shall not be writable, because it is defined for each Node in this specification.
UserWriteMaskOptionally the UserWriteMask Attribute can be provided. The same rules as for the WriteMask Attribute apply.
RolePermissionsOptionally server-specific role permissions can be provided.
UserRolePermissionsOptionally the role permissions of the current Session can be provided. The value is server-specifc and depend on the RolePermissions Attribute (if provided) and the current Session.
AccessRestrictionsOptionally server-specific access restrictions can be provided.
3.4.3.2 Objects

For all Objects specified in this specification, the Attributes named in Table 8 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 8 – Common Object Attributes
Attribute Value
EventNotifierWhether the Node can be used to subscribe to Events or not is server-specific.
3.4.3.3 Variables

For all Variables specified in this specification, the Attributes named in Table 9 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 9 – Common Variable Attributes
Attribute Value
MinimumSamplingIntervalOptionally, a server-specific minimum sampling interval is provided.
AccessLevelThe access level for Variables used for type definitions is server-specific, for all other Variables defined in this specification, the access level shall allow reading; other settings are server-specific.
UserAccessLevelThe value for the UserAccessLevel Attribute is server-specific. It is assumed that all Variables can be accessed by at least one user.
ValueFor Variables used as InstanceDeclarations, the value is server-specific; otherwise it shall represent the value described in the text.
ArrayDimensions

If the ValueRank does not identify an array of a specific dimension (i.e. ValueRank <= 0) the ArrayDimensions can either be set to null or the Attribute is missing. This behaviour is server-specific.

If the ValueRank specifies an array of a specific dimension (i.e. ValueRank > 0) then the ArrayDimensions Attribute shall be specified in the table defining the Variable.

HistorizingThe value for the Historizing Attribute is server-specific.
AccessLevelExIf the AccessLevelEx Attribute is provided, it shall have the bits 8, 9, and 10 set to 0, meaning that read and write operations on an individual Variable are atomic, and arrays can be partly written.
3.4.3.4 VariableTypes

For all VariableTypes specified in this specification, the Attributes named in Table 10 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 10 – Common VariableType Attributes
Attributes Value
ValueOptionally a server-specific default value can be provided.
ArrayDimensions

If the ValueRank does not identify an array of a specific dimension (i.e. ValueRank <= 0) the ArrayDimensions can either be set to null or the Attribute is missing. This behaviour is server-specific.

If the ValueRank specifies an array of a specific dimension (i.e. ValueRank > 0) then the ArrayDimensions Attribute shall be specified in the table defining the VariableType.

3.4.3.5 Methods

For all Methods specified in this specification, the Attributes named in Table 11 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 11 – Common Method Attributes
Attributes Value
ExecutableAll Methods defined in this specification shall be executable (Executable Attribute set to “True”), unless it is defined differently in the Method definition.
UserExecutableThe value of the UserExecutable Attribute is server-specific. It is assumed that all Methods can be executed by at least one user.

4 General information on Machine Vision and OPC UA

4.1 Introduction to Machine Vision Systems

A machine vision system is any computer system, smart camera, vision sensor or even any other component that has the capability to record and process digital images or video streams and extracts information from them. In an industrial production this usually refers to the factory floor or industrial market.

Digital images or video streams represent data in a general sense, comprising multiple spatial dimensions (e.g. 1D scanner lines, 2D camera images, 3D point clouds, image sequences, etc.) acquired with the help of any kind of light. The term “light” in this companion specification refers to visible light, infrared, ultraviolet, x-ray, radar, ultrasonic, virtual imaging, etc. it is used as a catch-all term for all current and future imaging techniques used to gather data in a machine vision context.

The output of a machine vision system can be raw or pre-processed images or any image-based measurements, inspection results, process control data, robot guidance data, etc., depending on the specific vision task.

Machine vision systems therefore cover a broad range of applications that can vary from small single task systems in an embedded board or smart camera, to a very complicated multi-computer, multi-camera setup that can be reconfigured to analyze different aspects of a product line.

Applications include identification (like data matrix code, bar code or character recognition), pose determination (e.g., for robot guidance), assembly checks, gauging up to very high accuracy, surface inspection, color identification, among others.

Therefore, a machine vision system is a collection of different components and other machines that work together to achieve a particular vision task.

Figure 49 shows an example of a machine vision system in the context of this companion specification composed of multiple hardware and software components.

These underlying components of the system and their relationships present themselves to the “outside world” in various ways, e.g., the PLC can use various interfaces like digital I/O, Fieldbus, or other vendor specific protocol definitions. The objects and relationships described in this specification may express these interfaces and offer a global view on the system.

This companion specification provides a way to model a machine vision system by using building blocks that express all the configurations that a component like a PLC can have. It envisions things not as rigid objects but as a collection of capabilities and aspects. A physical PLC will then not be model a single object but as a group of objects like a computing device + physical interfaces for its I/Os, serial and ethernet ports. This approach allows to be more granular and compact with the amount of information that can be expressed about a physical object. This abstraction may reflect the structure and relationships between all the components of the machine vision system or may present a view without too much detail.

4.2 Introduction to OPC Unified Architecture

4.2.1 What is OPC UA?

OPC UA is an open and royalty free set of standards designed as a universal communication protocol. While there are numerous communication solutions available, OPC UA has key advantages:

A state of art security model (see OPC 10000-2).

A fault tolerant communication protocol.

An information modelling framework that allows application developers to represent their data in a way that makes sense to them.

OPC UA has a broad scope which delivers for economies of scale for application developers. This means that a larger number of high-quality applications at a reasonable cost are available. When combined with semantic models such as OPC UA for Machine Vision, OPC UA makes it easier for end users to access data via generic commercial applications.

The OPC UA model is scalable from small devices to ERP systems. OPC UA Servers process information locally and then provides that data in a consistent format to any application requesting data - ERP, MES, PMS, Maintenance Systems, HMI, Smartphone, or a standard Browser, for examples. For a more complete overview see OPC 10000-1.

4.2.2 Basics of OPC UA

As an open standard, OPC UA is based on standard internet technologies, like TCP/IP, HTTP, Web Sockets.

As an extensible standard, OPC UA provides a set of Services (see OPC 10000-4) and a basic information model framework. This framework provides an easy manner for creating and exposing vendor defined information in a standard way. More importantly all OPC UA Clients are expected to be able to discover and use vendor-defined information. This means OPC UA users can benefit from the economies of scale that come with generic visualization and historian applications. This specification is an example of an OPC UA Information Model designed to meet the needs of developers and users.

OPC UA Clients can be any consumer of data from another device on the network to browser based thin clients and ERP systems. The full scope of OPC UA applications is shown in Figure 1.

Figure 1 – The Scope of OPC UA within an Enterprise

OPC UA provides a robust and reliable communication infrastructure having mechanisms for handling lost messages, failover, heartbeat, etc. With its binary encoded data, it offers a high-performing data exchange solution. Security is built into OPC UA as security requirements become more and more important especially since environments are connected to the office network or the internet and attackers are starting to focus on automation systems.

4.2.3 Information modelling in OPC UA

4.2.3.1 Concepts

OPC UA provides a framework that can be used to represent complex information as Objects in an AddressSpace which can be accessed with standard services. These Objects consist of Nodes connected by References. Different classes of Nodes convey different semantics. For example, a Variable Node represents a value that can be read or written. The Variable Node has an associated DataType that can define the type of the actual value, such as a string, float, structure etc. It can also describe the Variable value as a variant. A Method Node represents a function that can be called. Every Node has several Attributes including a unique identifier called a NodeId and non-localized name called as BrowseName. An Object representing a ‘Reservation’ is shown in Figure 2.

Figure 2 – A Basic Object in an OPC UA Address Space

Object and Variable Nodes represent instances, and they always reference a TypeDefinition (ObjectType or VariableType) Node which describes their semantics and structure. Figure 3 illustrates the relationship between an instance and its TypeDefinition.

The type Nodes are templates that define all the children that can be present in an instance of the type. In the example in Figure 3 the PersonType ObjectType defines two children: First Name and Last Name. All instances of PersonType are expected to have the same children with the same BrowseNames. Within a type the BrowseNames uniquely identify the children. This means Client applications can be designed to search for children based on the BrowseNames of the type instead of NodeIds. This eliminates the need for manual reconfiguration of systems if a Client uses types that multiple Servers implement.

OPC UA also supports the concept of sub-typing. This allows a modeller to take an existing type and extend it. There are rules regarding sub-typing defined in OPC 10000-3, but in general they allow the extension of a given type or the restriction of a DataType. For example, the modeller may decide that the existing ObjectType in some cases needs an additional Variable. The modeller can create a subtype of the ObjectType and add the Variable. A Client that is expecting the parent type can treat the new type as if it was of the parent type. Regarding DataTypes, subtypes can only restrict. If a Variable is defined to have a numeric value, a sub type could restrict it to a float.

Figure 3 – The Relationship between Type Definitions and Instances

References allow Nodes to be connected in ways that describe their relationships. All References have a ReferenceType that specifies the semantics of the relationship. References can be hierarchical or non-hierarchical. Hierarchical references are used to create the structure of Objects and Variables. Non-hierarchical are used to create arbitrary associations. Applications can define their own ReferenceType by creating subtypes of an existing ReferenceType. Subtypes inherit the semantics of the parent but may add additional restrictions. Figure 4 depicts several References, connecting different Objects.

Figure 4 – Examples of References between Objects

The figures above use a notation that was developed for the OPC UA specification. The notation is summarized in Figure 5. UML representations can also be used; however, the OPC UA notation is less ambiguous because there is a direct mapping from the elements in the figures to Nodes in the AddressSpace of an OPC UA Server.

Figure 5 – The OPC UA Information Model Notation

A complete description of the different types of Nodes and References can be found in OPC 10000-3 and the base structure is described in OPC 10000-5.

OPC UA specification defines a very wide range of functionality in its basic information model. It is not required that all Clients or Servers support all functionality in the OPC UA specifications. OPC UA includes the concept of Profiles, which segment the functionality into testable certifiable units. This allows the definition of functional subsets (that are expected to be implemented) within a companion specification. The Profiles do not restrict functionality, but generate requirements for a minimum set of functionalities (see OPC 10000-7)

4.2.3.2 Namespaces

OPC UA allows information from many different sources to be combined into a single coherent AddressSpace. Namespaces are used to make this possible by eliminating naming and id conflicts between information from different sources. Each namespace in OPC UA has a globally unique string called a NamespaceUri which identifies a naming authority and a locally unique integer called a NamespaceIndex, which is an index into the Server's table of NamespaceUris. The NamespaceIndex is unique only within the context of a Session between an OPC UA Client and an OPC UA Server- the NamespaceIndex can change between Sessions and still identify the same item even though the NamespaceUri's location in the table has changed. The Services defined for OPC UA use the NamespaceIndex to specify the Namespace for qualified values.

There are two types of structured values in OPC UA that are qualified with NamespaceIndexes: NodeIds and QualifiedNames. NodeIds are locally unique (and sometimes globally unique) identifiers for Nodes. The same globally unique NodeId can be used as the identifier in a node in many Servers – the node's instance data may vary but its semantic meaning is the same regardless of the Server it appears in. This means Clients can have built-in knowledge of what the data means in these Nodes. OPC UA Information Models generally define globally unique NodeIds for the TypeDefinitions defined by the Information Model.

QualifiedNames are non-localized names qualified with a Namespace. They are used for the BrowseNames of Nodes and allow the same names to be used by different information models without conflict. TypeDefinitions are not allowed to have children with duplicate BrowseNames; however, instances do not have that restriction.

4.2.3.3 Companion Specifications

An OPC UA companion specification for an industry specific vertical market describes an Information Model by defining ObjectTypes, VariableTypes, DataTypes and ReferenceTypes that represent the concepts used in the vertical market, and potentially also well-defined Objects as entry points into the AddressSpace.

5 Use cases

5.1 Overview

This section outlines the different use cases that this companion specification addresses.

5.2 Items and System Relationships

IDUC001
NameItems and System Relationships
ObjectiveAs a support/commissioning engineer, I want to be able to easily see the relationships between the vision system and its items (i.e., hardware and software components of a machine)
Description

The vision system, and the items constituting it, need to specify relationships (IsConnectedTo, ControlledBy etc.) between them so additional information can be obtained.

This allows the vision system to offer different views on its composition and the application.

5.3 Inventory and replacements

IDUC002
NameInventory and Replacements
ObjectiveAs a support/commissioning engineer, I want to be able to get manufacture/build information about the complete vision system and its items (components and/or machines) and to be able to inventory and/or replace of those parts.
Description

The vision system and the items constituting it, need to provide a standardized set of information that can uniquely identify them such as serial number and manufacturer. Additional optional information such as software or hardware version, configuration code, model, construction date or other user-specific names or identification information can also be provided.

This allows the user to manage the vision system in different application contexts (e.g., filtering, inventorying, finding replacements, etc.).

5.4 Static maintenance information

IDUC003
NameStatic Maintenance Information
ObjectiveAs a service technician I want to get static information about items (components or machines) in a vision system to obtain spare parts or detect possible incompatibilities.
Description

A service technician comes onto the vision system (possibly physically or in any case with a network connection) and tries to get an overview of things relevant to them.

This can take place on different levels. There should be a consistent interface to detect all the components and access their basic information. Then, after identifying the relevant components, additional, vendor-specific information and interfaces may be exposed.

It may be a service technician from the main vision system vendor, it could also be from a component vendor. For example, if the vision system is using highly sophisticated third-party frame grabbers or cameras which need special maintenance from the original manufacturer. They log in to the system and want to find out what items there are based on some filter criteria, like manufacturer, item type, serial number, some date, firmware/driver version, etc.

5.5 Dynamic Maintenance Information

IDUC004
NameDynamic Maintenance Information
ObjectiveAs a service technician/control engineer I want to get detailed information about various aspects of the operation of the items (components or machines) in the vision system and of the vision system as a whole, to devise optimization strategies and provide service.
Description

A service technician/controls engineer comes onto the vision system (possibly physically or in any case with a network connection) and tries to get specific information about an aspect of the vision system and its items.

The exposed information can include aspects such as energy consumption, timing of various relevant operations, error conditions and calibration information and for some specific item types (e.g., Lenses, Lighting, etc.) additional information can be exposed.

The service technician/control engineer can monitor the aforementioned information for a period of time to identify performance related characteristics, which can then be used to optimize the performance of the system or to identify anomalies and perform service and maintenance activities.

5.6 Health Monitoring

IDUC005
NameHealth Monitoring
ObjectiveAs a maintenance/production engineer I want to get detailed information about the health of the vision system and its items (components or machines) to check the level of operability and estimate the probability of imminent degradation.
Description

A service technician/production engineer comes onto the vision system (possibly physically, in any case with a network connection) and tries to get specific information about a state of the vision system and its items.

The vision system and its items expose information such as the temperature, the health state, alarms and/or estimates about the item’s own state.

5.7 Information recording

IDUC006
NameInformation recording
ObjectiveAs production engineer/ control engineer I want to monitor/retrieve information about the change of states and conditions in the vision system and its items (components and machines) over time.
DescriptionA production engineer/ control engineer comes onto the vision system ( usually via a network connection) and monitor/retrieve information about different aspects of the vision system and its items allowing to follow the evolution of the vision system over its lifetime in different contexts such as track statistics, processing times, health, recipe changes, software/firmware update, hardware replacements, etc.
Requirements UC001, UC002, UC003, UC004, UC005

5.8 Service history record

IDUC007
NameLog of maintenance records
ObjectiveAs a service technician I want to update the system with information about what I did because that is part of the system history.
DescriptionAs a service technician comes onto the vision system (possibly in-person, with a network connection) and monitors/retrieves service/maintenance records about different aspects of the vision system and its items, thus allowing to get historical records of events that took place during the lifetime of the machine.

6 OPC Machine Vision Part 2 Information Model overview

Part 1 of the OPC Machine Vision Companion Specification defines the VisionSystemType, an instance of which serves as the entry point to the functional view of a machine vision system. This specification introduces the VisionSystemAssetType, an instance of which shall provide an additional entry point into the inner structure of a machine vision system. The VisionSystemAssetType represents the composition of the machine vision system, i.e., it shows which components and other machines together build up the machine vision system. An instance of the VisionSystemType (defined in Part 1) and an instance of VisionSystemAssetType (defined in Part 2), representing the same machine vision system, shall have a RepresentsSameEntityAs reference (OPC 10000-23) connecting them (Figure 6).

The VisionSystemAssetType provides optional folders that can be instantiated individually to organize the different components and other machines that constitute the machine vision systems e.g., ComputingDevices, Lenses, DisplayUnits, etc., as can be seen from Figure 7. The complete set of defined possible common components can be found in section 8.1. With the exception of ImageHandlingAspects all the instances that are organized in the folders of the VisionSystemAssetType can be of any type but need to implement the interface IVisionInfoType (section 7.5) or one of its subtypes. The IVisionInfoType interface contains basic information about identification, maintenance, and health of the machine vision system, as well as all the items (machines or components) that form it.

Figure 6 – Relationship between the ObjectTypes of OPC MV Part 1 and Part 2
Figure 7 – OPC Machine Vision Part 2 Information Model Overview

The idea behind this modelling approach is to enable the implementer to use instances of other ObjectTypes that are already defined in other companion specifications (future or current), when appropriate. The IVisionInfoType interface shall be implemented on the instances organized by the folders in VisionSystemAssetType unless a specific subtype of IVisionInfoType for that particular item type exists (e.g., IComputingDeviceType, IDisplayUnitType, etc.). The implementation of the IVisionInfoType or one of its subtypes can also be done on the ObjectType instead of the instance to be organized in that folder. This specification also defines several convenience ObjectTypes that are not mandatory, that can be directly instantiated, and implement the necessary interfaces for different items.

7 OPC Machine Vision Common Types

This section describes the InterfaceTypes and ObjectTypes containing the parameters that are common to all the items of the vision system as well as the vision system (as a whole). Any changes to the modelling rules of the existing parameters listed within these types or any addition of parameters can be done directly within the instances or by subtyping.

7.1 Vision Machine Identification

The VisionMachineIdentificationType contains the identification and nameplate information that can be used to identify an instance as a “Machine”. This ObjectType is a subtype of the MachineIdentificationType defined in OPC 40001-1 Machinery Companion Specification. It is formally defined in Table 12. This ObjectType identifies the whole vision system and can be used for all components that are machines themselves.

Figure 8 – VisionMachineIdentificationType
Table 12 – VisionMachineIdentificationType Definition
Attribute Value
BrowseNameVisionMachineIdentificationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 3:MachineIdentificationType defined in OPC UA for Machinery, inheriting the InstanceDeclarations of that Node.
0:HasPropertyVariable2:HardwareRevision0:SemanticVersionString0:PropertyTypeO
0:HasPropertyVariableConfigurationCode0:String0:PropertyTypeO
0:HasPropertyVariable2:SoftwareRevision0:SemanticVersionString0:PropertyTypeO

The HardwareRevision property provides the revision level of the hardware of the machine vision system following the rules of Sematic Versioning 2.0.0

The ConfigurationCode property provides the specific information how the machine vision system has been configured for a specific use case or application.

The SoftwareRevision property provides the version or revision level of the software in the machine vision system following the rules of Semantic Versioning 2.0.0.

7.2 Vision Component Identification

The VisionComponentIdentificationType contains the identification and nameplate information that can be used to identify an instance as a “Component”. This ObjectType is a subtype of MachineryComponentIdentificationType defined in OPC 40001-1 Machinery Companion Specification. It is formally defined in Table 13.

Figure 9 – VisionComponentIdentificationType
Table 13 – VisionComponentIdentificationType Definition
Attribute Value
BrowseNameVisionComponentIdentificationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 3:MachineryComponentIdentificationType defined in OPC UA for Machinery, inheriting the InstanceDeclarations of that Node.
0:HasPropertyVariable2:HardwareRevision0:SemanticVersionString0:PropertyTypeO
0:HasPropertyVariableConfigurationCode0:String0:PropertyTypeO
0:HasPropertyVariable2:SoftwareRevision0:SemanticVersionString0:PropertyTypeO

The HardwareRevision property provides the revision level of the hardware of the component in the machine vision system following the rules of Sematic Versioning 2.0.0

The ConfigurationCode property provides the specific information how that component of the machine vision system has been configured for a specific use case or application.

The SoftwareRevision property provides the version or revision level of the software in the component of the machine vision system following the rules of Semantic Versioning 2.0.0.

7.3 VisionMaintenanceInfoType ObjectType Definition

This subtype of FunctionalGroupType contains basic information needed to provide maintenance of an Item. It is formally defined in Table 14.

Note: In addition to the variables defined in this ObjectType it is possible to inform about maintenance related events of an Item using ConditionType’s events. In those cases, it is strongly suggested the use of the information model describe on OPC 10000-110 Asset Management Basics. Each of those ConditionType’s shall implement the IMaintenanceEventType and use a relevant category (e.g., CalibrationDueConditionClassType) when appropriate.

Figure 10 – VisionMaintenanceInfoType
Table 14 – VisionMaintenanceInfoType Definition
Attribute Value
BrowseNameVisionMaintenanceInfoType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 2:FunctionalGroupType defined in OPC 10000-100, i.e. inheriting the InstanceDeclarations of that Node
0:HasPropertyVariableStartOfWarranty0:UtcTime0:PropertyTypeO
0:HasPropertyVariableLastService0:UtcTime0:PropertyTypeO
0:HasPropertyVariableNextService0:UtcTime0:PropertyTypeO
0:HasPropertyVariableCalibrationNeeded0:Boolean0:PropertyTypeO
0:HasPropertyVariableLastCalibration0:UtcTime0:PropertyTypeO
0:HasPropertyVariableNextCalibration0:UtcTime0:PropertyTypeO
0:HasComponentVariableServiceClass0:UInteger 0:MultiStateDiscreteTypeO
0:HasPropertyVariableMaintenanceRecord0:String0:PropertyTypeO
0:HasPropertyVariableFirmwareInfo0:String0:PropertyTypeO
0:HasAddInObject2:OperationCounters3:MachineryOperationCounterTypeO

The components of the VisionMaintenanceInfoType have additional subcomponents which are defined in Table 23.

Table 15 – VisionMaintenanceInfoType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
0:HasPropertyVariable2:PowerOnDuration0:Duration0:PropertyTypeO
0:HasPropertyVariable2:OperationDuration0:Duration0:PropertyTypeO
0:HasPropertyVariable2:OperationCycleCounter0:UInteger0:PropertyTypeO

The StartOfWarranty property denotes the beginning of the warranty period of the item.

The LastService property denotes the last moment in time when the most recent service was carried out on the item.

The NextService property denotes the planned moment in time when the next service is to be carried out on the item.

The CalibrationNeeded property is a flag that if True denotes that the item needs calibration.

The LastCalibration property denotes the time when the previous calibration was carried out on the item.

The NextCalibration property denotes the planned time when the next calibration is to be carried out on the item.

The ServiceClass property provides information that an item is classified as a wear and tear part, whether it is a line replaceable unit (LRU), shop replaceable unit (SRU), wear and tear part (WTP), infrastructural unit (ISU), infrastructural equipment (ISE), etc.

The 2:OperationCounters is recommended to be used as defined in OPC 40001-1.

Note: Servers can add additional entries into the EnumStrings array. The order of the value attributes corresponds with the numeric value that must be provided in the value of the variable.

Table 16 – VisionMaintenanceInfoType Attribute values for child Nodes
BrowsePath Value Attributes

OTHER

LRU – Line Replaceable Unit

SRU – Shop Replaceable Unit

WTP – Wear and Tear Part

ISU – Infrastructural Unit

ISE – Infrastructural Equipment

The MaintenanceRecord property provides the most recent note that was recorded while performing maintenance. This property can be historized if a history of previous maintenance notes is to be made available. This property can also be used to provide a link to an external resource (e.g., a file or a webpage) where the user can get access to more information about the item related to maintenance.

Note: If the server implements maintenance events using OPC 10000-110 Asset Management Basics, a maintenance record can also be created by a client application monitoring the events triggered by Item.

The FirmwareInfo property denotes the information about the firmware of the Item.

7.4 VisionHealthInfoType ObjectType Definition

The VisionHealthInfoType provides the current general condition of the machine vision system or its item with respect to its/their functional fitness. It is formally defined in Table 17.

Figure 11 – VisionHealthInfoType
Table 17 – VisionHealthInfoType Definition
Attribute Value
BrowseNameVisionHealthInfoType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 2:FunctionalGroupType defined in OPC 10000-100, i.e. inheriting the InstanceDeclarations of that Node
0:HasComponentVariableRemainingLifeTime0:Number2:LifetimeVariableTypeO
0:HasComponentVariableTemperature0:Double0:AnalogUnitTypeO
0:HasComponentVariableStateSEMI_E10SystemStateDataTypeSEMI_E10SystemStateTypeO
0:HasInterface ObjectType2:IDeviceHealthType
Applied from 2:IDeviceHealthType
0:HasComponentVariable2:DeviceHealth2:DeviceHealthEnumeration0:BaseDataVariableTypeO
0:HasComponentObject2:DeviceHealthAlarms0:FolderTypeO

The RemainingLifeTime property denotes the remaining lifetime of the item. It serves as an indication to service personnel for maintenance activities.

The Temperature property denotes the temperature value (along with its unit) of the item.

The State property denotes the SEMI E10 State of the item (see Section 11.1).

The DeviceHealth variable indicates the status as defined by NAMUR Recommendation NE107. The DeviceHealthEnumeration DataType is formally defined in OPC 10000-100 Device Model.

The DeviceHealthAlarms folder shall organize the Alarms and Conditions related to the item if these Alarms and Conditions are instantiated in the address space.

7.5 IVisionInfoType InterfaceType definition

This InterfaceType defines the minimal basic information that each item (that can be either a component or a machine by itself) shall provide in a vision system. It is formally defined in Table 18.

Figure 12 – IVisionInfoType
Table 18 – IVisionInfoType Definition
Attribute Value
BrowseNameIVisionInfoType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseInterfaceType defined in OPC 10001-7, i.e. inheriting the InstanceDeclarations of that Node.
0:HasAddInObject2:Identification3:MachineryItemIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

The 2:Identification object contains Properties of the item that will serve for identification like Manufacturer, SerialNumber, etc. This node shall be an instance of either the MachineIdentificationType or MachineryComponentIdentificationType or a subtype of either of these types. Depending on the type used, the item will be identified as a machine or a component. Implementers of this specification are free to provide subtypes of the base types defined in OPC 40001-1 Machinery Companion Specification or use the ones defined in Sections 7.1 and 7.2.

The 2:Maintenance object contains Properties which provide information needed for maintenance purposes e.g StartOfWarranty, MostRecentService etc., see Section 0 for further details.

The Health object contains Properties like Temperature, DeviceHealth and Notifications indicating the status of an item.

All the objects mentioned above (namely 2:Identification, 2:Maintenance and Health) are folders as they are instance declarations of types derived from the FolderType formally defined in in OPC 10000-5 Information Model

7.6 VisionItemFolderType ObjectType Definition

The VisionItemFolderType provides a way to organize items of the machine vision system into functional categories and is formally defined in Table 19. Each object instance within this folder shall implement the IVisionInfoType interface as defined in 7.5 or one of its subtypes.

Figure 13 – VisionItemFolderType
Table 19 – VisionItemFolderType Definition
Attribute Value
BrowseNameVisionItemFolderType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:FolderType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node.
0:OrganizesObject<VisionItem>0:BaseObjectTypeMP

The components of the VisionItemFolderType have additional subcomponents which are defined in Table 20.

Table 20 – VisionItemFolderType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
<VisionItem>0:HasInterfaceObjectTypeIVisionInfoTypeDefined in 8.1
Applied from IVisionInfoType
<VisionItem>0:HasAddInObject2:Identification3:MachineryItemIdentificationTypeM
<VisionItem>0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
<VisionItem>0:HasAddInObjectHealthVisionHealthInfoTypeO

8 OPC Machine Vision System Asset

8.1 VisionSystemAssetType ObjectType Definition

The VisionSystemAssetType is an ObjectType that provides a representation of the machine vision system and organizes the items that constitute it into different folders depending on their function. This type is used to represent the entire machine vision system as an asset. It is formally defined in Table 21.

Table 21 – VisionSystemAssetType Definition
Attribute Value
BrowseNameVisionSystemAssetType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasAddInObject3:Components3:MachineComponentsTypeO
0:HasComponentObjectComputingDevicesVisionItemFolderTypeO
0:HasComponentObjectDisplayUnitsVisionItemFolderTypeO
0:HasComponentObjectPhysicalInterfacesVisionItemFolderTypeO
0:HasComponentObjectImageSensorsVisionItemFolderTypeO
0:HasComponentObjectFrameGrabbersVisionItemFolderTypeO
0:HasComponentObjectLensesVisionItemFolderTypeO
0:HasComponentObjectLensControllersVisionItemFolderTypeO
0:HasComponentObjectOpticalFiltersVisionItemFolderTypeO
0:HasComponentObjectOtherOpticalEquipmentsVisionItemFolderTypeO
0:HasComponentObjectWayEncodersVisionItemFolderTypeO
0:HasComponentObjectTriggerSensorsVisionItemFolderTypeO
0:HasComponentObjectLampsVisionItemFolderTypeO
0:HasComponentObjectLightingControllersVisionItemFolderTypeO
0:HasComponentObjectPatternGeneratorsVisionItemFolderTypeO
0:HasComponentObjectCalibrationTargetsVisionItemFolderTypeO
0:HasComponentObjectAcquisitionBackgroundsVisionItemFolderTypeO
0:HasComponentObjectSurroundingEnvironmentVisionItemFolderTypeO
0:HasComponentObjectHousingsVisionItemFolderTypeO
0:HasComponentObjectMotionDevicesVisionItemFolderTypeO
0:HasComponentObjectPowerSuppliesVisionItemFolderTypeO
0:HasComponentObjectClimateControllersVisionItemFolderTypeO
0:HasComponentObjectLicensesVisionItemFolderTypeO
0:HasComponentObjectSoftwareComponentsVisionItemFolderTypeO
0:HasComponentObjectNetworkDevicesVisionItemFolderTypeO
0:HasComponentObjectCablesVisionItemFolderTypeO
0:HasComponentObjectImageHandlingAspects0:FolderTypeO
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionMachineIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO
Conformance Units
VSA_BasicIdentification
VSA_ExtendedIdentification
VSA_MaintenanceInformation
VSA_HealthInformation

The Components object (with a standardized BrowseName as defined in the OPC UA for Machinery companion specification) provides a flat list of all the items of the machine vision system.

The ComputingDevices object organizes all instances representing computing devices within the Machine Vision system.

The DisplayUnits object organizes all instances representing display units within the Machine Vision system.

The PhysicalInterfaces object organizes all instances representing physical interfaces within the Machine Vision system.

The ImageSensors object organizes all instances representing image sensors within the Machine Vision system.

The FrameGrabbers object organizes all instances representing frame grabbers within the Machine Vision system.

The Lenses object organizes all instances representing lenses within the Machine Vision system.

The LensControllers object organizes all instances representing lens controllers within the Machine Vision system.

The OpticalFilters object organizes all instances representing optical filters within the Machine Vision system.

The OtherOpticalEquipment object organizes all instances representing other optical equipment within the Machine Vision system.

The WayEncoders object organizes all instances representing way encoders within the Machine Vision system.

The TriggerSensors object organizes all instances representing trigger sensors within the Machine Vision system.

The Lamps object organizes all instances representing lamps within the Machine Vision system.

The LightingControllers object organizes all instances representing lighting controllers within the Machine Vision system.

The PatternGenerators object organizes all instances representing pattern generators within the Machine Vision system.

The CalibrationTargets object organizes all instances representing calibration targets within the Machine Vision system. This document does not define a helper ObjectType for calibration targets. A standardized object type for calibration targets CalibrationTargetType has already been defined in Section 7.4.1 of OPC 10000-200 Industrial Automation.

The AcquisitionBackgrounds object organizes all instances representing acquisition backgrounds for the Machine Vision system.

The SurroundingEnvironment object organizes all instances representing surrounding environment properties of the Machine Vision system.

The Housings object organizes all instances representing housings within the Machine Vision system.

The MotionDevices object organizes all instances representing motion devices (e.g. a robot, a linear unit or a positioner) within the Machine Vision system. This document does not define a helper ObjectType for motion devices. A standardized object type for motion devices such as MotionDeviceType has already been defined in Section 7.2 of OPC 40010-1 – OPC UA for Robotics, Part 1: Vertical Integration. See OPC 40010-1 for more information.

The PowerSupplies object organizes all instances representing power supplies within the Machine Vision system.

The ClimateControllers object organizes all instances representing temperature l, humidity, or any other type of climate control device within the machine vision system.

The Licenses object organizes all instances representing licenses within the Machine Vision system.

The SoftwareComponents object organizes all instances representing software within the Machine Vision system. This document does not define a helper ObjectType for software. A standardized object type such as SoftwareType has already been defined in OPC 10000-100 Device Model.

The NetworkDevices object organizes all instances representing network devices within the Machine Vision system.

The Cables object organizes all instances representing cables within the Machine Vision system.

The ImageHandlingAspects object organizes all instances of object types that represent aspects of the image handling in an Item. See Sections 10.33, 10.34 and 10.35 for more information.

The components of the VisionSystemAssetType have additional subcomponents which are defined in Table 22.

Table 22 – VisionSystemAssetType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
ComputingDevices0:OrganizesObject<ComputingDevice>0:BaseObjectTypeMP
DisplayUnits0:OrganizesObject<DisplayUnit>0:BaseObjectTypeMP
PhysicalInterfaces0:OrganizesObject<PhysicalInterface>0:BaseObjectTypeMP
ImageSensors0:OrganizesObject<ImageSensor>0:BaseObjectTypeMP
FrameGrabbers0:OrganizesObject<FrameGrabber>0:BaseObjectTypeMP
Lenses0:OrganizesObject<Lens>0:BaseObjectTypeMP
LensControllers0:OrganizesObject<LensController>0:BaseObjectTypeMP
OpticalFilters0:OrganizesObject<OpticalFilter>0:BaseObjectTypeMP
OtherOpticalEquipments0:OrganizesObject<OtherOpticalEquipment>0:BaseObjectTypeMP
WayEncoders0:OrganizesObject<WayEncoder>0:BaseObjectTypeMP
TriggerSensors0:OrganizesObject<TriggerSensor>0:BaseObjectTypeMP
Lamps0:OrganizesObject<Lamp>0:BaseObjectTypeMP
LightingControllers0:OrganizesObject<LightingController>0:BaseObjectTypeMP
PatternGenerators0:OrganizesObject<PatternGenerator>0:BaseObjectTypeMP
CalibrationTargets0:OrganizesObject<CalibrationTarget>0:BaseObjectTypeMP
AcquisitionBackgrounds0:OrganizesObject<AcquisitionBackground>0:BaseObjectTypeMP
SurroundingEnvironment0:OrganizesObject<SurroundingEnvironment>0:BaseObjectTypeMP
Housings0:OrganizesObject<Housing>0:BaseObjectTypeMP
MotionDevices0:OrganizesObject<MotionDevice>0:BaseObjectTypeMP
PowerSupplies0:OrganizesObject<PowerSupply>0:BaseObjectTypeMP
ClimateControllers0:OrganizesObject<ClimateController>0:BaseObjectTypeMP
Licenses0:OrganizesObject<License>0:BaseObjectTypeMP
SoftwareComponents0:OrganizesObject<Software>0:BaseObjectTypeMP
NetworkDevices0:OrganizesObject<NetworkDevice>0:BaseObjectTypeMP
Cables0:OrganizesObject<Cable>0:BaseObjectTypeMP
ImageHandlingAspects0:OrganizesObject<ImageHandlingAspect>0:BaseObjectTypeMP

The components of the VisionSystemAssetType have additional subcomponents which are defined in Table 23.

Table 23 – VisionSystemAssetType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
0:HasInterfaceObjectTypeIComputingDeviceType
0:HasInterfaceObjectTypeIDisplayUnitType
0:HasInterfaceObjectTypeIPhysicalInterfaceType
0:HasInterfaceObjectTypeILensType
0:HasInterfaceObjectTypeILampType
0:HasInterfaceObjectTypeILightingControllerType
0:HasInterfaceObjectTypeILicenseType
0:HasInterfaceObjectTypeICableType

All instances within the ComputingDevices folder shall implement the IComputingDeviceType interface (9.1).

All instances within the DisplayUnits folder shall implement the IDisplayUnitType interface (9.3).

All instances within the PhysicalInterfaces folder shall implement the IPhysicalInterfaceType interface 9.5).

All instances within the Lenses folder shall implement the ILensType interface (9.7).

All instances within the Lamps folder shall implement the ILampType interface (9.12).

All instances within the LightingControllers folder shall implement the ILightingControllerType interface (9.10).

All instances within the Licenses folder shall implement the ILicenseType interface (9.25).

All instances within the Cables folder shall implement the ICableType interface (9.28).

Note: In order to declare an arbitrary object (i.e., an instance of BaseObjectType or one of its subtypes) as a MachineryComponent which represents a particular component of the machine vision system, said instance shall be referenced by the instance of MachineryComponentsType with a HasComponent reference. It shall also be referenced from the folder representing a collection of the same type of components as it is representing e.g., a BaseObjectType instance (i.e., an instance of any arbitrary object type) representing a computing device, shall be referenced by the instance of MachineryComponentsType with a HasComponent reference, thereby representing a MachineryComponent. It shall also be referenced from the ComputingDevices folder, thereby representing a ComputingDevice.

9 OPC Machine Vision System Components

9.1 IComputingDeviceType InterfaceType Definition

The IComputingDeviceType provides the minimal set of information that a computing device object shall provide in a machine vision system. All objects that implement this interface shall be organized in the ComputingDevices folder of the VisionSystemAssetType. It is formally defined in Table 24.

Figure 14 – IComputingDeviceType
Table 24 – IComputingDeviceType Definition
Attribute Value
BrowseNameIComputingDeviceType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the IComputingDeviceType have additional subcomponents which are defined in Table 25.

Table 25 – IComputingDeviceType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasPropertyVariableOperatingSystemInfo0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableDriverInfo0:String[]0:PropertyTypeO
2:Maintenance0:HasPropertyVariableSoftwareImageInfo0:String0:PropertyTypeO
Health0:HasPropertyVariablePatchLevel0:String0:PropertyTypeO
Health0:HasPropertyVariableMassStorageState0:String0:PropertyTypeO
Health0:HasPropertyVariableRAMState0:String0:PropertyTypeO
Health0:HasPropertyVariableCCUState0:String0:PropertyTypeO
Health0:HasPropertyVariableBatteryState0:String0:PropertyTypeO

The OperatingSystemInfo property denotes information about low-level software that supports the basic functions of the computing device such as scheduling task and controlling peripherals.

The DriverInfo property denotes information about the set of drivers being used by the computing device

The SoftwareImageInfo property denotes information about the software image that is in use in the computing device.

The PatchLevel property denotes the patch level or patch set. When patches must be applied in order, it is usually an identifier of the most recent patch applied to the system.

The MassStorageState property denotes overall information about the condition of the mass storage e.g., specific drives or RAID arrays etc.

The RAMState property denotes overall information about the condition of the RAM (e.g., there are systems using ECC enabled RAM that can provide information about the health state of the RAM modules)

The CCUState property denotes a composite state providing overall information about the condition of the climate control units (CCU) e.g., fans, heatsinks, cooling pumps, heating etc.

The BatteryState property denotes overall information about the condition of the battery or batteries.

The MassStorageState, RAMState, CCUState and BatteryState have been left relatively open as they are intended to give the user a sense of the state of the computing device. This may be a percentage value or a textual description of the state.

9.2 VisionComputingDeviceType ObjectType Definition

The VisionComputingDeviceType provides a concrete ObjectType implementing the IComputingDeviceType interface that can be instantiated directly. This ObjectType is defined in this specification as a convenience to the implementer. The instances of this object type shall be organized in the ComputingDevices folder of the VisionSystemAssetType. It is formally defined in Table 26.

Figure 15 – VisionComputingDeviceType
Table 26 – VisionComputingDeviceType Definiton
Attribute Value
BrowseNameVisionComputingDeviceType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIComputingDeviceType
Applied from IComputingDeviceType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.3 IDisplayUnitType ObjectType Definition

The IDisplayUnitType provides the minimal set of information that a display unit object shall provide in a vision system. All objects that implement this interface shall be organized in the DisplayUnits folder of the VisionSystemAssetType. It is formally defined in Table 27.

Figure 16 – IDisplayUnitType
Table 27 – IDisplayUnitType Definiton
Attribute Value
BrowseNameIDisplayUnitType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the IDisplayUnitType have additional subcomponents which are defined in Table 28.

Table 28 – IDisplayUnitType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasPropertyVariableInputInUse0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableInputSignalDetected0:Boolean0:PropertyTypeO
2:Maintenance0:HasPropertyVariableResolutionInUse0:String0:PropertyTypeO

The InputInUse property denotes the signal port for the display unit currently in use. This property could also be used from the vision system perspective to denote signal source for the display unit if multiple sources share the same display unit e.g., X1, X2 (as per the convention used in the DIN EN IEC 81346-2:2020-10 specification)

The InputSignalDetected property is a flag that denotes if a signal is being detected in the InputInUse.

The ResolutionInUse denotes the pixel resolution in use (e.g., 1920x1080).

9.4 VisionDisplayUnitType ObjectType Definition

The VisionDisplayUnitType provides a concrete ObjectType which can be instantiated directly implementing the IDisplayUnitType interface. The instances of this object type shall be organized in the DisplayUnits folder of the VisionSystemAssetType. It is formally defined in Table 29.

Figure 17 – VisionDisplayUnitType
Table 29 – VisionDisplayUnitType Definiton
Attribute Value
BrowseNameVisionDisplayUnitType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIDisplayUnitType
Applied from IDisplayUnitType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.5 IPhysicalInterfaceType ObjectType Definition

The IPhysicalInterfaceType provides the minimal set of information that a physical interface object shall provide in a vision system. All objects that implement this interface shall be organized in the PhysicalInterfaces folder of the VisionSystemAssetType. It is formally defined in Table 30.

Figure 18 – IPhysicalInterfaceType
Table 30 – IPhysicalInterfaceType Definiton
Attribute Value
BrowseNameIPhysicalInterfaceType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the IPhysicalInterfaceType have additional subcomponents which are defined in Table 31.

Table 31 – IPhysicalInterfaceType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasPropertyVariableConnectorType0:String0:PropertyTypeO
Health0:HasPropertyVariableConnectionStatus0:Boolean0:PropertyTypeO

The ConnectorType property denotes the type of connector for the physical interface (e.g., USB, Ethernet, etc.)

The ConnectionStatus property denotes if a signal is being received by the physical interface from the perspective of the machine vision system.

9.6 VisionPhysicalInterfaceType ObjectType Definition

The VisionPhysicalInterfaceType provides a concrete ObjectType which can be instantiated directly implementing the IPhysicalInterfaceType interface. The instances of this object type shall be organized in the PhysicalInterfaces folder of the VisionSystemAssetType. It is formally defined in Table 32.

Figure 19 – VisionPhysicalInterfaceType
Table 32 – VisionPhysicalInterfaceType Definiton
Attribute Value
BrowseNameVisionPhysicalInterfaceType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIPhysicalInterfaceType
Applied from IPhysicalInterfaceType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.7 ILensType ObjectType Definition

This ILensType interface provides the minimal set of information that a lens object shall provide in a vision system. All objects that implement this interface shall be organized in the Lenses folder of the VisionSystemAssetType. It is formally defined in Table 33.

Figure 20 – ILensType
Table 33 – ILensType Definition
Attribute Value
BrowseNameILensType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the ILensType have additional subcomponents which are defined in Table 34.

Table 34 – ILensType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasComponentVariableMountType0:UInt320:MultiStateDiscreteTypeO
2:Maintenance0:HasPropertyVariableLensType0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableFocalLength0:Double 0:PropertyTypeO
2:Maintenance0:HasPropertyVariableAperture0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableModulationTransferFunction0:Byte 0:PropertyTypeO
2:Maintenance0:HasPropertyVariableResolution0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableBackFocalLength0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableMinimumWorkingDistance0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableMagnification0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableWorkingDistance0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableOpticalFormat0:String0:PropertyTypeO

The FocalLength property is the distance between the principal plane and the point where the light passing through the lens is focused and is given in millimeters.

The BackFocalLength property is the distance from the vertex of the last optical surface of the system to the rear focal point and is given in millimeters. This property should only exist when needed to provide additional system information such as to calculate the scheimpflug angle for tilted systems.

The Aperture property is the current aperture set on the lens. Examples are “1.4” and “2.0”.

The Resolution property is the resolution that the lens is capable of (this is usually the catalog value). It is given in line pairs per millimeter (lp/mm) as the resolution would be determined with something like a 1951-USAF resolution target.

The MinimumWorkingDistance property is the minimum object distance where you can still get a sharp image and is given in meters.

The ModulationTransferFunction property is the ratio expressed as a percentage, between the actual contrast in the scene and the contrast transferred by the lens to the image at a given resolution.

The Magnification property is the relation between object size and image size. An example value of 1 will deliver a life-sized image. This property usually needs to be provided for Telecentric lenses only but might also be calculated for other lens types.

The WorkingDistance property is the current distance from the object to the lens and is given in meters.

The LensType property is the type of the Lens. Examples are “Macro”, “Telecentric” and “Tilt-Shift”.

The MountType component is an enumeration using MultiStateDiscreteType that defines the mount type of the Lens. In Table 35 standardized values for the EnumStrings are defined.

The OpticalFormat property denotes the maximum size of the sensor that the lens is suitable for (typically in inches).

Table 35 – ILensType Attribute values for child Nodes
BrowsePath Value Attributes

CUSTOM

CS-MOUNT

D-MOUNT

A-MOUNT

F-MOUNT

T-MOUNT

E-MOUNT

EF-MOUNT

V-MOUNT

Note: Servers can add additional entries into the EnumStrings array. The order of the value attributes corresponds with the numeric value that must be provided in the value of the variable.

9.8 VisionLensType ObjectType Definition

The VisionLensType provides a concrete ObjectType which can be instantiated directly implementing the ILensType interface. The instances of this object type shall be organized in the Lenses folder of the VisionSystemAssetType. It is formally defined in Table 36.

Figure 21 – VisionLensType
Table 36 – VisionLensType Definiton
Attribute Value
BrowseNameVisionLensType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeILensType
Applied from ILensType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.9 VisionLensControllerType ObjectType Definition

The VisionLensControllerType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the LensControllers folder of the VisionSystemAssetType. It is formally defined in Table 37.

Figure 22 – VisionLensControllerType
Table 37 – VisionLensControllerType Definiton
Attribute Value
BrowseNameVisionLensControllerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.10 ILightingControllerType ObjectType Definition

The ILightingControllerType interface provides the minimal set of information that a lighting controller object shall provide in a vision system. All objects that implement this interface shall be organized in the LightingControllers folder of the VisionSystemAssetType. It is formally defined in Table 38.

Figure 23 – ILightingControllerType
Table 38 – ILightingControllerType Definiton
Attribute Value
BrowseNameILightingControllerType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the ILightingController have additional subcomponents which are defined in Table 39.

Table 39 – ILightingControllerType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasComponentVariableLightingMode0:UInt320:MultiStateDiscreteTypeO

The LigthingMode property denotes the current lighting mode of the lighting controller e.g. STROBE, CONTINUOUS, MODULATED, etc.

The component Variables of the ILightingControllerType have additional Attributes defined in Table 40.

Table 40 – ILightingControllerType Attribute values for child nodes
BrowsePath Value Attribute Description Attribute

STROBE

CONTINUOUS

MODULATED

9.11 VisionLightingControllerType ObjectType Definition

The VisionLightingControllerType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the LightingControllers folder of the VisionSystemAssetType. It is formally defined in Table 41.

Figure 24 – VisionLightingControllerType
Table 41 – VisionLightingControllerType Definiton
Attribute Value
BrowseNameVisionLightingControllerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeILightingControllerType
Applied from ILightingControllerType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.12 ILampType ObjectType Definition

The ILampType interface provides the minimal set of information that a lamp object shall provide in a vision system. All objects that implement this interface shall be organized in the Lamps folder of the VisionSystemAssetType. It is formally defined in Table 42.

Figure 25 – ILampType
Table 42 – ILampType Definiton
Attribute Value
BrowseNameILampType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the ILampType have additional subcomponents which are defined in Table 43.

Table 43 – ILampType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasPropertyVariableLampType0:String 0:PropertyTypeO
2:Maintenance0:HasPropertyVariableQuality0:Byte0:PropertyTypeO
2:Maintenance0:HasPropertyVariableWavelength0:Double0:PropertyTypeO
2:Maintenance0:HasPropertyVariableRelativeIntensity0:Byte0:PropertyTypeO
2:Maintenance0:HasPropertyVariableWorkingDistance0:Double0:PropertyTypeO

The LampType property represents the type of the lamp e.g., FLUORESCENT, LED, LASER or XENON.

The Quality property is the percentage of the lamp quality and represents the light degradation because of multiple factors including the environment or age. A new lamp can have a quality of 100.

The Wavelength property is the wavelength of the light emitted by the lamp and is given in nanometers (nm).

The RelativeIntensity property is the amount of light emitted by the source as a percentage of the lamp total capability.

The WorkingDistance property is the current distance from the object to the lamp and is given in meters.

9.13 VisionLampType ObjectType Definition

The VisionLampType provides a concrete ObjectType which can be instantiated directly implementing the ILampType interface. The instances of this object type shall be organized in the Lamps folder of the VisionSystemAssetType. It is formally defined in Table 44.

Figure 26 – VisionLampType
Table 44 – VisionLampType Definiton
Attribute Value
BrowseNameVisionLampType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeILampType
Applied from ILampType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.14 VisionImageSensorType ObjectType Definition

The VisionImageSensorType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the ImageSensors folder of the VisionSystemAssetType. It is formally defined in Table 45.

Figure 27 – VisionImageSensorType
Table 45 – VisionImageSensorType Definiton
Attribute Value
BrowseNameVisionImageSensorType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.15 VisionFrameGrabberType ObjectType Definition

The VisionFrameGrabberType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the FrameGrabbers folder of the VisionSystemAssetType. It is formally defined in Table 46.

Figure 28 – VisionFrameGrabberType
Table 46 – VisionFrameGrabberType Definiton
Attribute Value
BrowseNameVisionFrameGrabberType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.16 VisionOpticalFilterType ObjectType Definition

The VisionOpticalFilterType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the OpticalFilters folder of the VisionSystemAssetType. It is formally defined in Table 47.

Figure 29 – VisionOpticalFilterType
Table 47 – VisionOpticalFilterType Definiton
Attribute Value
BrowseNameVisionOpticalFilterType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.17 VisionWayEncoderType ObjectType Definition

The VisionWayEncoderType provides a concrete ObjectType that which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the WayEncoders folder of the VisionSystemAssetType. It is formally defined in Table 48.

Figure 30 – VisionWayEncoderType
Table 48 – VisionWayEncoderType Definiton
Attribute Value
BrowseNameVisionWayEncoderType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.18 VisionTriggerSensorType ObjectType Definition

The VisionTriggerSensorType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the TriggerSensors folder of the VisionSystemAssetType. It is formally defined in Table 49.

Figure 31 – VisionTriggerSensorType
Table 49 – VisionTriggerSensorType Definiton
Attribute Value
BrowseNameVisionTriggerSensorType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.19 VisionPatternGeneratorType ObjectType Definition

The VisionPatternGeneratorType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the PatternGenerators folder of the VisionSystemAssetType. It is formally defined in Table 50.

Figure 32 – VisionPatternGeneratorType
Table 50 – VisionPatternGeneratorType Definiton
Attribute Value
BrowseNameVisionPatternGeneratorType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.20 VisionAcquisitionBackgroundType ObjectType Definition

The VisionAcquisitionBackgroundType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the AcquisitionBackgrounds folder of the VisionSystemAssetType. It is formally defined in Table 51.

Figure 33 – VisionAcquisitionBackgroundType
Table 51 – VisionAcquisitionBackgroundType Definiton
Attribute Value
BrowseNameVisionAcquisitionBackgroundType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.21 VisionSurroundingEnvironmentType ObjectType Definition

The VisionSurroundingEnviromentType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the SurroundingEnviroment folder of the VisionSystemAssetType and contains information about the surrounding environment of the vision system. It is formally defined in Table 52.

Figure 34 – VisionSurroundingEnvironmentType
Table 52 – VisionSurroundingEnvironmentType Definiton
Attribute Value
BrowseNameVisionSurroundingEnvironmentType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.22 VisionHousingType ObjectType Definition

The VisionHousingType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the Housings folder of the VisionSystemAssetType. It is formally defined in Table 53.

Figure 35 – VisionHousingType
Table 53 – VisionHousingType Definiton
Attribute Value
BrowseNameVisionHousingType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.23 VisionPowerSupplyType ObjectType Definition

The VisionPowerSupplyType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. The instances of this object type shall be organized in the PowerSupplies folder of the VisionSystemAssetType. It is formally defined in Table 54.

Figure 36 – VisionPowerSupplyType
Table 54 – VisionPowerSupplyType Definiton
Attribute Value
BrowseNameVisionPowerSupplyType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.24 VisionClimateControllerType ObjectType Definition

The VisionClimateControllerType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. instances of this object type shall be organized in the ClimateControllers folder of the VisionSystemAssetType. It is formally defined in Table 55.

Figure 37 – VisionClimateControllerType
Table 55 – VisionClimateControllerType Definiton
Attribute Value
BrowseNameVisionClimateControllerType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.25 ILicenseType ObjectType Definition

The ILicenseType provides the minimal set of information that a license object shall provide in a vision system. All objects that implement this interface shall be organized in the Licenses folder of the VisionSystemAssetType. It is formally defined in Table 56.

Figure 38 – ILicenseType
Table 56 – ILicenseType Definiton
Attribute Value
BrowseNameILicenseType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclaration of that Node

The components of the ILicenseType have additional subcomponents which are defined in Table 57.

Table 57 – ILicenseType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasPropertyVariableEndDate0:UtcTime0:PropertyTypeO
2:Maintenance0:HasPropertyVariableStartDate0:UtcTime0:PropertyTypeO
2:Maintenance0:HasPropertyVariableLicenseId0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableLicenseType0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableLicenseReference0:String0:PropertyTypeM
2:Maintenance0:HasPropertyVariableLicenseDescription0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableEnabledFeatures0:String[]0:PropertyTypeO

The EndDate property is the end date of the license validity. If this property is set, the effects of not having a valid license are defined by the policy of the software or hardware provider.

The StartDate property is the start date of the license validity. If this property is set, the effects of not having a valid license are defined by the policy of the software or hardware provider.

The LicenseId property is the id that uniquely identifies the license for the software or hardware provider. It might be used for maintenance and/or support requests.

The LicenseType property is the type of license based on the policy of the software of hardware provider e.g., runtime, trial, developer, support.

The LicenseReference property is a reference to a file on the system, documentation, or webpage where more information about the license can be obtained.

The LicenseDescription property is a short description of the license.

The EnabledFeatures property is a list of the enabled features by the license.

9.26 VisionLicenseType ObjectType Definition

The VisionLicenseType provides a concrete ObjectType which can be instantiated directly implementing the ILicenseType interface. The instances of this object type shall be organized in the Licenses folder of the VisionSystemAssetType. It is formally defined in Table 58.

Figure 39 – VisionLicenseType
Table 58 – VisionLicenseType Definiton
Attribute Value
BrowseNameVisionLicenseType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeILicenseType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.27 VisionNetworkDeviceType ObjectType Definition

The VisionNetworkDeviceType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface.The instances of this object type shall be organized in the NetworkDevices folder of the VisionSystemAssetType. It is formally defined in Table 59.

Figure 40 – VisionNetworkDeviceType
Table 59 – VisionNetworkDeviceType Definiton
Attribute Value
BrowseNameVisionNetworkDeviceType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.28 ICableType ObjectType Definition

The ICableType interface provides the minimal set of information that a cable object shall provide in a vision system. All objects that implement this interface shall be organized in the Cables folder of the VisionSystemAssetType. It is formally defined in in Table 60.

Figure 41 – ICableType
Table 60 – ICableType Definiton
Attribute Value
BrowseNameICableType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the IVisionInfoType, inheriting the InstanceDeclarations of that Node.

The components of the ICableType have additional subcomponents which are defined in Table 61.

Table 61 – ICableType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
2:Maintenance0:HasComponentVariableLength0:Double0:AnalogUnitTypeO
2:Maintenance0:HasComponentVariableDiameter0:Double0:AnalogUnitTypeO
2:Maintenance0:HasPropertyVariableShielding0:String0:PropertyTypeO
2:Maintenance0:HasPropertyVariableConnectors0:String[]0:PropertyTypeO
Table 62 – ICableType Attribute values for child Nodes
BrowsePath Value Attributes
m
mm

The Length property denotes the length of the cable in meters.

The Diameter property denotes the outer diameter of the cable in millimeters

The Shielding property denotes the description of shielding on the cable.

The Connectors property denotes the connectors that the cable supports e.g. USB-A Female, Hirose 6-pin male.

9.29 VisionCableType ObjectType Definition

The VisionCableType provides a concrete ObjectType which can be instantiated directly implementing the ICableType interface. The instances of this object type shall be organized in the Cables folder of the VisionSystemAssetType. It is formally defined in Table 63.

Figure 42 – VisionCableType
Table 63 – VisionCableType Definiton
Attribute Value
BrowseNameVisionCableType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeICableType
Applied from ICableType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.30 VisionOtherOpticalEquipmentType ObjectType Definition

The VisionOtherOpticalEquipmentType provides a concrete ObjectType which can be instantiated directly implementing the IVisionInfoType interface. instances of this object type shall be organized in the OtherOpticalEquipments folder of the VisionSystemAssetType. It is formally defined in Table 55.

Figure 43 – VisionOtherOpticalEquipmentType
Table 64 – VisionOtherOpticalEquipmentType Definiton
Attribute Value
BrowseNameVisionOtherOpticalEquipmentType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasInterfaceObjectTypeIVisionInfoType
Applied from IVisionInfoType
0:HasAddInObject2:IdentificationVisionComponentIdentificationTypeM
0:HasAddInObject2:MaintenanceVisionMaintenanceInfoTypeO
0:HasAddInObjectHealthVisionHealthInfoTypeO

9.31 VisionAspectImageReceiverType ObjectType Definition

The VisionAspectImageReceiverType provides a concrete ObjectType representing an aspect of an item. An image receiver is an aspect of an item that expresses the direction of the vision streaming data as a sink. An instance of VisionAspectImageReceiverType must be used in combination with the IsHostedBy reference to connect to other object instances (as shown in Annex B) e.g., Cable and a PhysicalInterface. It is formally defined in Table 65.

Figure 44 – VisionAspectImageReceiverType
Table 65 – VisionAspectImageReceiverType Definiton
Attribute Value
BrowseNameVisionAspectImageReceiverType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node

9.32 VisionAspectImageTransmitterType ObjectType Definition

The VisionAspectImageTransmitterType provides a concrete ObjectType representing an aspect of an item. An image transmitter is an aspect of an item that expresses the direction of the vision streaming data as source. An instance of VisionAspectImageTransmitterType must be used in combination with the IsHostedBy reference to connect to other object instances (as shown in Annex B) e.g., Cable and a PhysicalInterface. It is formally defined in Table 66.

Figure 45 – VisionAspectImageTransmitterType
Table 66 – VisionAspectImageTransmitterType Definiton
Attribute Value
BrowseNameVisionAspectImageTransmitterType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node

9.33 VisionAspectImageTransceiverType ObjectType Definition

The VisionAspectImageTransceiverType provides a concrete ObjectType representing an aspect of an item. An image transceiver is an item aspect that expresses the direction of the vision streaming data as both source and sink. An instance of VisionAspectImageTransceiverType must be used in combination with the IsHostedBy reference to connect to other object instances (as shown in Annex B) e.g., Cable and a PhysicalInterface. It is formally defined in Table 67.

Figure 46 – VisionAspectImageTransceiverType
Table 67 – VisionAspectImageTransceiverType Definiton
Attribute Value
BrowseNameVisionAspectImageTransceiverType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node

10 OPC UA VariableTypes

10.1 SEMI_E10SystemStateType VariableType Definition

The SystemState is a subtype of BaseVariableType. It is used to denote a single level with one or multiple SEMI E10 states that might be active in an item. It is formally defined in Table 68.

Figure 47 – SEMI_E10SystemStateType
Table 68 – SEMI_E10SystemStateType Definition
Attribute Value
BrowseNameSEMI_E10SystemStateType
IsAbstractFalse
ValueRank-3 (-3 = ScalarOrOneDimension)
DataTypeSEMI_E10SystemStateDataType
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseDataVariableType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node
0:HasComponentVariableSubStatesSEMI_E10SystemStateDataType{ ScalarOrOneDimension}SEMI_E10SystemStateTypeO
0:HasPropertyVariableStatesInfoSEMI_E10SystemStateInfoDataType[]0:PropertyTypeM
0:HasPropertyVariableCausePath0:String0:PropertyTypeO

The SubStates optional component is a recursive SEMI_E10SystemStateType to specify the next level of the sub states of the state store on the variable. It is possible to provide any number of levels to completely map all the SEMI E10 states of an item.

The StatesInfo is a mandatory property of all the states that can be assigned to the level of variable.

The CausePath optional property is a path information string based on the SEMI E10 scheme. Instantiated SEMI_E10SystemStateTypes using the SubStates component do not need to provide this property. If needed it should be instantiated only once at level one or zero of the system state.

More information about the usage of SEMI E10 in a vision system can be found in Section 11.6 of the OPC 40100-1 - UA Companion Specification Part 1 for Machine Vision.

Table 69 – SEMI E10 information for the SEMI_E10SystemStateInfoDataType
Id Name Parent state Level Description
0TotalTime00The item total time of operation.
1OperationsTime01The item is working.
2NonscheduledTime01The item is not working because no production was scheduled.
3Uptime12The item is in a condition to perform its intended function.
4Downtime12The item is not in a condition to perform its intended function.
5ManufacturingTime33The item is either working on a job or is idle and ready to accept a new job.
6Engineering33The item is not working and not ready to accept a command because a user is currently working on the system
7ScheduledDowntime43The item is not available for production and this was planned in advance.
8UnscheduledDowntime43The item is not available for production due to failure and repair.
9Production54The item is currently working on a job.
10Standby54The item is ready to accept a command but is currently not executing a job.

The different states defined in SEMI E10 can be organized in different levels depending on their position in the state hierarchy. The initial level (0) is always the TotalTime state that encapsulates the total time that the machine has been in existence, in the next level increasing the level of detail, the sub-states OperationsTime and NonscheduledTime are specified as the level 1 of the SEMI E10 states, from there OperationsTime specifies two sub-states Uptime and Downtime which become level 2 and so on. Each state has a relationship with its parent state that must be specified in the ParentStateId property of the SEMI_E10SystemStateInfoDataType with the exception of TotalTime which is the initial state and it shall refer itself as its parent state. When first instantiating a variable of the SEMI_E10SystemStateType, it shall be done starting with level 1 and then as many SEMI_E10SystemStateType variables can be instantiated as the required number of state levels, using the SubStates component. Each level must provide the corresponding information about the states on that level using the StatesInfo property. When a change of state happens on the Item it might be that a particular level must be deactivated. This is done by setting the BadStateNotActive status code on the value of the variable on the level that must be deactivated. For example, if the NonscheduledTime state becomes active all the additional sub-states below level 1 become deactivated.

Each Item (Machine or Component) can have their own individual SEMI E10 state variable. At the system level or if an Item is the master of other components the information of the SEMI E10 state of that object can take into account all the relevant information of the related Items. In addition, this companion specification defines the usage of parallel states with the usage of priority in each of the active SEMI E10 state. If parallel states are needed the value of the variable of the SEMI_E10SystemStateType will be an array and the priority value must be set in each of the elements of SEMI_E10SystemStateDataType.

Figure 48 – SEMI E10 States and Substates example

11 OPC UA DataTypes

11.1 SEMI_E10SystemStateDataType

This structure contains the id and state priority of a single SEMI E10 state. The structure is defined in Table 70.

Table 70 – SEMI_E10SystemStateDataType Structure
Name Type Description
SEMI_E10SystemStateDataTypestructureSubtype of Structure defined in OPC 10000-4
Id0:UInt32System wide unique identifier for the SEMI E10 state
Priority0:UInt32The priority of the state in relation to other parallel states contained in the same variable. This priority can be used to create the most relevant cause path string using the SEMI E10 schema.

11.2 SEMI_E10SystemStateInfoDataType

This structure contains the state information in order to allow the complete mapping of all the possible SEMI E10 states of the item. The structure is defined in Table 71.

Table 71 – SEMI_E10SystemStateInfoDataType Structure
Name Type Description
SEMI_E10SystemStateInfoDataTypestructureSubtype of Structure defined in OPC 10000-4
Id0:UInt32System wide unique identifier for the SEMI E10 state
Name0:LocalizedTextHuman readable name of the state
ParentStateId0:UInt32The id of the parent state if applicable. The parent state is used to generate the complete tree of states base on the SEMI E10 schema.
Description0:LocalizedTextOptional short description of the meaning of the state

12 OPC UA Reference Types

12.1 HasOpticalPathTo

The HasOpticalPathTo is a concrete ReferenceType and can be used directly. It is a subtype of NonHierarchicalReferences. This ReferenceType is asymmetric and allows looping (See Annex B.9).

The semantic of this ReferenceType is to link two components with an optical path in between them

The SourceNode of References of this type shall be an Object or ObjectType representing a component.

The TargetNode of this ReferenceType shall be an shall be an Object representing a component.

The HasOpticalPathTo is formally defined inTable 72.

Table 72 – HasOpticalPathTo Definition
Attributes Value
BrowseNameHasOpticalPathTo
InverseNameHasOpticalPathFrom
SymmetricFalse
IsAbstractFalse
References NodeClass BrowseName Comment
Subtype of NonHierarchicalReferences

12.2 TransmitsDataTo

The TransmitsDataTo is a concrete ReferenceType and can be used directly. It is a subtype of NonHierarchicalReferences. This ReferenceType is asymmetric and allows looping.

The semantic of this ReferenceType is to link two components where data is being transmitted from one component to the other.

The SourceNode of References of this type shall be an Object or ObjectType representing the data source.

The TargetNode of this ReferenceType shall be an shall be an Object representing the data sink.

The TransmitsDataTo is formally defined in Table 73.

Table 73 – TransmitsDataTo Definition
Attributes Value
BrowseNameTransmitsDataTo
InverseNameReceivesDataFrom
SymmetricFalse
IsAbstractFalse
References NodeClass BrowseName Comment
Subtype of NonHierarchicalReferences

13 Profiles and ConformanceUnits

13.1 Conformance Units

This chapter defines the corresponding Conformance Units for the OPC UA Information Model for Machine Vision Part 2.

Table 74 – Conformance Units for Machine Vision Part 2
Category Title Description
Server VSA BasicThe server provides the VisionSystemAssetType. The server also provides at least one instance of the VisionSystemAssetType with all its mandatory InstanceDeclarations.
ServerVSA IdentificationThe server provides the VisionMachineIdentificationType. The server also provides at least one instance of the VisionMachineIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An instance of VisionSystemAssetType shall reference an instance of VisionMachineIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of the VisionMaintenanceInfoType, with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An instance of VisionSystemAssetType shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of the VisionHealthInfoType, with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An instance of VisionSystemAssetType shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find ComputingDevices The server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one ComputingDevices Object, connected to it with the HasComponent Reference. The ComputingDevices Object shall reference all objects representing computing devices under this object with an Organizes Reference.
ServerVSA ComputingDevice IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a computing device shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA ComputingDevice Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a computing device shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA ComputingDevice Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a computing device shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find DisplayUnitsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one DisplayUnits Object, connected to it with the HasComponent Reference. The DisplayUnits Object shall reference all objects representing display units under this object with an Organizes Reference.
ServerVSA DisplayUnit IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a display unit shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA DisplayUnit Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a display unit shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA DisplayUnit Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a display unit shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find PhysicalInterfacesThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one PhysicalInterfaces Object, connected to it with the HasComponent Reference. The PhysicalInterfaces Object shall reference all objects representing physical interfaces under this object with an Organizes Reference.
ServerVSA PhysicalInterface IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a physical interface shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA PhysicalInterface Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a physical interface shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA PhysicalInterface Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a physical interface shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find ImageSensorsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one ImageSensors Object, connected to it with the HasComponent Reference. The ImageSensors Object shall reference all objects representing image sensors under this object with an Organizes Reference.
ServerVSA ImageSensor IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing an image sensor shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA ImageSensor Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a image sensor shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA ImageSensor Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a image sensor shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find FrameGrabbersThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one FrameGrabbers Object, connected to it with the HasComponent Reference. The FrameGrabbers Object shall reference all objects representing frame grabbers under this object with an Organizes Reference.
ServerVSA FrameGrabber IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a frame grabber shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA FrameGrabber Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a frame grabber shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA FrameGrabber Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a frame grabber shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find LensesThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one Lenses Object, connected to it with the HasComponent Reference. The Lenses Object shall reference all objects representing lenses under this object with an Organizes Reference.
ServerVSA Lens IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lens shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Lens Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lens shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Lens Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lens shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find LensControllersThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one LensControllers Object, connected to it with the HasComponent Reference. The LensControllers Object shall reference all objects representing lens controllers under this object with an Organizes Reference.
ServerVSA LensController IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lens controller shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA LensController Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lens controller shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA LensController Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lens controller shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find OpticalFiltersThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one OpticalFilters Object, connected to it with the HasComponent Reference. The OpticalFilters Object shall reference all objects representing optical filters under this object with an Organizes Reference.
ServerVSA OpticalFilter IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a optical filter shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA OpticalFilter Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a optical filter shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA OpticalFilter Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a optical filter shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find OtherOpticalEquipmentsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one OtherOpticalEquipments Object, connected to it with the HasComponent Reference. The OtherOpticalEquipments Object shall reference all objects representing other optical equipments under this object with an Organizes Reference.
ServerVSA OtherOpticalEquipment IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a other optical equipment shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA OtherOpticalEquipment Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a other optical equipment shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA OtherOpticalEquipment Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a other optical equipment shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find WayEncodersThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one WayEncoders Object, connected to it with the HasComponent Reference. The WayEncoders Object shall reference all objects representing way encoders under this object with an Organizes Reference.
ServerVSA WayEncoder IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a way encoder shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA WayEncoder Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a way encoder shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA WayEncoder Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a way encoder shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find TriggerSensorsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one TriggerSensors Object, connected to it with the HasComponent Reference. The TriggerSensors Object shall reference all objects representing trigger sensors under this object with an Organizes Reference.
ServerVSA TriggerSensor IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a trigger sensor shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA TriggerSensor Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a trigger sensor shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA TriggerSensor Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a trigger sensor shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find LampsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one Lamps Object, connected to it with the HasComponent Reference. The Lamps Object shall reference all objects representing lamps under this object with an Organizes Reference.
ServerVSA Lamp IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lamp shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Lamp Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lamp shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Lamp Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lamp shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find LightingControllersThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one LightingControllers Object, connected to it with the HasComponent Reference. The LightingControllers Object shall reference all objects representing lighting controllers under this object with an Organizes Reference.
ServerVSA LightingController IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lighting controller shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA LightingController Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lighting controller shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA LightingController Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a lighting controller shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find PatternGeneratorsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one PatternGenerators Object, connected to it with the HasComponent Reference. The PatternGenerators Object shall reference all objects representing pattern generators under this object with an Organizes Reference.
ServerVSA PatternGenerator IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a pattern generator shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA PatternGenerator Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a pattern generator shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA PatternGenerator Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a pattern generator shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find CalibrationTargetsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one CalibrationTargets Object, connected to it with the HasComponent Reference. The CalibrationTargets Object shall reference all objects representing calibration targets under this object with an Organizes Reference.
ServerVSA CalibrationTarget IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a calibration target shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA CalibrationTarget Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a calibration target shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA CalibrationTarget Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a calibration target shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find AcquisitionBackgroundsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one AcquisitionBackgrounds Object, connected to it with the HasComponent Reference. The AcquisitionBackgrounds Object shall reference all objects representing acquisition backgrounds under this object with an Organizes Reference.
ServerVSA AcquisitionBackground IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing an acquisition background shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA AcquisitionBackground Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a acquisition background shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA AcquisitionBackground Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a acquisition background shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find SurroundingEnvironmentThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one SurroundingEnvironment Object, connected to it with the HasComponent Reference. The SurroundingEnvironment Object shall reference all objects representing surrounding environment under this object with an Organizes Reference.
ServerVSA SurroundingEnvironment IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a surrounding environment shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA SurroundingEnvironment Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a surrounding environment shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA SurroundingEnvironment Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a surrounding environment shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find HousingsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one Housings Object, connected to it with the HasComponent Reference. The Housings Object shall reference all objects representing housings under this object with an Organizes Reference.
ServerVSA Housing IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a housing shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Housing Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a housing shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Housing Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a housing shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find MotionDevicesThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one MotionDevices Object, connected to it with the HasComponent Reference. The MotionDevices Object shall reference all objects representing motion devices under this object with an Organizes Reference.
ServerVSA MotionDevice IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a motion device shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA MotionDevice Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a motion device shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA MotionDevice Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a motion device shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find PowerSuppliesThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one PowerSupplies Object, connected to it with the HasComponent Reference. The PowerSupplies Object shall reference all objects representing power supplies under this object with an Organizes Reference.
ServerVSA PowerSupply IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a power supply shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA PowerSupply Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a power supply shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA PowerSupply Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a power supply shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find ClimateControllersThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one ClimateControllers Object, connected to it with the HasComponent Reference. The ClimateControllers Object shall reference all objects representing climate controllers under this object with an Organizes Reference.
ServerVSA ClimateController IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a termperature controller shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA ClimateController Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a termperature controller shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA ClimateController Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a termperature controller shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find LicensesThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one Licenses Object, connected to it with the HasComponent Reference. The Licenses Object shall reference all objects representing licenses under this object with an Organizes Reference.
ServerVSA License IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a license shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA License Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a license shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA License Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a license shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find SoftwareComponentsThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one SoftwareComponents Object, connected to it with the HasComponent Reference. The SoftwareComponents Object shall reference all objects representing software components under this object with an Organizes Reference.
ServerVSA SoftwareComponents IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a software shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA SoftwareComponents Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a software shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA SoftwareComponents Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a software shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Find NetworkDevicesThe server provides at least one instance of VisionSystemAssetType and that instance shall contain exactly one NetworkDevices Object, connected to it with the HasComponent Reference. The NetworkDevices Object shall reference all objects representing network devices under this object with an Organizes Reference.
ServerVSA NetworkDevice IdentificationThe server provides the VisionComponentIdentificationType. The server also provides at least one instance of VisionComponentIdentificationType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a network device shall reference an instance of VisionComponentIdentificationType with a HasAddIn Reference (or a subtype thereof).
ServerVSA NetworkDevice Maintenance InformationThe server provides the VisionMaintenanceInfoType. The server also provides at least one instance of VisionMaintenanceInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a network device shall reference an instance of VisionMaintenanceInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA NetworkDevice Health InformationThe server provides the VisionHealthInfoType. The server also provides at least one instance of VisionHealthInfoType with all its mandatory InstanceDeclarations, and may provide its optional InstanceDeclarations, with read access. An Object representing a network device shall reference an instance of VisionHealthInfoType with a HasAddIn Reference (or a subtype thereof).
ServerVSA Optical PathsThe server provides the HasOpticalPathTo ReferenceType. A reference of this ReferenceType shall be used to connect two components of the vision system that have an optical path between them.
ServerVSA Data PathsThe server provides the TransmitsDataTo ReferenceType. A reference of this ReferenceType shall be used to connect two components of the vision system where data is being transmitted from one component to the other.

13.2 Profiles

13.2.1 Profile list

Table 75 lists all Profiles defined in this document and defines their URIs.

Table 75 – Profile URIs for OPC Machine Vision Part 2
Profile URI
Vision Identification Server Facethttp://opcfoundation.org/UA-Profile/MachineVision/AMCM/Server/MVIdentification
Vision System Maintenance Info Server Facethttp://opcfoundation.org/UA-Profile/MachineVision/AMCM/Server/MVMaintenanceInfo
Vision System Health Info Server Facethttp://opcfoundation.org/UA-Profile/MachineVision/AMCM/Server/MVHealthInfo

13.2.2 Server Facets

13.2.2.1 Overview

The following sections specify the Facets available for Servers that implement the OPC UA for Machine Vision Part 2 companion specification. Each section defines and describes a Facet or Profile.

13.2.2.2 Vision Identification Server Facet

Table 76 defines a Facet that provides the basic identification of the VisionSystemAsset and its items.

Table 76 – Vision Identification Server Profile
Group Conformance Unit / Profile Title Mandatory / Optional
MV Asset ManagementBasic Vision System AssetM
MV Asset ManagementVSA IdentificationM
MV Asset ManagementVSA Find ComputingDevicesO
MV Asset ManagementVSA ComputingDevice IdentificationO
MV Asset ManagementVSA Find DisplayUnitsO
MV Asset ManagementVSA DisplayUnit IdentificationO
MV Asset ManagementVSA Find PhysicalInterfacesO
MV Asset ManagementVSA PhysicalInterface IdentificationO
MV Asset ManagementVSA Find ImageSensorsO
MV Asset ManagementVSA ImageSensor IdentificationO
MV Asset ManagementVSA Find FrameGrabbersO
MV Asset ManagementVSA FrameGrabber IdentificationO
MV Asset ManagementVSA Find LensesO
MV Asset ManagementVSA Lens IdentificationO
MV Asset ManagementVSA Find LensControllersO
MV Asset ManagementVSA LensController IdentificationO
MV Asset ManagementVSA Find OpticalFiltersO
MV Asset ManagementVSA OpticalFilter IdentificationO
MV Asset ManagementVSA Find OtherOpticalEquipmentsO
MV Asset ManagementVSA OtherOpticalEquipment IdentificationO
MV Asset ManagementVSA Find WayEncodersO
MV Asset ManagementVSA WayEncoder IdentificationO
MV Asset ManagementVSA Find TriggerSensorsO
MV Asset ManagementVSA TriggerSensor IdentificationO
MV Asset ManagementVSA Find LampsO
MV Asset ManagementVSA Lamp IdentificationO
MV Asset ManagementVSA Find LightingControllersO
MV Asset ManagementVSA LightingController IdentificationO
MV Asset ManagementVSA Find PatternGeneratorsO
MV Asset ManagementVSA PatternGenerator IdentificationO
MV Asset ManagementVSA Find CalibrationTargetsO
MV Asset ManagementVSA CalibrationTarget IdentificationO
MV Asset ManagementVSA Find AcquisitionBackgroundsO
MV Asset ManagementVSA AcquisitionBackground IdentificationO
MV Asset ManagementVSA Find SurroundingEnvironmentO
MV Asset ManagementVSA SurroundingEnvironment IdentificationO
MV Asset ManagementVSA Find HousingsO
MV Asset ManagementVSA Housing IdentificationO
MV Asset ManagementVSA Find MotionDevicesO
MV Asset ManagementVSA MotionDevice IdentificationO
MV Asset ManagementVSA Find PowerSuppliesO
MV Asset ManagementVSA PowerSupply IdentificationO
MV Asset ManagementVSA Find ClimateControllersO
MV Asset ManagementVSA ClimateController IdentificationO
MV Asset ManagementVSA Find LicensesO
MV Asset ManagementVSA License IdentificationO
MV Asset ManagementVSA Find SoftwareComponentsO
MV Asset ManagementVSA SoftwareComponents IdentificationO
MV Asset ManagementVSA Find NetworkDevicesO
MV Asset ManagementVSA NetworkDevice IdentificationO
13.2.2.3 Vision System Maintenance Info Server Facet

Table 77 defines a Facet that provides the maintenance information of the VisionSystemAsset and its items.

Table 77 – Vision System Maintenance Info Server Facet
Group Conformance Unit / Profile Title Mandatory / Optional
MV Asset ManagementBasic Vision System AssetM
MV Asset ManagementVSA Maintenance InformationM
MV Asset ManagementVSA Find ComputingDevicesO
MV Asset ManagementVSA ComputingDevice Maintenance InformationO
MV Asset ManagementVSA Find DisplayUnitsO
MV Asset ManagementVSA DisplayUnit Maintenance InformationO
MV Asset ManagementVSA Find PhysicalInterfacesO
MV Asset ManagementVSA PhysicalInterface Maintenance InformationO
MV Asset ManagementVSA Find ImageSensorsO
MV Asset ManagementVSA ImageSensor Maintenance InformationO
MV Asset ManagementVSA Find FrameGrabbersO
MV Asset ManagementVSA FrameGrabber Maintenance InformationO
MV Asset ManagementVSA Find LensesO
MV Asset ManagementVSA Lens Maintenance InformationO
MV Asset ManagementVSA Find LensControllersO
MV Asset ManagementVSA LensController Maintenance InformationO
MV Asset ManagementVSA Find OpticalFiltersO
MV Asset ManagementVSA OpticalFilter Maintenance InformationO
MV Asset ManagementVSA Find OtherOpticalEquipmentsO
MV Asset ManagementVSA OtherOpticalEquipment Maintenance InformationO
MV Asset ManagementVSA Find WayEncodersO
MV Asset ManagementVSA WayEncoder Maintenance InformationO
MV Asset ManagementVSA Find TriggerSensorsO
MV Asset ManagementVSA TriggerSensor Maintenance InformationO
MV Asset ManagementVSA Find LampsO
MV Asset ManagementVSA Lamp Maintenance InformationO
MV Asset ManagementVSA Find LightingControllersO
MV Asset ManagementVSA LightingController Maintenance InformationO
MV Asset ManagementVSA Find PatternGeneratorsO
MV Asset ManagementVSA PatternGenerator Maintenance InformationO
MV Asset ManagementVSA Find CalibrationTargetsO
MV Asset ManagementVSA CalibrationTarget Maintenance InformationO
MV Asset ManagementVSA Find AcquisitionBackgroundsO
MV Asset ManagementVSA AcquisitionBackground Maintenance InformationO
MV Asset ManagementVSA Find SurroundingEnvironmentO
MV Asset ManagementVSA SurroundingEnvironment Maintenance InformationO
MV Asset ManagementVSA Find HousingsO
MV Asset ManagementVSA Housing Maintenance InformationO
MV Asset ManagementVSA Find MotionDevicesO
MV Asset ManagementVSA MotionDevice Maintenance InformationO
MV Asset ManagementVSA Find PowerSuppliesO
MV Asset ManagementVSA PowerSupply Maintenance InformationO
MV Asset ManagementVSA Find ClimateControllersO
MV Asset ManagementVSA ClimateController Maintenance InformationO
MV Asset ManagementVSA Find LicensesO
MV Asset ManagementVSA License Maintenance InformationO
MV Asset ManagementVSA Find SoftwareComponentsO
MV Asset ManagementVSA SoftwareComponents Maintenance InformationO
MV Asset ManagementVSA Find NetworkDevicesO
MV Asset ManagementVSA NetworkDevice Maintenance InformationO
13.2.2.4 Vision System Health Info Server Facet

Table 78 defines a Facet that provides the health information of the VisionSystemAsset and its items.

Table 78 – Vision System Health Info Server Facet
Group Conformance Unit / Profile Title Mandatory / Optional
MV Asset ManagementBasic Vision System AssetM
MV Asset ManagementVSA Health InformationM
MV Asset ManagementVSA Find ComputingDevicesO
MV Asset ManagementVSA ComputingDevice Health InformationO
MV Asset ManagementVSA Find DisplayUnitsO
MV Asset ManagementVSA DisplayUnit Health InformationO
MV Asset ManagementVSA Find PhysicalInterfacesO
MV Asset ManagementVSA PhysicalInterface Health InformationO
MV Asset ManagementVSA Find ImageSensorsO
MV Asset ManagementVSA ImageSensor Health InformationO
MV Asset ManagementVSA Find FrameGrabbersO
MV Asset ManagementVSA FrameGrabber Health InformationO
MV Asset ManagementVSA Find LensesO
MV Asset ManagementVSA Lens Health InformationO
MV Asset ManagementVSA Find LensControllersO
MV Asset ManagementVSA LensController Health InformationO
MV Asset ManagementVSA Find OpticalFiltersO
MV Asset ManagementVSA OpticalFilter Health InformationO
MV Asset ManagementVSA Find OtherOpticalEquipmentsO
MV Asset ManagementVSA OtherOpticalEquipment Health InformationO
MV Asset ManagementVSA Find WayEncodersO
MV Asset ManagementVSA WayEncoder Health InformationO
MV Asset ManagementVSA Find TriggerSensorsO
MV Asset ManagementVSA TriggerSensor Health InformationO
MV Asset ManagementVSA Find LampsO
MV Asset ManagementVSA Lamp Health InformationO
MV Asset ManagementVSA Find LightingControllersO
MV Asset ManagementVSA LightingController Health InformationO
MV Asset ManagementVSA Find PatternGeneratorsO
MV Asset ManagementVSA PatternGenerator Health InformationO
MV Asset ManagementVSA Find CalibrationTargetsO
MV Asset ManagementVSA CalibrationTarget Health InformationO
MV Asset ManagementVSA Find AcquisitionBackgroundsO
MV Asset ManagementVSA AcquisitionBackground Health InformationO
MV Asset ManagementVSA Find SurroundingEnvironmentO
MV Asset ManagementVSA SurroundingEnvironment Health InformationO
MV Asset ManagementVSA Find HousingsO
MV Asset ManagementVSA Housing Health InformationO
MV Asset ManagementVSA Find MotionDevicesO
MV Asset ManagementVSA MotionDevice Health InformationO
MV Asset ManagementVSA Find PowerSuppliesO
MV Asset ManagementVSA PowerSupply Health InformationO
MV Asset ManagementVSA Find ClimateControllersO
MV Asset ManagementVSA ClimateController Health InformationO
MV Asset ManagementVSA Find LicensesO
MV Asset ManagementVSA License Health InformationO
MV Asset ManagementVSA Find SoftwareComponentsO
MV Asset ManagementVSA SoftwareComponents Health InformationO
MV Asset ManagementVSA Find NetworkDevicesO
MV Asset ManagementVSA NetworkDevice Health InformationO

14 Namespaces

14.1 Namespace Metadata

Table 79 defines the namespace metadata for this document. The Object is used to provide version information for the namespace and an indication about static Nodes. Static Nodes are identical for all Attributes in all Servers, including the Value Attribute. See OPC 10000-5 for more details.

The information is provided as Object of type NamespaceMetadataType. This Object is a component of the Namespaces Object that is part of the Server Object. The NamespaceMetadataType ObjectType and its Properties are defined in OPC 10000-5.

The version information is also provided as part of the ModelTableEntry in the UANodeSet XML file. The UANodeSet XML schema is defined in OPC 10000-6.

Table 79 – NamespaceMetadata Object for this Document
Attribute Value
BrowseNamehttp://opcfoundation.org/UA/MachineVision/AMCM/
Property DataType Value
NamespaceUriStringhttp://opcfoundation.org/UA/MachineVision/AMCM/
NamespaceVersionString1.00.0
NamespacePublicationDateDateTime2024-05-17
IsNamespaceSubsetBooleanFalse
StaticNodeIdTypesIdType []0
StaticNumericNodeIdRangeNumericRange []
StaticStringNodeIdPatternString

14.2 Handling of OPC UA Namespaces

Namespaces are used by OPC UA to create unique identifiers across different naming authorities. The Attributes NodeId and BrowseName are identifiers. A Node in the UA AddressSpace is unambiguously identified using a NodeId. Unlike NodeIds, the BrowseName cannot be used to unambiguously identify a Node. Different Nodes may have the same BrowseName. They are used to build a browse path between two Nodes or to define a standard Property.

Servers may often choose to use the same namespace for the NodeId and the BrowseName. However, if they want to provide a standard Property, its BrowseName shall have the namespace of the standards body although the namespace of the NodeId reflects something else, for example the EngineeringUnits Property. All NodeIds of Nodes not defined in this document shall not use the standard namespaces.

Table 80 provides a list of mandatory and optional namespaces used in an OPC Machine Vision Part 2 OPC UA Server.

Table 80 – Namespaces used in a OPC Machine Vision Part 2 Server
NamespaceURI Description Use
http://opcfoundation.org/UA/Namespace for NodeIds and BrowseNames defined in the OPC UA specification. This namespace shall have namespace index 0.Mandatory
Local Server URINamespace for nodes defined in the local server. This may include types and instances used in a Machine Vision System represented by the Server. This namespace shall have namespace index 1.Mandatory
http://opcfoundation.org/UA/DI/Namespace for NodeIds and BrowseNames defined in OPC 10000-100. The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Machinery/Namespace for NodeIds and BrowseNames defined in this document. The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/MachineVision/AMCM/Namespace for NodeIds and BrowseNames defined in this document. The namespace index is Server specific.Mandatory
Vendor specific typesA Server may provide vendor-specific types like types derived from ObjectTypes defined in this document in a vendor-specific namespace.Optional
Vendor specific instances

A Server provides vendor-specific instances of the standard types or vendor-specific instances of vendor-specific types in a vendor-specific namespace.

It is recommended to separate vendor specific types and vendor specific instances into two or more namespaces.

Mandatory

Table 81 provides a list of namespaces and their indices used for BrowseNames in this document. The default namespace of this document is not listed since all BrowseNames without prefix use this default namespace.

Table 81 – Namespaces used in this document
NamespaceURI Namespace Index Example
http://opcfoundation.org/UA/00:EngineeringUnits
http://opcfoundation.org/UA/DI/22:DeviceRevision
http://opcfoundation.org/UA/Machinery/33:MachineIdentificationType

15 (normative)AMCM Namespace and mappings

15.1 NodeSet and supplementary files for AMCM Information Model

The AMCM Information Model is identified by the following URI:

http://opcfoundation.org/UA/MachineVision/AMCM/

Documentation for the NamespaceUri can be found here.

The NodeSet associated with this version of specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/MachineVision/AMCM/&v=1.00.0&i=1

The NodeSet associated with the latest version of the specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/MachineVision/AMCM/&i=1

The supplementary files associated with this version of specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/MachineVision/AMCM/&v=1.00.0&i=2

The supplementary files associated with the latest version of the specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/MachineVision/AMCM/&i=2

___________

16 (informative)Example Scenario

In the following chapter we want to give some examples on how to model a machine vision system using definitions from Part2.

As base for the examples, we use the vision system setup shown below.

Figure 49 – An example Machine Vision System

Mechanical Connections

Within a machine, its components are usually mounted / mechanically connected in some way. Part2 allows you to express the information, how and where things are mounted.

Let us model a simple example:

A camera is usually built out of a camera body (which we will represent by the image sensor as its most important functional part) and a lens that creates a projection on that sensor.

Using the object types given above, we would get an image sensor object and a lens object located in their specific folders.

As the lens is attached to the outside of the camera body, and in principle can be detached, we will use the HasAttachedComponent Reference to show this relationship between the two objects

Figure 50 – Mechanical Connections with OPC UA References

Browsing this model, we get the information that a lens called “Lens1” is attached to an image sensor called “ImageSensor1”.

Now let us mount an optical filter onto the lens. This can be done using the same modeling approach.

Figure 51 – Mechanical Connections with OPC UA References

Let us assume the image sensor is equipped with an internal infrared filter in front of the actual sensor chip. As this filter is an integral part of the image sensor, there is no need to add it to the model at all, as the image sensor is already in the model.

But maybe we want to make sure that a service guy browsing this model during maintenance work is aware of the presence of that IR filter. Therefore, we can add it to the model, this time using the HasContianedComponent reference expressing that something is an integral, i.e., not easily removable, part of some other component.

Figure 52 – Mechanical Connections with OPC UA References

Maybe if someone later on will have to replace the lens it would be nice to know which mechanical interface (like C-Mount or F-Mount) is used in this assembly.

Part2 allows you to get into more detail by adding additional information layers to the model. To add information about the physical connection types supported by your components you may add objects naming each of this physical interfaces / connection points located at your item.

Figure 53 – Mechanical Connections with OPC UA References

Browsing this model we get the information that there is a lens mount built into the Image sensor. The PhysicalInterface_IS_LensMount Object can hold all information you may need to specify what type of mount this is.

Further browsing shows that Lens1 has two physical connection ports. There is a lens mount on one end and a filter mount on the other.

We also see that the Filter has two filter mounts (on both sides) to be able to stack multiple filters if needed.

During engineering of the system, you may compare the image sensor1 lens mount to the lens1 lens mount to see if the components will fit together.

As this example shows an already mounted lens - as we can see by the HasAttachedComponent reference between image sensor and lens - we will find this information reflected also by the additional information layer of the physical ports. This time we find an IsPhysicallyConnectedTo reference between the two lens mount objects.

The nature of physical ports is that they may be connected or disconnected several times. Therefore, at this level we are only using the IsPhysicallyConnectedTo reference which expresses a somehow weak relation – it is currently physically connected, but this could change at any time. Despite of that, at the component level above you still have the much stronger HasAttachedComponent reference which tells you that this is a connection not intended to be broken during normal operation.

Service Class Tags

Part 2 offers an additional method of giving your service department information about what they should or should not try to disassemble on site during maintenance. It introduces the possibility to add a service class tag to the components, which gives information about what parts of the machine may be disassembled at the customer site and which components should only be removed as an assembly where you do not disassemble individual components.

So, let’s say you know that the system will be working in a dusty environment, possibly with oil mist in the air. Therefore, it is probably not a good idea to remove the lens from the image sensor at the production site as there is a high risk to render the image sensor useless because oil is deposited on it.

The service class standard originating from aircraft maintenance, but now used in a wide field of applications, defines some standard labels like “line replaceable unit” – this component may be removed at the customer site – and “shop replaceable unit” – this component should not be removed at a customer site; only at your workshop you are supposed to dismantle this assembly.

Figure 54 – Service Class Tags

By tagging the components you can give your service guys some information how to handle a repair. If the filter mounted on the lens gets damaged, you can browse the following information from the model:

the filter is tagged SRU – do not remove
the filter is attached to the lens, the lens is tagged SRU – do not remove
the lens is attached to the image sensor, that is tagged LRU – remove this assembly

Therefore, the service technician should remove the sensor together with the lens and filter mounted to it and take it back to the repair shop to replace the damaged filter.

Modular Devices

Some devices / components itself are built in a modular way. For example, an IPC usually is shown as a unit within the system, but internally it uses standardized modules like a PCIe plug-in card or a 2,5” solid state drive. It may be worthwhile to be able to name these modules for maintenance purposes.

Figure 55 – Modular Devices with OPC UA References

In the example above, we see an industrial computer together with its connectors that are named such that it is possible to show the connectivity within the MV system later on.

In this example, the IPC offers connectors for power supply, video output (Display Port and HDMI), a serial interface and two Ethernet Ports.

Most of these interfaces are built into the IPC (soldered to the mainboard). Therefore, we see HasContainedComponent references pointing from the ComputingDevice to the PhysicalInterface nodes which expresses a “this is an integral part of something” relation.

As in the Image sensor example above, it is up to you to decide what internal components are useful to be included in the model. If an internal component has meaningful maintenance information that may be monitored without the context of the device it belongs to, it may be worth it to add that component to the system model.

An example for that could be a hard disk or solid-state drive which usually provides health information (SMART / GPL) often including a prediction if this drive will fail in the near future.

You may incorporate this SMART data into the health information of the device containing the drive, but for a client it could be easier to have a standardized browse point (folder) where to find all SMART data from all drives no matter in which component they are located.

(Note: Part2 does not include a definition for mass storage devices as there are already standards for that)

Another example could be cooling fans. Instead of distributing their maintenance information over the components they are mounted to, it could make monitoring easier to have them all in one folder.

Figure 56 – Modular Devices with OPC UA References

Again, choosing different reference types can be used to give more information on the service task that has to be expected if a part needs to be replaced.

In this example, the Image sensor has an externally attached fan which, by definition of that reference type, should not be hard to detach.

The IPC has a built in CPU fan, which by definition of that reference type Is not designed for easy replacement and it has a contained case fan which is in between those, maybe like a fan cassette of a rack device that may easily be replaced from the outside without the need to dismantle the IPC.

Software and Licenses

The OPC base specification offers several reference types to describe the relation between software and hardware components.

Below is an example of an IPC running some image processing software framework. To build the model, the first thing is to decide which software components should be named in the model. We here tried to include the things needed for an application that could be updated independently. Therefore, it makes sense to give some version information for those components to be able to keep track of their compatibility if they are updated during normal maintenance operations.

The Firmware / BIOS of the IPC is needed to run the computer, of course it must fit to the hardware of the IPC.

The operating system is usually provided as a software image (e.g., backup of the system drive). To be able to run on the IPC it often needs specific BIOS settings and functionality.

Usually, you need some driver software to adapt the OS to the hardware of the computer and its periphery

Installed to the OS you will have some application software packages, like the Image processing framework or some service tools. These programs may be started or stopped during normal operation

To legally use some of the software components like the OS or the Image processing software you usually need software licenses that may have a digital and/or physical representation (license dongle)

Figure 57 – Software and Licenses

We now will have to add information about the relationships of the named components.

This can be difficult, as it is often hard to decide if a software is “running on” or “hosted by” something or if it “requires” or “utilizes” another component.

There is no right or wrong here, it mainly depends on what aspect you need to make visible to fulfill your monitoring and maintenance needs. And if you can’t decide it is always possible to show multiple aspects by using different reference types in parallel.

The model does not necessarily have to be complete; it is often more helpful to limit it to the important information / relations.

To give you an impression, here are some thoughts why we did put the example together in this specific way:

If a BIOS update is to be done, we need to check compatibility. The BIOS has to fit to the hardware, but also its configuration has to fit to the OS image running on that machine. Therefore, we decided to show the aspect that the hardware as well as the OS has requirements on the BIOS distributed. The knowledge that a firmware runs on the hardware it is installed on is somehow trivial and therefore we decided to skip that relation.

If you want to keep track of different versions of the OS Images you did distribute to your system over time, there may be more than one OS Image entity present in the software folder. Therefore, we decided to use the “is executing on” reference to show that the OS image shown in the model is currently running on the IPC.

A driver package distributed often includes drivers for multiple versions of operating systems (e.g. Windows 10 and 11). Therefore, we did use an “IsHostedBy” to express that in this application the driver package runs on a specific OS Version.

The Image processing framework may be connected only loosely to the specific IPC and OS Image but instead run on “one available machine” (virtual environments, Docker etc.). Therefore, we used the “IsHostedBy” reference to connect it to the OS and the “IsExecutingOn” reference to show where it is currently executed. This may change during runtime if it becomes assigned to a different IPC.

The “OtherApp” is currently not executed, but if needed it could run on the IPC, which is indicated by the “IsExecutableOn” reference.

The OS may need a unique license key, which makes a one-to-one relation between the OS and the license. This is shown by the “Requires” reference. This OS needs this specific key.

The Image processing Framework may use some kind of “floating license” model. A license dongle allows to run up to a specific number of Image processing Frameworks in parallel no matter on which IPC they are executed. Therefore, we here used the “Utilizes” reference to express that, as long as it is executed, the framework uses up one of these floating licenses.

Shared Resources

The Utilizes reference is often used in conjunction with shared resources.

In the example below we have a power supply unit with a single power output.

Three devices are connected to that output and therefore share that resource.

This is modeled by Utilizes references.

Figure 58 – Shared Resources

The references now can be used to aggregate information for resource planning.

If you have to select a replacement PSU during repair, you can follow the Utilizes references pointing to the power output in reverse to find the power needs of the three devices and aggregate them to get the requirements for the power supply.

Figure 59 – Shared Resources

But not in all cases resources are directly used, there could be hidden indirect relations.

A lighting controller often controls an LED lamp by modulating the electrical current to the lamp.

Although there is no direct cable connection between lamp and PSU the lamp is indirectly supplied by the PSU. Normally the power need of the lamp therefore is incorporated into the power need of the lighting controller.

If it is instead needed to explicitly model the relation between lamp and PSU this can be done by adding an additional Utilizes reference (dotted line).

Figure 60 – Shared Resources

Please be aware that an OPC UA reference cannot have additional parameters. It is simply there or is not there. Therefore, by browsing the references a client cannot distinguish between a reference modeling a direct or indirect relationship (solid line vs. dotted line).

If this is needed a reference refinement must be used to further describe the nature of the dotted Utilizes reference.

Figure 61 – Reference Refinement of the Utilizes Reference

ReferenceDescription Value of IndirectUtilisation

SourceNode:Lamp1
ReferenceType:Utilizes
IsForward: TRUE
TargetNode:PowerSupply1

ReferenceRefinement of IndirectUtilisation

{

ReferenceListEntry
ReferenceType: Controls
IsForward: FALSE
TargetNode: LightingController1;
ReferenceListEntry
ReferenceType: Utilizes
IsForward: TRUE
TargetNode: PowerSupply1;

};

The refinement allows to give an ordered list of references (a path) that are simplified by the reference the refinement belongs to.

The dotted Utilizes reference is a simpler model of the real path that leads from the lamp to the power supply. In reality, Lamp1 receives its power from the lighting controller (which is expressed by the Controls reference from lighting controller to lamp) and the lighting controller gets its power from the power supply.

Cable Connections

Typically, in real world applications a connector of one device is not plugged directly into the connector of another device. You will find a piece of cable in between.

As cables are often a delicate part of a system and could be worn down if connected to a moving machine part, it can be helpful to get information what kind of cable is used and where it is connected directly from the system. Be aware that a cable can have more than two ends (Y-Cable, Bus Cable, Cable Tree).

Part2 allows you to include information in the model as needed, from basic items to in depth detail.

In the example above we saw a Controls reference between the lighting controller and Lamp1.

Now we will add a cable to the model that provides this control connection.

Figure 62 – Cable Connections

As in the last example we now have two paths from Controller to lamp that stand for the same relation. We again may use a reference refinement to give the information that the Controls reference is provided by that cable connection.

Figure 63 – Reference Refinement of the Controls Reference

ReferenceDescription Value of ControlPath1

SourceNode:LightingController1
ReferenceType:Controls
IsForward: TRUE
TargetNode:Lamp1

ReferenceRefinement of ControlPath1

{

ReferenceListEntry
ReferenceType: HasContianedComponent
IsForward: TRUE
TargetNode: PhysicalInterface_ LC_LampPowerA
ReferenceListEntry
ReferenceType: IsPhysicallyConnectedTo
IsForward: TRUE
TargetNode: Cable_LC_LU1;
ReferenceListEntry
ReferenceType: IsPhysicallyConnectedTo
IsForward: TRUE
TargetNode: PhysicalInterface_Lamp1_Power;
ReferenceListEntry
ReferenceType: HasContianedComponent
IsForward: FALSE
TargetNode: Lamp1;

};

Such control flows often include multiple devices which are part of the communication. If the IPC sends a software trigger to the lighting controller via an Ethernet connection, the signal may have to pass an Ethernet switch. Modeling such details gives you the possibility to do sophisticated error analysis later.

Figure 64 – Reference Refinement of the Controls Reference

ReferenceDescription Value of ControlPath5

SourceNode:ComputingDevice1
ReferenceType:Controls
IsForward: TRUE
TargetNode:LightingController1

ReferenceRefinement of ControlPath5

{

ReferenceListEntry
ReferenceType: HasContianedComponent
IsForward: TRUE
TargetNode: PhysicalInterface_CD_Eth;
ReferenceListEntry
ReferenceType: IsPhysicallyConnectedTo
IsForward: TRUE
TargetNode: Cable_CD_Switch;
ReferenceListEntry
ReferenceType: IsPhysicallyConnectedTo
IsForward: TRUE
TargetNode: Ethernet Switch;
ReferenceListEntry
ReferenceType: IsPhysicallyConnectedTo
IsForward: TRUE
TargetNode: Cable_LC_Switch;
ReferenceListEntry
ReferenceType: IsPhysicallyConnectedTo
IsForward: TRUE
TargetNode: PhysicalInterface_LC_Eth;
ReferenceListEntry
ReferenceType: HasContianedComponent
IsForward: FALSE
TargetNode: LightingController1;

};

If the IPC is currently unable to control the lighting controller, the reference refinement provides the information that a service technician not only will have to check the IPC and the controller, but that there are two cables and an Ethernet switch involved that could be causing the problem.

Detailed Cable models (Connectors and Pins)

Using the same modeling approach as described above you can easily add an additional information layer giving detailed information on the connectors and pinout of the cables in the system. If needed, you may even provide a full cabling plan for the whole system.

The models are simple but will become very large (you often hear people saying otherwise, but no, size and complexity are not the same thing).

Please keep in mind that such models are not intended to be made or read by human beings. A cabling plan will be an output of your engineering software and should be read by a service tool helping a service technician doing maintenance or error analysis.

The first thing to do is to add some connectors to the cable model.

Below is an example of a Y-cable with one connector on one end that is split to 2 connectors on the other end.

Figure 65 – Detailed modelling of cables

To show the pinout of the connectors we add the wires of the cable to the Cables folder and the pins of the connectors to the PhysicalInterfaces folder. We use the IsPhysicallyConnectedTo reference type to show how everything is wired.

Figure 66 – Detailed modelling of cables

If the cable gets connected to a device, you may decide at which level of information depth you reflect this. The connector of the cable gets physically connected to the fitting connector of the device. You may also show that each pin gets connected which may make it easier to browse large cable trees later on.

Figure 67 – Detailed modelling of cables

Note: In industrial applications it is common to use screw terminals instead of connectors to connect cables. But even in this case you often need to give detail information on how this end of the cable has to be manufactured. Do you simply have to strip the isolation, or do you need to put on a cable shoe and if yes what type and size of shoe is needed?

An “Open End” object (analog to a pin object) would be a good place to store such information.

Image Transceivers

In the good ol’ days of image processing it was common practice to use specialized interface cards (framegrabbers) to connect an image sensor to a computing unit. But as the consumer grade interfaces included in nearly all computers kept evolving over time they today are often “good enough” and much cheaper than specialized hardware you have to add to the IPC.

So we now mostly use Ethernet or even USB ports to do image acquisition.

Whereas a frame grabber usually comes with detailed information on which image format and acquisition bandwidth it can handle, you rarely will find such information on a generic USB or Ethernet port. We could have added this kind of data elements to a machine vision specific definition of such ports to close that gap, but we did not find this very useful.

Such generic port types are widely used and there will be definitions how to describe them outside of the image processing world.

Instead, we decided to keep the information that is specific to image processing applications in a separate object that may be attached to a port using a reference.

Even in such a scenario you may want to have a frame grabber entity, even if this is now a software instead of a hardware component, whose hardware aspects are hosted by another physical interface.

Figure 68 – Image Transceivers

This approach has a big advantage. As consumer interfaces are usually very cheap, modern IPCs come with a lot of them. Often it does not really matter which Ethernet or which USB port the camera is connected to as they are technically identical. So you have some built in redundancy. If you decide to connect the image sensor to Ethernet Port1 instead of Port2, no objects in the model need to be changed. Simply the two “IsHostedBy” references need to be shifted to the other Ethernet port.

Optical Paths

As we saw above, our models show relations between devices / components. We may add further layers of information to give more details, e.g., to show that a control flow between devices is dependent on cables connecting them.

In a machine vision system, we do not only care about electrical signals being distributed.

We also care about the distribution of light to be able to answer questions like:

Why do I get no image?
Why is the image I get not as bright as expected?

To be able to model optical relations we introduced an additional reference type called OpticalPath for that purpose.

Note: As our Industry is called machine vision, we use to speak of images coming from a sensor. This could be something like a photo, but often it is something different which would not be called an image in everyday circumstances.

In the same way we use the terms light and optics in a very general way. “Light” can be anything you use to get your “image”, it could be Infrared light, could be X-ray or could even be a sound wave. Everything used to guide or manipulate your “source signal” we call “optical equipment” and the source of that signal we call “lamp”.

We also introduced an SurroundingEnvironment Object. In real world applications you often struggle with the surrounding environment around your Vision System. Maybe you make use of ambient light to make your images or maybe scattered ambient light ruins your image processing if you can’t isolate the system well enough.

In both cases, it is very often necessary to monitor “surrounding environment quality”, meaning the influence the surroundings have on your application (e.g., brightness of ambient light, ambient temperature).

The surrounding environment object is the right place to store such information.

A similar object is the AcquisitionBackground. If for example you need to be able to correctly “see” the contour of an object of interest, you will have some requirements on what is behind that object. So often the background is monitored to warn about dirt and debris showing up before it influences the quality of your image processing. As the acquisition background is often a part of the system (e.g., a gray sheet of metal or a backlight) we distinguished it from the surrounding environment, that is what we find around the vision system.

But back to the optical path.

In the example vision system shown at the beginning of this chapter we can identify 3 main optical paths via which light can reach the image sensor.

Lamp1 in conjunction with a semitransparent mirror is used to illuminate the surface of our object of interest.

A backlight Lamp2 is used to be able to see the contour of the object. Some of that light is lost as it has to pass the mirror used for front face illumination

Stray light from the surrounding environment may disturb our image, as it is not completely blocked in that application

Figure 69 – Optical Paths in the example

This gives us the following model

Figure 70 – Modelling of Optical Paths

Using the same approach as we did with the cables we now can include all intermediate objects that are part of these paths of light. As shown above to express a “Path” we need to use reference refinements to give the single references an order to build a path.

Figure 71 – Optical Path 1: Lamp 1 to Image Sensor

ReferenceDescription Value of OpticalPath1

SourceNode:Lamp1
ReferenceType:OpticalPath
IsForward:TRUE
TargetNode:ImageSensor1

ReferenceRefinement of OpticalPath3

{

ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: Mirror1;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: ObjectOfInterest;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: Mirror1;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: OpticalFilter_Ext;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: Lens1;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: OpticalFilter_IS;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: ImageSensor1;

};

Figure 72 – Optical Path 2: Lamp 2 to Image Sensor

ReferenceDescription Value of OpticalPath2

SourceNode:Lamp2
ReferenceType:OpticalPath
IsForward:TRUE
TargetNode:ImageSensor1

ReferenceRefinement of OpticalPath2

{

ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: Mirror1;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: OpticalFilter_Ext;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: Lens1;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: OpticalFilter_IS;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: ImageSensor1;

};

Figure 73 – Optical Path 3: Ambience to Image Sensor

ReferenceDescription Value of OpticalPath3

SourceNode:Ambience1
ReferenceType:OpticalPath
IsForward:TRUE
TargetNode:ImageSensor1

ReferenceRefinement of OpticalPath3

{

ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: OpticalFilter_Ext;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: Lens1;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: OpticalFilter_IS;
ReferenceListEntry
ReferenceType: OpticalPath
IsForward: TRUE
TargetNode: ImageSensor1;

};

Browsing this model may aid you to answer the questions above. If you do not get the normal amount of brightness in the image you are taking from the front face of the object of interest, you may need to check if the mirror or the filter needs cleaning, as the light for that image must pass both.

Overview of the address space

Finally using the modelling tools introduced in this companion specification along with the usage of OPC UA References as explained in the previous sections, the figure on the next page shows the entire address space model of the example used throughout this Annex.

17 Untitled

Agreement of Use

COPYRIGHT RESTRICTIONS

This document is provided "as is" by the OPC Foundation and VDMA.

Right of use for this specification is restricted to this specification and does not grant rights of use for referred documents.

Right of use for this specification will be granted without cost.

This document may be distributed through computer systems, printed or copied as long as the content remains unchanged and the document is not modified.

OPC Foundation and VDMA do not guarantee usability for any purpose and shall not be made liable for any case using the content of this document.

The user of the document agrees to indemnify OPC Foundation and VDMA and their officers, directors and agents harmless from all demands, claims, actions, losses, damages (including damages from personal injuries), costs and expenses (including attorneys' fees) which are in any way related to activities associated with its use of content from this specification.

The document shall not be used in conjunction with company advertising, shall not be sold or licensed to any party.

The intellectual property and copyright is solely owned by the OPC Foundation and VDMA.

PATENTS

The attention of adopters is directed to the possibility that compliance with or adoption of OPC or VDMA specifications may require use of an invention covered by patent rights. OPC Foundation or VDMA shall not be responsible for identifying patents for which a license may be required by any OPC or VDMA specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OPC or VDMA specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents.

WARRANTY AND LIABILITY DISCLAIMERS

WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN ERRORS OR MISPRINTS. THE OPC FOUDATION NOR VDMA MAKES NO WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, WITH REGARD TO THIS PUBLICATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE. IN NO EVENT SHALL THE OPC FOUNDATION NOR VDMA BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

The entire risk as to the quality and performance of software developed using this specification is borne by you.

RESTRICTED RIGHTS LEGEND

This Specification is provided with Restricted Rights. Use, duplication or disclosure by the U.S. government is subject to restrictions as set forth in (a) this Agreement pursuant to DFARs 227.7202-3(a); (b) subparagraph (c)(1)(i) of the Rights in Technical Data and Computer Software clause at DFARs 252.227-7013; or (c) the Commercial Computer Software Restricted Rights clause at FAR 52.227-19 subdivision (c)(1) and (2), as applicable. Contractor / manufacturer are the OPC Foundation, 16101 N. 82nd Street, Suite 3B, Scottsdale, AZ, 85260-1830

COMPLIANCE

The combination of VDMA and OPC Foundation shall at all times be the sole entities that may authorize developers, suppliers and sellers of hardware and software to use certification marks, trademarks or other special designations to indicate compliance with these materials as specified within this document. Products developed using this specification may claim compliance or conformance with this specification if and only if the software satisfactorily meets the certification requirements set by VDMA or the OPC Foundation. Products that do not meet these requirements may claim only that the product was based on this specification and must not claim compliance or conformance with this specification.

TRADEMARKS

Most computer and software brand names have trademarks or registered trademarks. The individual trademarks have not been listed here.

GENERAL PROVISIONS

Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby.

This Agreement shall be governed by and construed under the laws of Germany.

This Agreement embodies the entire understanding between the parties with respect to, and supersedes any prior understanding or agreement (oral or written) relating to, this specification.