Figure1_

 

Figure3_

OPC UA Companion-Specification

OPC 10031-4

 

OPC UA for ISA-95
Part 4: Job Control

 

Release V1.00.0

2021-05-09

 

 

 

                                                                                                                                                          


 

 

Specification Type:

Industry Standard Specification

Comments:

 

 

 

 

 

Document
Number

OPC 10031-4

 

 

Title:

OPC UA for ISA-95

Part 4 :Job Control

Date:

2021-05-09

 

 

 

 

Version:

Release V1.00.0

Software:

MS-Word

Editors:

Pipero, Costantino

Brandl, Dennis

 

Source:

OPC 10031-4 - UA Companion Specification for ISA-95 Job Control V1.00.0.docx

 

 

 

 

Author:

OPEN-SCS

Status:

Release

 

 

 

 

 


 

 

CONTENTS

 

 

Page

Figures. iv

Tables. v

1       Scope. 1

2       Normative References 1

3       Terms, abbreviated terms, and conventions 1

3.1            Overview. 1

3.2            OPC UA for ISA-95 Terms. 2

3.3            Abbreviated terms 2

3.4            Conventions used in this document 2

3.4.1             Conventions for Node descriptions 2

3.4.2             NodeIds and BrowseNames 5

3.4.3             Common Attributes 6

5       ISA-95 Overview. 8

5.1            Job Order 8

5.2            Job Order Information Model 9

5.3            Job Response. 9

6       Modelling Approach of ISA-95. 11

7       ISA-95 Data Representation Model 12

7.1            General 12

7.2            ObjectTypes. 12

7.2.1             ISA95JobOrderReceiverObjectType. 12

7.2.2             ISA95JobResponseProviderObjectType. 15

7.2.3             ISA95JobResponseReceiverObjectType 17

7.3            DataTypes 18

7.3.1             ISA95EquipmentDataType. 18

7.3.2             ISA95JobOrderDataType. 19

7.3.3             ISA95JobResponseDataType. 19

7.3.4             ISA95MaterialDataType. 20

7.3.5             ISA95PersonnelDataType. 21

7.3.6             ISA95PhysicalAssetDataType. 22

7.3.7             ISA95PropertyDataType. 23

7.3.8             ISA95ParameterDataType. 23

7.3.9             ISA95ReturnEnum. 23

7.3.10          ISA95WorkMasterDataType. 24

7.3.11          ISA95JobOrderCommandEnum. 24

7.3.12          ISA95JobOrderStateEnum. 24

8       Profiles and Conformance Units 26

8.1            Conformance Units 26

8.2            Profiles. 26

8.2.1             Profile list 26

8.2.2             Server Facets. 27

8.2.3             Client Facets. 28

9       Namespaces 29

9.1            Namespace Metadata. 29

9.2            Handling of OPC UA Namespaces 30

Annex A (normative): ISA95 Job Control Namespace and mappings 31

A.1           Namespace and identifiers for ISA95 Information Model 31

Annex B OPC UA Method result Codes 32

B.1           Method Result Codes (Informative) 32

B.2           Job Order Method Return Status Codes 32

Annex C (Informative): Example Job Orders. 33

C.1           Simple Job Order 33

C.2           Job Order with Packaging Master Data. 33

Bibliography. 38

 

 


 

Figures

 

Figure 1 – Work Schedule, Work Request, and Job Orders............................................ 8

Figure 2 – Job Order Information Model.................................................................... 9

Figure 3 – Job Response Information Model............................................................. 10

Figure 4 – Job Order Receiver Object Type Methods and Data..................................... 13

Figure 5 – ISA95JobResponseProvider Methods....................................................... 15

Figure 6 – ReceiveJobOrder and RequestJobResponse Transaction Example.................. 16

Figure 7 – ISA95JobResponseReceiverObjectType.................................................... 17

Figure 8 – ReceiveJobOrder and ReceiveJobResponse Transaction Example.................. 17

 

Tables

Table 1 – Examples of DataTypes 3

Table 2 – Type Definition Table. 3

Table 3 – Examples of Other Characteristics. 4

Table 4 – <some>Type Additional References 4

Table 5 – <some>Type Additional Subcomponents 4

Table 6 – <some>Type Attribute values for child Nodes. 5

Table 7 – Common Node Attributes 6

Table 8 – Common Object Attributes 6

Table 9 – Common Variable Attributes 6

Table 10 – Common VariableType Attributes 7

Table 11 – Common Method Attributes. 7

Table 12 – ISA95JobOrderReceiverObjectType AddressSpace Definition. 13

Table 13 – ReceiveJobOrder Method Arguments. 14

Table 14 – ReceiveJobOrder Method AddressSpace Definition 14

Table 15 – ISA95JobResponseProviderObjectType AddressSpace Definition. 15

Table 16 – RequestJobResponse Method Arguments. 16

Table 17 – RequestJobResponse Method AddressSpace Definition. 16

Table 18 – ISA95JobResponseReceiverObjectType AddressSpace Definition. 17

Table 19 – ReceiveJobResponse Method Arguments 18

Table 20 – ReceiveJobResponse Method AddressSpace Definition. 18

Table 21 – ISA95EquipmentDataType Structure. 18

Table 22 – ISA95EquipmentDataType AddressSpace Definition. 18

Table 23 – ISA95JobOrderDataType Structure. 19

Table 24 – ISA95JobOrderDataType AddressSpace Definition. 19

Table 25 – ISA95JobResponseDataType Structure. 20

Table 26 – ISA95JobResponseDataType AddressSpace Definition. 20

Table 27 – ISA95MaterialDataType Structure. 21

Table 28 – ISA95MaterialDataType AddressSpace Definition 21

Table 29 – ISA95PersonnelDataType Structure. 22

Table 30 – ISA95PersonnelDataType AddressSpace Definition. 22

Table 31 – ISA95PhysicalAssetDataType Structure 22

Table 32 – ISA95PhysicalAssetDataType AddressSpace Definition. 22

Table 33 – ISA95PropertyDataType Structure. 23

Table 34 – ISA95PropertyDataType AddressSpace Definition 23

Table 35 – ISA95ParameterDataType Structure. 23

Table 36 – ISA95ParameterDataType AddressSpace Definition. 23

Table 37 – ISA95ReturnEnum values. 24

Table 38 – ISA95WorkMasterDataType Structure. 24

Table 39 – ISA95WorkMasterDataType AddressSpace Definition. 24

Table 40 – ISA95JobOrderCommandEnum values 24

Table 41 – ISA95JobOrderStateEnum values 25

Table 42 – Conformance Units for OPC 30261 ISA-95 Job Orders. 26

Table 43 – Profile URIs for OPC 30261 ISA-95 Job Orders 26

Table 44 – Profile Overview. 26

Table 45 – ISA-95 Job Control Base Server Profile. 27

Table 46 – ISA-95 Job Order Receiver Server Profile. 28

Table 47 – ISA-95 Job Response Provider Server Profile. 28

Table 48 – ISA-95 Job Response Receiver Server Profile. 28

Table 49 – ISA-95 Job Control Base Server Profile. 28

Table 50 – Job Order Receiver Client Profile Definition. 29

Table 51 – Job Order Response Provider Client Profile Definition. 29

Table 52 – Job Order Response Receiver Client Profile Definition 29

Table 53 – NamespaceMetadata Object for this Specification. 30

Table 54 – Namespaces used in an ISA 95 Job Control Server 30

Table 55 – Namespaces used in this document 30

Table 56 – OPC UA Method Result Codes 32

Table 57 – ISA-95 Methods Return Status Codes 32

 


 

 

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 OPC Foundation member organizations to develop a standard interface to facilitate the development of applications by multiple vendors that shall inter-operate seamlessly together. 

Copyright © 2006-2021, OPC Foundation, Inc.

 

AGREEMENT OF USE

COPYRIGHT RESTRICTIONS

·       This document is provided "as is" by the OPC Foundation.

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

