https://opcfoundation.org/wp-content/uploads/2016/12/Web-Open-SCS-Logo-150x150.png

OPC UA Companion-Specification

OPC 30260

 

OPC UA for OPEN-SCS
Serialization Object Model

 

 

Final V1.02.03

2020-10-25

 

 

 

 

 

 


                     

Standard Type:

OPC UA Information Model For OPEN-SCS

 

Comments:

 

 

 

 

Title:

OPC UA for OPEN-SCS

Date:

2020-10-25

 

 

 

 

Version:

Final V1.02.03

Software:

MS-Word

Editors:

Pipero, Costantino

Brandl, Dennis

 

Source:

OPC 30260 - UA CS for OpenSCS V1 Final.docx

 

 

 

 

 

Owner:

OPEN-SCS

Status:

Final

 

 

 

 

 

 

Document History

 

Version

Date

Reason

COMMENTS

Clause/
Subclause

Proposed change

V1.02.03

October 29, 2020

Version 1 Final

Changed to match the naming convention defined in OPC 11021 and corrected typos found using validator

 

 


 


 

CONTENTS

Page

 

 

1       Scope. 9

2       Normative References 9

3       Terms, definitions and conventions 9

3.1            Overview. 9

3.2            OPC UA for OpenSCS Terms. 9

3.3            Abbreviations and symbols. 10

3.4            OPC UA Notation. 10

4       Concept 11

4.1            OPEN-SCS Overview. 11

4.1.1             Serial Number Lifecycle. 11

4.1.2             Serialization Activities. 12

4.1.3             Serial Number Information Model 13

4.1.4             Serial Number State and Event Model 14

4.1.5             Serialization Functions 17

4.2            OPC UA Summary. 17

4.2.1             Introduction. 17

4.2.2             What is OPC UA?. 18

4.2.3             Basics of OPC UA. 18

4.2.4             Information Modelling in OPC UA. 19

5       Modelling Approach of OPEN-SCS. 23

6       OPEN-SCS Data Representation Model 23

6.1            General 23

6.2            Instance AddressSpace. 23

6.3            ObjectTypes. 24

6.3.1             OPENSCSPoolManagerObjectType. 24

6.3.2             OPENSCSEventManagerObjectType. 33

6.3.3             OPENSCSAggregationManagerObjectType. 41

6.3.4             OPENSCSSIDClassObjectType. 44

6.4            DataTypes 45

6.4.1             OPENSCSAggregationDataType 45

6.4.2             OPENSCSCollectionDataType. 45

6.4.3             OPENSCSEventStreamArgumentDataType. 46

6.4.4             OPENSCSKeyValueDataType. 47

6.4.5             OPENSCSLabelDataType. 47

6.4.6             OPENSCSLabelCollectionDataType. 47

6.4.7             OPENSCSLabelPropertyDataType. 48

6.4.8             OPENSCSReturnEnum. 48

6.4.9             OPENSCSSerialNumberStateEnum. 49

6.4.10          OPENSCSSIDClassPropertyDataType. 49

6.4.11          OPENSCSSNCollectionDataType. 50

6.5            Product Master Data 50

7       Profiles and Namespaces 51

7.1            Profile Overview. 52

7.2            Namespace Metadata. 54

7.3            Conformance Units 55

7.3.1             Overview. 55

7.3.2             Server Conformance Units 55

7.3.3             Client Conformance Units. 56

7.4            Profiles and Facets 56

7.4.1             OPENSCS Facets 56

7.4.2             OPENSCS Server Profiles 57

7.4.3             OPENSCS Client Profiles 60

Annex A (normative): OPENSCS Namespace and mappings 63

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

Annex B OPC UA Method result Codes 64

B.1           Method Result Codes 64

Annex C (Normative) EPCIS File Transfer Format 65

C.1           Reference documents. 65

C.2           Additional Syntax Rules. 65

Bibliography. 67

 

 


 

Figures

 

Figure 1 – Lifecycle Stages of a Serial Number......................................................... 12

Figure 2 – Activities in Serialization....................................................................... 12

Figure 3 – Serialization Information Model............................................................... 14

Figure 4 – Serial Number State and Event Model...................................................... 15

Figure 5 – The Scope of OPC UA within an Enterprise................................................ 18

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

Figure 7 – The Relationship between Type Definitions and Instances............................. 20

Figure 8 – Examples of References between Objects................................................. 21

Figure 9 – The OPC UA Information Model Notation................................................... 21

