1 Scope

This document defines the OPC UA OPEN-SCS companion specification. OPEN-SCS is a set of interface specifications for exchanging product serialization information across an enterprise and their contract partners from the packaging process to the distribution warehouse. The interface specifications are called the OPEN-SCS Packaging Serialization Specification (PSS).

The PSS defines an abstract information model and transaction model, which can be implemented in multiple specific technologies, such as OPC UA, XML and Web services. This standard is the OPC UA technology implementation of the Open Serialization Communication Standard (OPEN-SCS) Packaging Serialization Specification (PSS).

2 Normative References

The following referenced documents are indispensable for the application of this standard. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

OPEN-SCS Packaging Serialization Specification (PSS) 1.0

https://www.open-scs.org/

OPC 10000-1, OPC UA Specification: Part 1 – Overview and Concepts

OPC 10000-3, OPC Unified Architecture - Part 3: Address Space Model
OPC 10000-4, OPC Unified Architecture - Part 4: Services
OPC 10000-5, OPC Unified Architecture - Part 5: Information Model
OPC 10000-6, OPC Unified Architecture - Part 6: Mappings
OPC 10000-7, OPC Unified Architecture - Part 7: Profiles

3 Terms, definitions and conventions

3.1 Overview

It is assumed that basic concepts of OPC UA information modelling are understood in this specification. This specification will use these concepts to describe the OPEN-SCS object models. The concepts and terms used to describe the OPC UA Information models are defined in other parts and listed in the following sections. Note that OPC UA terms and terms defined in this standard are italicized in the specification.

For the purposes of this document, the terms and definitions given in OPC 10000-1 and OPC 10000-3 as well as the following apply.

3.2 OPC UA for OpenSCS Terms

3.2.1 Aggregation

A collection of serialized child objects (such as bottles or cases) in a serialized parent object (such as a case, container, or pallet)

3.2.2 Commissioned Label

A printed label that is associated with a specific product or package.

3.2.3 Information Provider

An application or system which responds to a request for a service or information from an Information Requester or provides information to an Information Receiver. In this OPC UA implementation the Information Provider is an OPC UA Server.

3.2.4 Information Receiver

An application or system which receives information from an Information Provider and may provide an acknowledgement. In this OPC UA implementation the Information Provider is an OPC UA Server.

3.2.5 Information Requestor

An application or system which requests a service or information and receives responses from an Information Provider. In this OPC UA implementation the Information Requestor is an OPC UA client.

3.2.6 Printed Label

A serial number on a human and machine-readable label that is not yet associated with a specific package or aggregation.

3.2.7 Serial Number

A string of characters with a defined syntax used for purposes of establishing uniqueness between otherwise identical objects. Serial numbers may be numeric, alphanumeric and contain symbols.

3.2.8 Serialized Identifier

A unique identifier (serial number) comprising of a string of characters within a defined format that is associated with a physical object such that no two physical objects are associated with the same string of characters. Abbreviated as SID, this could be an EPC according to the GS1 standard.

3.3 Abbreviations and symbols

DAData Access
EPCElectronic Product Code
ACAlarm and Condition
HAHistorical access
PLCProgrammable Logic Controllers
DCSDistributed Control Systems
OCSOpen Control Systems

3.4 OPC UA Notation

This standard uses the ModellingRules OptionalPlaceholder and MandatoryPlaceholder to define instance declarations, and defines a rule that the BrowseName of instance declarations having an OptionalPlaceholder or MandatoryPlaceholder ModellingRule be enclosed in angle brackets (<>). Originally, this rule is defined in OPC 10000-3 as a recommendation. This naming rule is also used in the description of a table. The BrowseName of a Node that has OptionalPlaceholder or MandatoryPlaceholder ModellingRule are described with angle brackets, which denotes that the name is not fixed. For example, BrowseName of Property is described as <PropertyName> in graphical notation and tables results in a Property that can have any name.

4 Concept

4.1 OPEN-SCS Overview

For OPC UA users that may not be familiar with OPEN-SCS the following section provides a brief overview of key elements of serialization. See the OPEN-SCS Packaging Serialization Specification (PSS) 1.0 documentation for a full description of a serialization management system.

4.1.1 Serial Number Lifecycle

This document defines the serialization management OPC UA interfaces to support global regulation reporting requirements and the packaging serialization management process from the enterprise serialization manager to the packaging lines for serialized products.

Healthcare supply chain systems are being deployed to meet the product serialization and track-and-trace country regulations and laws to address the widespread healthcare counterfeiting issues. The regulations and laws require healthcare manufacturers to apply unique serialized identifiers to individual instances of physical objects for supply chain serialization and track-and-trace purposes.

Unique serialized identifiers may be generated within a company, may be obtained from regulatory authorities, or may be obtained by contract manufacturers from product owning company, depending on the regulations or laws that apply to the product and the intended market.

The key concepts of OPEN-SCS PSS are Serial Numbers, Serial Number Collections, Label Collections and Serialized Identifiers.

A Serial Number is a string of characters with a defined syntax used for purposes of establishing uniqueness between otherwise identical objects.

A Serial Number Collection is a collection of Serial Numbers which have not yet been printed onto a label. Serial Number Collections are defined to provide for efficient exchange of collections of Serial Numbers.

A Label Collection is a collection of Serial Numbers with the same state and associated information needed for the label such as lot numbers, expiration dates and manufactured dates. Label Collections are defined to provide for efficient exchange of collections of Serial Numbers with the associated other information needed for the label.

A Serialized Identifier is a unique identifier (serial number) comprising of a string of characters within a defined format that is associated with a physical object such that no two physical objects are associated with the same string of characters. Abbreviated as SID. An example of an SID is an Electronic Product Code (EPC) that is a unique identifier attached to a class of product or aggregation such a pallet, with the addition of a unique serial number for each product or aggregation.

The general lifecycle of a Serial Number is from unassigned, to associated with a production run, to representation on printed label, to a commissioned label, as shown in Figure 1. When the serial number is printed it is combined with other information required on the label, for example: product code, lot number, expiration date, etc. Figure 1 illustrates the stages of Serial Numbers:

An unassigned Serial Number, where the number has not been assigned to any specific product, production order, or packaging run.

A provisioned Serial Number containing the serial number in a digital form that has been associated to a specific product, package type, production order, or packaging run.

The Serial Number as it is printed on a label and combined with other label information, but not yet applied to the physical product, called a printed label.

The printed label as it is applied to the physical product, called a commissioned label, and identified as a Serialized Identifier (SID).

Figure 1 – Lifecycle Stages of a Serial Number

In some cases, the activity of serialization includes the packing of serialized child objects (packages) into serialized and parent objects (containers) in a process identified as aggregation. Serialization aggregation events usually start with the Lowest Saleable Unit (LSU) (e.g. bottle or blister pack) and potentially include multiple levels in the packaging hierarchy (such as a pallet made up of cases, cases made up of packages, and packages made up of blister packs, with serialization information defined at each level of the hierarchy.) Aggregation Serial Numbers follow the same lifecycle as product Serial Numbers.

4.1.2 Serialization Activities

The activities of serialization are illustrated in Figure 2. Each of the activities may be performed for each level of a packaging aggregation hierarchy, such as separate serial number management, provisioning, printing, and commissioning for pallet labels, and similar activities for cases and cartons. The scope of the OPC UA OPEN-SCS implementation are information exchanges between the activities. Not all communication exchanges are shown in Figure 2.

Figure 2 – Activities in Serialization

Global Serial Number Management – This is the activity of creating, allocating, registering, and general management of Serial Numbers. This activity may be local (within a company) or remote in a regulatory agency or a third party. Generally, this activity is global in scope, even within a company, in order to ensure that uniqueness of Serial Numbers. Global serial number management may deal with any Serial Number state, but generally deal with unassigned, invalid, scrapped, destroyed, commissioned, sampled, or inactive states.

Local Serial Number Management – This is the activity of managing available Serial Numbers, assigning Serial Numbers to production of specific products, packages, or aggregations. Generally, this is local in scope (within a company, a site within the company, or area within the site) in order to meet performance requirements in obtaining Serial Numbers for provisioning. If locally managed Serial Numbers which have not been commissioned and will not be used, they are generally returned to global serial number management for possible reuse.

Serial Number Provisioning – This is the activity of associating a Serial Numbers with a specific production run. This activity is generally performed locally (within a company, a site within the company, or area within the site), but may be done by a third party that is pre-printing labels. This activity may be done some time before the label is printed, because of limitations in the printing system, or just-in-time if available on the printing system. If Serial Numbers cannot be used (such as more are provisioned than are needed for the production run), then the unused numbers are either returned to local or global serial management for possible reuse or reported as invalid for tracking purposes.

Label Printing – This is the activity of printing the Serial Numbers and related information on a label. This is usually in the form of a 1D barcode, QR (2D), DataMatrix or RFID tag. If the printed labels are scrapped before they are commissioned, then the Serial Numbers associated with the labels are usually returned to local or global serial number management indicating that labels with the serial numbers were printed, but the labels were scrapped.

Label Commissioning – This is the activity of associating a label with a product or package. Typically this involves attachment of the label to the product or package. If the association is later removed and the label scrapped, such as the label being removed from the product/package because of rework of the product, then the Serial Numbers on the scrapped label are reported to local or global serial number management for tracking. Once the Serial Number is associated with a product, package, or aggregation it is known as a SID.

Product Delivery – This is the activity of shipping the product/package out of the custody of production to other parts of the business or the supply chain. If the product is destroyed or otherwise made non-usable, then the destroyed Serial Numbers are usually returned to global serial number management for tracking. Often the transfer of custody is to local warehouses or shipping departments.

Each of the activities may be performed for each level of a packaging aggregation hierarchy, such as separate serial number management, provisioning, printing, and commissioning for pallet labels, and similar activities for cases and cartons.

4.1.3 Serial Number Information Model

The information objects identified in Figure 3 are used to describe the information used in the serialization services.

SID Class - An SID Class represents information specified by global industry standards, governmental standards or regulation used in representation of a Serial Number in an SID. Each standard or regulation defines one or more SID Classes including the specification of the syntax of the SID and the allowed character set, the internal structure and the intended area of use.

SID Class Property - Additional information associated with the SID Class is represented in name/value pairs and defined SID Class Properties.

Collection – An abstract class that is a representation of a list of Serial Numbers is defined as a Collection.

Serial Number Collection - A representation of a list of numbers from which Serial Numbers may be obtained is defined as a Serial Number Collection.

Serial Number - A string of characters with a defined syntax used for purposes of identification to be used for serialization purposes is defined as a Serial Number.

Label Collection - A set of Serial Numbers which have been, or will be encoded onto a label, with all the same state and associated to a specific production or packaging run is defined as a Label Collection.

Label Property – Additional information associated with a label for a SID Class Property is defined as a Label Property.

Serial Number Pool - A representation of a managed collection of Serial Numbers which may be associated with multiple SID Classes, and which have selection criteria defined to allow selection of sets of numbers for specific purposes is defined as a Serial Number Pool.

Pool Selection Criteria - A set of key/value pairs which represent selection criteria that may be used to determine what set of Serial Numbers are returned from a serial number request service is defined as a Pool Selection Criteria.

Figure 3 – Serialization Information Model

4.1.4 Serial Number State and Event Model

The state and event model for a Serial Number shall follow the model displayed in Figure 4.

Figure 4 – Serial Number State and Event Model

Each Serial Number state is defined in Table 1.