OPC Foundation members 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 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. 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.

 

 


OPC UA for ISA-95 Companion Specification

 

Part 4: Job Control

 

 

 

1          Scope

This document defines the OPC UA companion specification for ISA-95 Job Orders, ISA-95 Job Responses, and access to queued, executing, and completed job order status and responses.  

 

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.

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/

ISA-95 Part 3: ANSI/ISA-95.00.03-2013 (IEC 62264-3 Modified) Enterprise-Control System Integration - Part 3: Activity Models of Manufacturing Operations Management

      https://www.isa.org/products/ansi-isa-95-00-03-2013-enterprise-control-system-i 

 

3          Terms, abbreviated terms, 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 ISA-95 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 ISA-95 Terms

3.2.1       

Job Order Receiver

An OPC UA server that implements the ReceiveJobOrder method and processes the associated job order.

3.2.2       

Job Response Provider

An OPC UA server that implements the RequestJobResponse method and returns a Job Response to the method caller.

3.2.3       

Job Response Receiver

An OPC UA server that implements the ReceiveJobResponse method and accepts an unsoliciated Job Response from the method caller.

3.3     Abbreviated terms

PLC            Programmable Logic Controllers

DCS            Distributed Control Systems

 

3.4     Conventions used in this document

3.4.1      Conventions for Node descriptions

3.4.1.1      Node definitions

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

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

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

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

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

Table 1 – Examples of DataTypes

Notation

Data­Type

Value­Rank

Array­Dimensions

Description

0:Int32

0:Int32

-1

omitted or null

A scalar Int32.

0:Int32[]

0:Int32

1

omitted or {0}

Single-dimensional array of Int32 with an unknown size.

0:Int32[][]

0:Int32

2

omitted or {0,0}

Two-dimensional array of Int32 with unknown sizes for both dimensions.

0:Int32[3][]

0:Int32

2

{3,0}

Two-dimensional array of Int32 with a size of 3 for the first dimension and an unknown size for the second dimension.

0:Int32[5][3]

0:Int32

2

{5,3}

Two-dimensional array of Int32 with a size of 5 for the first dimension and a size of 3 for the second dimension.

0:Int32{Any}

0:Int32

-2

omitted or null

An Int32 where it is unknown if it is scalar or array with any number of dimensions.

0:Int32{ScalarOrOneDimension}

0:Int32

-3

omitted or null

An Int32 where it is either a single-dimensional array or a scalar.

 

·      The TypeDefinition is specified for Objects and Variables.

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

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

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

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

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

Table 2 illustrates the table. If no components are provided, the DataType, TypeDefinition and Other columns may be omitted and only a Comment column is introduced to point to the Node definition.

Table 2 – Type Definition Table

Attribute

Value

Attribute name

Attribute value. If it is an optional Attribute that is not set “--“ is used.

 

 

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

ReferenceType name

NodeClass of the target Node.

BrowseName of the target Node.

DataType of the referenced Node, only applicable for Variables.

TypeDefinition of the referenced Node, only applicable for Variables and Objects.

Additional characteristics of the TargetNode such as the ModellingRule or AccessLevel.

NOTE Notes referencing footnotes of the table content.

 

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

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

Table 3 – Examples of Other Characteristics

Name

Short Name

Description

0:Mandatory

M

The Node has the Mandatory ModellingRule.

0:Optional

O

The Node has the Optional ModellingRule.

0:MandatoryPlaceholder

MP

The Node has the MandatoryPlaceholder ModellingRule.

0:OptionalPlaceholder

OP

The Node has the OptionalPlaceholder ModellingRule.

ReadOnly

RO

The Node AccessLevel has the CurrentRead bit set but not the CurrentWrite bit.

ReadWrite

RW

The Node AccessLevel has the CurrentRead and CurrentWrite bits set.

WriteOnly

WO

The Node AccessLevel has the CurrentWrite bit set but not the CurrentRead bit.

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

3.4.1.2      Additional References

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

Table 4<some>Type Additional References

SourceBrowsePath

Reference Type

Is Forward

TargetBrowsePath

SourceBrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table.

ReferenceType name

True = forward Reference.

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

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

 

References can be to any other Node.

3.4.1.3      Additional sub-components

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

Table 5<some>Type Additional Subcomponents

BrowsePath

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

BrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table

NOTE Same as for Table 2

 

 

3.4.1.4      Additional Attribute values

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

Table 6 – <some>Type Attribute values for child Nodes

BrowsePath

<Attribute name> Attribute

BrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table

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

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

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

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

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

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

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

 

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

3.4.2      NodeIds and BrowseNames

3.4.2.1      NodeIds

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

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

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

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

3.4.2.2      BrowseNames

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

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

3.4.3      Common Attributes

3.4.3.1      General

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

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

Table 7 – Common Node Attributes

Attribute

Value

DisplayName

The DisplayName is a LocalizedText. Each Server shall provide the DisplayName identical to the BrowseName of the Node for the LocaleId “en”. Whether the server provides translated names for other LocaleIds are server-specific.

Description

Optionally a server-specific description is provided.

NodeClass

Shall reflect the NodeClass of the Node.

NodeId

The NodeId is described by BrowseNames as defined in 3.4.2.1.

WriteMask

Optionally the WriteMask Attribute can be provided. If the WriteMask Attribute is provided, it shall set all non-server-specific Attributes to not writable. For example, the Description Attribute may be set to writable since a Server may provide a server-specific description for the Node. The NodeId shall not be writable, because it is defined for each Node in this document.

UserWriteMask

Optionally the UserWriteMask Attribute can be provided. The same rules as for the WriteMask Attribute apply.

RolePermissions

Optionally server-specific role permissions can be provided.

UserRolePermissions

Optionally the role permissions of the current Session can be provided. The value is server-specific and depends on the RolePermissions Attribute (if provided) and the current Session.

AccessRestrictions

Optionally server-specific access restrictions can be provided.

 

3.4.3.2      Objects

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

Table 8 – Common Object Attributes

Attribute

Value

EventNotifier

Whether the Node can be used to subscribe to Events or not is server-specific.

 

3.4.3.3      Variables

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

Table 9 – Common Variable Attributes

Attribute

Value

MinimumSamplingInterval

Optionally, a server-specific minimum sampling interval is provided.

AccessLevel

The access level for Variables used for type definitions is server-specific, for all other Variables defined in this document, the access level shall allow reading; other settings are server-specific.

UserAccessLevel

The value for the UserAccessLevel Attribute is server-specific. It is assumed that all Variables can be accessed by at least one user.

Value

For Variables used as InstanceDeclarations, the value is server-specific; otherwise it shall represent the value described in the text.

ArrayDimensions

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

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

Historizing

The value for the Historizing Attribute is server-specific.

AccessLevelEx

If the AccessLevelEx Attribute is provided, it shall have the bits 8, 9, and 10 set to 0, meaning that read and write operations on an individual Variable are atomic, and arrays can be partly written.

 

3.4.3.4      VariableTypes

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

Table 10 – Common VariableType Attributes

Attributes

Value

Value

Optionally a server-specific default value can be provided.

ArrayDimensions

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

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

 

3.4.3.5      Methods

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

Table 11 – Common Method Attributes

Attributes

Value

Executable

All Methods defined in this document shall be executable (Executable Attribute set to “True”), unless it is defined differently in the Method definition.

UserExecutable

The value of the UserExecutable Attribute is server-specific. It is assumed that all Methods can be executed by at least one user.

 

 


4           

5          ISA-95 Overview

For OPC UA users that may not be familiar with ISA 95 Part 4 Job Orders the following section provides a brief overview of key elements of job order management.

5.1     Job Order

ISA 95 defines a Job Order as a request for a unit of work to be executed. Typically, these are the lowest level scheduled objects in a work schedule, as shown in Figure 1. In ISA 95 a Work Schedule defines all the activities to be accomplished to meet a production request (or production order). A Work Schedule is made up of one or more Work Requests, depending on how the work is to be split, such as one order for packaging of 1,000,000 bottles, to be executed as 4 separate work requests of 250,000 bottles each. Each Work Request is made up of one or more Job Orders which define the work to be done in a work center (such as a packaging line or production line).

 