Figure 10 – OPENSCS Object Instance Overview...................................................... 24

Figure 11 – Pool Manager Methods and Data........................................................... 25

Figure 12 – Event Manager Methods and Data......................................................... 33

Figure 13 – EPCIS File Transfer Example................................................................ 35

Figure 14 – Aggregation Manager Methods and Data................................................. 42

Figure 15 – OPENSCS SID Class Data................................................................... 44

Figure 16 – Profile Overview................................................................................ 53

 


Tables

Table 1 – Serial Number State Definitions 15

Table 2 – Serial Number Events 16

Table 3 – OPEN-SCS PSS Function to OPC UA Method Mapping. 17

Table 4 – OPENSCSPoolManagerObjectType AddressSpace Definition. 26

Table 5 – SNRequestUnassigned Method Arguments. 27

Table 6 – SNRequestUnassigned Method AddressSpace Definition. 27

Table 7 – SNRequestUnallocated Method Arguments 28

Table 8 – SNRequestUnallocated Method AddressSpace Definition. 28

Table 9 – SNRequestAllocated Method Arguments 28

Table 10 – SNRequestAllocated Method AddressSpace Definition. 29

Table 11 – SNReturnUnallocated Method Arguments 29

Table 12 – SNReturnUnallocated Method AddressSpace Definition. 30

Table 13 – SNReturnAllocated Method Arguments 30

Table 14 – SNReturnAllocated Method AddressSpace Definition. 30

Table 15 – SNtoUnallocated Method Arguments 31

Table 16 – SNtoUnallocated Method AddressSpace Definition. 31

Table 17 – SNtoAllocated Method Arguments 31

Table 18 – SNtoAllocated Method AddressSpace Definition. 31

Table 19 – SNtoEncoded Method Arguments 32

Table 20 – SNtoEncoded Method AddressSpace Definition. 32

Table 21 – OPENSCSEventManagerObjectType AddressSpace Definition. 34

Table 22 – SNInvalidatingEvent Method Arguments 35

Table 23 – SNInvalidatingEvent Method AddressSpace Definition. 35

Table 24 – LabelsEncodingEvent Method Arguments 36

Table 25 – LabelsEncodingEvent Method AddressSpace Definition. 36

Table 26 – LabelsScrappingEvent Method Arguments 36

Table 27 – LabelsScrappingEvent Method AddressSpace Definition. 37

Table 28 – LabelsInspectingEvent Method Arguments 37

Table 29 – LabelsInspectingEvent Method AddressSpace Definition. 37

Table 30 – LabelsInspectingEvent Method Arguments 38

Table 31 – LabelsInspectingEvent Method AddressSpace Definition. 38

Table 32 – SIDCommissioningEvent Method Arguments 38

Table 33 – SIDCommissioningEvent Method AddressSpace Definition. 39

Table 34 – SIDDestroyingEvent Method Arguments. 39

Table 35 – SIDDestroyingEvent Method AddressSpace Definition. 39

Table 36 – SIDShippingEvent Method Arguments. 40

Table 37 – SIDShippingEvent Method AddressSpace Definition. 40

Table 38 – SIDInspectingEvent Method Arguments. 40

Table 39 – SIDInspectingEvent Method AddressSpace Definition. 41

Table 40 – SIDDecommissioningEvent Method Arguments. 41

Table 41 – SIDDecommissioningEvent Method AddressSpace Definition. 41

Table 42 – OPENSCSAggregationManagerObjectType AddressSpace Definition. 42

Table 43 – AggregationPackingEvent Method Arguments 42

Table 44 – AggregationPackingEvent Method AddressSpace Definition. 43

Table 45 – AggregationUnpackingEvent Method Arguments 43

Table 46 – AggregationUnpackingEvent Method AddressSpace Definition. 43

Table 47 – OPENSCSSIDClassObjectType. 44

Table 48 – OPENSCSCollectionDataType Structure. 45

Table 49 – OPENSCSAggregationDataType AddressSpace Definition. 45

Table 50 – OPENSCSCollectionDataType Structure. 45

Table 51 – OPENSCSCollectionDataType AddressSpace Definition. 46

Table 52 – OPENSCSEventStreamArgumentDataType Structure. 46

Table 53 – OPENSCSEventStreamArgumentDataType AddressSpace Definition. 46

Table 54 – OPENSCSKeyValueDataType Structure. 47

Table 55 – OPENSCSKeyValueDataType AddressSpace Definition. 47

Table 56 – OPENSCSLabelDataType Structure. 47

