1 Scope

1.1 Scope of this Companion Specification

This document specifies an OPC UA Information Model for the data points specified in the different existing Weihenstephan Standards, WS Pack, WS Food, WS Bake and WS Brew or even for upcoming standards, which are not defined yet. Since there are many different machine types and domains within these standards, this document does not provide a complete domain specific OPC UA information model but rather a generic methodology how these data points within the existing standards have to be mapped to OPC UA. The data types needed for this mapping and the generic part of the information model, which is not specific to the individual Weihenstephan Standards, are described in this document.

1.2 Organizations

1.2.1 VDMA Food Processing and Packaging Machinery Association

The VDMA represents over 3,200 mainly small and medium size member companies in the engineering industry, making it one of the largest and most important industrial associations in Europe.

The Food Processing and Packaging Machinery Association represents one of 38 specialist associations within the VDMA and with more than 300 members it is one of the largest. The many different engineering products produced in this field make it a very heterogeneous sector. The member companies manufacture machines in the subdomains of bakery, meat processing, beverage production and dairy technology, confectionery, packaging as well as machines and equipment for vegetable raw material processing and installations for producing pharmaceutical and cosmetic products.

1.2.2 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

Secure: encryption, authentication, authorization and auditing

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

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

1.2.3 Weihenstephan Standards Industry User Group

The Weihenstephan Standards Industry User Group consists of market leaders in the domains of packaging, filling and general food processing. Within this WS Industry User Group, a universal communication interface was developed for connecting machines to higher-level data collection systems such as a Manufacturing Execution Systems (MES). The definition of necessary data points and content is done separately for each domain and currently specified for machines in filling and packaging plants (WS Pack), machines for food processing (WS Food) and further specialized for machines in the baked goods (WS Bake) and brewing industry (WS Brew). The WS Industry User Group is managed by the Technical University of Munich within the research group Smart Production Systems at the Chair of Brewing and Beverage Technology (TUM BGT).

1.2.4 Technical University Munich – Research Group Smart Production Systems at the Chair of Brewing and Beverage Technology

The Technical University of Munich (TUM) combines top-class facilities for cutting-edge research with unique learning opportunities for students. It is committed to finding solutions to the major challenges facing society as we move forward: Health & Nutrition • Energy & Natural Resources • Environment & Climate • Information & Communications • Mobility & Infrastructure. The university thinks and acts with an entrepreneurial spirit. Its aim: to create lasting value for society. All this combines to make it one of Europe’s leading universities.

The research group Smart Production Systems at the Chair of Brewing and Beverage Technology focuses on the digitization of the food and beverage industry through the research areas Artificial Intelligence, Multi Agent Systems, Modelling and Simulation as well as standardized data and communication interfaces. The research group's special focus is on the scientific consideration of issues that support the individual industrial sectors in solving current or future challenges. For example, the supply of individualized products of the beverage industry through a decentralized control system as well as the flexible composition of the required machines is solved with the help of multi-agent systems. The application of artificial intelligence is intended to optimize processes across industries and to make them more efficient through the interaction of standardized data. The simulation of different systems in the food and beverage industry aims to increase energy and media efficiency on the one hand, and to enable the virtual commissioning of process engineering plants by means of simulation models on the other.

In addition, the research group deals with the questions of plastic packaging with special functions. Among other things, the development of intelligent sensors and the topic of microplastics play a role here.

1.2.5 Fraunhofer IGCV

The Fraunhofer Research Institution for Casting, Composite and Processing Technology IGCV is an institute for production technology in general. It was founded 2016 and specializes on combining the benefits of ad-vanced casting, composite and processing technology to primarily achieve lightweight products while being energy efficient at the same time. Within the scope of processing technology, the Fraunhofer IGCV focusses on flexible production systems, robotics with focus on CoBots and Digital Engineering, with the aspects of Simulation, Data Analytics, AI and connectivity concepts for the Industrial Internet of things. The IGCV is also involved in several OPC UA activies, especially in terms of creating domain specific data models in form of OPC UA Companion Specifications and also promoting concepts for Cloud2Cloud Connectivity as well as the interaction of OPC UA with Time-sensitive Networking (TSN).

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.

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 (Release 1.05)

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 (Release 1.01)

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

OPC 30050, OPC Unified Architecture for PackML (Release 1.01)

https://reference.opcfoundation.org/v104/PackML/

Weihenstephan Standards for Production Data Acquisition

Version 10.01

https://www.weihenstephan-standards.com

WS Protocol

WS Bake

WS Brew

WS Food

WS Pack

3 Terms, definitions and conventions

3.1 Overview

It is assumed that basic concepts of OPC UA information modelling and Weihenstephan Standards are understood in this specification. This specification will use these concepts to describe the Weihenstephan Standards 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 30050 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 Weihenstephan Standards terms

3.2.1 WS DataPoint

Each data point, which is defined within the Weihenstephaner Standads, is a WS DataPoint

3.2.2 WS BrowseName

Unique name assigned to every data point in the Weihenstephan Standards. In technology based mapping the BrowseName in OPC UA stands for the WS BrowseName.

3.2.3 WS TagNumber

Unique number assigned to every data point in the Weihenstephan Standards

3.2.4 WS Protocol

The WS Protocol is a proprietary protocol based on TCP/IP and was developed by the WS Industry User Group. The WS Protocol is widely used and provides an alternative for the transmission of WS data to OPC UA.

3.3 Abbreviated terms

CSCompanion Specification
ERPEnterprise Resource Planning
HMIHuman Machine Interface
MESManufacturing Execution System
OEEOverall equipment effectiveness
WSWeihenstephan Standards

3.4 Conventions used in this document

3.4.1 Conventions for Node descriptions

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 with a HasTypeDefinition Reference to the corresponding Node.

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 illustrates the 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
AttributeValue
Attribute nameAttribute value. If it is an optional Attribute that is not set “--“ will be used.
ReferencesNodeClassBrowseNameDataTypeTypeDefinitionOther
ReferenceType name NodeClass of the TargetNode. 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
NameShort NameDescription
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.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 Annex A.

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 36 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 4 shall be set as specified in the table.