Figure4_

Figure 1 – Work Schedule, Work Request, and Job Orders

 

Job Orders have a procedure or workflow that is followed, either automatically or manually. Typical Job Orders in serialization are packaging orders for specific products. The Job Order contains all the variable information about the order, such as quantity to be packaged, various values to be printed on labels, and any options, such as inserts to be added or case packing options. Each Job Order identifies a Work Master to be used. Work Master is the ISA 95 term for the procedure that is to be followed. Examples of Work Masters include ISA 88 Master Recipes or ISA 95 Workflow Procedures. 

 

Job Orders are often sent from Level 3 MES/MOM systems to batch execution systems, automation systems (PLCs and DCSs), or workflow systems for manual operations. An often-used implementation is to have an ERP or MES sent Job Orders to specific parts of production. In Figure 1, for example a production line is executing one set of Job Orders, a packaging line is executing another set, synchronized with the production line, a palletizing line, synchronized with the packaging line, an AGV (Automated Guided Vehicle) system that executes a job to move materials from the palletizer to a AWS (Automated Warehouse System). Each of these systems perform independent job, with their own local Work Masters and workflows.

 

A Job Order contains values for job specific parameters (such as “Use By Dates” to be applied to labels), material requirements (such as an identification and quantity of the material lot to be produced), equipment requirements (such as which packaging line to use), personnel requirements for the job order (such as training requirements), and physical asset requirements (such as which testing equipment to use). 

 

 

5.2     Job Order Information Model

The information objects identified in Figure 2 are used to describe a Job Order. This is a subset of the ISA 95 Part 4, Edition 2 Job Order model, intended to meet a large percentage of situations where nested resource requirements and external linkages are not needed. See the ISA 95 Part 4 specification for details on the attributes and relationships.

Figure5_

Figure 2 – Job Order Information Model

           Job Order – The specification of a job to be executed.

           Job Order Parameter - Additional information associated with the Job Order is represented in name/value pairs and defined Job Order Parameters.

           Personnel Requirement – Information associated with the Job Order that defines additional personnel and/or person requirements.

           Equipment Requirement – Information associated with the Job Order that defines additional equipment class and/or equipment requirements.

           Physical Asset Requirement – Information associated with the Job Order that defines additional physical asset class and/or physical asset requirements.

           Material Requirement – Information associated with the Job Order that defines additional material class, material definition, material lot, and/or material sublot requirements.

See Annex C for examples of Job Orders.

Note that the data types and enumerations used in this companion specification use the ISA 95 names, with the ISA95 prefix.

 

5.3     Job Response

A Job Response is a report on work done for a Job Order. The information objects identified in Figure 3 are used to describe a Job Response. This is a subset of the ISA 95 Part 4, Edition 2 Job Response model, intended to meet a large percentage of situations where nested resource actuals and external linkages are not needed. See the ISA 95 Part 4 specification for details on the attributes and relationships.

 

Figure6_

Figure 3 – Job Response Information Model

           Job Response – The report on the execution of a Job Order.

           Job Response Parameter - Additional information associated with the Job response is represented in name/value pairs and defined Job Response Parameters.

           Personnel Actual – Information associated with the Job Response that defines additional personnel and/or person actuals.

           Equipment Actual – Information associated with the Job Response that defines additional equipment class and/or equipment actuals.

           Physical Asset Actual – Information associated with the Job Response that defines additional physical asset class and/or physical asset actuals.

           Material Actual – Information associated with the Job Response that defines additional material class, material definition, material lot, and/or material sublot actuals.

 


6          Modelling Approach of ISA-95

The modelling approach for generating a UA model from the ANSI/ISA-95 Part 3 specification follows the following general concepts.

·      An OPC UA server may support the activity of receiving unsolicited Job Orders for processing.

·      An OPC UA server may support the activity of receiving unsolicited requests for Job Responses.

·      An OPC UA server may support the activity of receiving unsolicited Job Responses.

7          ISA-95 Data Representation Model

7.1     General

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

This model generates standard types. All ISA-95 types will be defined in their own namespace and will begin with “ISA95”

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.

 

 

7.2     ObjectTypes

7.2.1      ISA95JobOrderReceiverObjectType

7.2.1.1      Overview

The ISA95JobOrderReceiverObjectType contains a method to receive job order commands and optional definitions of allowable job order information as illustrated in Figure 4.

 

Figure7_

Figure 4 – Job Order Receiver Object Type Methods and Data

Table 12 is the AddressSpace definition of an ISA95JobOrderReceiverObjectType.

 

Table 12 – ISA95JobOrderReceiverObjectType AddressSpace Definition

Attribute

Value

BrowseName

ISA95JobOrderReceiverObjectType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Method

ReceiveJobOrder

 

See 7.2.1.2

M

0:HasComponent

Variable

JobOrderList

ISA95JobOrderDataType[]

0:BaseDataVariableType

M,RO

0:HasComponent

Variable

WorkMaster

ISA95WorkMasterDataType[]

0:BaseDataVariableType

M,RO

0:HasComponent

Variable

MaterialClassID

0:String[]

0:BaseDataVariableType

M,RO

0:HasComponent

Variable

MaterialDefinitionID

0:String[]

0:BaseDataVariableType

M,RO

0:HasComponent

Variable

EquipmentID

0:String[]

0:BaseDataVariableType

M,RO

0:HasComponent

Variable

PhysicalAssetID

0:String[]

0:BaseDataVariableType

M,RO

0:HasComponent

Variable

PersonnelID

0:String[]

0:BaseDataVariableType

M,RO

 

ReceiveJobOrder - Defines the ReceiveJobOrder Method which receives job orders and job order commands.

JobOrderList - Defines a read-only list of job order information available from the server. The information returned is defined by the server and may be a complete copy of a received job order or may be just the IDs of the job orders. If there are no job orders available from the server, then this may be null.

WorkMaster – Defines a read-only set of work master IDs that may be specified in a job order, and the read-only set of parameters that may be specified for a specific work master. If there are no restrictions on what work master IDs can be sent with a job order, then this may be null.

MaterialClassID - Defines a read-only set of Material Classes IDs that may be specified in a job order. If there are no restrictions on what Material Classes IDs can be sent with a job order, then this may be null.

MaterialDefinitionID - Defines a read-only set of Material Classes IDs that may be specified in a job order. If there are no restrictions on what Material Classes IDs can be sent with a job order, then this may be null.

EquipmentID - Defines a read-only set of Equipment Class IDs and Equipment IDs that may be specified in a job order. If there are no restrictions on what Equipment IDs can be sent with a job order, then this may be null.

PhysicalAssetID - Defines a read-only set of Physical Asset Class IDs and Physical Asset IDs that may be specified in a job order. If there are no restrictions on what Physical Asset IDs can be sent with a job order, then this may be null.

PersonnelID - Defines a read-only set of Personnel IDs and Person IDs that may be specified in a job order. If there are no restrictions on what Personnel IDs can be sent with a job order, then this may be null.

7.2.1.2      ReceiveJobOrder Method

This Method receives job orders and job order commands.

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

Signature

     ReceiveJobOrder (

[in]  ISA95JobOrderCommandEnum    JobOrderCommand

[in]  ISA95JobOrderDataType      JobOrder

[out] UInt64                    ReturnStatus

     );

 

Table 13 – ReceiveJobOrder Method Arguments

Argument

Description

JobOrderCommand

Contains the command to the Information Receiver on the action to be taken on the job order.  For example, it may contain a Start command to start a stored job order or a Cancel command to cancel an un-started Job Order.

JobOrder

Contains information defining the job order with all parameters and any material, equipment, or physical asset requirements associated with the order. 

ReturnStatus

Returns the status of the method execution.

 

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

 