Table 57 – OPENSCSSNLabelDataType AddressSpace Definition. 47

Table 58 – OPENSCSLabelCollectionDataType Structure 47

Table 59 – OPENSCSLabelCollectionDataType AddressSpace Definition. 48

Table 60 – OPENSCSLabelPropertyDataType Structure. 48

Table 61 – OPENSCSLabelPropertyDataType AddressSpace Definition. 48

Table 62 – OPENSCSReturnEnum values 48

Table 63 – OPENSCSSerialNumberStateEnum values 49

Table 64 – OPENSCSSIDClassPropertyDataType Structure. 49

Table 65 - OPENSCSSIDClassPropertyDataType AddressSpace Definition. 50

Table 66 – OPENSCSSNCollectionDataType AddressSpace Definition. 50

Table 67 – Profile and Facets Overview. 51

Table 68 – Profile Overview. 52

Table 69 – NamespaceMetadata Object for this Specification. 55

Table 70 – OPENSCS Server Information Model 55

Table 71 – OPENSCS Client Information Model 56

Table 72 – OPENSCS Security Server Facet Definition. 57

Table 73 – OPENSCS Security Client Facet Definition. 57

Table 74 – OPENSCS Base Server Profile Definition. 57

Table 75 – Aggregation Event Manager Server Profile Definition. 58

Table 76 – Allocated Serial Number Manager Server Profile Definition. 58

Table 77 – Unallocated Serial Number Manager Server Profile Definition. 58

Table 78 –Unassigned Serial Number Manager Server Profile Definition. 59

Table 79 – Print and Commission Manager Server Profile Definition. 59

Table 80 – Serial Number Event Manager Server Profile Definition. 59

Table 81 – Label Event Manager Server Profile Definition. 59

Table 82 – SID Event Manager Server Profile Definition 59

Table 83 – SID Class Manager Server Profile Definition. 60

Table 84 – EPCIS Event Manager Server Profile Definition. 60

Table 85 – OPENSCS Client Profile Definition. 60

Table 86 – Aggregation Event Manager Client Profile Definition. 61

Table 87 – Allocated Serial Number Manager Client Profile Definition. 61

Table 88 – Unallocated Serial Number Manager Client Profile Definition. 61

Table 89 – Unassigned Serial Number Manager Client Profile Definition. 61

Table 90 – Print and Commission Manager Client Profile Definition. 61

Table 91 – Serial Number Event Manager Client Profile Definition 62

Table 92 – Label Event Manager Client Profile Definition. 62

Table 93 – SID Event Manager Client Profile Definition. 62

Table 94 – EPCIS Event Manager Client Profile Definition. 62

Table 95 – OPC UA Method Result Codes 64

 


 

 

OPEN-SCS / OPC FOUNDATION

____________

 

UNIFIED ARCHITECTURE

FOREWORD

This specification is the specification for developers of OPC UA applications. The specification is a result of an analysis and design process completed by the OPEN-SCS member organizations to develop a standard interface to facilitate the development of applications by multiple vendors that shall inter-operate seamlessly together. 

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 TUhttp://www.opcfoundation.orgUT.

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.

                                                                               

                                                                               


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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

DA              Data Access

EPC            Electronic Product Code

AC              Alarm and Condition

HA              Historical access

PLC            Programmable Logic Controllers

DCS            Distributed Control Systems

OCS            Open 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:

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

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

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

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

 

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

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

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

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

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

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

Note:    The model above is different from the Version 1 PSS model, through the addition of a set of optional Serial Number Properties for each Serial Number. This was added to handle the case, such as in Russia, where there is optional additional information associated with each Serial Number which is exchanged information.  See Section 6.4.2.

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. 

Note 1   The state is managed is a distributed manner, no single system provides the state of the serial numbers. The events and methods defined in this document provide the means for applications to manage their internal state representation. 

Note 2   All Serial Numbers in a Serial Number Collection only contain Serial Numbers with the same state.

Note 3   All Serial Numbers in a Label Collection only contain Serial Numbers with the same state and ancillary information.

Note 4   Generally the events that record a transition can come from any state or substate.

 

Figure 4 – Serial Number State and Event Model

 

Each Serial Number state is defined in Table 1.

 

Table 1 – Serial Number State Definitions

SID State

Description

Examples

Unassigned

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

Unallocated

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

Allocated

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

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

Encoded

The Serial Number has been written to a barcode or RFID tag, but not yet commissioned.