Table 4 – Common Node Attributes
AttributeValue
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 5 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 5 – Common Object Attributes
AttributeValue
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 6 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 6 – Common Variable Attributes
AttributeValue
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 7 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 7 – Common VariableType Attributes
AttributesValue
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 8 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 8 – Common Method Attributes
AttributesValue
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 to Weihenstephan Standards and OPC UA

4.1 Introduction the Weihenstephan Standards in general

One of the main challenges in the food and beverage as well as in the packaging industry is the production of high-quality products at acceptable market prices. To remain competitive, an effective IT assistance for their in-company processes is used in form of production management systems, so-called Manufacturing Execution Systems (MES). The MES is responsible for refining the production orders, which are roughly planned in the Enterprise Resource Planning (ERP) by assigning them to production lines and monitoring the order in production. The functions also include reporting efficiency parameters back to the ERP and optimizing production processes.

The strength of the Weihenstephan Standards is that they are practical and specifically adapted to a domain.

The Weihenstephan Standards are currently available for four different domains:

WS Pack for the packaging and bottling industry, published in 2005

WS Food for the food processing industry, published in 2010

WS Bake for the baking industry, published in 2015

WS Brew for the process area of breweries and beverage companies, published in 2019

4.1.1 Benefits of the Weihenstephan Standards

The advantages of the Weihenstephan Standards are that they greatly simplify the definition of MES functionalities and the data points required for them during the project planning phase. In the implementation phase, the time required can be greatly reduced by using WS tools, which leads to a considerable reduction in costs.

This is possible because the Weihenstephan Standards take on three tasks (see Figure 1):

exemplary definition of MES functionalities that are specifically tailored for a WS domain

definition of data points derived from the MES functions

definition of the communication protocol and information model between the data sources and the MES

Figure 1 – Communication via Weihenstephan Standards


On the way to Industry 4.0, the hierarchical structures of the automation pyramid are breaking down more and more. This is also reflected in the Weihenstephan Standards, the data points required for the MES functionalities are not only provided directly by machines. Instead, the data is already aggregated and made available by process control systems, for example. Figure 1 illustrates the structured communication between an MES and different communication partners in a heterogeneous system for the provision of data according to the Weihenstephan Standards.

4.1.2 Exemplary definition of MES functionalities and Industry 4.0

Within a WS domain, the processing of machine and process data is defined for various MES functions that are required in the respective domains. The standard shows how data points can be used to calculate parameters, track batches or create clear production reports.

The Weihenstephan Standards cover exemplary the following areas for MES functionalities:

Efficiency analysis

KPIs

Production control

Material management

Batch tracing

Quality control

In addition, WS DataPoints enable extensive visualization functions or continuous production monitoring, e.g. with regard to production efficiency and machine performance.

An example of such visualization is the quick comparison of production efficiency shown in Figure 2.

Figure 2 – Visualization of states and OEE with Weihenstephan Standards

4.1.3 WS DataPoints and WS Categories

Both the WS BrowseName and the WS TagNumber are unique for the identification of a data point. In OPC UA for Weihenstephan Standards the WS BrowseName is used for identification; in WS Protocol this is mainly the WS TagNumber. The prefix WS_ in the WS BrowseName indicates that it is a data point of the Weihenstephan Standards. Members of the WS Industrial User Group can add more data points to their machines with their own vendor-specific prefix. The assignment of the WS TagNumber is defined in the WS Protocol. The WS DisplayName of a WS DataPoint can be defined in different languages and serves as a short description for e.g. the labelling of fields in an HMI. The description of a data point contains the exact definition of this data point. The description can also be provided in different languages. The WS DisplayName and the description of a data point are available at least in English. Each data point is assigned to a category. The available categories are listed and described in Table 10. The Access permission property determines whether a data point can only be read or can also be written via the interface.

The data type of a WS DataPoint is defined depending on the interface used. See chapter 4.1.4.

WS DataPoints of all domains in the Weihenstephan Standards are structured according to the same scheme (Table 9).

Table 9 – Definition of a WS DataPoint
Property Description Example
WS BrowseNameThe WS BrowseName is used to uniquely identify a WS DataPoint. In OPC UA this corresponds to the Browse-Name.WS_Temp_Min
WS DisplayNameThe name is used to describe a WS DataPoint and can be displayed in different languages. In OPC UA this cor­responds to the display name.

EN: Minimum Temperature

DE: Minimale Temperatur

WS CategoryThe WS DataPoints are divided into different categories. An overview of the categories can be found in Table 10.Computed values
WS TagNumberThe WS TagNumber is mainly used to uniquely identify a WS DataPoint in WS Protocol. In WS OPC UA the WS TagNumber can be added to each WS DataPoint option­ally.2006
Access permissionAccess rights of a client to a WS DataPoint.Read only
DescriptionDefinition of the content of a WS DataPoint.

EN: This data point gives the minimum temperature value during an operation/procedure.

DE: Dieser Datenpunkt gibt die minimale Temperatur während einer Operation/Prozedur an.

Base quantity/engineering unitsInforms about the base quantity of the WS DataPoint and gives a recommendation for the engineering units used for this WS DataPoint. The recommendations follow the UNECE code or domain-specific recommendations.°C / °F or Packages / Minutes
WS OPC UA type definitionThe type definition that is used for a WS DataPoint in WS OPC UA.WSAnalogUnitType
WS OPC UA data typeThe data type that is used for a WS DataPoint in WS OPC UA.UInt32
WS Protocol data typeThe data type that is used for a WS DataPoint in WS Pro­tocol.Real
WS Protocol annotationIn the WS Protocol, information about a WS DataPoint can be added in the annotation. For example, the unit of a variable. WS OPC UA provides this information directly in the data type.The engineering unit must be indicated in the device description file
Table 10 – WS categories
CategoriesDescriptions
AlarmsData points in this category display alarm messages. In the Weihenstephan Standards it is assumed that the affected machine can no longer operate as usual and has been stopped. Only the first-up message is always displayed. This remains until a fault has been rectified.
Batch and article tracingThese WS DataPoints are used for tracking and tracing.
Computed valuesComputed values are measured values which have been pre-processed by an application-oriented function either on PLC or data acquisition level. For example, a data point reports either a minimum, maximum or mean value of a unit procedure, an operation or a specific timeframe. All data points shall have one engineering unit.
Counters

