The glass industry is one of the base material industries that, on the one hand has a long tradition, and, on the other hand, is crucial for all modern applications. It ranges from, table ware, bottles for beverages and to perfume up to flat and bended glass for facades, windows, cars and technological applications such as for televisions and mobile devices. Figure 2 gives an overview of the glass domain. This specification only describes the flat glass domain. Other part will be defined OPC UA information models for other domains.


Figure 2 – Overview glass industries domains

Focusing on flat glass, the principal process steps for flat glass products are shown in simplified form in Figure 3.


Figure 3 – Typical processing steps in flat glass production

Flat glass can be produced in two ways. The first is by the use of the float process, a second possibility is the rolled glass process. Float glass producers hold large glass tanks to melt and pull glass in the desired thickness and application of required coating. Such glass with a thickness between 2 and 20mm, typically cut to size of 6000 x 3210 mm and stocked on racks for transport, is typically the raw material for the flat glass processors. The flat glass processer transforms the raw glass into divers glass products of various sizes and shapes such as window glass, splash backs, shopfronts, stairs, tables etc. In any case, the cutting process is the most universal process that is required for basically all raw glass processings and therefore the example of flat glass cutting is used in the subsequent chapters as reference object. The most important processes are described in more detail below:

  • Cutting: mechanical flat glass cutting is a sequenced process in which:
  • a raw glass pane is transported from storage to the cutting table
  • the cutting pattern is inscribed onto the glass surface, e.g., by means of a very small sharpened stainless-steel wheel
  • the glass is broken along the prescribed lines by applicating a bending force, either manual or automatic
  • optional, there may be a grinding head mounted, allowing to eliminate existing glass coating on prescribed areas
  • special cutting for previously laminated glass, where as an additional process after the glass breaking the foil attaching the 2 glass panes is separated mostly by a thermomechanical process.
  • Processing: Flat glass processing can include :
  • Edge works, such as edge seaming, grinding and or polishing
  • Surface works, such as drilling holes or generating cut outs, required e.g. for inserting of hinges and handles as required for shower doors.
  • Heat treatment, like tempering to change tension and behaviour of glass, as e.g. required for car side windows (tempered glass which in case of break dissipates in small cullets)
  • Bending (heating plus application of gravity or pressing force) to change the glass´shape into curved glass
  • Assembly: multiple glass panes may be assembled to (semi-) products
  • Lamination, in which multiple glass panes are glued together by means of interlaying thermoplastic foils. For this process the glass is first cleaned, then stacked with the interlayers and further processed in a thermopressure process to initiate the robustness of the product and the required transparency.
  • Insulating Glass production: for windows and facade elements in which two or more glass panes are assembled holding glass spacers between the glass elements. The resulting volume is in general filled with inert gas such as Argon to ensure high insulation values.

For OPC UA modelling it is required to respect main characteristics of flat glass processing:

  • Glass processing is very individual and a good example of industrial batch size of a production.
  • As a result, all machinery must be able to receive information on single glass element base in contrast to mass production.
  • Glass processing is very often based on intensive co-working between machine and human. Thus, processes with non-digitized interfaces shall be possible.

As the OPC UA model shall be universal for flat glass processing, resulting major requirements are deducted.

One of them is that we have different types of transformation processes:

  1. One to many: Cutting, where raw glass panes are cut into multiple glass elements
  2. One to one: Mainly single glass element transformation processes such as edge and surface works, heat treatment, painting
  3. Many to one: Classical assembly processes such as lamination and insulating glass fabrication
  • In order to establish an OPC UA Model suitable to the different processes, the main requirements of information transport and modelling, established over years in the glass industry, shall be integrated. A job is defined as concrete work order for one or more glass elements. For the transformation, the job may reference to preadjusted work recipes in the respective machines or production lines recipes by means
  • Jobs can be grouped in a job group (as a set of job in a fix order)
  • The order of jobs and of job groups may be changed
  • Each job group and job have a status (see ProductionStateMachine)
  • Each transformation process is one job, e.g.,
  • Cutting 100 raw glass panes requires 100 jobs as each pane will be cut in an individual pattern.
  • IG Line production of a lot requires an individual setting for each glass element produced.

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 flat glass. 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 provide 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.

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 4.


Figure 4 – 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.

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 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 a number of Attributes including a unique identifier called a NodeId and non-localized name called as BrowseName. An Object representing a ‘Reservation’ is shown in Figure 5.


Figure 5 – 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 6 illustrates the relationship between an instance and its TypeDefinition.

The type Nodes are templates that define all of the children that can be present in an instance of the type. In the example in Figure 6 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 from 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 6 – 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 7 depicts several References, connecting different Objects.


Figure 7 – 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 8. 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 8 – 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 functionality (see OPC 10000-7).

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 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.

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.