Table 14 – ReceiveJobOrder Method AddressSpace Definition

Attribute

Value

BrowseName

ReceiveJobOrder

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

 

7.2.2      ISA95JobResponseProviderObjectType

7.2.2.1      Overview

The ISA95JobResponseProviderObjectType contains a method to receive unsolicited job response requests as illustrated in Figure 5

  Figure8_

Figure 5 – ISA95JobResponseProvider Methods

 

Table 15 is the AddressSpace definition of an ISA95JobResponseProviderObjectType.

 

Table 15 – ISA95JobResponseProviderObjectType AddressSpace Definition

Attribute

Value

BrowseName

ISA95JobResponseProviderObjectType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Method

RequestJobResponse

 

See 7.2.2.2

M

 

RequestJobResponse – Defines the ISA95JobResponseRequest Method which receives requests for Job Responses.

The ISA95JobOrderReceiverObjectType with the ReceiveJobOrder method may be paired with an ISA95JobResponseProviderObjectType and the RequestJobResponse method, to send a Job Order and query for a JobResponse. This transaction is illustrated in Figure 6.

Figure9_

Figure 6 – ReceiveJobOrder and RequestJobResponse Transaction Example

7.2.2.2      RequestJobResponse Method

This method is used to return Job Responses for unsolicited requests for responses from a job order.

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

Signature

     RequestJobResponse (

           [in]  String                     JobOrderID

           [in] ISA95JobOrderStateEnum      JobOrderState

[out] ISA95JobResponseDataType[]  JobResponse

[out] UInt64                     ReturnStatus

     );

 

Table 16 – RequestJobResponse Method Arguments

Argument

Description

JobOrderID

Contains an ID of the job order, as specified by the method caller. This argument shall be null if the JobOrderState is defined.

JobOrderState

Contains a job status of the JobResponse to be returned. This argument shall be null if the JobOrderID is defined.

JobResponse

Contains information about the execution of a job order, such as the current status of the job, actual material consumed, actual material produced, actual equipment used, and job specific data.

ReturnStatus

Returns the status of the method execution.

 

If both JobOrderID and JobOrderState or neither are specified then an “Invalid Request” error shall be returned.

 

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

Table 17 – RequestJobResponse Method AddressSpace Definition

Attribute

Value

BrowseName

RequestJobResponse

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

 

7.2.3      ISA95JobResponseReceiverObjectType

7.2.3.1      Overview

A Job Response Receiver receives unsolicited Job Responses, usually as the result of completion of a job, or at intermediate points within the job as illustrated in Figure 7.

Figure10_

Figure 7 – ISA95JobResponseReceiverObjectType

 

Table 18 is the AddressSpace definition of an ISA95JobResponseReceiverObjectType.

 

Table 18 – ISA95JobResponseReceiverObjectType AddressSpace Definition

Attribute

Value

BrowseName

ISA95JobResponseReceiverObjectType

IsAbstract

False

References

NodeClass

BrowseName

Data Type

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:HasComponent

Method

ReceiveJobResponse

 

See 7.2.3.2

M

 

ReceiveJobResponse – Defines the ReceiveJobResponse Method which receives unsolicited Job Responses.

The ISA95JobOrderReceiverObjectType with the ReceiveJobOrder method may often be paired with an ISA95JobResponseReceiverObjectType and the ReceiveJobResponse method, to send a Job Order and receive a JobResponse. This transaction is illustrated in Figure 8.

Figure11_

Figure 8 – ReceiveJobOrder and ReceiveJobResponse Transaction Example

7.2.3.2      ReceiveJobResponse Method

The ReceiveJobResponse method is used to receive unsolicited Job Responses.

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

Signature

     ReceiveJobResponse(

[in]  ISA95JobResponseDataType         JobResponse

[out] UInt64                         ReturnStatus

     );

 

Table 19 – ReceiveJobResponse Method Arguments

Argument

Description

JobResponse

Contains information about the execution of a job order, such as actual material consumed, actual material produced, actual equipment used, and job specific data.

ReturnStatus

Returns the status of the method execution.

 

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

Table 20 – ReceiveJobResponse Method AddressSpace Definition

Attribute

Value

BrowseName

ReceiveJobResponse

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

 

7.3     DataTypes

7.3.1      ISA95EquipmentDataType

The ISA95EquipmentDataType is a subtype of OPC UA Structure that defines an equipment class or a specific piece of equipment, a quantity and unit of measure, an optional description, and an optional collection of properties.

The structure is defined in Table 21.

Table 21 – ISA95EquipmentDataType Structure

Name

Type

Description

ISA95EquipmentDataType

structure

 

    ID

0:String

An identification of an EquipmentClass or Equipment.

    Description

0:String

Optional: Additional information and description about the equipment.

    EquipmentUse

0:String

Optional: Information about the expected use of the equipment, see the ISA 95 Part 2 standard for defined values.

    Quantity

0:DecimalString

Optional: The quantity of the equipment.

    UoM

0:String

Optional: The Unit of Measure of the quantity.

    Properties

 ISA95PropertyDataType []

Optional: Any associated properties, or empty if there are no properties defined.

 

Table 22 is the AddressSpace definition of an ISA95EquipmentDataType.

 

Table 22 – ISA95EquipmentDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95EquipmentDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.2      ISA95JobOrderDataType

The ISA95JobOrderDataType is a subtype of OPC UA Structure that defines the information needed to schedule and execute a job.

The structure is defined in Table 23.

Table 23 – ISA95JobOrderDataType Structure

Name

Type

Description

ISA95JobOrderDataType

structure

 

    ID

0:String

An identification of the Job Order

    Description

0:String

Optional: Addition information about the Job Order

    WorkMasterID

ISA95WorkMasterDataType[]

Optional: Work Master associated with the job order. If multiple work masters are defined, then the execution system can select the work master based on the availability of resources. If no WorkMaster is defined, then the server may use internal logic or human interactions to select the appropriate WorkMaster

    StartTime

0:DateTime

Optional: The proposed start time for the order, may be empty if not specified.

    EndTime

0:DateTime

Optional: The proposed end time for the order, may be empty of not specified.

    Priority

0:Int16

Optional: The priority of the job order, may be empty of not specified. Higher numbers have higher priority.  This type allows the Job Order clients to pick their own ranges, and the Job Order server only has to pick the highest number

    JobOrderParameters

ISA95ParameterDataType[]

Optional: Key value pair with values, not associated with a resource that is provided as part of the job order, may be empty if not specified.

    PersonnelRequirements

ISA95PersonnelDataType[]

Optional: A specification of any personnel requirements associated with the job order, may be empty if not specified.

    EquipmentRequirements

ISA95EquipmentDataType[]

Optional: A specification of any equipment requirements associated with the job order, may be empty if not specified.

    PhysicalAssetRequirements

ISA95PhysicalAssetDataType[]

Optional: A specification of any physical asset requirements associated with the job order, may be empty if not specified.

    MaterialRequirements

ISA95MaterialDataType[]

Optional: A specification of any material requirements associated with the job order, may be empty if not specified.

 

Table 24 is the AddressSpace definition of an ISA95JobOrderDataType.

 

Table 24 – ISA95JobOrderDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95JobOrderDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.3      ISA95JobResponseDataType

The ISA95JobResponseDataType is a subtype of OPC UA Structure that defines the information needed report on the execution of a job order.

The structure is defined in Table 25 .

Table 25 – ISA95JobResponseDataType Structure

Name

Type

Description

ISA95JobResponseDataType

structure

 

    ID

0:String

A unique identification of the Job Response

    Description

0:String

Optional: Addition information about the Job Response

    JobOrderID

0:String

An identification of the job order associated with the job response.

    StartTime

0:DateTime

Optional: The actual start time for the order.

    EndTime

0:DateTime

Optional: The actual end time for the order, may be empty if the job has not yet completed.

    JobState

ISA95JobOrderStateEnum

The current state of the job.

    JobResponseData

ISA95ParameterDataType[]