Counters are used to record quantities and sometimes also times (e.g. an operating hours counter). The counts become larger with time. Only looping (cycle) counters must be used.

The operating cycles of high maintenance components must be recorded for all machines. All data points shall have one engineering unit.

IdentificationThis category contains data points that describe a WS machine in more detail. These data points are general and defined in CS OPC UA for Machinery.
Machine communicationsThe WS DataPoints in this category are required for the WS Protocol communication interface and are not available for WS OPC UA.
Measured valuesIn the Weihenstephan Standard, measured values are understood as the data which are being collected at sensor level. These can be temperatures, pressures or the current speed of a conveyor belt, for example. All data points shall have one engineering unit.
Operating modesWS DataPoints in this category describe the operating modes and machine states of the respective machines or units or of individual modules of these.
Operating statesWS DataPoints in this category describe the operating states of the respective machines or units or of single modules of these.
ParametersIn the category Parameters data points are understood which are set externally via the communication interface. This can be for example the desired speed of a conveyor belt but also the type of beer currently being processed. All data points should have a engineering unit if possible.
ProgramsWS DataPoints in this category describe the programs of the respective machines or units or of individual modules of these.
WarningsData points in this category indicate warning messages. In the Weihenstephan Standards it is assumed that the machine concerned is no longer working in the target range but has not yet been stopped. The latest warning message will remain until this warning situation is resolved.

4.1.4 WS Communication interfaces

As a link between production and ERP (see Figure 1), an MES requires communication interfaces to the subordinate machines and the higher-level ERP. The communication with the ERP is usually done via standard mechanisms such as SQL or XML, while the connection down to the machines and process control systems is often complex and expensive. There are many different communication standards in automation systems, and the availability of data relevant to the MES varies greatly from machine to machine, requiring complex engineering to connect these different systems.

To meet the challenge of different communication standards in automation systems, the Weihenstephan Standards defines two universal communication interfaces for connecting different machine and process control systems to an MES:

WS Protocol

WS OPC UA

With “WS-Protocol - Physical Interface Specifications”, a specified WS communication interface for data exchange between higher-level IT systems was developed in 2005. It is based on Ethernet TCP/IP and provides proprietary communication commands that allow easy implementation independent of hardware, software and platform. For further information please refer to https://www.weihenstephan-standards.com/.

The present document CS OPC UA for Weihenstephan Standards now provides a second opportunity to ensure that the Weihenstephan Standards meets the requirements for communication in an Industry 4.0 environment.

4.1.5 WS Document structure

The Weihenstephan Standards consist of a number of individual documents. Each document considers a particular aspect of the WS. Figure 3 gives an overview of the individual document parts. Table 11 briefly describes the document parts.

Figure 3 – WS Document structure

The content of the separate document parts is described in detail in Table 11. The documents can be obtained from the website https://www.weihenstephan-standards.com.

Table 11 – Description of the WS document parts
WS document parts Descriptions
Implementation GuideThe implementation guide explains both the WS document structure and the workflow for creating a WS Server.
Data Evaluation and ReportingFor each WS Domain there is a separate Data Evaluation and Reporting document. This document describes exemplary MES functionalities.
WS ModelerThe WS Modeler is a modeling tool that covers the following aspects.

WS Templates

For each WS Domain there is a WS Template. A WS Template consists of three parts.

WS DataPoints

Definition of the WS DataPoints. In Table 9 the defined properties of a data point are described.

WS Machine / Unit Profiles

Definition of the WS Machine / Unit Profiles

Permutation tables

This table defines which WS DataPoints are mandatory or optional for a certain WS MachineProfile.
Modeling ToolThe modeling tool to create an information model for a WS MachineClass. The tool can export the information model for both WS OPC UA and WS Protocol.
CS OPC UA for WSThis Companion Specification for the Weihenstephan Standards.
WS OPC UA NodeSetA NodeSet file describes the information model of a specific machine for transmission with WS OPC UA.
WS ProtocolDescription of the proprietary communication standard WS Protocol.
WS PDA-ConfigA PDA-Config file describes the information model of a specific machine for transmission with WS Protocol.
WS Acceptance TestGuideline for the complete documentation of installation, commissioning and the events occurring during operation. This document provides recommendations for clarifying responsibilities and avoiding errors through correct operation.

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 Weihenstephan Standards, 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.

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

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

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

The Weihenstephan Standards were developed within an industrial working group lead by the TUM. The main Use Cases of the WS do not change with the mapping to OPC UA since they are determined by the data points definied within these standards. However, OPC UA will add benefits in realizing these Use Cases as stated in chapter 4.1.

Figure 9 shows the three aspects covered by the Weihenstephan Standards:

Exemplary definition of MES functionalities:

The WS define a variety of MES functionalities. Among other things, calculations of key figures for efficiency analyses, production control, but also functionalities for batch tracing and quality assurance are defined.

Definition of the data points:

From the defined MES functionalities it can be derived which machine profiles need which data points for the calculation of the MES functions. These data points are described in detail within the WS.

Specification of the communication interface:

The WS provides two communication interfaces for the transmission of data to the overlying MES: WS Protocol and WS OPC UA. The WS OPC UA communication interface is described in this document.

Figure 9 – WS connecting production and MES

The WS cover different domains within the field of Food Processing and Packaging Machinery through different specifications like WS Pack or WS Food. The data points are provided on the one hand by machine controllers (e.g. WS Pack) and on the other hand by the process control system (e.g. WS Brew). The deployment of the information model on a controller is possible with OPC UA, but can also be done on one of the supported platforms, e.g. as a Windows server within an IPC. As usual with an OPC UA Companion Specification, the deployment is not predetermined.

6 Weihenstephan Standards Information Model

6.1 Overview of the Weihenstephan Standards Information Model

The Weihenstephan Standard Information Model is used to describe the instance of a machine profile within a WS domain. Currently over 150 different machine profiles are defined across all WS domains.

To reduce the complexity resulting from the many machine profiles, this CS describes a generic metamodel for all WS machine profiles. This metamodel is based on the CS OPC UA for Maschinery and PackML (Compare Figure 10).