Table 1 – Serial Number State Definitions
SID StateDescriptionExamples
UnassignedThe Serial Number has not been assigned to production or a packaging run. The unassigned state is used for communication to systems that assign serial numbers. A request is sent to an agent or serial number management system that creates serial numbers, along with possible information such as product codes.
UnallocatedAs Serial Number has been assigned to production or a packaging run, but it has not yet been allocated for use a specific production run of a product or aggregation.A local serial number management system maintains a set of unallocated serial numbers.
AllocatedThe Serial Number has been assigned to a specific product or aggregation production run. Serial Numbers are available and maintained in a local printer for printing on a label.
SN InvalidThe Serial Number is no longer viable, and the related serial number is no longer defined. The Serial Number will not be the subject of subsequent events.A process order using the Serial Numbers was cancelled, the provisioned Serial Number are not associated with a physical product and will not be further used.
EncodedThe Serial Number has been written to a barcode or RFID tag, but not yet commissioned.An industrial printer prints a label.
Label SampledThe printed label has been retained and is not associated with a physical product or aggregation. A printed label is attached to a batch record.
Label ScrappedA label was encoded with a Serial Number but was made unusable before being applied to a product or aggregation.A vision system detects that a label was misapplied or ripped on a product or aggregation and the label was removed from the product or aggregation.
CommissionedThe Serial Number has been associated with a physical product or aggregation but has not yet left the responsibility of production. The Serial Number can now be identified as a SID.A label is attached to a package, and the package is being placed into a case, and the case is being placed on a pallet.
SampledThe product or aggregation is to be used as a sample for testing or other use, not to be made active.Product was pulled from the end of the packaging line and stored in a facility for later stability testing.
Inactive

The product or aggregation is no longer active but may not have been destroyed.

GS1 defines this disposition as a decommissioned object that may be reintroduced to the supply chain, however any status change after decommissioning is not in scope of the PSS.

Product over its expiration date is send to a facility for destruction or for testing to determine its viability.
DestroyedThe product or aggregation has been fully rendered non-usable. A production error was detected, and all packaged product was pulled from the line and destroyed.
ReleasedThe Serial Number has been associated with a physical product or aggregation and has left the responsibility of production.A pallet of products/packages is delivered to the warehouse and the transfer of control is sent to the ERP system.

Each Serial Number event is defined in Table 2. The events occur as a result of a business or process step.

Table 2 – Serial Number Events
EventDescription
provisioningUnassigned Serial Numbers were made available for use in eventual encoding and commissioning.
sn_returningUnallocated Serial Numbers may be returned to the Unassigned state
sn_allocatingUnallocated Serial Numbers are to be assigned for use in a packaging run
sn_deallocatingUnused allocated Serial Numbers may be returned to the unallocated state.
sn_invalidatingProvisioned Serial Numbers are no longer available for use
sn_encoding Serial Numbers and other associated information are written to a barcode or RFID tag but are not yet associated with a product or aggregation. (Derived from the GS1 “encoding” business step.)
label_inspectingWritten barcode or RFID was read to address potential physical or documentation defects.
label_samplingWritten barcode or RFID is pulled from production and retained as a sample for later testing or inspection.
label_scrappingWritten barcode or RFID was made unusable in production and the serial number if no longer associated with a packaging run
commissioning

A Serial Numbers is associated with a specific product or aggregation.

(Derived from the GS1 “commissioning” business step.)

inspectingProduct or aggregation is pulled from production and retained as a sample for later testing or inspection.
shipping

Indicates the overall process of staging, outbound, loading and departing the responsibility of production.

(Derived from the GS1 “shipping” business step.)

decommissioningProcess of disassociating an instance-level identifier (Serial Number) with an object. For example, either time or an event has caused to the serial number to be disassociated with a product or aggregation. (Derived from the GS1 “decommissioning” business step.)
destroying

Process of terminating a physical object. For an instance-level identifier, the object will not be the subject of subsequent events; subsequent events are likely indicative of error (such as a stray read of a tag inside an incinerator).

(Derived from the GS1 “destroying” business step.)

packing

Denotes a specific activity within a business process that includes putting objects into a larger container. For example, adding labeled bottles into a case or adding cases into a pallet.

(Derived from the GS1 “packing” business step.)

unpacking

Denotes a specific activity within a business process that includes removing products (individuals, inners, cases, pallets) from a larger container. For example, removing labeled bottles from a case or removing cases from a pallet.

(Derived from the GS1 “unpacking” business step.)

4.1.5 Serialization Functions

The OPEN-SCS PSS defines a technology independent set of functions that are to be provided to support serialization, and information on Serial Number Pools and SID Classes.

The following table defines the functions identified in the OPEN-SCS PSS, the method defined by this specification, and definition of the method’s use:

Table 3 – OPEN-SCS PSS Function to OPC UA Method Mapping
OPEN-SCS PSS FunctionOPC UA MethodMethod Use
Serial Number Request UnassignedSNRequestUnassignedPull of information from a pool management server
Serial Number Request UnallocatedSNRequestUnallocatedPull of information from a pool management server
Serial Number Request AllocatedSNRequestAllocatedPull of information from a pool management server
Serial Number Return UnallocatedSNReturnUnallocatedPush of information to a pool management server
Serial Number Return AllocatedSNReturnAllocatedPush of information to a pool management server
Serial Number To UnallocatedSNtoUnallocatedPush of information to a pool management server
Serial Number To AllocatedSNtoAllocatedPush of information to a pool management server
Serial Number to EncodedSNtoEncodedPush of information to a pool management server
Serial Number Invalidating EventSNInvalidatingEventPush of information to an event management server
Label Encoding EventLabelsEncodingEventPush of Information to an event management server
Label Scrapping EventLabelsScrappingEventPush of information to an event management server
Label Inspecting EventLabelsInspectingEventPush of information to an event management server
Label Sampling EventLabelsSamplingEventPush of information to an event management server
SID Commissioning EventSIDCommissioningEventPush of information to an event management server
SID Destroying EventSIDDestroyingEventPush of information to an event management server
SID Shipping EventSIDShippingEventPush of information to an event management server
SID Inspecting EventSIDInspectingEventPush of information to an event management server
SID Decommissioning EventSIDDecommissioningEventPush of information to an event management server
Aggregation Packing EventAggregationPackingEventPush of information to an aggregation management server
Aggregation Unpacking EventAggregationUnpackingEventPush of information to an aggregation management server

4.2 OPC UA Summary

4.2.1 Introduction

For OPEN-SCS users that may not be familiar with OPC UA the following section provides a brief overview of key features that OPC UA provides.

4.2.2 What is OPC UA?

OPC UA is an open and royalty free set of standards designed as a universal communications framework. While there are numerous communication solutions available, OPC UA has several 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 powerful semantic models such as OPEN-SCS, OPC UA makes it easier for end users to access data via generic commercial application.

The OPC UA model is scalable from small devices to ERP systems. OPC UA devices 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.

4.2.3 Basics of OPC UA

As an Open Standard, OPC UA is based on standard Internet technologies – TCP/IP, HTTP, Ethernet, and XML.

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 are shown in Figure 5.

Figure 5 – 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.4 Information Modelling in OPC UA

4.2.4.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 web 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 6.

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

Object and Variable Nodes are called Instance Nodes and they always reference a Type Definition (ObjectType or VariableType) Node which describes their semantics and structure. Figure 7 illustrates the relationship between an Instance and its Type Definition.

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 7 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 child. 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 devices implement.

OPC UA also supports the concept of sub typing. This allows a modeler 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 modeler may decide that the existing ObjectType in some cases needs an additional variable. The modeler can create a Subtype of the object 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. With regard to DataTypes, if a variable is defined to have a numeric value, a sub type could restrict the Value to a float.

Figure 7 – The Relationship between Type Definitions and Instances

References allow Nodes to be connected together 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 the existing ReferenceType. Subtypes inherit the semantics of the parent but may add additional restrictions. Figure 8 depicts several references connecting different Objects.

Figure 8 – 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 9. 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 9 – 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 OPC UA AddressSpace is described in OPC 10000-5.

OPC UA specification defines a very wide range of functionality in its basic information model. It is not expected 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 development of companion specification (such as OPC UA for ISA-95) that can describe the subset of functionality that is expected to be implemented. The profiles do not restrict functionality, but generate requirements for a minimum set of functionality (see OPC 10000-7).

The OPC Foundation also defines a set of information models that provide a basic set of functionality. The Data Access specification (see OPC 10000-8) provides a basic information model for typical data. The Alarm and Condition specification (see OPC 10000-9) defines a standard information model for Alarms and Conditions. The Programs specification (see OPC 10000-10) defines a standard information model for extending the functionality available via method calls and state machines. The Historical Access specification (see OPC 10000-11) defines the information model associated with Historical Data and Historical Events. The aggregates specification (see OPC 10000-13) defines a series of standard aggregate functions that allow a Client to request summary data. Examples of aggregates include averages, minimums, time in state, Standard deviation, etc.

4.2.4.2 Namespaces

OPC UA allows information from many different sources to be combined into a single coherent address space. Namespaces are used to make this possible by eliminating naming and id conflicts between information from different sources. Namespaces in OPC UA have a globally unique string called a NamespaceUri and a locally unique integer called a NamespaceIndex. The NamespaceIndex is only unique within the context of a Session between an OPC UA Client and an OPC UA Server. All of the web services defined for OPC UA use the NamespaceIndex to specify the Namespace for qualified values.

There are two types of values in OPC UA that are qualified with Namespaces: NodeIds and QualifiedNames. NodeIds are globally unique identifiers for Nodes. This means the same Node with the same NodeId can appear in many Servers. This, in turn, means Clients can have built in knowledge of some 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. The BrowseName is used to identify the children within a TypeDefinitions. Instances of a TypeDefinition are expected to have children with the same BrowseNames. TypeDefinitions are not allowed to have children with duplicate BrowseNames; however, Instances do not have that restriction.

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

5 Modelling Approach of OPEN-SCS

The modelling approach for generating an UA model from the OPEN-SCS PSS specification follows the following general concepts.

An OPC UA server may support the activities of Local Serial Number Management, Serial Number Provisioning, Label Printing, Label Commissioning, serial number, SID, label, and aggregation event management. The server contains one or more Serial Number Pools and zero or more SID Class objects.

The functions listed in the OPEN-SCS PSS are implemented as methods on Serial Number Pool Manager objects, Serial Number Event Manager objects and Aggregation Event Manager objects within an OPC UA server.

6 OPEN-SCS Data Representation Model

6.1 General

The OPC UA OPEN-SCS Information Model is a representation of the OPEN-SCS data model in OPC Methods, ObjectTypes, VariableTypes, DataTypes and ReferenceTypes.

This model generates standard types. All OPEN-SCS types will be defined in their own namespace and will begin with “OPENSCS”

The following conventions apply to ObjectType, VariableType and DataType naming:

All ObjectTypes include “ObjectType” as part of the name

All DataTypes that are structures include “DataType” as part of the name, this is to be able to differentiate them from any VariableTypes that will just end in Type.

All enumerations will end in “Enum”, to clearly identify that it is an enumeration.

All base DataTypes (int32, float, …) used in the OPC UA server will be those defined in OPC UA, see OPC 10000-6 for more detail on the representation of the datatypes.

6.2 Instance AddressSpace

Figure 10 provides an example of the instance object model for OPEN-SCS.

The OPC UA Server shall have an OPENSCSObjects folder under the OPC defined Objects folder on a UA server. This folder shall contain instances of OPENSCSPoolObjectType, OPENSCSEventManagerType, and/or OPENSCSSIDClassType.

Figure 10 – OPENSCS Object Instance Overview

6.3 ObjectTypes

6.3.1 OPENSCSPoolManagerObjectType