Optional: Key value pair with values, not associated with a resource that is provided as part of the job response, may be empty if not specified.

    PersonnelActuals

ISA95PersonnelDataType[]

Optional: A specification of any personnel actuals associated with the job response, may be empty if not specified.

    EquipmentActuals

ISA95EquipmentDataType[]

Optional: A specification of any equipment actuals associated with the job response, may be empty if not specified.

    PhysicalAssetActuals

ISA95PhysicalAssetDataType[]

Optional: A specification of any physical asset actuals associated with the job response, may be empty if not specified.

    MaterialActuals

ISA95MaterialDataType[]

Optional: A specification of any material actuals associated with the job response, may be empty if not specified.

 

Table 26 is the AddressSpace definition of an ISA95JobResponseDataType.

 

Table 26 – ISA95JobResponseDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95JobResponseDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.4      ISA95MaterialDataType

The ISA95MaterialDataType is a subtype of OPC UA Structure that defines a material resource, and an optional description, material use, quantity and unit of measure, description, and collection of properties.

The structure is defined in Table 27.

Table 27 – ISA95MaterialDataType Structure

Name

Type

Description

ISA95MaterialDataType

structure

 

    MaterialClassID

0:String

Optional: An identification of a Material Class, or null if the Material Class is not used to identify the material.

Note: Either a MaterialClassID, MaterialDefinitionID, MaterialLotID, or MaterialSublotID must be defined.

    MaterialDefinitionID

0:String

Optional: An identification of a Material Definition, or null if the Material Definition is not used to identify the material.

    MaterialLotID

0:String

Optional: An identification of a Material Lot, or null if the Material Lot is not used to identify the material.

    MaterialSublotID

0:String

Optional: An identification of a Material Sublot, or null if the Material Sublot is not used to identify the material.

    Description

0:String

Optional: Additional information and description about the material.

    MaterialUse

0:String

Optional: Information about the expected use of the material.

Defines values from ANSI/ISA 95 Part 2 are:

   consumable: resources that are not normally included in bills of material or are not individually accounted for in specific operations requests or are not lot tracked.

   material consumed: raw and intermediate material normally included in bills of material or are individually accounted for in specific operations requests or are material lots tracked.

   material produced: finished goods material normally included in bills of material or are individually accounted for in specific operations requests or are material lots tracked.

   co-product produced: a planned product typically produced in conjunction with a main planned product per the material master. A product that is usually manufactured together or sequentially because of product or process similarities.

   by-product produced: tracked waste, undesirable materials, material of value produced as a residual of or incidental to the production process. The ratio of by-product to primary product is usually predictable. By-products may be recycled, sold as-is, or used for other purposes

    Quantity

0:DecimalString

Optional: The quantity of the material.

    UoM

0:String

Optional: The Unit of Measure of the quantity.

Units of Measure.

    Properties

ISA95PropertyDataType[]

Optional: Any associated properties of the material, or empty if there are no material properties defined.

 

 

 Table 28 is the AddressSpace definition of an ISA95MaterialDataType.

 

Table 28 – ISA95MaterialDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95MaterialDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.5      ISA95PersonnelDataType

The ISA95PersonnelDataType is a subtype of OPC UA Structure that defines a personnel resource and an optional description, personal use, quantity and unit of measure, description, and collection of properties.

The structure is defined in Table 29.

Table 29 – ISA95PersonnelDataType Structure

Name

Type

Description

ISA95PersonnelDataType

structure

 

    ID

0:String

An identification of a Personnel Class or Person.

    Description

0:String

Optional: Additional information and description about the resource.

    PersonnelUse

0:String

Optional: Information about the expected use of the personnel, see the ISA 95 Part 2 standard for defined values.

    Quantity

0:DecimalString

Optional: The quantity of the resource

    UoM

0:String

Optional: The Unit of Measure of the quantity.

    Properties

ISA95PropertyDataType[]

Optional: Any associated properties, or empty if there are no properties defined.

 

Table 30 is the AddressSpace definition of an ISA95PersonnelDataType.

 

Table 30 – ISA95PersonnelDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95PersonnelDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.6      ISA95PhysicalAssetDataType

The ISA95PhysicalAssetDataType is a subtype of OPC UA Structure that defines a physical asset resource and an optional description, physical asset use, quantity and unit of measure, description, and collection of properties.

The structure is defined in Table 31.

Table 31 – ISA95PhysicalAssetDataType Structure

Name

Type

Description

ISA95PhysicalAssetDataType

structure

 

    ID

0:String

An identification of a Physical Asset Class or Physical Asset.

    Description

0:String

Optional: Additional information and description about the physical asset.

    PhysicalAssetUse

0:String

Optional: Information about the expected use of the physical asset, see the ISA 95 Part 2 standard for defined values.

    Quantity

0:DecimalString

Optional: The quantity of the physical asset.

    UoM

0:String

Optional: The Unit of Measure of the quantity

    Properties

ISA95PropertyDataType[]

Optional: Any associated properties, or empty if there are no physical asset properties defined.

 

Table 32 is the AddressSpace definition of an ISA95PhysicalAssetDataType.

 

Table 32 – ISA95PhysicalAssetDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95PhysicalAssetDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.7      ISA95PropertyDataType

The ISA95PropertyDataType is a subtype of OPC UA Structure that defines an ID (which is a unique identifier for a property within the scope of the associated resource), the associated value, (which is the data for the property), and optional description, unit of measure of the value, and subproperties. The structure is defined in Table 33.

Table 33ISA95PropertyDataType Structure

Name

Type

Description

ISA95PropertyDataType

structure

 

    ID

0:String

Unique identifier for a property within the scope of the associated resource

    Value

0:BaseDataType

Value for the property

    Description

0:String

Optional: An optional description of the property.

    UoM

0:String

Optional: The Unit of Measure of the value

   Subproperties

ISA95PropertyDataType[]

Optional: Sub properties of the property

 

Table 34 is the AddressSpace definition of an ISA95PropertyDataType.

 

Table 34 – ISA95PropertyDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95PropertyDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.8      ISA95ParameterDataType

The ISA95ParameterDataType is a subtype of OPC UA Structure that defines an ID (which is a unique identifier for a parameter), the associated value, (which is the data for the parameter), and optional description, unit of measure of the value, and subproperties.  The structure is defined in Table 33.

Table 35 – ISA95ParameterDataType Structure

Name

Type

Description

ISA95ParameterDataType

structure

 

    ID

0:String

A unique identifier for a parameter

    Value

0:BaseDataType

Value of the parameter.

    Description

0:String

Optional: An optional description of the parameter.

    UoM

0:String

Optional: The Unit of Measure of the value

    Subparameters

ISA95ParameterDataType[]

Optional: Sub parameters of the parameter

 

Table 36 is the AddressSpace definition of an ISA95PropertyDataType.

 

Table 36 – ISA95ParameterDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95ParameterDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.9      ISA95ReturnEnum

The ISA95ReturnEnum describes the possible return status from a Method call. The ISA95ReturnEnum is defined in Table 37.

Table 37 – ISA95ReturnEnum values

Name

Value

Description

Undefined

0

Undefined value, should never be seen.

NoError

1

There were no errors in processing the method. 

InvalidJobOrderID

2

The referenced job order ID is invalid or not known to the receiver.

UnableToAcceptJobOrder

3

The server is currently unable to accept job orders.

UnableToAcceptJobOrderCommand

4

The server is currently unable to accept job order commands for the specified job order.

UnableToReturnJobResponse

5

The server is unable to provide a Job Response for the specified Job Order.

7.3.10    ISA95WorkMasterDataType

The ISA95WorkMasterDataType is a subtype of OPC UA Structure that defines a Work Master ID and optional description and parameters for the Work Master.

The structure is defined in Table 38.

Table 38 – ISA95WorkMasterDataType Structure

Name

Type

Description

ISA95WorkMasterDataType

structure

 

    ID

0:String