An industrial printer prints a label.

Label Sampled

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

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

Commissioned

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

Sampled

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

Destroyed

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

Released

The 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

Event

Description

provisioning

Unassigned Serial Numbers were made available for use in eventual encoding and commissioning.

sn_returning

Unallocated Serial Numbers may be returned to the Unassigned state

sn_allocating

Unallocated Serial Numbers are to be assigned for use in a packaging run

sn_deallocating

Unused allocated Serial Numbers may be returned to the unallocated state.

sn_invalidating

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

Written barcode or RFID was read to address potential physical or documentation defects.

label_sampling

Written barcode or RFID is pulled from production and retained as a sample for later testing or inspection.

label_scrapping

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

inspecting

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

decommissioning

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

OPC UA Method

Method Use

Serial Number Request Unassigned

SNRequestUnassigned

Pull of information from a pool management server

Serial Number Request Unallocated

SNRequestUnallocated

Pull of information from a pool management server

Serial Number Request Allocated

SNRequestAllocated

Pull of information from a pool management server

Serial Number Return Unallocated

SNReturnUnallocated

Push of information to a pool management server

Serial Number Return Allocated

SNReturnAllocated

Push of information to a pool management server

Serial Number To Unallocated

SNtoUnallocated

Push of information to a pool management server

Serial Number To Allocated

SNtoAllocated

Push of information to a pool management server

Serial Number to Encoded

SNtoEncoded

Push of information to a pool management server

Serial Number Invalidating Event

SNInvalidatingEvent

Push of information to an event management server

Label Encoding Event

LabelsEncodingEvent

Push of Information to an event management server

Label Scrapping Event

LabelsScrappingEvent

Push of information to an event management server

Label Inspecting Event

LabelsInspectingEvent

Push of information to an event management server

Label Sampling Event

LabelsSamplingEvent

Push of information to an event management server

SID Commissioning Event

SIDCommissioningEvent

Push of information to an event management server

SID Destroying Event

SIDDestroyingEvent

Push of information to an event management server

SID Shipping Event

SIDShippingEvent

Push of information to an event management server

SID Inspecting Event

SIDInspectingEvent

Push of information to an event management server

SID Decommissioning Event

SIDDecommissioningEvent

Push of information to an event management server

Aggregation Packing Event

AggregationPackingEvent

Push of information to an aggregation management server

Aggregation Unpacking Event

AggregationUnpackingEvent

Push 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

BrowseName

OPENSCSPoolManagerObjectType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Method

SNRequestUnassigned

 

See 6.3.1.2

O

0:HasComponent

Method

SNRequestUnallocated

 

See 6.3.1.3

O

0:HasComponent

Method

SNRequestAllocated

 

See 6.3.1.4

O

0:HasComponent

Method

SNReturnUnallocated

 

See 6.3.1.5

O

0:HasComponent

Method

SNReturnAllocated

 

See 6.3.1.6

O

0:HasComponent

Method

SNtoUnallocated

 

See 6.3.1.7

O

0:HasComponent

Method

SNtoAllocated

 

See 6.3.1.8

O

0:HasComponent

Method

SNtoEncoded

 

See 6.3.1.9

O

0:HasProperty

Variable

PoolSelectionCriteria

OPENSCSKeyValueDataType[]

0:PropertyType

M

0:HasProperty

Variable

SNFormat

0:String[]

0:PropertyType

M

0:HasProperty

Variable

MaxSNRequestable

0:UInt32

0:PropertyType

M

0:HasProperty

Variable

MaxSNReturnable

0:UInt32

0:PropertyType

M

0:HasProperty

Variable

MaxSNPushable

0:UInt32

0:PropertyType

M

 

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

Argument

Description

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.

ReturnStatus

Returns the status of the method execution.

SNCollection

Contains 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

BrowseName

SNRequestUnassigned

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

 

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

SNCollectionID

See 6.3.1.2.

Count

See 6.3.1.2.

SNFormat

See 6.3.1.2.

PoolSelectionCriteria

See 6.3.1.2.

RequestToken

See 6.3.1.2.

ReturnStatus

See 6.3.1.2.

SNCollection

See 6.3.1.2.

ReturnedRequestToken

See 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

BrowseName

SNRequestUnallocated

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

SNCollectionID

See 6.3.1.2.

Count

See 6.3.1.2.

SNFormat

See 6.3.1.2.

PoolSelectionCriteria

See 6.3.1.2.

RequestToken

See 6.3.1.2.

ReturnStatus