The OPEN-SCS model for pool management when adapted to OPC UA results in a number of methods attached to a pool manager object, as illustrated in Figure 11.

A pool manager may manage one or more pools of serial numbers. Depending on the profile supported the pool manager may:

Return serial numbers of the appropriate state based on a request method from a specified pool in the server (SNRequestUnassigned, SNRequestUnallocated and SNRequestAllocated).

Accept returned serial numbers of the appropriate state based on a return method to a specified pool in the server (SNReturnUnallocated and SNReturnAllocated).

Accept unsolicited serial number of a specified state to be added to the server’s pool (SNtoUnallocated, SNtoAllocated and SNtoEncoded).

The pool manager may use pool selection criteria to determine which pool is to be used on a method call. The pool selection criteria available from the pool manager are available in the PoolSelectionCriteria key/value pairs. The selection criteria are read only and are defined by the configuration of the pool manager server.

The formats for the returned serial number are defined by the SNFormat parameter and must match a serial number format defined in the pool manager server.

Figure 11 – Pool Manager Methods and Data
6.3.1.1 OPENSCSPoolManagerObjectType Definition

Table 4 is the AddressSpace definition of an OPENSCSPoolManagerObjectType.

Table 4 – OPENSCSPoolManagerObjectType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSPoolManagerObjectType
IsAbstractFalse
References NodeClass BrowseName Data Type TypeDefinition Other
Subtype of the BaseObjectType defined in OPC 10000-5
0:HasComponentMethodSNRequestUnassignedSee 6.3.1.2O
0:HasComponentMethodSNRequestUnallocatedSee 6.3.1.3O
0:HasComponentMethodSNRequestAllocatedSee 6.3.1.4O
0:HasComponentMethodSNReturnUnallocatedSee 6.3.1.5O
0:HasComponentMethodSNReturnAllocatedSee 6.3.1.6O
0:HasComponentMethodSNtoUnallocatedSee 6.3.1.7O
0:HasComponentMethodSNtoAllocatedSee 6.3.1.8O
0:HasComponentMethodSNtoEncodedSee 6.3.1.9O
0:HasPropertyVariablePoolSelectionCriteriaOPENSCSKeyValueDataType[]0:PropertyTypeM
0:HasPropertyVariableSNFormat0:String[]0:PropertyTypeM
0:HasPropertyVariableMaxSNRequestable0:UInt320:PropertyTypeM
0:HasPropertyVariableMaxSNReturnable0:UInt320:PropertyTypeM
0:HasPropertyVariableMaxSNPushable0:UInt320:PropertyTypeM

PoolSelectionCriteria - Defines a read-only set of key value pairs which define the selection criteria used to determine the pool from which serial numbers are requested or returned. For example: “GTIN”, “SCSCGP”, and “PoolID”.

SNFormat – Defines a read-only set of possible serial number formats that may be used on pushes, requests or returns of serial numbers. For example: “SERIALONLY”, “LITERAL”, and “EPCURI”. As a minimum the value “SERIALONLY” shall be supported.

MaxSNRequestable - Defines a read-only maximum number of serial numbers which can be requested in a single method call. If the request methods are not supported, this number shall be zero.

MaxSNReturnable - Defines a read-only maximum number of serial numbers which can be returned in a single method call. If the return methods are not supported, this number shall be zero.

MaxSBPushable - Defines a read-only maximum number of serial numbers which can be pushed to the server in a single method call. If the push methods (SNtoUnallocated, SNtoAllocated, SNtoEncoded) methods are not supported, this number shall be zero.

6.3.1.2 SNRequestUnassigned Method

SNRequestUnassigned –This Method requests unassigned serial numbers from an OPC UA Server that is performing serial number management for a specific Serial Number Collection.

The signature of this Method is specified below. Table 5 and Table 6 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNRequestUnassigned (
		[in]	String				SNCollectionID
	[in]	UInt32				Count
	[in]	String				SNFormat
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String			   	RequestToken
	[out]	OPENSCSReturnEnum	   	ReturnStatus
	[out]	OPENSCSSNCollectionDataType 	SNCollection
	[out]	String			   	ReturnedRequestToken
	);
Table 5 – SNRequestUnassigned Method Arguments
ArgumentDescription
SNCollectionID

Identifies the Serial Number Collection from which unassigned Serial Numbers are to be provided.

If the Serial Number Collection ID does not match a Serial Number Collection managed by the Information Provider, then an “Invalid Serial Number Collection” error is returned.

If the Serial Number Collection ID is not provided, then the default Serial Number Collection shall be selected.

Count

Identifies the number of Serial Numbers requested.

If fewer Serial Numbers are available from the pool, then are requested, then an “Insufficient Serial Numbers” status is returned, and the number of Serial Numbers that are available are returned.

SNFormat

Defines the desired serial number format (see the OPENSCS PSS Specification for format definitions) for the requested serial numbers.

If the Serial Number Format is not known to the server, then an “Invalid Serial Number Format” error is returned.

PoolSelectionCriteria

Identified value to be used by the method provider to determine which Serial Numbers to return.

If no Pool Selection Criteria is defined, then the default Pool Selection Criteria of the method provider is used.

If the pool selection criteria is not known to the server, then an “Invalid selection Criteria” error is returned.

RequestToken

If it has a value of null, then this is the initial request for Serial Numbers.

If the value is not null, then this is a follow-on request because the number of Serial Numbers requested in a previous call were not available as an immediate response.

RequestTokens are provided to 1) support asynchronous transactions, where there can be delays between requests and the availability of Serial Numbers, and 2) where more Serial Numbers are requested than can be exchanged in a single transaction.

If the Request Token has a value not understood by the Information Provider, then an “Invalid Parameter” error is returned.

ReturnStatusReturns the status of the method execution.
SNCollectionContains requested Serial Number collection with Serial Numbers of the specified state. If no serial numbers are returned (not available), then this argument returns null.
ReturnedRequestToken

If null or an empty string, then all requested numbers have been sent.

If non null or an empty string, then there are more serial numbers to be returned and the returned Request Token is to be passed as an input parameter on a subsequent call.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 6 – SNRequestUnassigned Method AddressSpace Definition
Attribute Value
BrowseNameSNRequestUnassigned
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.3 SNRequestUnallocated Method

SNRequestUnassigned –This method requests unallocated serial numbers from an OPC UA Server that is performing serial number management for a specific Serial Number Pool.

The signature of this Method is specified below. Table 7 and Table 8 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNRequestUnallocated (
		[in]	String				SNCollectionID
	[in]	UInt32				Count
	[in]	String				SNFormat
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String			   	RequestToken
	[out]	OPENSCSReturnEnum	   	ReturnStatus
	[out]	OPENSCSSNCollectionDataType 	SNCollection
	[out]	String			   	ReturnedRequestToken
	);
Table 7 – SNRequestUnallocated Method Arguments
Argument Description
SNCollectionIDSee 6.3.1.2.
CountSee 6.3.1.2.
SNFormatSee 6.3.1.2.
PoolSelectionCriteriaSee 6.3.1.2.
RequestTokenSee 6.3.1.2.
ReturnStatusSee 6.3.1.2.
SNCollectionSee 6.3.1.2.
ReturnedRequestTokenSee 6.3.1.2.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 8 – SNRequestUnallocated Method AddressSpace Definition
Attribute Value
BrowseNameSNRequestUnallocated
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.4 SNRequestAllocated Method

SNRequestAllocated –This method requests allocated serial numbers from an OPC UA Server that is performing serial number management for a specific Serial Number Pool.

The signature of this Method is specified below. Table 9 and Table 10 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNRequestAllocated (
		[in]	String				SNCollectionID
	[in]	UInt32				Count
	[in]	String				SNFormat
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String			   	RequestToken
	[out]	OPENSCSReturnEnum	   	ReturnStatus
	[out]	OPENSCSSNCollectionDataType SNCollection
	[out]	String			   	ReturnedRequestToken
	);
Table 9 – SNRequestAllocated Method Arguments
Argument Description
SNCollectionIDSee 6.3.1.2.
CountSee 6.3.1.2.
SNFormatSee 6.3.1.2.
PoolSelectionCriteriaSee 6.3.1.2.
RequestTokenSee 6.3.1.2.
ReturnStatusSee 6.3.1.2.
SNCollectionSee 6.3.1.2.
ReturnedRequestTokenSee 6.3.1.2.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 10 – SNRequestAllocated Method AddressSpace Definition
Attribute Value
BrowseNameSNRequestAllocated
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.5 SNReturnUnallocated Method

SNReturnUnallocated – This method sends unallocated serial numbers back to an OPC UA Server that is performing serial number management of unassigned serial numbers for a specific Serial Number Pool.

The signature of this Method is specified below. Table 11 and Table 12 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNReturnUnallocated (
		[in]	OPENSCSSNCollectionDataType	SNCollection
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String				SNFormat
	[out]	OPENSCSReturnEnum		ReturnStatus
	);
Table 11 – SNReturnUnallocated Method Arguments
Argument Description
SNCollection

Contains a Serial Number Collection from which Serial Numbers were originally provided.

If the Serial Number Collection ID does not match a Serial Number Collection managed by the Information Provider, then an “Invalid Serial Number Collection” error is returned.

PoolSelectionCriteria

Identified value to be used by the method provider to determine which pool to return the Serial Numbers to.

If no Pool Selection Criteria is defined, then the default Pool Selection Criteria of the method provider is used.

If the pool selection criteria is not known to the server, then an “Invalid selection Criteria” error is returned.

SNFormat

The serial number format of the serial numbers being returned.

If the Serial Number Format is not known to the method provider, then an “Invalid Serial Number Format” error is returned.

ReturnStatusReturns the status of the method execution.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 12 – SNReturnUnallocated Method AddressSpace Definition
Attribute Value
BrowseNameSNReturnUnallocated
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.6 SNReturnAllocated Method

SNReturnAllocated – This method sends allocated serial numbers back to an OPC UA Server that is performing serial number management of unallocated serial numbers for a specific Serial Number Pool.

The signature of this Method is specified below. Table 13 and Table 14 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNReturnAllocated (
		[in]	OPENSCSSNCollectionDataType	SNCollection
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String				SNFormat
	[out]	OPENSCSReturnEnum		ReturnStatus
	);
Table 13 – SNReturnAllocated Method Arguments
Argument Description
SNCollectionSee 6.3.1.5.
PoolSelectionCriteriaSee 6.3.1.5.
SNFormatSee 6.3.1.5.
ReturnStatusSee 6.3.1.5.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 14 – SNReturnAllocated Method AddressSpace Definition
Attribute Value
BrowseNameSNReturnAllocated
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.7 SNtoUnallocated Method

SNtoUnallocated – This method sends unsolicited serial numbers to be placed into the unallocated state to an OPC UA Server that is performing serial number management for a specific Serial Number Pool.

The signature of this Method is specified below. Table 15 and Table 16 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNtoUnallocated (
	[in]	OPENSCSSNCollectionDataType 	SNCollection
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String				SNFormat
	[out]	OPENSCSReturnEnum	  	ReturnStatus
	);
Table 15 – SNtoUnallocated Method Arguments
Argument Description
SNCollectionThe Serial Number Collection containing Serial Numbers.
PoolSelectionCriteria

Identified value to be used to identify the pool that unused Serial Numbers can be sent back to.

If the pool selection criteria is not known to the server, then an “Invalid selection Criteria” error is returned.

SNFormat

The serial number format of the pushed serial numbers.

If the Serial Number Format is not known to the method provider, then an “Invalid Serial Number Format” error is returned.