An identification of the Work Master.

    Description

0:String

Optional: Additional information and description about the Work Master.

    Parameters

ISA95ParameterDataType[]

Optional: Defined parameters for the Work Master.

 

Table 39 is the AddressSpace definition of an ISA95WorkMasterDataType.

 

Table 39 – ISA95WorkMasterDataType AddressSpace Definition

Attribute

Value

BrowseName

ISA95WorkMasterDataType

IsAbstract

False

Reference

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Structure defined in OPC 10000-5

 

7.3.11    ISA95JobOrderCommandEnum

The ISA95JobOrderCommandEnum listed in Table 40 describes the defined job order commands. 

Table 40 – ISA95JobOrderCommandEnum values

Name

Value

Description

Undefined

0

Undefined value, should never be seen.

Store

1

Command to store the job order in local storage, but not to start the order.

StoreAndStart

2

Command to store the job order and start it as soon as the Job Order receiver is ready to start.

Start

3

Command to start a stored job order as soon as the receiver is ready to start. Only the Job Orders ID is used to identify the stored job order, all other information is not used.  No changes are made to the stored order. If multiple Job Orders have been commanded to Start, then the priority and timing values in the Job Orders shall be used to determine the order of execution of the orders.

Update

4

Command to update a stored Job Order that has not yet been started, with the new order information.  All previously stored information is replaced.

Stop

5

Command to stop a started job order, report on any work done on the order, and remove the stored information. Only the Job Orders ID is used to identify the job order, all other information is not used.

Cancel

6

Cancel an un-started job order and remove the stored information. Only the Job Orders ID is used to identify the job order, all other information is not used.

Clear

7

Command to allow the Information Receiver to clear any maintained information on the Job Order (usually sent after a receipt of a Job Response with a status of Finished.) Only the Job Orders ID is used to identify the job order, all other information is not used.

 

7.3.12    ISA95JobOrderStateEnum

The ISA95JobOrderStateEnum listed in Table 41 describes the defined job statuses. 

Table 41 – ISA95JobOrderStateEnum values

Name

Value

Description

Undefined

0

Undefined value, should never be seen.

Waiting

1

The necessary pre-conditions have not been met and the order is not ready to run.

Ready

2

The necessary pre-conditions have been met and the order is ready to run, awaiting a Start command.

Loaded

3

In situations where only one job may be in active memory and is able to be run, then the job is loaded in active memory, the necessary pre-conditions have been met, and the order is ready to run, awaiting a Start command.

Running

4

The order is executing.

Completed

5

The order has been completed and is no longer in execution.

Aborted

6

The order was aborted.

Held

7

The order has been temporarily stopped due to a constraint of some form.

Suspended

8

The order has been temporarily stopped due to a deliberate decision within the execution system.

Closed

9

The order has been completed and fully reconciled. No further changes, or restatement of actuals is expected.

Error

10

The Job is in error and requires attention.

 

 

8          Profiles and Conformance Units

Profiles and ConformanceUnits break functionality into testable groups. A ConformanceUnit describes a testable unit. A single ConformanceUnit is tested as a unit so all items covered by it must be supported or the ConformanceUnit will fail. ConformanceUnits can be included in multiple Profiles, so they are declared in their own table.

8.1     Conformance Units

This chapter defines the corresponding Conformance Units for this document.

Table 42 defines the Server and Client ConformanceUnits.

 

Table 42 – Conformance Units for OPC 30261 ISA-95 Job Orders

Category

Title

Description

Server

ISA-95 Job Control Base Functionality

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

Server

ISA-95 Job Order Receiver

The server supports the ISA95JobOrderReceiverObjectType.

Server

ISA-95 Job Response Provider

The server supports the ISA95JobResponseProviderObjectType.

Server

ISA-95 Job Response Receiver

The server supports the ISA95JobResponseReceiverObjectType.

Client

ISA-95 Base Functionality Client

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

Client

ISA-95 Job Order Receiver Client

The client makes use of the ReceiveJobOrder method.

Client

ISA-95 Job Response Provider Client

The client makes use of the RequestJobResponse method.

Client

ISA-95 Job Response Receiver Client

The client makes use of the ReceiveJobResponse method.

 

 

8.2     Profiles

8.2.1      Profile list

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

Table 43 – Profile URIs for OPC 30261 ISA-95 Job Orders

Profile Name

URI

ISA-95 Job Order Receiver Client Profile

http://opcfoundation.org/UA-Profile/ISA-95/Client/JobOrderReceiver

ISA-95 Job Order Receiver Server Profile

http://opcfoundation.org/UA-Profile/ISA-95/Server/JobOrderReceiver

ISA-95 Job Response Provider Client Profile

http://opcfoundation.org/UA-Profile/ISA-95/Client/JobResponseProvider

ISA-95 Job Response Provider Server Profile

http://opcfoundation.org/UA-Profile/ISA-95/Server/JobResponseProvider

ISA-95 Job Response Receiver Client Profile

http://opcfoundation.org/UA-Profile/ISA-95/Client/JobResponseReceiver

ISA-95 Job Response Receiver Server Profile

http://opcfoundation.org/UA-Profile/ISA-95/Server/JobResponseReceiver

 

Table 44 lists the general functionality of client and server profiles that support the ISA-95 OPC UA interface.

Table 44 – Profile Overview

Profile

Example

Methods and Variables

Job Order Receiver Client Profile

Sends unsolicited Job Orders to a Job Order Receiver Server

Uses ReceiveJobOrder

Job Order Receiver Server Profile

Receives unsolicited Job Orders and associated commands, and exposes allowable work masters, material, equipment, physical asset, and personnel ID that may be used in a Job Order.

ReceiveJobOrder

JobOrderList

WorkMaster

MaterialClassID

MaterialDefinitionID

EquipmentID

PhysicalAssetID

PersonnelID

Job Response Provider Client Profile

Sends unsolicited request for Job Responses to a Job Response Provider Server

Uses RequestJobResponse

Job Response Provider Server Profile

Receives unsolicited Job Response Requests for a specific Job Order

RequestJobResponse

Job Response Receiver Client Profile

Sends unsolicited Job Responses to a Job Response Receiver Server

Uses ReceiveJobResponse

Job Response Receiver Server Profile

Receives unsolicited Job Responses for a Job Order

ReceiveJobResponse

See Figure 6 and Figure 8 as examples of the use of the specified profiles to provide control of job orders and job reports.

 

8.2.2      Server Facets

8.2.2.1      Overview

The following sections specify the Facets available for Servers that implement the OPC 30261 ISA-95 Job Control companion specification. Each section defines and describes a Facet or Profile.

8.2.2.2      ISA-95 Job Control Base Server Profile

Table 45ISA-95 Job Control Base Server Profile

Group

Conformance Unit / Profile Title

M / O

Profile

0:Standard 2017 UA Server Profile

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

M

Profile

0:Base Server Behaviour Facet

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

M

Profile

0:Sessionless Server Facet

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

M

Profile

0:Documentation Server Facet

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

M

Profile

0:Data Access Server Facet

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

M

Profile

0:Auditing Server Facet

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

M

Profile

0:Address Space Notifier Server Facet

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

M

Profile

0:Security User Access Control Base

http://opcfoundation.org/UA-Profile/Security/UserAccessBase

M

Profile

0:Security Time Synchronization

http://opcfoundation.org/UA-Profile/Security/TimeSync

M

Profile

0:Best Practice – Audit Events

http://opcfoundation.org/UA-Profile/Security/BestPracticeAuditEvents

M

Profile

0:Best Practice – Random Numbers

http://opcfoundation.org/UA-Profile/Security/BestPracticeRandomNumbers

M

Profile

0:Best Practice – Timeouts

http://opcfoundation.org/UA-Profile/Security/BestPracticeTimeouts

M

Profile

0:Best Practice – Administrative Access

http://opcfoundation.org/UA-Profile/Security/BestPracticeAdministrativeAccess

M

Profile

0:Best Practice – Strict Message Handling