See 6.3.1.2.

SNCollection

See 6.3.1.2.

ReturnedRequestToken

See 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

BrowseName

SNRequestAllocated

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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.

ReturnStatus

Returns 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

BrowseName

SNReturnUnallocated

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

SNCollection

See 6.3.1.5.

PoolSelectionCriteria

See 6.3.1.5.

SNFormat

See 6.3.1.5.

ReturnStatus

See 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

BrowseName

SNReturnAllocated

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

 

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

SNCollection

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

ReturnStatus

Returns 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

BrowseName

SNtoUnallocated

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

SNCollection

See 6.3.1.7.

PoolSelectionCriteria

See 6.3.1.7.

SNFormat

See 6.3.1.7.

ReturnStatus

See 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

BrowseName

SNtoAllocated

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

SNCollection

Identifies the Collection with Serial Numbers.

PoolSelectionCriteria

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

ReturnStatus

Returns 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

BrowseName

SNtoEncoded

IsAbstract

True

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

BrowseName

OPENSCSEventManagerObjectType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Object

EPCISStream

 

TemporaryFileTransferType

Optional

0:HasComponent

Method

SNInvalidatingEvent

 

See 6.3.2.1

Optional

0:HasComponent

Method

LabelsEncodingEvent

 

See 6.3.2.3

Optional

0:HasComponent

Method

LabelsScrappingEvent

 

See 6.3.2.4.

Optional

0:HasComponent

Method

LabelsInspectingEvent

 

See 6.3.2.5.

Optional

0:HasComponent

Method

LabelsSamplingEvent

 

See 6.3.2.6.

Optional

0:HasComponent

Method

SIDCommissioningEvent

 

See 6.3.2.7.

Optional

0:HasComponent

Method

SIDDestroyingEvent

 

See 6.3.2.8.

Optional

0:HasComponent

Method

SIDShippingEvent

 

See 6.3.2.9.

Optional

0:HasComponent

Method

SIDInspectingEvent

 

See 6.3.2.10.

Optional

0:HasComponent

Method

SIDDecommissioningEvent

 

See 6.3.2.11

Optional

0:HasProperty

Variable

MaxEvents

0:UInt32

0:PropertyType

Mandatory

0:HasProperty

Variable

MaxEPCISObjectEventSIDs

0:UInt32

0:PropertyType

Mandatory

0:HasProperty

Variable

MaxEPCISaggregationEvents

0:UInt32

0:PropertyType