ReturnStatusReturns the status of the method execution.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 16 – SNtoUnallocated Method AddressSpace Definition
Attribute Value
BrowseNameSNtoUnallocated
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.8 SNtoAllocated Method

SNtoAllocated – This method sends unsolicited serial numbers to be placed into the reserved state to an OPC UA Server that is performing serial number management for a specific Serial Number Pool.

The signature of this Method is specified below. Table 17 and Table 18 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNtoAllocated (
	[in]	OPENSCSSNCollectionDataType 	SNCollection
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String				SNFormat
	[out]	OPENSCSReturnEnum	  	ReturnStatus
	);
Table 17 – SNtoAllocated Method Arguments
Argument Description
SNCollectionSee 6.3.1.7.
PoolSelectionCriteriaSee 6.3.1.7.
SNFormatSee 6.3.1.7.
ReturnStatusSee 6.3.1.7.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 18 – SNtoAllocated Method AddressSpace Definition
Attribute Value
BrowseNameSNtoAllocated
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.1.9 SNtoEncoded Method

SNtoEncoded – This method sends unsolicited serial numbers to be placed into the encoded state to an OPC UA Server that is performing serial number management for a specific Serial Number Pool. It may include label properties associated with the encoding run.

The signature of this Method is specified below. Table 19 and Table 20 specify the Arguments and AddressSpace representation, respectively.

Method Signature

	SNtoEncoded (
		[in]	OPENSCSSNCollectionType	SNCollection
	[in]	OPENSCSKeyValueDataType[]	PoolSelectionCriteria
	[in]	String				SNFormat
	[out]	OPENSCSReturnEnum		ReturnStatus
	);
Table 19 – SNtoEncoded Method Arguments
Argument Description
SNCollectionIdentifies the Collection with Serial Numbers.
PoolSelectionCriteriaThe pool selection criteria which are used to return unused serial numbers to a serial number management server.
SNFormat

The serial number format of the pushed serial numbers.

If the Serial Number Format is not known to the method provider, then an “Invalid Serial Number Format” error is returned.

ReturnStatusReturns the status of the method execution.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 20 – SNtoEncoded Method AddressSpace Definition
Attribute Value
BrowseNameSNtoEncoded
IsAbstractTrue
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory

6.3.2 OPENSCSEventManagerObjectType

The OPEN-SCS model for event management when adapted to OPC UA results in several methods attached to an event manager object.

The event manager receives unsolicited events through the event methods. All but one of the event methods have the same method signature. The specific methods supported by an event manager are defined in profiles.

Figure 12 – Event Manager Methods and Data

Table 21 is the AddressSpace definition of an OPENSCSEventManagerObjectType.

Table 21 – OPENSCSEventManagerObjectType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSEventManagerObjectType
IsAbstractFalse
References NodeClass BrowseName Data Type TypeDefinition Other
Subtype of the BaseObjectType defined in OPC 10000-5
0:HasComponentObjectEPCISStreamTemporaryFileTransferTypeOptional
0:HasComponentMethodSNInvalidatingEventSee 6.3.2.1Optional
0:HasComponentMethodLabelsEncodingEventSee 6.3.2.3Optional
0:HasComponentMethodLabelsScrappingEventSee 6.3.2.4.Optional
0:HasComponentMethodLabelsInspectingEventSee 6.3.2.5.Optional
0:HasComponentMethodLabelsSamplingEventSee 6.3.2.6.Optional
0:HasComponentMethodSIDCommissioningEventSee 6.3.2.7.Optional
0:HasComponentMethodSIDDestroyingEventSee 6.3.2.8.Optional
0:HasComponentMethodSIDShippingEventSee 6.3.2.9.Optional
0:HasComponentMethodSIDInspectingEventSee 6.3.2.10.Optional
0:HasComponentMethodSIDDecommissioningEventSee 6.3.2.11Optional
0:HasPropertyVariableMaxEvents0:UInt320:PropertyTypeMandatory
0:HasPropertyVariableMaxEPCISObjectEventSIDs0:UInt320:PropertyTypeMandatory
0:HasPropertyVariableMaxEPCISaggregationEvents0:UInt320:PropertyTypeMandatory

MaxEvents - Defines the read-only maximum number of SN, Label, or SID events which can be received in a single method call.

MaxEPCISObjectEventSIDs – Defines the read-only maximum number of SIDs (SGTINs) in EPCIS object events that may be written in a single EPCISStream file transfer.

MaxEPCISAggregationEvents – Defines the read-only maximum number of EPCIS aggregation events that may be written in a single EPCISStream file transfer

6.3.2.1 EPCISStream Object

The EPCIS file transfer services are provided through a TemporaryFileTransferType, defined in OPC 10000-5. The transferred information is in the form of an EPCIS structured XML file, as described in Annex C. The EPCISStream object is used to push EPCIS Object Events (with various Business Steps in business process such as “urn:epcglobal:cbv:bizstep:commissioning”, “urn:epcglobal:cbv:bizstep:inspecting”, “urn:epcglobal:cbv:bizstep:packing”, “urn:epcglobal:cbv:bizstep:shipping”) and EPCIS Object Aggregation Events (with Business Steps as ‘urn:epcglobal:cbv:bizstep:packing’) to an OPC UA EventManager server.

The OPC UA TemporaryFileTransferType method GenerateFileForWrite is used to start the write file transaction. A successful call of this Method creates a temporary FileType Object and returns the NodeId of this Object and the file handle to access the Object. (From OPC 10000-5). The returned FileType object is not browsable in the AddressSpace and can only be accessed with the NodeId and FileHandle returned by the method in the same Session. The returned FileType Object is used to transfer the file stream between OPC UA Client and Server.

The EPCIS structured file is then transferred in blocks to the Event Manager server using the Write method. Once the transfer is complete the CloseAndCommit method is used to close the transfer, and the EventManager processes the transferred information.

The general use of the EPCISStream to transfer an EPCIS file is illustrated in Figure 13.

Figure 13 – EPCIS File Transfer Example

The GenerateFileForRead method of the EPCISStream object is not specified and shall always return an error from the EventManager.

The generateOptions is used for the GenerateFileForWrite to transfer arguments to the EventManager server that match the arguments used in the EventManager server’s event methods.

An EventManager Server shall specify OPENSCSEventStreamArgumentDataType as the concrete DataType of for the Argument Structure for the generateOptions argument in the instance of the GenerateFileForWrite method.

6.3.2.2 SNInvalidatingEvent Method

SNInvalidatingEvent – This method is used to send unsolicited notification of Serial Number Invalidating events to an OPC Server that is performing serial number event management.

The signature of this Method is specified below. Table 22 and Table 23 specify the Arguments and AddressSpace representation, respectively.

Signature

	SNInvalidatingEvent (
		[in]	OPENSCSSNCollectionDataType 	SNCollection 
	[in]	String				SNFormat
		[in]	OPENSCSKeyValueDataType[]	OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    	ReturnStatus
	);
Table 22 – SNInvalidatingEvent Method Arguments
Argument Description
SNCollectionIdentifies the Serial Number Collection.
SNFormatDefines the format of the serial numbers associated to the event.
OPENSCSEventContextZero or mode key value pairs that define additional context information for the event, such as order number or lot number.
ReturnStatusReturns the status of the method execution.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 23 – SNInvalidatingEvent Method AddressSpace Definition
Attribute Value
BrowseNameSNInvalidatingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.3 LabelsEncodingEvent Method

LabelsEncodingEvent – This method is used to send unsolicited notification of Labels Encoding events to an OPC Server that is performing label event management.

The signature of this Method is specified below. Table 24 and Table 25 specify the Arguments and AddressSpace representation, respectively.

Signature

	LabelsEncodingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 24 – LabelsEncodingEvent Method Arguments
Argument Description
LabelCollectionIdentifies the Label Collection with Serial Numbers and optional label properties.
SNFormatDefines the format of the serial numbers associated to the event.
OPENSCSEventContextZero or mode key value pairs that define additional context information for the event, such as order number or lot number.
ReturnStatusReturns the status of the method execution.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 25 – LabelsEncodingEvent Method AddressSpace Definition
Attribute Value
BrowseNameLabelsEncodingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.4 LabelsScrappingEvent Method

LabelsScrappingEvent – This method is used to send unsolicited notification of Labels Destroying events to an OPC Server that is performing label event management.

The signature of this Method is specified below. Table 26 and Table 27 specify the Arguments and AddressSpace representation, respectively.

Signature

	LabelsScrappingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 26 – LabelsScrappingEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 27 – LabelsScrappingEvent Method AddressSpace Definition
Attribute Value
BrowseNameLabelsScrappingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.5 LabelsInspectingEvent Method

LabelsInspectingEvent – This method is used to send unsolicited notification of Label Inspecting events to an OPC Server that is performing label event management.

The signature of this Method is specified below. Table 28 and Table 29 specify the Arguments and AddressSpace representation, respectively.

Signature

	LabelsInspectingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 28 – LabelsInspectingEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 29 – LabelsInspectingEvent Method AddressSpace Definition
Attribute Value
BrowseNameLabelsInspectingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.6 LabelsSamplingEvent Method

LabelsSamplingEvent – This method is used to send unsolicited notification of Label Sampling events to an OPC Server that is performing label event management.

The signature of this Method is specified below. Table 30 and Table 31specify the Arguments and AddressSpace representation, respectively.

Signature

	LabelsSamplingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 30 – LabelsInspectingEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 31 – LabelsInspectingEvent Method AddressSpace Definition
Attribute Value
BrowseNameLabelsInspectingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.7 SIDCommissioningEvent Method

SIDCommissioningEvent – This method is used to send unsolicited notification of SID Commissioning events to an OPC Server that is performing SID event management.

The signature of this Method is specified below.

Table 32 and Table 33 specify the Arguments and AddressSpace representation, respectively.

Signature

	SIDCommissioningEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 32 – SIDCommissioningEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 33 – SIDCommissioningEvent Method AddressSpace Definition
Attribute Value
BrowseNameSIDCommissioningEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.8 SIDDestroyingEvent Method

SIDDestroyingEvent – This method is used to send unsolicited notification of SID Destroying events to an OPC Server that is performing SID event management.

The signature of this Method is specified below. Table 34 and Table 35 specify the Arguments and AddressSpace representation, respectively.

Signature

	SIDDestroyingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 34 – SIDDestroyingEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 35 – SIDDestroyingEvent Method AddressSpace Definition
Attribute Value
BrowseNameSIDDestroyingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.9 SIDShippingEvent Method

SIDShippingEvent – This method is used to send unsolicited notification of SID Shipping events to an OPC Server that is performing SID event management.

The signature of this Method is specified below. Table 36 and Table 37 specify the Arguments and AddressSpace representation, respectively.

Signature

	SIDShippingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 36 – SIDShippingEvent Method Arguments
ArgumentDescription
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 37 – SIDShippingEvent Method AddressSpace Definition
Attribute Value
BrowseNameSIDShippingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.10 SIDInspectingEvent Method

SIDInspectingEvent – This method is used to send unsolicited notification of SID Inspecting events to an OPC Server that is performing SID event management.

The signature of this Method is specified below. Table 38 and Table 39 specify the Arguments and AddressSpace representation, respectively.

Signature

	SIDInspectingEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 38 – SIDInspectingEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 39 – SIDInspectingEvent Method AddressSpace Definition
Attribute Value
BrowseNameSIDInspectingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.2.11 SIDDecommissioningEvent Method

SIDDecommissioningEvent – This method is used to send unsolicited notification of SID Decommissioning events to an OPC Server that is performing SID event management.