http://opcfoundation.org/UA-Profile/Security/BestPracticeStrictMessage

M

Profile

0:User Token – JWT Server Facet

http://opcfoundation.org/UA-Profile/Security/UserToken/Server/JsonWebToken

M

Profile

0:User Role Management Server Facet

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

M

Profile

0:Global Certificate Management Server Facet

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

M

Profile

0:Authorization Service Server Facet

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

M

 

 

 

8.2.2.3      ISA-95 Job Order Receiver Server Profile

Table 46 defines a Profile that describes a Server that has the ReceiveJobOrder Method.

Table 46ISA-95 Job Order Receiver Server Profile

Group

Conformance Unit / Profile Title

M / O

Profile

ISA-95 Job Control Base Server Facet

M

ISA-95

ISA-95 Job Order Receiver

M

 

8.2.2.4      ISA-95 Job Response Provider Server Profile

Table 47 defines a Profile that describes a Server that has the RequestJobResponse Method.

Table 47ISA-95 Job Response Provider Server Profile

Group

Conformance Unit / Profile Title

M / O

Profile

ISA-95 Job Control Base Server Facet

M

ISA-95

ISA-95 Job Response Provider

M

 

8.2.2.5      ISA-95 Job Response Receiver Server Profile

Table 46 defines a Profile that describes a Server that has the ReceiveJobResponse Method.

Table 48ISA-95 Job Response Receiver Server Profile

Group

Conformance Unit / Profile Title

M / O

Profile

ISA-95 Job Control Base Server Facet

M

ISA-95

ISA-95 Job Response Receiver

M

 

8.2.3      Client Facets

8.2.3.1      Overview

The following tables specify the Facets available for Clients that implement the OPC 30261 ISA-95 Job Control companion specification.

8.2.3.2      ISA-95 Job Control Base Client Profile

 

Table 49ISA-95 Job Control Base Server Profile

Group

Conformance Unit / Profile Title

M / O

Profile

0:Standard 2017 UA Client Profile

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

M

Profile

0:Documentation – Client

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

M

Profile

0:Security User Access Control Base

http://opcfoundation.org/UA-Profile/Security/UserAccessBase

M

Profile

0:Security Time Synchronization

http://opcfoundation.org/UA-Profile/Security/TimeSync

M

Profile

0:Best Practice – Random Numbers

http://opcfoundation.org/UA-Profile/Security/BestPracticeRandomNumbers

M

Profile

0:Best Practice – Timeouts

http://opcfoundation.org/UA-Profile/Security/BestPracticeTimeouts

M

Profile

0:Best Practice – Administrative Access

http://opcfoundation.org/UA-Profile/Security/BestPracticeAdministrativeAccess

M

Profile

0:Best Practice – Strict Message Handling

http://opcfoundation.org/UA-Profile/Security/BestPracticeStrictMessage

M

Profile

0:SecurityPolicy [A] - Aes128-Sha256-RsaOaep

http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep

M

Profile

0:SecurityPolicy [B] – Basic256Sha256

http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256

M

Profile

0:User Token – JWT Client Facet

http://opcfoundation.org/UA-Profile/Security/UserToken/Client/JsonWebToken

M

Profile

0:User Role Management Client Facet

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

M

Profile

0:Global Certificate Management Server Facet

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

M

 

8.2.3.3      ISA-95 Job Order Receiver Client Profile

Table 50 defines a Profile that describes a Client that uses the ReceiveJobOrder Method.

Table 50Job Order Receiver Client Profile Definition

Group

Conformance Unit / Profile Title

M / O

Profile

ISA-95 Job Control Base Client Facet

M

ISA-95

ISA-95 Job Order Receiver Client

M

 

8.2.3.4      ISA-95 Job Response Provider Client Profile

Table 51 defines a Profile that describes a Client that uses the RequestJobResponse Method.

Table 51Job Order Response Provider Client Profile Definition

Group

Conformance Unit / Profile Title

M / O

Profile

ISA-95 Job Control Base Client Facet

M

ISA-95

ISA-95 Job Response Provider Client

M

 

8.2.3.5      ISA-95 Job Response Receiver Client Profile

Table 52 defines a Profile that describes a Client that uses the ReceiveJobResponse Method.

Table 52Job Order Response Receiver Client Profile Definition

Group

Conformance Unit / Profile Title

M / O

Profile

ISA-95 Job Control Base Client Facet

M

ISA-95

ISA-95 Job Response Receiver Client

M

 

9          Namespaces

9.1     Namespace Metadata

Table 53 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 53 – NamespaceMetadata Object for this Specification

Attribute

Value

BrowseName

http://opcfoundation.org/UA/ISA95-JOBCONTROL

Property

DataType

Value

NamespaceUri

String

http://opcfoundation.org/UA/ISA95-JOBCONTROL

NamespaceVersion

String

1.0.0

NamespacePublicationDate

DateTime

2021-03-31

IsNamespaceSubset

Boolean

False

StaticNodeIdTypes

IdType []

0

StaticNumericNodeIdRange

NumericRange []

1:2147483647

StaticStringNodeIdPattern

String

0

 

9.2     Handling of OPC UA Namespaces

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

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

Table 54 provides a list of mandatory and optional namespaces used in an ISA 95 Job Control OPC UA Server.

Table 54 – Namespaces used in an ISA 95 Job Control Server

NamespaceURI

Description

Use

http://opcfoundation.org/UA/

Namespace for NodeIds and BrowseNames defined in the OPC UA specification. This namespace shall have namespace index 0.

Mandatory

Local Server URI

Namespace for nodes defined in the local server. This namespace shall have namespace index 1.

Mandatory

http://opcfoundation.org/UA/ISA95JobControl/

Namespace for NodeIds and BrowseNames defined in this document. The namespace index is Server specific.

Mandatory

Vendor specific types

A Server may provide vendor-specific types like types derived from ObjectTypes defined in this document in a vendor-specific namespace.

Optional

Vendor specific instances

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

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

Mandatory

 

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

Table 55 – Namespaces used in this document

NamespaceURI

Namespace Index

Example

http://opcfoundation.org/UA/

0

0:EngineeringUnits

http://opcfoundation.org/UA/DI/

2

2:DeviceRevision

http://opcfoundation.org/UA/Dictionary/IRDI/

3

3:0112/2///61987#xzx608

 

 

                                                                   Annex A (normative):
ISA95 Job Control Namespace and mappings

A.1      Namespace and identifiers for ISA95 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 <ISA95PropertyDataType> ObjectType Node which has the <PropertyValue> Property. The Name for the <PropertyValue> InstanceDeclaration within the <type> declaration is: ISA95PropertyDataType_PropertyValue.

The NamespaceUri for all NodeIds defined here is http://opcfoundation.org/UA/ISA95-JOBCONTROL

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/ISA95-JOBCONTROL/1.0/opc.ua.isa95-jobcontrol.nodeset2.csv

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

http://www.opcfoundation.org/UA/schemas/ISA95-JOBCONTROL/opc.ua.isa95-jobcontrol.nodeset2.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/ISA95-JOBCONTROL/1.0/opc.ua.isa95-jobcontrol.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/ISA95-JOBCONTROL/opc.ua.isa95-jobcontrol.nodeset2.xml

 

                                                                                Annex B
OPC UA Method result Codes

B.1      Method Result Codes (Informative)

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

Table 56 – 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.)

 

B.2      Job Order Method Return Status Codes

The job order methods’ return status codes are defined as a bit map in a UInt64 variable, allowing for multiple codes to be defined at the same time. The codes and bitmap positions are defined in Table 57. In the OPC format, the bit positions start at bit 0 for the least significant digit. 

Table 57 – ISA-95 Methods Return Status Codes

Bit Position

Description

Notes

0

No Error

If bit 0 set (UInt64 value = 1) then there are no errors.  This is returned on all successful method calls.

1

Unknown Job Order ID

The Job Order ID is unknown by the Information Receiver/Provider