Which WS machine profile finally contains which WS DataPoints and there definition is defined in the WS Templates which are not part of this specification and are provided by https://weihenstephan-standards.com. Thus, the Weihenstephan Standards can be applied to other domains in the future, without changing the underlying meta model. Modelling tools such as the WS Modeler support the creation of WS Information Models that are based on the instances of concrete machines.

Figure 10 – Layered model for WS OPC UA

The entry point is an instance of the WSMachineType, which are organized in the Machines folder specified in the CS OPC UA for Machinery in the server instance.

Within the WSMachineType object, information about three areas of a WS machine are provided:

Information about the used WS MachineClass, WS version, WS vendor version, and WS project version

General information about the machine itself, such as manufacturer, serial number, etc. This information is integrated as an AddIn object of CS OPC UA for Machinery.

The actual data points of the Weihenstephan Standards. The WS DataPoints are also included in the information model based on their assignment to categories.

6.2 Deeper understanding of the WS Templates

As this companion specification only defines the framework, further information are required to create an instance of a WS-compliant machine. These required information are contained in the WS Templates (see Figure 10).

A WS Template contains three domain-specific aspects: The definition of the WS DataPoints (see Table 9), the definition of the machine profiless and the permutation table between the data points and the machine profiles (see Table 12).

A general mapping of the WS Protocol data types to the OPC UA type definition as well as of the OPC UA data types in WS OPC UA is not possible. This is due to the fact that the Weihenstephan Standards with OPC UA have more possibilities to model the information model compared to the already established WS Protocol.