The signature of this Method is specified below. Table 40 and Table 41 specify the Arguments and AddressSpace representation, respectively.

Signature

	SIDDecommissioningEvent (
		[in]	OPENSCSLabelCollectionDataType	LabelCollection 
	[in]	String					SNFormat
		[in]	OPENSCSKeyValueDataType[]		OPENSCSEventContext
	[out]	OPENSCSReturnEnum	    		ReturnStatus
	);
Table 40 – SIDDecommissioningEvent Method Arguments
Argument Description
LabelCollectionSee 6.3.2.3
SNFormatSee 6.3.2.3
OPENSCSEventContextSee 6.3.2.3
ReturnStatusSee 6.3.2.3

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 41 – SIDDecommissioningEvent Method AddressSpace Definition
Attribute Value
BrowseNameSIDDecommissioningEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory

6.3.3 OPENSCSAggregationManagerObjectType

The OPEN-SCS model for aggregation management when adapted to OPC UA results in two methods attached to an aggregation manager object.

The aggregation manager receives unsolicited events through the aggregation methods. The aggregation methods have the same method signature. The specific methods supported by an aggregation manager are defined in profiles.

Figure 14 – Aggregation Manager Methods and Data

Table 42 is the AddressSpace definition of an OPENSCSAggregationManagerObjectType.

Table 42 – OPENSCSAggregationManagerObjectType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSAggregationManagerObjectType
IsAbstractFalse
References NodeClass BrowseName Data Type TypeDefinition Other
Subtype of the BaseObjectType defined in OPC 10000-5
0:HasComponentMethodAggregationPackingEventSee 6.3.3.1.M
0:HasComponentMethodAggregationUnpackingEventSee 6.3.3.2.M
0:HasPropertyVariableMaxAggregationEvents0:UInt320:PropertyTypeM

MaxAggregationEvents - Defines a read-only maximum number of AggregationElements for packing and unpacking events which can be received in a single method call.

6.3.3.1 AggregationPackingEvent Method

AggregationPackingEvent – This method is used to send unsolicited notification of Aggregation Packing events to an OPC Server that is performing aggregation management.

The signature of this Method is specified below. Table 43 and Table 44 specify the Arguments and AddressSpace representation, respectively.

Signature

	AggregationPackingEvent (
	  [in] OPENSCSAggregationDataType[] 	AggregationElement
	  [in] String					ParentSNFormat
	  [in] String					PackedElementSNFormat
	  [in] OPENSCSKeyValueDataType[]		AggregationContext
 	  [out] OPENSCSReturnEnum	    		ReturnStatus
	);
Table 43 – AggregationPackingEvent Method Arguments
Argument Description
AggregationElementSpecifies the parent element and the packed element collection that is to be added to the parent element.
ParentSNFormatDefines the format of the parent Serial Numbers associated to the event.
PackedElementSNFormatDefines the format of the packed element Serial Numbers associated to the event.
AggregationContextZero or mode key value pairs that define additional context information for the event, such as order number or lot number.
ReturnStatusReturns the status of the method execution.

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 44 – AggregationPackingEvent Method AddressSpace Definition
Attribute Value
BrowseNameAggregationPackingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory
6.3.3.2 AggregationUnpackingEvent Method

AggregationUnpackingEvent – This method is used to send unsolicited notification of Aggregation Unpacking events to an OPC Server that is performing aggregation management.

The signature of this Method is specified below. Table 45 and Table 46 specify the Arguments and AddressSpace representation, respectively.

Signature

	AggregationUnpackingEvent (
	  [in] OPENSCSAggregationDataType[] 	AggregationElement
	  [in] String					ParentSNFormat
	  [in] String					PackedElementSNFormat
	  [in] OPENSCSKeyValueDataType[]		AggregationContext
 	  [out] OPENSCSReturnEnum	    		ReturnStatus
	);
Table 45 – AggregationUnpackingEvent Method Arguments
Argument Description
AggregationElement Specifies the parent element and the packed element collection that is to be removed from the parent element.
ParentSNFormatSee 6.3.3.1
PackedElementSNFormatSee 6.3.3.1
AggregationContextSee 6.3.3.1
ReturnStatusSee 6.3.3.1

Method Result Codes are defined as part of the Call service (see OPC 10000-4 and Table 95).

Table 46 – AggregationUnpackingEvent Method AddressSpace Definition
Attribute Value
BrowseNameAggregationUnpackingEvent
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
0:HasPropertyVariableOutputArgumentsArgument[]0:PropertyTypeMandatory

6.3.4 OPENSCSSIDClassObjectType

SID Class objects are used to obtain information about the SID Classes that may be supported by a server. This information is read-only and is defined by the server, as illustrated in Figure 15.

Figure 15 – OPENSCS SID Class Data

Table 47 defines the structure of an OPENSCSSIDClassObjectType.

Table 47 – OPENSCSSIDClassObjectType
Attribute Value
BrowseNameOPENSCSSIDClassObjectType
IsAbstractFalse
References Node Class BrowseName Data Type TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5
0:HasPropertyVariableSIDClassID0:String0:PropertyType

M, RO

0:HasPropertyVariableSIDClassOwnerString0:PropertyType

M, RO

0:HasPropertyVariableSIDClassDescriptionString0:PropertyType

O, RO

0:HasPropertyVariableSyntaxSpecificationString0:PropertyType

M, RO

0:HasPropertyVariableAllowedCharacterSetString0:PropertyType

M, RO

0:HasPropertyVariableIntendedUseString0:PropertyType

O, RO

0:HasPropertyVariableSIDClassPropertyOPENSCSSIDClassPropertyDataType[]0:PropertyType

O, RO

SIDClassID - An identification of the SID Class of the Serial Number Collection. For example: GS1:SSCC

SIDClassOwner - An identification of the owning, or controlling organization, which defines the information in the SID Class. For example: GS1The Global Language of Business, www.gs1.org

SIDClassDescription - Additional information and description about the SID Class.

SyntaxSpecification - Defines the rules for the syntax of a SID. The format is not defined in this specification and must be negotiated between Information Providers and Information Requesters during design or change management of a system.

AllowedCharacterSet - A string containing the allowed characters that may be used in representing the Serial Number in a SID.

IntendedUse - A string containing a natural language description of the use of the SID. Defines the intended use of the SID Class, such as logistics tracking or pallet aggregations.

SIDClassProperty - An array of property elements, each of which may have associated label property definitions.

6.4 DataTypes

6.4.1 OPENSCSAggregationDataType

The OPENSCSAggregationDataType is a type of structure that identifies a parent element and a collection of packed elements. This is used in the aggregation packing and unpacking methods.

The structure is defined in Table 48

Table 48 – OPENSCSCollectionDataType Structure
Name Type Description
OPENSCSAggregationDataTypestructure

ParentElement

OPENSCSLabelDataTypeIdentifies the single serial number representing the aggregation which acts as the parent

ParentElementCollection

OPENSCSLabelCollectionDataTypeIdentifies the Serial Number Collection that was added to, or removed from, the parent element.

Table 49 is the AddressSpace definition of an OPENSCSCollectionDataType.

Table 49 – OPENSCSAggregationDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSAggregationDataType
IsAbstractFalse
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the Structure defined in OPC 10000-5

6.4.2 OPENSCSCollectionDataType

The OPENSCSCollectionDataType is an abstract subtype of OPC UA Structure that defines a collection of Serial Numbers and associated Collection information. No instances of this type can exist.

There is always at least one Serial Number in the collection.

The structure is defined in Table 50.

Table 50 – OPENSCSCollectionDataType Structure
NameTypeDescription
OPENSCSCollectionDataType structure

ID

0:StringAn identification of the Collection. It usually refers to a specific packaging level of a specific product. However, several products may share the same Pool ID if manufacturer or serial number authority wants to ensure globally unique serial numbers across all products.

Description

0:StringAdditional information and description about the Collection.

State

OPENSCSSerialNumberStateEnumState of the Serial Numbers in the Collection as defined in Table 1 – Serial Number State Definitions.

AssociatedPoolID

0:StringAn identification of the Serial Number Pool from which the Serial Numbers were obtained.

SerialNumbers

String []Array of Serial Numbers in the collection.

Table 51 is the AddressSpace definition of an OPENSCSCollectionDataType.

Table 51 – OPENSCSCollectionDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSCollectionDataType
IsAbstractTrue
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the Structure defined in OPC 10000-5

6.4.3 OPENSCSEventStreamArgumentDataType

The OPENSCSEventStreamArgumentDataType is a subtype of OPC UA Structure that defines the generateOptions argument for an EPCISStream GenerateFileForWrite method. It defines the serial number format information for object events and for aggregation events, and event context information. The structure is defined in Table 54.

Table 52 – OPENSCSEventStreamArgumentDataType Structure
Name Type Description
OPENSCSEventStreamArgumentDataTypestructure

SNFormat

0:StringThe format for of serial numbers in object events, can be a null string if there are no object events in the transferred events.

ParentSNFormat

0:StringThe format for of parent serial numbers in aggregation events, can be a null string if there are no aggregation events in the transferred events.

PackedElementSNFormat

0:StringThe format for of packed element serial numbers in aggregation events, can be a null string if there are no aggregation events in the transferred events.

EventContext

OPENSCSKeyValueDataType[]Zero or more key value pairs that define additional context information for the event, such as order number or lot number.

Table 55 is the AddressSpace definition of an OPENSCSEventStreamArgumentDataType.

Table 53 – OPENSCSEventStreamArgumentDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSEventStreamArgumentDataType
IsAbstractFalse
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the Structure defined in OPC 10000-5

6.4.4 OPENSCSKeyValueDataType

The OPENSCSKeyValueDataType is a subtype of OPC UA Structure that defines two linked data items: the key, which is a unique identifier for some item of data, and the value, which is the data that is identified. The structure is defined in Table 54.

Table 54 – OPENSCSKeyValueDataType Structure
NameTypeDescription
OPENSCSKeyValueDataTypestructure

Key

0:Stringunique identifier for some item of data

Value

0:Stringdata that is identified

Table 55 is the AddressSpace definition of an OPENSCSKeyValueDataType.

Table 55 – OPENSCSKeyValueDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSKeyValueDataType
IsAbstractFalse
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the Structure defined in OPC 10000-5

6.4.5 OPENSCSLabelDataType

The OPENSCSLabelDataType describes a subtype of Structure type that defines a single serial number and label, which may be associated with an SID, and collection of properties in the form of OPENSCSKeyValueDataType. The structure is defined in Table 56.

Table 56 – OPENSCSLabelDataType Structure
NameTypeDescription
OPENSCSLabelDataTypestructure

ID

0:StringThe serial number of the label in the SID or EPC format.

LabelProperties

OPENSCSKeyValueDataType[]An optional array of additional properties in the form of Key/Value pairs

Table 57 is the address space definition of an OPENSCSLabelDataType.

Table 57 – OPENSCSSNLabelDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSLabelDataType
IsAbstractFalse
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the Structure defined in OPC 10000-5

6.4.6 OPENSCSLabelCollectionDataType

The OPENSCSLabelCollectionDataType describes a type that defines a collection of Labels with Serial Numbers and associated Collection information. The structure is defined in Table 58.

Table 58 – OPENSCSLabelCollectionDataType Structure
NameTypeDescription
OPENSCSLabelCollectionDataTypestructure

LabelCollection

OPENSCSLabelDataType[]The collections of labels with serial numbers

LabelCollectionProperties

OPENSCSKeyValueDataType[]An optional array of additional properties in the form of Key/Value pairs which are valid for the whole collection

Table 59 is the AddressSpace definition of an OPENSCSLabelCollectionDataType.

Table 59 – OPENSCSLabelCollectionDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSLabelCollectionDataType
IsAbstractFalse
Reference NodeClass BrowseName DataType TypeDefinition Modelling Rule
Subtype of the OPENSCSCollectionDataType

6.4.7 OPENSCSLabelPropertyDataType

The structure is defined in Table 60.

Table 60 – OPENSCSLabelPropertyDataType Structure
Name Type Description
OPENSCSLabelPropertyDataTypestructure

PropertyID

0:StringAn identification of the label property.

PropertyDescription

0:StringAdditional information and description about the label property.

PropertyValue

0:StringDefines value for the specific label property. The format is not defined in this specification and must be negotiated between Information Providers and Information Requesters during design or change management of a system.

Table 61 is the AddressSpace definition of an OPENSCSLabelPropertyDataType.

Table 61 – OPENSCSLabelPropertyDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSLabelPropertyDataType
IsAbstractFalse
References Node Class BrowseName Data Type TypeDefinition Modelling Rule
Subtype of Structure defined in OPC 10000-5

6.4.8 OPENSCSReturnEnum

The OPENSCSReturnEnum describes the possible return status from an OPENSCS Method call.

The OPENSCSReturnEnum is defined in Table 62.

Table 62 – OPENSCSReturnEnum values
Name Value Description
Undefined00Undefined value, should never be seen.
NoError11There were no errors in processing the method.
InvalidSerialNumberCollection22The Serial Number Collection ID does not match a Serial Number Collection managed by the server.
InsufficientSerialNumbers33Fewer Serial Numbers are available from the pool, then are requested.
InvalidSerialNumbersFormat44The serial number format is not known or defined in the server.
InvalidRequestToken55The Request Token has a value not understood by the server.
InvalidSelectionCriteria66The Selection Criteria is not known or defined in the server.
UnableToAcceptSerialNumberEvents77The server cannot accept Serial Number events.
UnableToAcceptLabelEvents88The server cannot accept Label events.
UnableToAcceptSIDEvents99The server cannot accept SID events.
UnknownAggregationSID1010The SID of the aggregation for packing or unpacking is unknown.
InsufficientPrivilegeToExecute1111The server has determined that the client does not have sufficient privilege for the method to execute.

6.4.9 OPENSCSSerialNumberStateEnum

The OPENSCSSerialNumberStateEnum listed in Table 63 describes the possible serial number states.

Table 63 – OPENSCSSerialNumberStateEnum values
Name Value Description
Unassigned00See Table 1.
Unallocated11See Table 1.
Allocated22See Table 1.
SNInvalid33See Table 1.
Encoded44See Table 1.
LabelSampled55See Table 1.
LabelScrapped66See Table 1.
Commissioned77See Table 1.
Sampled88See Table 1.
Inactive99See Table 1.
Destroyed1010See Table 1.
Released1111See Table 1.

6.4.10 OPENSCSSIDClassPropertyDataType

The structure is defined in Table 64.

Table 64 – OPENSCSSIDClassPropertyDataType Structure
Name Type Description
OPENSCSSIDClassPropertyDataTypestructure

PropertyID

0:StringAn identification of the SID Class Property.

PropertyDescription

0:StringAdditional information and description about the SID Class Property.

PropertyValue

0:StringDefines value for the specific SID Class Property. The format is not defined in this specification and must be negotiated between Information Providers and Information Requesters during design or change management of a system.

LabelProperty

OPENSCSLabelPropertyDataType[]

Table 65 is the AddressSpace definition of an OPENSCSSIDClassPropertyDataType.

Table 65 - OPENSCSSIDClassPropertyDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSSIDClassPropertyDataType
IsAbstractFalse
References Node Class BrowseName Data Type TypeDefinition

Modelling Rule

Subtype of Structure defined in OPC 10000-5

6.4.11 OPENSCSSNCollectionDataType

The OPENSCSSNCollectionDataType describes a subtype of OPENSCSCollectionDataType type that defines a collection of Serial Numbers and associated Collection information.

Table 66 is the AddressSpace definition of an OPENSCSSNCollectionDataType.

Table 66 – OPENSCSSNCollectionDataType AddressSpace Definition
Attribute Value
BrowseNameOPENSCSSNCollectionDataType
IsAbstractFalse
Reference NodeClass BrowseName DataType TypeDefinition ModellingRule
Subtype of the OPENSCSCollectionDataType

6.5 Product Master Data

Product master data, as defined in the OPEN-SCS PSS specification should be exchanged using material models defined in the OPC Unified Architecture for ISA 95 Common Object Model Companion Specification. See https://opcfoundation.org/markets-collaboration/isa-95/ or https://opcfoundation.org/developer-tools/specifications-OPC UA-collaborations/isa-95-common-object-model/

7 Profiles and Namespaces

The section describes the various Facets that are provided as part of the OPEN-SCS OPC UA InformationModel. These Facets include OPEN-SCS InformationModel ConformanceUnits, but they also include ConformanceUnits or Facets from the OPC 10000-7 specification. They are summarized in Table 67.

Table 67 – Profile and Facets Overview
Profile Name Related Category URI
Aggregation Event Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/AggregationEventManager
Aggregation Event Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/AggregationEventManager
Allocated Serial Number Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/AllocatedSNManager
Allocated Serial Number Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/AllocatedSNManager
Label Event Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/LabelsEventManager
Label Event Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/LabelsEventManager
Print and Commission Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/PrintCommissionManager
Print and Commission Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/PrintCommissionManager
Serial Number Event Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/SNEventManager
Serial Number Event Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SNEventManager
SID Class Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SIDClasstManager
SID Event Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/SIDEventManager
SID Event Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SIDEventManager
Unallocated Serial Number Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/UnallocatedSNManager
Unallocated Serial Number Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/UnallocatedSNManager
Unassigned Serial Number Manager Client ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/UnassignedSNManager
Unassigned Serial Number Manager Server ProfileOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/UnassignedSNManager
OPEN-SCS Security Server FacetOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SecurityServer
OPEN-SCS Security Client FacetOPEN-SCS http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/SecurityClient
OPEN-SCS Base Server FacetOPEN-SCS http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/BaseServer

7.1 Profile Overview

Table 68 lists the general functionality of client and server profiles that support the OPEN-SCS OPC UA interface.

Table 68 – Profile Overview
Profile Name Example Methods and Variables
SID Class Manager Server Profile Provides information about SID Classes

SIDClassID

SIDCLassOwner

SIDClassDescription

SyntaxSpecification

AllowedCharaterSet

IntendedUse

SIDCLassProperty

Aggregation Event Manager Client Profile Sends OPEN-SCS Aggregation events to an Aggregation Manager Server.

Uses AggregationPackingEvent

Uses AggregationUnpackingEvent

Aggregation Event Manager Server Profile Receives OPEN-SCS Aggregation events

AggregationPackingEvent

AggregationUnpackingEvent

MaxAggregationEvents

Allocated Serial Number Manager Client Profile Sends reserved serial numbers to a Print and Commission Manager Server and serial number eventsUses SNtoAllocated
Allocated Serial Number Manager Server Profile Manages reserved serial numbers

SNRequestAllocated

SNToAllocated

PoolSelectionCriteria

SerialNumberFormat

MaxSNRequestable

MaxSNReturnable

MaxSNPushable

Label Event Manager Client Profile Send OPEN-SCS Label events to a Label Event Manager Server.

Uses LabelsEncodingEvent

Uses LabelsScrappingEvent

Uses LabelsSampledEvent

Uses LabelsInspectingEvent

Label Event Manager Server Profile Receives OPEN-SCS Label events

LabelsEncodingEvent

LabelsScrappingEvent

LabelsSampledEvent

LabelsInspectingEvent

MaxEvents

Print and Commission Manager Client Profile Performs printing and commissioning and sends label and SID events to an Event Manager Server. Uses SNtoEncoded
Print and Commission Manager Server Profile Handles printing and commissioning of serial numbers

SNtoEncoded

SerialNumberFormat

MaxSNPushable

SID Event Manager Client Profile Send OPEN-SCS SID events to an Event Manager Server.

Uses SIDCommissioningEvent

Uses SIDDestroyingEvent

Uses SIDShippingEvent

Uses SIDInspectingEvent

Uses SIDDecommissioningEvent

SID Event Manager Server Profile Receives OPEN-SCS SID events

SIDCommissioningEvent

SIDDestroyingEvent

SIDShippingEvent

SIDInspectingEvent

SIDDecommissioningEvent

MaxEvents

Unallocated Serial Number Manager Client Profile Sends unallocated serial numbers to a Reserved Serial Number Manager Server and serial number eventsUses SNtoUnallocated
Unallocated Serial Number Manager Server Profile Manages unallocated serial numbers

SNRequestUnallocated

SNReturnAllocated

SNToUnallocated

PoolSelectionCriteria

SerialNumberFormat

MaxSNRequestable

MaxSNReturnable

MaxSNPushable

Unassigned Serial Number Manager Client Profile Sends unassigned serial numbers to an Unallocated Serial Number Manager Server

Uses SNRequestUnassigned

Uses SNReturnUnallocated

Unassigned Serial Number Manager Server Profile Manages unassigned serial numbers

SNRequestUnassigned

SNReturnUnallocated

PoolSelectionCriteria

SerialNumberFormat

MaxSNRequestable

MaxSNReturnable

EPCIS Event Manager Server Profile Receives EPCIS Events in an EPCIS file formatEPCISStream
EPCIS Event Manager Client Profile Write EPCIS Events in an EPCIS file format to an EPCISStream objectUses EPCISStream temporary file services

The profiles are defined to allow the maximum flexibility in allocation of functions to devices and components (hardware and software). These are graphically represented in Figure 16.

Figure 16 – Profile Overview

For example: a system may be made up of a:

global serial number manager (GSNM), which manages unallocated serial numbers, and records all events on serial numbers, labels, and SID to comply with regulatory requirements,

and implements the Unassigned Serial Number Manager Server Profile

and implements the Serial Number Event Manager Server Profile

and implements the Label Event Manager Server Profile

and implements the SID Event Manager Server Profile

and implements the Aggregation Event Manager Server Profile

a local serial number manager (LSNM) that manages unallocated and reserved serial numbers but does not handle events,

and implements the Unallocated Serial Number Manager Server Profile

and implements the Allocated Serial Number Manager Server Profile

and implements the Unassigned Serial Number Manager Client Profile

a print and label system (PLS) that encodes serial numbers and applies the encoded numbers to products,

and implements the Print and Commission Manager Server Profile

and implements the Print and Commission Manager Client Profile

a cartonizer and palletizer that aggregates products into cartons and pallets and prints and applies carton and pallet labels.

and implements the Print and Commission Manager Server Profile

and implements the Print and Commission Manager Client Profile

and implements the Aggregation Event Manager Client Profile

a global event manager that receives EPCIS event files from multiple systems recording local events.

And implements the EPCIS Event Manager Server Profile

7.2 Namespace Metadata

Table 69 defines the namespace metadata for this specification. 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 69 – NamespaceMetadata Object for this Specification
Attribute Value
BrowseNamehttp://opcfoundation.org/OPENSCS-SER/
References BrowseName DataType Value
0:HasPropertyNamespaceUriStringhttp://opcfoundation.org/OPENSCS-SER/
0:HasPropertyNamespaceVersionString1.00
0:HasPropertyNamespacePublicationDateDateTime2019-02-04
0:HasPropertyIsNamespaceSubsetBooleanTrue
0:HasPropertyStaticNodeIdTypesIdType[]Integer
0:HasPropertyStaticNumericNodeIdRangeNumericRange[]0, 7000
0:HasPropertyStaticStringNodeIdPatternStringnull