2

Invalid Job Order Command

The command cannot be executed by the Information Receiver.

3

Invalid Job Order Status

The Job Order status is unknown.

4

Unable to accept Job Order

The Job Order cannot be accepted

32

Invalid request

The request is invalid due to an unspecified reason.

33-63

Reserved

These values are reserved for use in specific implementations and should be defined in the implementation specification.

 

                                                                  Annex C (Informative):
Example Job Orders

C.1      Simple Job Order

The following example, in JSON format, defines a simple Job Order that defines a packaging order that contains three levels of packaging, and quantities for each level. The example uses project specific properties.

 

{

  "Job Order": {

    "ID": "4568724",

    "Description": "A simple job order which uses pre-defined material master data",

    "JobOrderParameters": [

      {

        "ID": "Item Expiration Date",

        "Value": "2022-12-31T23:59:59+01:00"

      },

      {

        "ID": "Printed Item Expiration Date",

        "Value": "2022-12-31"

      },

      {

        "ID": "ERP Order Number",

        "Value": "TestOrderNo2"

      },

      {

        "ID": "Param1",

        "Value": "XXX"

      },

      {

        “ID”: "Event Context":’

         “Subparameters”:[

          {

          “ID”: “OrderID”, "uom": "L3OrderId", "value": "IAmJustAnOrderID"

          }

        ]

      }

    ],

    "MaterialRequirement": {

      "MaterialDefinitionID": "A548646-5",

      "Quantity": 500000

    }

  }

}

 

C.2      Job Order with Packaging Master Data

The following example, in JSON format, defines a more complex Job Order that defines a packaging order that contains three levels of packaging, quantities for each level, and details for each packaging level. The example uses project specific properties.

 

{

  "Job Order": {

    "ID": "81e54f03-9e4e-48c9-97e6-0554f3f6a4a0",

    "Description": "A test job order with all packaging/material master data defined",

    "StartTime": "2020-06-12T12:00:00+01:00",

    "Equipment Requirement": {

      "ID": "LineController#2"

    },

    "JobOrderParameters": [

      {

        "ID": "Item Expiration Date",

        "Value": "2022-12-31T23:59:59+01:00"

      },

      {

        "ID": "Printed Item Expiration Date",

        "Value": "2022-12-31"

      },

      {

        "ID": "ERP Order Number",

        "Value": "TestOrderNo1"

      },

      {

        "Event Context": {

          "uom": "L3OrderId",

          "value": "IAmJustAnOrderID"

        }

      }

    ],

    "Material Requirement": {

      "MaterialDefinitionID": "A548646-5",

      "MaterialLotID": "TestBatchNo",

      "MaterielUse": "material produced",

      "Quantity": "500000",

      "Material Requirement Property": [

        {

          "ID": "Product Name",

          "Value": "Test Material"

        },

        {

          "ID": "Param1",

          "Value": "XXX"

        },

        {

          "ID": "Param2",

          "Value": "XXX"

        },

        {

          "ID": "Product Packaging Code",

          "Value": "0123456712345x",

          "Material Requirement Property": [

            {

              "ID": "Product Packaging Code Type",

              "Value": "GTIN"

            },

            {

              "ID": "Package Type Code",

              "Value": "FOB"

            },

            {

              "ID": "Level Is Serialized",

              "Value": "true"

            },

            {

              "ID": "Has Parent Level",

              "Value": "true"

            },

            {

              "ID": "Has Pre-Printed Serial Numbers",

              "Value": "false"

            },

            {

              "ID": "Is Definition For Partial",

              "Value": "false"

            },

            {

              "ID": "Pool Selection Criteria",

              "Value": "Box#TestBatch#54841",

              "Material Requirement Property": {

                "ID": "Pool Selection Criteria Type",

                "Value": "PoolID"

              }

            }

          ]

        },

        {

          "ID": "Product Packaging Code",

          "Value": "",

          "Material Requirement Property": [

            {

              "ID": "Child Package Type Code",

              "Value": "FOB"

            },

            {

              "ID": "Package Type Code",

              "Value": "BD"

            },

            {

              "ID": "Immediate Children Items Quantity",

              "Value": "5"

            },

            {

              "ID": "Level Is Serialized",

              "Value": "false"

            },

            {

              "ID": "Has Parent Level",

              "Value": "true"

            }

          ]

        },

        {

          "ID": "Product Packaging Code",

          "Value": "3123456712345x",

          "Material Requirement Property": [

            {

              "ID": "Product Packaging Code Type",

              "Value": "GTIN"

            },

            {

              "ID": "Child Package Type Code",

              "Value": "BD"

            },

            {

              "ID": "Package Type Code",

              "Value": "CS"

            },

            {

              "ID": "Immediate Children Items Quantity",

              "Value": "4"

            },

            {

              "ID": "Level Is Serialized",

              "Value": "true"

            },

            {

              "ID": "Has Parent Level",

              "Value": "true"

            },

            {

              "ID": "Has Pre-Printed Serial Numbers",

              "Value": "false"

            },

            {

              "ID": "Is Definition For Partial",

              "Value": "false"

            },

            {

              "ID": "Pool Selection Criteria",

              "Value": "Case#TestBatch#5484#Full",

              "Material Requirement Property": {

                "ID": "Pool Selection Criteria Type",

                "Value": "PoolID"

              }

            }

          ]

        },

        {

          "ID": "Product Packaging Code",

          "Value": "1234567",

          "Material Requirement Property": [

            {

              "ID": "Product Packaging Code Type",

              "Value": "SSCCGCP",

              "Material Requirement Property": {

                "ID": "Product Packaging Code",

                "Value": "5",

                "Material Requirement Property": {

                  "ID": "Product Packaging Code Type",

                  "Value": "SSCCExtension"

                }

              }

            },

            {

              "ID": "Child Package Type Code",

              "Value": "BD"

            },

            {

              "ID": "Package Type Code",

              "Value": "CS"

            },

            {

              "ID": "Immediate Children Items Quantity",

              "Value": "4"

            },

            {

              "ID": "Level Is Serialized",

              "Value": "true"

            },

            {

              "ID": "Has Parent Level",

              "Value": "true"

            },

            {

              "ID": "Has Pre-Printed Serial Numbers",

              "Value": "false"

            },

            {

              "ID": "Is Definition For Partial",

              "Value": "true"

            },

            {

              "ID": "Pool Selection Criteria",

              "Value": "Case#TestBatch#5484#Partial",

              "Material Requirement Property": {

                "ID": "Pool Selection Criteria Type",

                "Value": "PoolID"

              }

            }

          ]

        },

        {

          "ID": "Product Packaging Code",

          "Value": "1234567",

          "Material Requirement Property": [

            {

              "ID": "Product Packaging Code Type",

              "Value": "SSCCGCP",

              "Material Requirement Property": {

                "ID": "Product Packaging Code",

                "Value": "7",

                "Material Requirement Property": {

                  "ID": "Product Packaging Code Type",

                  "Value": "SSCCExtension"

                }

              }

            },

            {

              "ID": "Planned Quantity",

              "Value": "782"

            },

            {

              "ID": "Child Package Type Code",

              "Value": "CS"

            },

            {

              "ID": "Package Type Code",

              "Value": "PX"

            },

            {

              "ID": "Immediate Children Items Quantity",

              "Value": "32"

            },

            {

              "ID": "Level Is Serialized",

              "Value": "true"

            },

            {

              "ID": "Has Parent Level",

              "Value": "false"

            },

            {

              "ID": "Has Pre-Printed Serial Numbers",

              "Value": "false"

            },

            {

              "ID": "Is Definition For Partial",

              "Value": "false"

            },

            {

              "ID": "Pool Selection Criteria",

              "Value": "Pallet#TestBatch#5484#Partial",

              "Material Requirement Property": {

                "ID": "Pool Selection Criteria Type",

                "Value": "PoolID"

              }

            }

          ]

        }

      ]

    }

  }

}   

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/