Mandatory

 

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[1] (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

SNCollection

Identifies the Serial Number Collection.

SNFormat

Defines the format of the serial numbers associated to the event. 

OPENSCSEventContext

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

ReturnStatus

Returns 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

BrowseName

SNInvalidatingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

Identifies the Label Collection with Serial Numbers and optional label properties.

SNFormat

Defines the format of the serial numbers associated to the event. 

OPENSCSEventContext

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

ReturnStatus

Returns 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

BrowseName

LabelsEncodingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

LabelsScrappingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

LabelsInspectingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 


 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

LabelsInspectingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

SIDCommissioningEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

SIDDestroyingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

Argument

Description

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

SIDShippingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

SIDInspectingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

LabelCollection

See 6.3.2.3

SNFormat

See 6.3.2.3

OPENSCSEventContext

See 6.3.2.3

ReturnStatus

See 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

BrowseName

SIDDecommissioningEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

BrowseName

OPENSCSAggregationManagerObjectType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Method

AggregationPackingEvent

 

See 6.3.3.1.

M

0:HasComponent

Method

AggregationUnpackingEvent

 

See 6.3.3.2.

M

0:HasProperty

Variable

MaxAggregationEvents

0:UInt32

0:PropertyType

M

 

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

AggregationElement

Specifies the parent element and the packed element collection that is to be added to the parent element.

ParentSNFormat

Defines the format of the parent Serial Numbers associated to the event. 

PackedElementSNFormat

Defines the format of the packed element Serial Numbers associated to the event. 

AggregationContext

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

ReturnStatus

Returns 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

BrowseName

AggregationPackingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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.

ParentSNFormat

See 6.3.3.1

PackedElementSNFormat

See 6.3.3.1

AggregationContext

See 6.3.3.1

ReturnStatus

See 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

BrowseName

AggregationUnpackingEvent

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

0:HasProperty

Variable

InputArguments

Argument[]

0:PropertyType

Mandatory

0:HasProperty

Variable

OutputArguments

Argument[]

0:PropertyType

Mandatory

 

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

BrowseName

OPENSCSSIDClassObjectType

IsAbstract

False

References

Node Class

BrowseName

Data Type

TypeDefinition

Other

 

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasProperty

Variable

SIDClassID

0:String

0:PropertyType

M, RO

 

0:HasProperty

Variable

SIDClassOwner

String

0:PropertyType

M, RO

 

0:HasProperty

Variable

SIDClassDescription

String

0:PropertyType

O, RO

 

0:HasProperty

Variable

SyntaxSpecification

String

0:PropertyType

M, RO

 

0:HasProperty

Variable

AllowedCharacterSet

String

0:PropertyType

M, RO

 

0:HasProperty

Variable

IntendedUse

String

0:PropertyType

O, RO

 

0:HasProperty

Variable

SIDClassProperty

OPENSCSSIDClassPropertyDataType[]

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

OPENSCSAggregationDataType

structure

 

            ParentElement

OPENSCSLabelDataType

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

            ParentElementCollection

OPENSCSLabelCollectionDataType

Identifies 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

BrowseName

OPENSCSAggregationDataType

IsAbstract

False

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

Name

Type

Description

OPENSCSCollectionDataType

structure

 

            ID

0:String

An 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:String

Additional information and description about the Collection.

            State

OPENSCSSerialNumberStateEnum

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

            AssociatedPoolID

0:String

An 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

BrowseName

OPENSCSCollectionDataType

IsAbstract

True

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

OPENSCSEventStreamArgumentDataType

structure

 

            SNFormat

0:String

The 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:String

The 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:String

The 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

BrowseName

OPENSCSEventStreamArgumentDataType

IsAbstract

False

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

Name

Type

Description

OPENSCSKeyValueDataType

structure

 

    Key

0:String

unique identifier for some item of data

    Value

0:String

data that is identified

 

Table 55 is the AddressSpace definition of an OPENSCSKeyValueDataType.

Table 55 – OPENSCSKeyValueDataType AddressSpace Definition

Attribute

Value

BrowseName

OPENSCSKeyValueDataType

IsAbstract

False

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

Name

Type

Description

OPENSCSLabelDataType

structure

 

    ID

0:String

The 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

BrowseName

OPENSCSLabelDataType

IsAbstract

False

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

Name

Type

Description

OPENSCSLabelCollectionDataType

structure

 

    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

BrowseName

OPENSCSLabelCollectionDataType

IsAbstract

False

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

OPENSCSLabelPropertyDataType

structure

 

            PropertyID

0:String

An identification of the label property.

            PropertyDescription

0:String

Additional information and description about the label property.

            PropertyValue

0:String

Defines 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

BrowseName

OPENSCSLabelPropertyDataType

IsAbstract

False

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

Undefined0

0

Undefined value, should never be seen.

NoError1

1

There were no errors in processing the method.

InvalidSerialNumberCollection2

2

The Serial Number Collection ID does not match a Serial Number Collection managed by the server.

InsufficientSerialNumbers3

3

Fewer Serial Numbers are available from the pool, then are requested.

InvalidSerialNumbersFormat4

4

The serial number format is not known or defined in the server.

InvalidRequestToken5

5

The Request Token has a value not understood by the server.

InvalidSelectionCriteria6

6

The Selection Criteria is not known or defined in the server.

UnableToAcceptSerialNumberEvents7

7

The server cannot accept Serial Number events.

UnableToAcceptLabelEvents8

8

The server cannot accept Label events.

UnableToAcceptSIDEvents9

9

The server cannot accept SID events.

UnknownAggregationSID10

10

The SID of the aggregation for packing or unpacking is unknown.

InsufficientPrivilegeToExecute11

11

The 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

Unassigned0

0

See Table 1.

Unallocated1

1

See Table 1.

Allocated2

2

See Table 1.

SNInvalid3

3

See Table 1.

Encoded4

4

See Table 1.

LabelSampled5

5

See Table 1.

LabelScrapped6

6

See Table 1.

Commissioned7

7

See Table 1.

Sampled8

8

See Table 1.

Inactive9

9

See Table 1.

Destroyed10

10

See Table 1.

Released11

11

See Table 1.

 

6.4.10    OPENSCSSIDClassPropertyDataType

The structure is defined in Table 64.

Table 64 – OPENSCSSIDClassPropertyDataType Structure

Name

Type

Description

OPENSCSSIDClassPropertyDataType

structure

 

            PropertyID

0:String

An identification of the SID Class Property.

            PropertyDescription

0:String

Additional information and description about the SID Class Property.

            PropertyValue

0:String

Defines 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

BrowseName

OPENSCSSIDClassPropertyDataType

IsAbstract

False

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

BrowseName

OPENSCSSNCollectionDataType

IsAbstract

False

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 Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/AggregationEventManager 

Aggregation Event Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/AggregationEventManager 

Allocated Serial Number Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/AllocatedSNManager 

Allocated Serial Number Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/AllocatedSNManager 

Label Event Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/LabelsEventManager 

Label Event Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/LabelsEventManager 

Print and Commission Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/PrintCommissionManager 

Print and Commission Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/PrintCommissionManager 

Serial Number Event Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/SNEventManager 

Serial Number Event Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SNEventManager 

SID Class Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SIDClasstManager 

SID Event Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/SIDEventManager 

SID Event Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SIDEventManager 

Unallocated Serial Number Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/UnallocatedSNManager 

Unallocated Serial Number Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/UnallocatedSNManager 

Unassigned Serial Number Manager Client Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/UnassignedSNManager 

Unassigned Serial Number Manager Server Profile

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/UnassignedSNManager 

OPEN-SCS Security Server Facet

OPEN-SCS

http://opcfoundation.org/UA-Profile/Server/OPEN-SCS/SecurityServer 

OPEN-SCS Security Client Facet

OPEN-SCS

http://opcfoundation.org/UA-Profile/Client/OPEN-SCS/SecurityClient 

OPEN-SCS Base Server Facet

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

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

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

EPCISStream

EPCIS Event Manager Client Profile

Write EPCIS Events in an  EPCIS file format to an EPCISStream object

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

o   and implements the Unassigned Serial Number Manager Server Profile

o   and implements the Serial Number Event Manager Server Profile

o   and implements the Label Event Manager Server Profile

o   and implements the SID Event Manager Server Profile

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

o   and implements the Unallocated Serial Number Manager Server Profile

o   and implements the Allocated Serial Number Manager Server Profile

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

o   and implements the Print and Commission Manager Server Profile

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

o   and implements the Print and Commission Manager Server Profile

o   and implements the Print and Commission Manager Client Profile

o   and implements the Aggregation Event Manager Client Profile

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

o   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

BrowseName

http://opcfoundation.org/OPENSCS-SER/

References

BrowseName

DataType

Value

0:HasProperty

NamespaceUri

String

http://opcfoundation.org/OPENSCS-SER/

0:HasProperty

NamespaceVersion

String

1.00

0:HasProperty

NamespacePublicationDate

DateTime

2019-02-04

0:HasProperty

IsNamespaceSubset

Boolean

True

0:HasProperty

StaticNodeIdTypes

IdType[]

Integer

0:HasProperty

StaticNumericNodeIdRange

NumericRange[]

0, 7000

0:HasProperty

StaticStringNodeIdPattern

String

null

 

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

Server

OPEN-SCS Base Functionality

The server supports the BaseObjectModel. This includes exposing all mandatory objects, variables and methods.

Server

OPEN-SCS SID Class Manager

The server supports the OPENSCSSIDCLASSProperty model.

Server

OPEN-SCS Request Unassigned

The server supports the SNRequestUnassigned method.

Server

OPEN-SCS Request Unallocated

The server supports the SNRequestUnallocated method.

Server

OPEN-SCS Request Allocated

The server supports the SNRequestAllocated method.

Server

OPEN-SCS Return Unallocated

The server supports the SNReturnUnallocated method.

Server

OPEN-SCS Return Allocated

The server supports the SNReturnAllocated method.

Server

OPEN-SCS To Unallocated

The server supports the SNtoUnallocated method.

Server

OPEN-SCS To Allocated

The server supports the SNtoAllocated method.

Server

OPEN-SCS To Encoded

The server supports the SNtoEncoded method.

Server

OPEN-SCS SN Invalidating Event

The server supports the SNInvalidatingEvent method.

Server

OPEN-SCS Label Encoding Event

The server supports the LabelsEncodingEvent method.

Server

OPEN-SCS Label Scrapping Event

The server supports the LabelsScrappingEvent method.

Server

OPEN-SCS Label Inspecting Event

The server supports the LabelsInspectingEvent method.

Server

OPEN-SCS Label Sampling Event

The server supports the LabelsSamplingEvent method.

Server

OPEN-SCS SID Commissioning Event

The server supports the SIDCommissioningEvent method.

Server

OPEN-SCS SID Destroyed Event

The server supports the SIDDestroyingEvent method.

Server

OPEN-SCS SID Consigned Event

The server supports the SIDShippingEvent method.

Server

OPEN-SCS SID Inspected Event

The server supports the SIDInspectingEvent method.

Server

OPEN-SCS SID Decommissioned Event

The server supports the SIDDecommissioningEvent method.

Server

OPEN-SCS Packing Event

The server supports the AggregationPackingEvent method.

Server

OPEN-SCS Unpacking Event

The server supports the AggregationUnpackingEvent method.

Server

OPEN-SCS EPCIS File Transfer

The 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

Client

OPENSCS Base Functionality Client

The Client makes use of the BaseObjectModel.   This includes exposing all mandatory objects, variables and methods.

Client

OPENSCS Request Unassigned Client

The client makes use of the SNRequestUnassigned method.

Client

OPENSCS Request Unallocated Client

The client makes use of the SNRequestUnallocated method.

Client

OPENSCS Request Allocated Client

The client makes use of the SNRequestAllocated method.

Client

OPENSCS Return Unallocated Client

The client makes use of the SNReturnUnallocated method.

Client

OPENSCS Return Allocated Client

The client makes use of the SNReturnAllocated method.

Client

OPENSCS To Unallocated Client

The client makes use of the SNtoUnallocated method.

Client

OPENSCS To Allocated Client

The client makes use of the SNtoAllocated method.

Client

OPENSCS To Encoded Client

The client makes use of the SNtoEncoded method.

Client

OPENSCS SN Invalidating Event Client

The client makes use of the SNInvalidatingEvent method.

Client

OPENSCS Label Encoding Event Client

The client makes use of the LabelsEncodingEvent method.

Client

OPENSCS Label Scrapping Event Client

The client makes use of the LabelsScrappingEvent method.

Client

OPENSCS Label Inspecting Event Client

The client makes use of the LabelsInspectingEvent method.

Client

OPENSCS Label Sampling Event Client

The client makes use of the LabeslSamplingEvent method.

Client

OPENSCS SID Commissioning Event Client

The client makes use of the SIDCommissioningEvent method.

Client

OPENSCS SID Destroying Event Client

The client makes use of the SIDDestroyingEvent method.

Client

OPENSCS SID Shipping Event Client

The client makes use of the SIDShippingEvent method.

Client

OPENSCS SID Inspecting Event Client

The client makes use of the SIDInspectingEvent method.

Client

OPENSCS SID Decommissioning Event Client

The client makes use of the SIDDecommissioningEvent method.

Client

OPENSCS Packing Event Client

The client makes use of the AggregationPackingEvent method.

Client

OPENSCS Unpacking Event Client

The client makes use of the AggregationUnpackingEvent method.

Client

OPENSCS EPCIS File Transfer Client

The 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

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

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

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

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_MethodInvalid

See OPC 10000-4 for the description of this result code. (The method id does not refer to a method for the specified object.)

Bad_NotImplemented

See OPC 10000-4 for the description of this result code. (Requested operation is not implemented.)

Bad_NodeIdUnknown

See OPC 10000-4 for the description of this result code. (Used to indicate that the specified object is not valid)

Bad_ArgumentsMissing

See OPC 10000-4 for the description of this result code (The client did not specify all of the input arguments for the method.)

Bad_TooManyArguments

See OPC 10000-4 for the description of this result code (The client specified more input arguments than defined for the method.)

Bad_InvalidArgument

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

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

See OPC 10000-4 for the description of this result code. (Used to indicate that an input argument is outside the acceptable range.)

Bad_Timeout

See OPC 10000-4 for the description of this result code. (The operation timed out. – the server did not respond to the command)

Bad_InvalidState

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

1.   The transferred file shall use UTF-8 encoding.

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

·      SGTIN[2] 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

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

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

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

6.   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").

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

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

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

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

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

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

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

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

OPC 10000-9, OPC UA Specification: Part 9 – Alarms & Conditions

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

OPC 10000-10, OPC UA Specification: Part 10 - Programs

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

OPC 10000-11, OPC Unified Architecture - Part 11: Historical Access

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

OPC 10000-13, OPC Unified Architecture - Part 13: Aggregates

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

 

 



[1] The OPEN-SCS term SID is the equivalent of the GS1 term SGTIN (Serialized Global Trade Item Number).

[2] SGTINs (Serialized Global Trade Item Number) are the EPCIS/GS1 equivalent of OPEN-SCS SIDs.