7.3 Conformance Units

7.3.1 Overview

This section defines the ConformanceUnits that are specific to the OPC UA OPENSCS Information model. These ConformanceUnits are separated into ConformanceUnits that are Server specific and those that are Client specific.

7.3.2 Server Conformance Units

Table 70 defines the Server based ConformanceUnits.

Table 70 – OPENSCS Server Information Model
Category Title Description
ServerOPEN-SCS Base FunctionalityThe server supports the BaseObjectModel. This includes exposing all mandatory objects, variables and methods.
ServerOPEN-SCS SID Class ManagerThe server supports the OPENSCSSIDCLASSProperty model.
ServerOPEN-SCS Request UnassignedThe server supports the SNRequestUnassigned method.
ServerOPEN-SCS Request UnallocatedThe server supports the SNRequestUnallocated method.
ServerOPEN-SCS Request AllocatedThe server supports the SNRequestAllocated method.
ServerOPEN-SCS Return UnallocatedThe server supports the SNReturnUnallocated method.
ServerOPEN-SCS Return AllocatedThe server supports the SNReturnAllocated method.
ServerOPEN-SCS To UnallocatedThe server supports the SNtoUnallocated method.
ServerOPEN-SCS To AllocatedThe server supports the SNtoAllocated method.
ServerOPEN-SCS To EncodedThe server supports the SNtoEncoded method.
ServerOPEN-SCS SN Invalidating EventThe server supports the SNInvalidatingEvent method.
ServerOPEN-SCS Label Encoding EventThe server supports the LabelsEncodingEvent method.
ServerOPEN-SCS Label Scrapping EventThe server supports the LabelsScrappingEvent method.
ServerOPEN-SCS Label Inspecting EventThe server supports the LabelsInspectingEvent method.
ServerOPEN-SCS Label Sampling EventThe server supports the LabelsSamplingEvent method.
ServerOPEN-SCS SID Commissioning EventThe server supports the SIDCommissioningEvent method.
ServerOPEN-SCS SID Destroyed EventThe server supports the SIDDestroyingEvent method.
ServerOPEN-SCS SID Consigned EventThe server supports the SIDShippingEvent method.
ServerOPEN-SCS SID Inspected EventThe server supports the SIDInspectingEvent method.
ServerOPEN-SCS SID Decommissioned EventThe server supports the SIDDecommissioningEvent method.
ServerOPEN-SCS Packing EventThe server supports the AggregationPackingEvent method.
ServerOPEN-SCS Unpacking EventThe server supports the AggregationUnpackingEvent method.
ServerOPEN-SCS EPCIS File TransferThe server supports the EPCISStream object.

7.3.3 Client Conformance Units

Table 71 defines the Client based ConformanceUnits.

Table 71 – OPENSCS Client Information Model
Category Title Description
ClientOPENSCS Base Functionality ClientThe Client makes use of the BaseObjectModel. This includes exposing all mandatory objects, variables and methods.
ClientOPENSCS Request Unassigned ClientThe client makes use of the SNRequestUnassigned method.
ClientOPENSCS Request Unallocated ClientThe client makes use of the SNRequestUnallocated method.
ClientOPENSCS Request Allocated ClientThe client makes use of the SNRequestAllocated method.
ClientOPENSCS Return Unallocated ClientThe client makes use of the SNReturnUnallocated method.
ClientOPENSCS Return Allocated ClientThe client makes use of the SNReturnAllocated method.
ClientOPENSCS To Unallocated ClientThe client makes use of the SNtoUnallocated method.
ClientOPENSCS To Allocated ClientThe client makes use of the SNtoAllocated method.
ClientOPENSCS To Encoded ClientThe client makes use of the SNtoEncoded method.
ClientOPENSCS SN Invalidating Event ClientThe client makes use of the SNInvalidatingEvent method.
ClientOPENSCS Label Encoding Event ClientThe client makes use of the LabelsEncodingEvent method.
ClientOPENSCS Label Scrapping Event ClientThe client makes use of the LabelsScrappingEvent method.
ClientOPENSCS Label Inspecting Event ClientThe client makes use of the LabelsInspectingEvent method.
ClientOPENSCS Label Sampling Event ClientThe client makes use of the LabeslSamplingEvent method.
ClientOPENSCS SID Commissioning Event ClientThe client makes use of the SIDCommissioningEvent method.
ClientOPENSCS SID Destroying Event ClientThe client makes use of the SIDDestroyingEvent method.
ClientOPENSCS SID Shipping Event ClientThe client makes use of the SIDShippingEvent method.
ClientOPENSCS SID Inspecting Event ClientThe client makes use of the SIDInspectingEvent method.
ClientOPENSCS SID Decommissioning Event ClientThe client makes use of the SIDDecommissioningEvent method.
ClientOPENSCS Packing Event ClientThe client makes use of the AggregationPackingEvent method.
ClientOPENSCS Unpacking Event ClientThe client makes use of the AggregationUnpackingEvent method.
ClientOPENSCS EPCIS File Transfer ClientThe client makes use of the EPCIS object.

7.4 Profiles and Facets

Profiles are named groupings of Conformance Units. Facets are Profiles that will be combined with other Facets or Profiles to define the complete functionality of an OPC UA Server or Client. The following tables specify the Profiles and Facets available for components (physical or virtual) that implement the OPEN-SCS PSS specification.

Some Conformance Units. Facets and Profiles may not be implemented by all conformant products. Such optional functionality is indicated in the Mandatory/Optional columns in the tables in this clause. If a product chooses to implement functionality indicated as optional, it must be implemented to conform to the chosen optional Conformance Unit, Facet or Profile.

7.4.1 OPENSCS Facets

The following sub-clauses define OPENSCS Facets that, when implemented, are used to add additional functionality to the basic OPENSCS functionality.

7.4.1.1 OPENSCS Security Server Facet

The OPENSCS Security Server Facet defined in Table 72 includes ConformanceUnits for Servers that are not included in other OPC UA defined Facets and Profiles. This Facet is required to meet the security requirements of OPENSCS.

Table 72 – OPENSCS Security Server Facet Definition
Security Conformance Unit Defined in Optional / Mandatory
OPC UA Authority Profile OPC 10000-7 M
Security Time Synch – NTP / OS Based support OPC 10000-7 M
Security Administration OPC 10000-7 M
Security Role Server Restrict Applications OPC 10000-7 M
Security Role Server Restrict Endpoints OPC 10000-7 M
Security Role Server Role Permissions OPC 10000-7 M
Security Role Server Authorization OPC 10000-7 M
7.4.1.1.1 OPENSCS Server Mandatory Authentication

OPENSCS security requirements mandate that the session shall always be authenticated. The use of endpoints enabling the security policy SECURITY_POLICY_NONE is not allowed.

7.4.1.2 OPENSCS Security Client Facet

The OPENSCS Security Client Facet defined in Table 73 includes Conformance Units for Clients that are not included in other OPC UA defined Facets and Profiles. This Facet is required to meet the security requirements of OPENSCS.

Table 73 – OPENSCS Security Client Facet Definition
Security Conformance Unit Defined in Optional / Mandatory
OPC UA Authority Profile OPC 10000-7 M
Security Time Synch – NTP / OS Based support OPC 10000-7 M
Security Default Application Instance Certificate OPC 10000-7 M
Security Policy Required OPC 10000-7 M
Authorization Service Client OPC 10000-7 M
7.4.1.2.1 OPENSCS Client Mandatory Authentication

OPENSCS security requirements mandate that the session shall always be authenticated. The use of the security policy SECURITY_POLICY_NONE is not allowed.

7.4.2 OPENSCS Server Profiles

7.4.2.1 OPENSCS Base Server Profile

Table 74 defines a Profile for the minimum functionality necessary for a component that conforms to the functionality of an OPENSCS server using the OPC UA Client/Server Interface.

Table 74 – OPENSCS Base Server Profile Definition
Server Facets and Profiles Defined In Optional / Mandatory
Standard 2017 UA Server Profile . OPC 10000-7 M
Base Server Behaviour Facet . OPC 10000-7 M
Sessionless Server Facet . OPC 10000-7 M
Documentation Server Facet . OPC 10000-7 M
Standard DataChange Subscription 2017 Server Facet . OPC 10000-7 M
Data Access Server Facet . OPC 10000-7 M
Auditing Server Facet . OPC 10000-7 M
Address Space Notifier Server Facet . OPC 10000-7 M
Security Facets
Security User Access Control Base . OPC 10000-7 M
Security Time Synchronization . OPC 10000-7 M
Best Practice – Audit Events . OPC 10000-7 M
Best Practice – Random Numbers . OPC 10000-7 M
Best Practice – Timeouts . OPC 10000-7 M
Best Practice – Administrative Access . OPC 10000-7 M
Best Practice – Strict Message Handling . OPC 10000-7 M
SecurityPolicy [A] - Aes128-Sha256-RsaOaep . OPC 10000-7 M
SecurityPolicy [B] – Basic256Sha256 . OPC 10000-7 M
User Token – JWT Server Facet . OPC 10000-7 M
User Role Management Server Facet . OPC 10000-7 M
Global Certificate Management Server Facet . OPC 10000-7 M
OPENSCS Security Server Facet 7.4.1.1 M
Authorization Service Server Facet . OPC 10000-7 M
7.4.2.2 Aggregation Event Manager Server Profile

Table 75 defines the profile facets and conformance units for an Aggregation Event Manager Server.

Table 75 – Aggregation Event Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS Packing Event 7.3.2 M
OPENSCS Unpacking Event 7.3.2 M
7.4.2.3 Allocated Serial Number Manager Server Profile

Table 76 defines the profile facets and conformance units for an Allocated Serial Number Manager Server.

Table 76 – Allocated Serial Number Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS Request Allocated 7.3.2 M
OPENSCS To Allocated 7.3.2 M
7.4.2.4 Unallocated Serial Number Manager Server Profile

Table 77 defines the profile facets and conformance units for an Unallocated Serial Number Manager Server.

Table 77 – Unallocated Serial Number Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS Request Unallocated 7.3.2 M
OPENSCS Return Allocated 7.3.2 M
OPENSCS To Unallocated 7.3.2 M
7.4.2.5 Unassigned Serial Number Manager Server Profile

Table 78 defines the profile facets and conformance units for an Unassigned Serial Number Manager Server.

Table 78 –Unassigned Serial Number Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS Request Unassigned 7.3.2 M
OPENSCS Return Unallocated 7.3.2 M
7.4.2.6 Print and Commission Manager Server Profile

Table 79 defines the profile facets and conformance units for a Print and Commission Manager Server.

Table 79 – Print and Commission Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS To Encoded 7.3.2 M
7.4.2.7 Serial Number Event Manager Server Profile

Table 80 defines the profile facets and conformance units for a Serial Number Event Manager Server.

Table 80 – Serial Number Event Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS SNInvalidating Event 7.3.2 M
7.4.2.8 Label Event Manager Server Profile

Table 81 defines the profile facets and conformance units for a Label Event Manager Server.

Table 81 – Label Event Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS Label Encoding Event 7.3.2 M
OPENSCS Label Invalidating Event 7.3.2 M
OPENSCS Label Inspecting Event 7.3.2 M
OPENSCS Label Sampling Event 7.3.2 M
7.4.2.9 SID Event Manager Server Profile

Table 82 defines the profile facets and conformance units for a SID Event Manager Server.