The WS Templates are included in the WS Modeler, a Excel-based modelling tool. The WS Modeler can also be used for creation of NodeSets for the different machine profiles. It can be ordered via the website of the Weihenstephan Standards (https://www.weihenstephan-standards.com).

6.3 Used Types for WS DataPoints and general mapping to WS Protocol data types

Usually, WS DataPoints in the catgeories “measured values“ or “counter” are of the type definition WSAnalogUnitType (see chapter 8.1) and are either of the DataType Float or UInt32. The ObjectType WSBaseStateMachineType (see 7.5) is used in the category OperatingStates. Some WS DataPoints in the categories “Alarms” or “Warnings” are instances of the ObjectTypes WSAlarmType (see 7.3) or WSWarningType (see 7.4). The DataType WSOperatingModeEnumerationType (see 9.1) is used for WS DataPoints in the OperatingModes category, the WSProgramEnumerationType (see 9.2) is used for WS DataPoints in the Programs category, respectively. Members of the WS Industrial User Group can define additional vendor-specific data points and machine profiles in addition to the WS DataPoints and integrate them into the WS information model.

A general mapping from WS Protocol data types to WS OPC UA TypeDefinition and DataTypes are listed in Table 13.

Table 13 – General mapping from WS Protocol data types to WS OPC UA TypeDefinition and DataTypes
WS Category WS OPC UA TypeDefinition WS OPC UA DataType WS Protocol data type
AlarmsWSAlarmTypeUNSIGNED32
Batch and article tracingWSBaseDataVariableTypeStringSTRING16
Batch and article tracingWSAnalogUnitTypeUInt32UNSIGNED32
Batch and article tracingWSAnalogUnitTypeFloatREAL
CountersWSAnalogUnitTypeUInt32UNSIGNED32
CountersWSBaseDataVariableTypeNumberArbitrary
Measured valuesWSAnalogUnitTypeFloatREAL
Operating modesWSBaseDataVariableTypeWSOperatingStateEnumerationTypeHEX32 or UNSIGNED32
Operating statesWSBaseStateMachineTypeHEX32 or UNSIGNED32
ParametersWSBaseDataVariableTypeLocalizedTextUNSIGNED32
ParametersWSBaseDataVariableTypeUInt32UNSIGNED32
ParametersWSAnalogUnitTypeFloatREAL
ParametersWSBaseDataVariableTypeStringSTRING16
ParametersWSAnalogUnitTypeUInt32UNSIGNED32
ProgramsWSBaseDataVariableTypeWSProgramEnumerationTypeHEX32 or UNSIGNED32
ProgramsWSBaseDataVariableTypeLocalizedTextUNSIGNED32
WarningsWSWarningTypeUNSIGNED32

6.4 Namespaces for WS and vendor-specific data points

WS DataPoints are clearly distinguished from vendor- or project-specific data points by their prefixes in the WS BrowseName. For example, all WS DataPoints have the prefix “WS_”. This differentiation option is to be supplemented in OPC UA by the introduction of namespaces. For this purpose, all BrowseNames of WS DataPoints will be located in the namespace http://weihenstephan-standards.com/WS/. An example for the BrowseName of a WS DataPoint is “5:WS_Tot_Packages”. Vendor-specific data points will get their own namespace following the pattern of the WS namespace.

At this point it should be noted that a WS datapoint is usually associated with three namespaces. Table 14 shows the dependency to the required namespaces for the WS datapoint WS_Tot_Packages.

Table 14 – Dependencies to the required namespaces using the example of the WS DataPoint WS_Tot_Packages
Node property Example NamespaceURI
NodeIdns=6;i=5003http://tum.de/
BrowseName5:WS_Tot_Packageshttp://weihenstephan-standards.com/WS/
HasTypeDefinition1:WSAnalogUnitTypehttp://opcfoundation.org/UA/Weihenstephan

7 OPC UA ObjectTypes

7.1 WSMachineType ObjectType Definition

The WSMachineType ObjectType Definition provides the structure of a Weihenstephan Standard machine and is formally defined in Table 15. Instances of this type are to be organized in the Machines folder as specified in the CS for Machinery.

Table 15 – WSMachineType ObjectType Definiton
Attribute Value
BrowseNameWSMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5
0:HasComponentObjectAlarms2:FunctionalGroupTypeO
0:HasComponentObjectBatchAndArticleTracing2:FunctionalGroupTypeO
0:HasComponentObjectComputedValues2:FunctionalGroupTypeO
0:HasComponentObjectCounters2:FunctionalGroupTypeO
0:HasAddInObject2:Identification3:MachineIdentificationTypeM
0:HasComponentObjectMeasuredValues2:FunctionalGroupTypeO
0:HasComponentObjectOperatingModes2:FunctionalGroupTypeO
0:HasComponentObjectOperatingStates2:FunctionalGroupTypeO
0:HasComponentObjectParameters2:FunctionalGroupTypeO
0:HasComponentObjectPrograms2:FunctionalGroupTypeO
0:HasComponentObjectWarnings2:FunctionalGroupTypeO
0:HasPropertyVariableWSMachineProfileStringPropertyTypeM
0:HasPropertyVariableWSVersionStringPropertyTypeM
0:HasPropertyVariableWSVersionProjectStringPropertyTypeO
0:HasPropertyVariableWSVersionVendorStringPropertyTypeO

All components of the type FunctionalGroupType represent categories for WS DataPoints. A description of the individual WS Categories can be found in Table 10.

The Identification-AddIn contains information about the identification and nameplate of a machine.

WSMachineProfile provides the machine profile according to the respective domains of the Weihenstephan Standards.

WSVersion provides the WS Domain and version number of the WS interface.

WSVersionProject provides the project and version number of the project-specific library.

WSVersionVendor provides the vendor and version number of the vendor-specific library.

Figure 11 – WSMachineType

7.2 WSBaseObjectType Definition

The WSBaseObjectType is formally defined in Table 16. This data type is required for compatibility with WS Protocol, where the WS TagNumber is usually used to identify a WS DataPoint. In OPC UA the WS BrowseName shall be used as BrowseName for identification. Thus the WSTagNumber property is optional.

Table 16 – WSBaseObjectType Definiton
Attribute Value
BrowseNameWSBaseObjectType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5
0:HasPropertyVariableWSTagNumberUInt160:PropertyTypeO
Figure 12 – WSBaseObjectType

7.3 WSAlarmType ObjectType Definition

The WSAlarmType provides two variables to inform about the current alarm and is formally defined in Table 17.

The WSAlarmCode can be used to pass an integer to the client and map it to a language-specific message. WSAlarmMessage contains the message as localizedText.

For the future it is planned to use OPC UA functionalities like Alarms and Conditions for this data point. As soon as this is available in the Weihenstephan Standards, this object definition will be obsolete.

Table 17 – WSAlarmType Definiton
Attribute Value
BrowseNameWSAlarmType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the WSBaseObjectType
0:HasComponentVariableWSAlarmCodeUInt32BaseDataVariableTypeM
0:HasComponentVariableWSAlarmMessageLocalizedTextBaseDataVariableTypeO

WSAlarmCode shall be used to pass an integer to the client and map it to a language-specific message. If there ist no alarm, the value of the WSAlarmCode variable is set to 0.

WSAlarmMessage contains the message as localizedText. If there is no alarm, the value of the WSAlarmMessage variable is empty (empty string).

Figure 13 – WSAlarmType

7.4 WSWarningType ObjectType Definition

The WSWarningType provides two variables to inform about the current warning and is formally defined in Table 18.

For the future it is planned to use OPC UA functionalities like Alarms and Conditions for this data point. As soon as this is available in the Weihenstephan Standards, this object definition will be obsolete.

Table 18 – WSWarningType Definiton
Attribute Value
BrowseNameWSWarningType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the WSBaseObjectType
0:HasComponentVariableWSWarningCodeUInt32BaseDataVariableTypeM
0:HasComponentVariableWSWarningMessageLocalizedTextBaseDataVariableTypeO

WSWarningCode shall be used to pass an integer to the client and map it to a language-specific message. If there ist no alarm, the value of the WSWarningCode variable is set to 0.

WSWarningMessage contains the message as localizedText. If there is no alarm, the value of the WSWarningMessage variable is empty (empty string).

Figure 14 – WSWarningType

7.5 WSBaseStateMachineType ObjectType Definition

The WSBaseStateMachineType provides the available states according to the PackML states and is formally defined in Table 19. The WS DataPoint WS_Cur_State has the type definition WSBaseStateMachineType and is defined as follows: This machine can be in different operating states. These states and the corresponding transitions are described in this WS DataPoint.

This ObjectType is required for compatibility with WS Protocol, where the WS TagNumber is usually used to identify a WS DataPoint. In OPC UA the WS BrowseName shall be used as BrowseName for identification. Thus the WSTagNumber property is optional.

Table 19 – WSBaseStateMachineType Definiton
Attribute Value
BrowseNameWSBaseStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 4:PackMLBaseStateMachineType defined in OPC 30050
0:HasPropertyVariableWSTagNumberUInt160:PropertyTypeO
Figure 15 – WSBaseStateMachineType as SubType of PackMLBaseStateMachineType

7.6 WSExecuteStateMachineType ObjectType Definition

The WSExecuteStateMachineType provides all of the base states defined in PackML and extends them by the WS-specific states HeldState and SuspendedState and is formally defined in Table 20.

Table 20 – WSExecuteStateMachineType Definiton
Attribute Value
BrowseNameWSExecuteStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 4:PackMLExecuteStateMachineType defined in OPC 30050
0:HasComponentObjectHeldStateWSHeldStateMachineTypeM
0:HasComponentObjectSuspendedStateWSSuspendedStateMachineTypeM

HeldState: The State is a substate of Held and is defined in 7.7.

SuspendedState: The State is a substate of Suspended and is defined in 7.8.

Figure 16 – WSExcecuteStateMachineType as SubType of PackMLExecuteStateMachineType

7.7 WSHeldStateMachineType Definition

The WSHeldStateMachineType provides the WS-specific substates of the PackML state Held and is formally defined in Table 21.

Table 21 – WSHeldStateMachineType Definiton
Attribute Value
BrowseNameWSHeldStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:FiniteStateMachineType defined in OPC 10000-5
0:HasComponentObjectEquipmentFailureStateTypeM
0:HasComponentObjectExternalFailureStateTypeM

EquipmentFailure: Failure, which occurs in the unit/machine itself and leads to a unit/machine stop.

ExternalFailure: A failure which is not attributable to the unit/machine but which nonetheless leads to a unit/machine stop.

Figure 17 – WSHeldStateMachineType

7.8 WSSuspendedStateMachineType Definition

The WSSuspendedStateMachineType provides the WS-specific substates of the PackML state Suspended and is formally defined in Table 22.

Table 22 – WSSuspendedStateMachineType Definiton
Attribute Value
BrowseNameWSSuspendedStateMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:FiniteStateMachineType defined in OPC 10000-5
0:HasComponentObjectLack0:StateTypeM
0:HasComponentObjectLackBranchLine0:StateTypeM
0:HasComponentObjectPrepared0:StateTypeM
0:HasComponentObjectTailback0:StateTypeM
0:HasComponentObjectTailbackBranchLine0:StateTypeM

Lack: The unit/machine shall not produce product in this state due to a lack detected in the inlet of the machine.

LackBranchLine: The unit/machine shall not produce product in this state due to a lack detected in the branch line inlet of the unit/machine.

Prepared: The unit/machine is ready to carry out its intended function. However, it is in a waiting state which was not recognized as a lack or tailback state and can automatically start again.

Tailback: The unit/machine shall not produce product in this state due to a tailback detected in the inlet of the machine.

TailbackBranchLine: The unit/machine shall not produce product in this state due to a tailback detected in the branch line inlet of the unit/machine.

Figure 18 – WSSuspendedStateMachineType

8 OPC UA VariableTypes

8.1 WSAnalogUnitType VariableType Definition

The WSAnalogUnitType is a subtype of the AnalogUnitType. It is used if the engineering unit can be transferred in addition to the value. As an example, the WS DataPoints from the measured values category can be mentioned. If an engineering unit is not defined in UNECE Recommendations N°. 20, the values in the EUInformation DataType must be filled in. See OPC 10000-8. The WSAnalogUnitType is required for compatibility with the WS Protocol, where the WS TagNumber is usually used to identify a WS DataPoint. In OPC UA the WS BrowseName shall be used as BrowseName for identification. Therefore the WSTagNumber property is optional.

It is formally defined in Table 23.

Table 23 – WSAnalogUnitType Definiton
Attribute Value
BrowseNameWSAnalogUnitType
IsAbstractFalse
ValueRank-1 (-1 = Scalar)
DataTypeBaseDataType
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the AnalogUnitType defined in OPC 10000-8
0:HasPropertyVariableWSTagNumberUInt160:PropertyTypeO
Figure 19 – WSAnalogUnitType as Subtype of AnalogUnitType

9 OPC UA DataTypes

9.1 WSOperatingModeEnumerationType

This enumeration WSOperationModeEnumerationType combines machine states and operating modes of a machine. Thus, in the Weihenstephan Standards, the machine state Off is understood as an operation mode. The operating modes automatic, semi-automatic and manual are defined according to DIN IEC 60050-351. The enumeration is defined in Table 24.

The WS DataPoint WS_Cur_Mode uses the WSOperatingModeEnumerationType as data type and is defined as follows: The operating mode provides information about the way and extent of the intervention on the control equipment by the human operator. In the Weihenstephan Standards, the machine state Off is understood as an operating mode in addition to automatic, semi-automatic and manual.

Table 24 – WSOperatingModeEnumerationType Items
Name Value Description
Off1The machine is in machine state Off.
Manual2All functions of the control system are performed by humans. In connection with the Weihenstephan Standards, the step-setting mode and tipping mode are also included.
Semi-automatic4Only some of the functions of the control system are executed without human intervention. In the context of the Weihenstephan Standards, this term means that the machines of a production plant are not integrated into a control concept for the entire system and the set output is manually controlled on site.
Automatic8All functions of the control system are executed without human intervention. In the context of the Weihenstephan Standards, this term means that the machines of a production plant are integrated into a control concept for the entire plant and the set output is automatically regulated.

Its representation in the AddressSpace is defined in Table 25.

Table 25 – WSOperatingModeEnumerationType Definiton
Attribute Value
BrowseNameWSOperatingModeEnumerationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the Enumeration type defined in OPC 10000-5
0:HasPropertyVariable0:EnumValues0: EnumValueType[]

9.2 WSProgramEnumerationType

This enumeration WSProgramEnumerationType defines programs according to the Weihenstephan Standards. The WS DataPoint WS_Cur_Prog uses the WSProgramEnumerationType as data type and is defined as follows: Machine programs according to the Weihenstephan Standards.

The enumeration is defined in Table 26.

Table 26 – WSProgramEnumerationType Items
Name Value Description
Undefined (No Program)0The machine is switched on, but no program for a special application function has been selected yet or this machine is not needed.
Production1The machine functioning according to its specification.
Start Up2The machine is in the production start-up phase. This includes for example heating up or waiting for products.
Run Down4The machine is at the end of production and runs the machine empty.
Clean8A cleaning program is executed in the machine.
Changeover16The machine is changed over manually or automatically for the next product depending on parameters.
Maintenance32Maintenance and service work is performed on the machine.
Break64The machine is in a planned break.

Its representation in the AddressSpace is defined in Table 27.

Table 27 – WSProgramEnumerationType Definiton
Attribute Value
BrowseNameWSProgramEnumerationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the Enumeration type defined in OPC 10000-5
0:HasPropertyVariable0:EnumValues0: EnumValueType[]

10 Profiles and ConformanceUnits

10.1 Conformance Units

This chapter defines the corresponding Conformance Units for the OPC UA Information Model for OPC UA for Weihenstephan Standards.

Table 28 – Conformance Units for OPC UA for Weihenstephan Standards
Category Title Description
ServerWeihenstephan WS MachineSupports the base functionality defined in OPC UA for Weihenstephan Standards Information Model. This includes all mandatory properties, the Object Identification and at least one of the optional FunctionalGroups.
ServerWeihenstephan Writable WS DataPointsSupports write access to all variables of the WS DataPoints, which are defined as writing according to the Weihenstephan Standards.
ServerWeihenstephan WSBaseObjectTypeThe server supports the WS BaseObjectType.
ServerWeihenstephan WSBaseStateMachineTypeThe server supports the BaseStateMachine. This include the list of AvailableStates and AvailableTransitions. It also includes all mandatory states and the mandatory sub-statemachines. The methods which are defined in PackML (See OPC 30050) do not have to be offered.
ServerWeihenstephan WSAnalogUnitTypeThe server supports the WSAnalogUnitType.
ServerWeihenstephan Engineering UnitsFor each data point of the instance WSAnalogUnitType an engineering unit is defined. If an engineering unit is not defined in UNECE Recommendations N° 20, the values in the EUInformation DataType must be filled in. See OPC 10000-8.
ServerWeihenstephan Corresponding WS TagNumbersIf the WSTagNumber is used in one of the following datatypes it must be ensured that the value is empty or belongs to the corresponding WS DataPoint: WSBaseObjectType, WSBaseStateMachineType and WSAnalogUnitType. Initial values like 0 are invalid values, MaxUInt16 (65535) might be a valid value.
ServerWeihenstephan WSAlarmTypeSupports the base WSAlarm type, and the mandatory component of the type.
ServerWeihenstephan WSAlarmCodeThe WSAlarmCode is of type Integer and is exchanged between server and client. The mapping of the WSAlarmCode to the corresponding error message is done on the client side. The mapping table is exchanged outside the Weihenstephan Standards. Ensure that a WSAlarmCode is mapped to the correct error message on both server and client side.
ClientWeihenstephan WSAlarmCodeThe WSAlarmCode is of type Integer and is exchanged between server and client. The mapping of the WSAlarmCode to the corresponding error message is done on the client side. The mapping table is exchanged outside the Weihenstephan Standards. Ensure that a WSAlarmCode is mapped to the correct error message on both server and client side.
ServerWeihenstephan WSAlarmMessageThe optional component WSAlarmMessage sends the error message directly to the client as localizedText. The descriptions of the alarm message from WSAlarmMessage and the mapped message from WSAlarmCode are identical.
ClientWeihenstephan WSAlarmMessageThe optional component WSAlarmMessage sends the error message directly to the client as localizedText. The descriptions of the alarm message from WSAlarmMessage and the mapped message from WSAlarmCode are identical.
ServerWeihenstephan WSWarningTypeSupports the WSWarning type, and the mandatory component of the type.
ServerWeihenstephan WSWarningCodeThe WSWarningCode is of type Integer and is exchanged between server and client. The mapping of the WSWarningCode to the corresponding warning message is done on the client side. The mapping table is exchanged outside the Weihenstephan Standards. Ensure that a WSWarningCode is mapped to the correct warning message on both server and client side.
ClientWeihenstephan WSWarningCodeThe WSWarningCode is of type Integer and is exchanged between server and client. The mapping of the WSWarningCode to the corresponding warning message is done on the client side. The mapping table is exchanged outside the Weihenstephan Standards. Ensure that a WSWarningCode is mapped to the correct warning message on both server and client side.
ServerWeihenstephan WSWarningMessageThe optional component WSWarningMessage sends the warning message directly to the client as localizedText. The descriptions of the warning message from WSWarningMessage and the mapped message from WSWarningCode are identical.
ClientWeihenstephan WSWarningMessageThe optional component WSWarningMessage sends the warning message directly to the client as localizedText. The descriptions of the warning message from WSWarningMessage and the mapped message from WSWarningCode are identical.
ServerWeihenstephan WSExecuteStateMachineTypeThe server supports the ExecuteStateMachine. This include the list of AvailableStates and AvailableTransitions. It also includes all mandatory states. The certification will include a list of all states and transitions supported by the StateMachine. This include the mandatory Sub-statemachines. All methods defined in the 4: PackMLExecuteStateMachineType (See OPC 30050) are not needed in this companien specification.
ServerWeihenstephan WSHeldStateMachineTypeThe server supports the HeldStateMachine. This include the list of AvailableStates and AvailableTransitions. It also includes all mandatory states. The certification will include a list of all states and transitions supported by the StateMachine
ServerWeihenstephan WSSuspendedStateMachineTypeThe server supports the SuspendedStateMachine. This include the list of AvailableStates and AvailableTransitions. It also includes all mandatory states. The certification will include a list of all states and transitions supported by the StateMachine.

10.2 Profiles

10.2.1 Profile list

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

Table 29 – Profile URIs forOPC UA for Weihenstephan Standards
Profile URI
Weihenstephan Base Functionality Server Profilehttp://opcfoundation.org/UA-Profile/Weihenstephan/Server/BaseFunctionality
Weihenstephan Base Functionality Client Profilehttp://opcfoundation.org/UA-Profile/Weihenstephan/Client/BaseFunctionality
Weihenstephan Base Functionality Server Facethttp://opcfoundation.org/UA-Profile/Weihenstephan/Server/BaseFunctionalityFacet
Weihenstephan Base Functionality Client Facethttp://opcfoundation.org/UA-Profile/Weihenstephan/Client/BaseFunctionalityFacet

10.2.2 Server Facets

10.2.2.1 Overview

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

10.2.2.2 Weihenstephan Base Functionality Server Profile

Table 30 Table defines a profile that all OPC servers should support in order to meet the minimum requirements of the Weihenstephan Standards according to the present companion specification.

Table 30 – Weihenstephan Base Functionality Server Profile
Group Conformance Unit / Profile Title Mandatory / Optional
Profile

0:Embedded 2017 UA Server Profile

http://opcfoundation.org/UA-Profile/Server/EmbeddedUA2017

Profile0:Data Access Server Facet
http://opcfoundation.org/UA-Profile/Server/DataAccess
ProfileWeihenstephan Base Functionality Server Facet
10.2.2.3 Weihenstephan Base Functionality Server Facet

Table 31 defines a Facet that all OPC servers should support in order to meet the minimum requirements of the Weihenstephan Standards according to the present companion specification.

Table 31 – Weihenstephan Base Functionality Server Facet
Group Conformance Unit / Profile Title Mandatory / Optional
WeihenstephanWeihenstephan WS MachineM
WeihenstephanWeihenstephan Writable WS DataPointsM
WeihenstephanWeihenstephan WSBaseObjectTypeM
WeihenstephanWeihenstephan WSBaseStateMachineTypeM
WeihenstephanWeihenstephan WSAnalogUnitTypeM
WeihenstephanWeihenstephan Engineering UntisM
WeihenstephanWeihenstephan Corresponding WS TagNumbersM
WeihenstephanWeihenstephan WSAlarmTypeM
WeihenstephanWeihenstephan WSAlarmCodeM
WeihenstephanWeihenstephan WSAlarmMessageM
WeihenstephanWeihenstephan WSWarningTypeM
WeihenstephanWeihenstephan WSWarningCodeM
WeihenstephanWeihenstephan WSWarningMessageM
WeihenstephanWeihenstephan WSExecuteStateMachineTypeM
WeihenstephanWeihenstephan WSHeldStateMachineTypeM
WeihenstephanWeihenstephan WSSuspendedStateMachineTypeM
Machinery3:Machinery Machine IdentificationM
Machinery3:Machinery Find MachinesM

10.2.3 Client Facets

10.2.3.1 Overview

The following sections specify the Facets available for Clients that implement the OPC UA for Weihenstephan Standards companion specification. Each section defines and describes a Facet or Profile.

10.2.3.2 Weihenstephan Base Functionality Client Profile

Table 30 defines a profile that all OPC client should support in order to meet the minimum requirements of the Weihenstephan Standards according to the present companion specification.

Table 32 – Weihenstephan Base Functionality Client Profile
Group Conformance Unit / Profile Title Mandatory / Optional
Profile

0:Core 2017 Client Facet

http://opcfoundation.org/UA-Profile/Client/Core2017

Profile

0:AddressSpace Lookup Client Facet

http://opcfoundation.org/UA-Profile/Client/AddressSpaceLookup

Profile

0:DataAccess Client Facet

http://opcfoundation.org/UA-Profile/Client/DataAccess

Data Access0:Data Access Client AnalogUnitTypeM
Profile

0:DataChange Subscriber Client Facet

http://opcfoundation.org/UA-Profile/Client/DataChangeSubscriber

ProfileWeihenstephan Base Functionality Client Facet
10.2.3.3 Weihenstephan Base Functionality Client Facet

Table 31 defines a Facet that all OPC servers should support in order to meet the minimum requirements of the Weihenstephan Standards according to the present companion specification.

Table 33 – Weihenstephan Base Functionality Client Facet
Group Conformance Unit / Profile Title Mandatory / Optional
WeihenstephanWeihenstephan WSAlarmCodeM
WeihenstephanWeihenstephan WSAlarmMessageM
WeihenstephanWeihenstephan WSWarningCodeM
WeihenstephanWeihenstephan WSWarningMessageM

11 Namespaces

11.1 Namespace Metadata

Table 34 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 34 – NamespaceMetadata Object for this Document
Attribute Value
BrowseNamehttp://opcfoundation.org/UA/Weihenstephan/
Property DataType Value
NamespaceUriStringhttp://opcfoundation.org/UA/Weihenstephan/
NamespaceVersionString1.00.0
NamespacePublicationDateDateTime2021-07-12
IsNamespaceSubsetBooleanFalse
StaticNodeIdTypesIdType []0
StaticNumericNodeIdRangeNumericRange []
StaticStringNodeIdPatternString

11.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 35 provides a list of mandatory and optional namespaces used in an Weihenstephan Standards OPC UA Server.

Table 35 – Namespaces used in a OPC UA for Weihenstephan Standards Server
NamespaceURIDescriptionUse
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 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 OPC 40001-1. The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/PackML/Namespace for NodeIds and BrowseNames defined in OPC 30050. The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Weihenstephan/Namespace for NodeIds and BrowseNames defined in this document. The namespace index is Server specific.Mandatory
http://weihenstephan-standards.com/WS/Namespace for BrowseNames of the WS DataPoints.Mandatory
http://weihenstephan-standards.com/<Vendor-Name>/Namespace for BrowseNames of the vendor-specific data points.Optional
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 36 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 36 – Namespaces used in this document
NamespaceURINamespace IndexExample
http://opcfoundation.org/UA/00:EngineeringUnits
http://opcfoundation.org/UA/DI/22:DeviceRevision
http://opcfoundation.org/UA/Machinery/33:MachineIdentificationType
http://opcfoundation.org/UA/PackML/44:PackMLBaseStateMachineType
http://weihenstephan-standards.com/WS/55:WS_Cur_State

12 (normative) OPC UA for Weihenstephan Standards Namespace and mappings

Namespace and identifiers for OPC UA for Weihenstephan Standards Information Model

This appendix defines the numeric identifiers for all of the numeric NodeIds defined in this specification. The identifiers are specified in a CSV file with the following syntax:

<SymbolName>, <Identifier>, <NodeClass>

Where the SymbolName is either the BrowseName of a Type Node or the BrowsePath for an Instance Node that appears in the specification and the Identifier is the numeric value for the NodeId.

The BrowsePath for an Instance Node is constructed by appending the BrowseName of the instance Node to the BrowseName for the containing instance or type. An underscore character is used to separate each BrowseName in the path. Let’s take for example, the WSMachineType ObjectType Node which has the WSVersion Property. The Name for the WSVersion InstanceDeclaration within the WSMachineType declaration is: WSMachineTyp_WSVersion.

The NamespaceUri for all NodeIds defined here is http://opcfoundation.org/UA/Weihenstephan/

The CSV released with this version of the specification can be found here:

http://www.opcfoundation.org/UA/schemas/Weihenstephan/1.0/NodeIds.csv

NOTE    The latest CSV that is compatible with this version of the specification can be found here:

http://www.opcfoundation.org/UA/schemas/Weihenstephan/NodeIds.csv

A computer processible version of the complete Information Model defined in this specification is also provided. It follows the XML Information Model schema syntax defined in OPC 10000-6.

The Information Model Schema for this version of the document (including any revisions, amendments or errata) can be found here:

http://www.opcfoundation.org/UA/schemas/Weihenstephan/1.0/Opc.Ua.Weihenstephan.NodeSet2.xml

NOTE    The latest Information Model schema that is compatible with this version of the specification can be found here:

http://www.opcfoundation.org/UA/schemas/short name>/Opc.Ua.Weihenstephan.NodeSet2.xml

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.