Table 82 – SID Event Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS SID Commissioning Event 7.3.2 M
OPENSCS SID Destroying Event 7.3.2 M
OPENSCS SID Shipping Event 7.3.2 M
OPENSCS SID Inspecting Event 7.3.2 M
OPENSCS SID Decommissioning Event 7.3.2 M
7.4.2.10 SID Class Manager Server Profile

Table 83 defines the profile facets and conformance units for a SID Class Manager Server.

Table 83 – SID Class Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS SID Class Manager 7.3.2 M
7.4.2.11 EPCIS Event Manager Server Profile

Table 83 defines the profile facets and conformance units for an EPCIS Class Manager Server.

Table 84 – EPCIS Event Manager Server Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Server Facet 7.4.2 M
OPENSCS File Transfer 7.3.2 M

7.4.3 OPENSCS Client Profiles

7.4.3.1 OPENSCS Base Client Profile

The OPENSCS Client Profile defined in Table 85 includes Facets and Profiles that define the minimum functionality necessary for a component that conforms to the functionality of an OPENSCS client using the OPC UA Client/Server Interface.

Table 85 – OPENSCS Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
Standard UA Client 2017 Profile . OPC 10000-7 M
Documentation – Client . OPC 10000-7 M
Security Facets
OPEN-SCS Security Client Facet 7.4.1.2 M
User Role Management Client Facet . OPC 10000-7 M
Security Time Synchronization . OPC 10000-7 M
Best Practice – Random Numbers . OPC 10000-7 M
Best Practice – Timeouts . OPC 10000-7 M
Best Practice – Administrative Access . OPC 10000-7 M
Best Practice – Strict Message Handling . OPC 10000-7 M
SecurityPolicy [A] - Aes128-Sha256-RsaOaep . OPC 10000-7 M
SecurityPolicy [B] – Basic256Sha256 . OPC 10000-7 M
User Token – JWT Client Facet . OPC 10000-7 M
Global Certificate Management Client Facet . OPC 10000-7 M
User Role Management Client Facet . OPC 10000-7 M
7.4.3.2 Aggregation Event Manager Client Profile

Table 86 defines the profile facets and conformance units for an Aggregation Event Manager Client.

Table 86 – Aggregation Event Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS Packing Event Client 7.3.3 O
OPENSCS Unpacking Event Client 7.3.3 O
7.4.3.3 Allocated Serial Number Manager Client Profile

Table 87 defines the profile facets and conformance units for an Allocated Serial Number Manager Client.

Table 87 – Allocated Serial Number Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS SN to Allocated Client 7.3.3 M
7.4.3.4 Unallocated Serial Number Manager Client Profile

Table 88 defines the profile facets and conformance units for an Unallocated Serial Number Manager Client.

Table 88 – Unallocated Serial Number Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS SN to Unallocated Client 7.3.3 M
7.4.3.5 Unassigned Serial Number Manager Client Profile

Table 91 defines the profile facets and conformance units for an Unassigned Serial Number Manager Client.

Table 89 – Unassigned Serial Number Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS Request Unassigned Client 7.3.3 O
OPENSCS Return Unallocated Client 7.3.3 O
7.4.3.6 Print and Commission Manager Client Profile

Table 90 defines the profile facets and conformance units for a Print and Commission Manager Client.

Table 90 – Print and Commission Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS SN to Encoded 7.3.3 O
7.4.3.7 Serial Number Event Manager Client Profile

Table 91 defines the profile facets and conformance units for a Serial Number Event Manager Client.

Table 91 – Serial Number Event Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS SNInvalidating Event Client 7.3.3 M
7.4.3.8 Label Event Manager Client Profile

Table 92 defines the profile facets and conformance units for a LabelEvent Manager Client.

Table 92 – Label Event Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS Label Encoding Event Client 7.3.3 O
OPENSCS Label Invalidating Event Client 7.3.3 O
OPENSCS Label Sampling Event Client 7.3.3 O
OPENSCS Label Inspecting Event Client 7.3.3 O
7.4.3.9 SID Event Manager Client Profile

Table 93 defines the profile facets and conformance units for a SID Event Manager Client.

Table 93 – SID Event Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS SID Commissioning Event Client 7.3.3 O
OPENSCS SID Destroying Event Client 7.3.3 O
OPENSCS SID Shipping Event Client 7.3.3 O
OPENSCS SID Inspecting Event Client 7.3.3 O
OPENSCS SID Decommissioning Event Client 7.3.3 O
7.4.3.10 EPCIS Event Manager Client Profile

Table 94 defines the profile facets and conformance units for an EPCIS Event Manager Client.

Table 94 – EPCIS Event Manager Client Profile Definition
Facets and Profiles Defined in Optional / Mandatory
OPENSCS Base Client Profile 7.4.3.1 M
OPENSCS EPCIS File Transfer Client 7.3.3 O

Annex A (normative): OPENSCS Namespace and mappings

A.1 Namespace and identifiers for OPENSCS-SER Information Model

This appendix defines the numeric identifiers for all of the numeric NodeIds defined in this document. 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 <OPENSCSSIDClassPropertyDataType> ObjectType Node which has the <PropertyValue> Property. The Name for the <PropertyValue> InstanceDeclaration within the <type> declaration is: OPENSCSSIDClassPropertyDataType_PropertyValue.

The NamespaceUri for all NodeIds defined here is http://opcfoundation.org/OPENSCS-SER/

Note that NamespaceURIs are NOT live URLs.

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

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

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

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

The Information Model Schema released with this version of the document can be found here:

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

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

Annex B OPC UA Method result Codes

B.1 Method Result Codes

The OPC UA Method Result codes, from OPC 10000-4, are copied in Table 95.

Table 95 – OPC UA Method Result Codes
Result Code Description
Bad_MethodInvalidSee OPC 10000-4 for the description of this result code. (The method id does not refer to a method for the specified object.)
Bad_NotImplementedSee OPC 10000-4 for the description of this result code. (Requested operation is not implemented.)
Bad_NodeIdUnknownSee OPC 10000-4 for the description of this result code. (Used to indicate that the specified object is not valid)
Bad_ArgumentsMissingSee OPC 10000-4 for the description of this result code (The client did not specify all of the input arguments for the method.)
Bad_TooManyArgumentsSee OPC 10000-4 for the description of this result code (The client specified more input arguments than defined for the method.)
Bad_InvalidArgumentSee OPC 10000-4 for the description of this result code. (Used to indicate in the operation level results that one or more of the input arguments are invalid. The inputArgumentResults contain the specific status code for each invalid argument.)
Bad_TypeMismatchSee OPC 10000-4 for the description of this result code. (Used to indicate that an input argument does not have the correct data type.)
Bad_OutOfRangeSee OPC 10000-4 for the description of this result code. (Used to indicate that an input argument is outside the acceptable range.)
Bad_TimeoutSee OPC 10000-4 for the description of this result code. (The operation timed out. – the server did not respond to the command)
Bad_InvalidStateSee OPC 10000-4 for the description of this result code. (The operation cannot be completed because the object is closed, uninitialized or in some other invalid state.)

Annex C (Normative) EPCIS File Transfer Format

C.1 Reference documents

EPCIS documents shall conform with GS1's EPCIS and Core Business Vocabulary (CBV) standards (i.e., ISO/IEC 19987 and 19988, respectively).

Additional guidance is provided by GS1's global, cross-sector EPCIS and CBV Implementation Guideline, as well as by the pharmaceutical supply chain-specific, GS1 US implementation guideline, “Applying GS1 Standards for DSCSA and Traceability”.

C.2 Additional Syntax Rules

In addition, the following rules apply to transferred files:

The transferred file shall use UTF-8 encoding.

GS1 based identifiers shall be expressed as EPC Pure Identity URI encodings, as specified in GS1's EPC Tag Data Standard (TDS), specifically:

SGTIN EPC URI for trade items

Example:

urn:epc:id:sgtin: 0614141.112345.000000000400

SSCC EPC URI for logistic units

SGLN EPC URI for read points and business locations

Non-GS1 identifiers (e.g. country or region-specific codes, or communication within Level 2 and Level 3 that use company specific identification) shall follow CBV provisions for:

“General Considerations for HTTP URLs as User Vocabulary elements”,

“HTTP URLs for Instance-level identification of objects” and

“HTTP URLs for Location identifiers”

which are normatively defined in the GS1 Core Business Vocabulary Standard, Chapter 8 User Vocabularies.

Example (non-GS1 instance-level object identifier:

https://MyCountryDomain.eu/ProductCode/obj/8675ABC556

Example (non-GS1 location identifier):

https://local.com/HEX/loc/3114257BF5A13B8790000000

All serialized identifiers (i.e., SGTIN and SSCC), including but not limited to those appearing in shipping and packing events, shall first have been captured in a commissioning event (i.e., an EPCIS Object Event with action "ADD", business_step "urn:epcglobal:cbv:bizstep:commissioning" and disposition "urn:epcglobal:cbv:bizstep:active".

Aggregation shall be used to capture the relationship between each serialized parent and its immediate children (i.e., an EPCIS Aggregation Event with action "ADD" and business_step "urn:epcglobal:cbv:bizstep:packing"); each additional (nested) level of packaging hierarchy (i.e., grandparents and great-grandparents of the lowest registered level) must be expressed in an additional, dedicated EPCIS Aggregation Event.

Each shipped unit shall always be identified as a logistic unit and captured by means of its SSCC upon dispatch (i.e. an EPCIS Object Event with action "OBSERVE", business step "shipping" and disposition "in_transit").

Each individual hierarchical level packed within this logistic unit shall have been captured in an earlier EPCIS Aggregation Event.

Each commissioning event shall include as many SGTINs as practical; common sense shall be leveraged in conjunction with dialogue between communicating partners to establish an agreed approach to managing file sizes.

The maximum number of SGTINs must be agreed between communicating partners during design or change management of a system and should be represented in the properties MaxEPCISObjectEventSIDs and MaxEPCISAggregationEvents of the OPENSCSEventManagerObjectType.

While timestamping of individual EPCs (i.e., in individual EPCIS events) is to be avoided to avoid unnecessary bloating of payload, the opposite extreme of including an entire batch run in one event might cause file size exceptions.

Strictly enforce GS1 EPCIS chronology sequence standard to be upheld for any single EPC, for example:

For any single EPC, the Commission time must be before the Aggregation time which must be before the Shipping time.

The Aggregation timer of bottles into a case must be before the Aggregation of the case into a pallet.

Any single EPC cannot share the same timestamp in 2 separate events.

When possible do not include custom EPCIS event extensions as they increase file size. Where extensions cannot be avoided, these shall be implemented in compliance with the EPCIS standard's extensibility mechanism, including but not limited to declaration of the applicable vendor/user namespace.

Bibliography

[1] OPC 10000-2, OPC Unified Architecture - Part 2: Security Model

Agreement of Use

© 2020 OPC Foundation

COPYRIGHT RESTRICTIONS

This document is provided "as is" by the OPC Foundation and OPEN-SCS.

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

OPC Foundation members, OPEN-SCS Member and any non-members are prohibited from copying and redistributing this specification. All copies must be obtained on an individual basis, directly from the OPC Foundation Web site http://www.opcfoundation.org.

PATENTS

The attention of adopters is directed to the possibility that compliance with or adoption of OPC specifications may require use of an invention covered by patent rights. OPC shall not be responsible for identifying patents for which a license may be required by any OPC specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OPC 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 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 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 is the OPC Foundation. 16101 N. 82nd Street, Suite 3B, Scottsdale, AZ, 85260-1830

COMPLIANCE

The OPC Foundation and OPEN-SCS shall at all times be the only 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. 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 the OPC Foundation and OPEN-SCS. 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 the State of Minnesota, excluding its choice or law rules.

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.