OPC UA Companion-Specification

OPC 10020

 

OPC Unified Architecture

for

Analyser Devices

 

 

Release 1.01a

2015-01-09

 

 

 

 


 

Specification Type

Industry Standard Specification

Comments:

 

 

 

 

Document
Number

OPC 10020

 

 

Title:

OPC Unified Architecture
Analyser Devices

Date:

2015-01-09

 

 

 

 

Version:

Release 1.01a

Software

MS-Word

 

 

Source:

OPC 10020 - UA Companion Specification for Analyser Devices 1.01a.docx

 

 

 

 

Author:

OPC Foundation

Status:

Release

 

 

 

 


CONTENTS

Page

 

1      Scope......................................................................................................... 1

2      Reference documents..................................................................................... 1

3      Terms, definitions, and abbreviations.................................................................. 1

3.1     Terms and definitions.............................................................................. 1

3.2     Abbreviations and symbols....................................................................... 3

3.3     Naming convention................................................................................. 4

4      Concepts..................................................................................................... 5

4.1     General................................................................................................ 5

4.2     Overview.............................................................................................. 5

5      Model......................................................................................................... 7

5.1     General................................................................................................ 7

5.2     Object Types......................................................................................... 9

5.3     State Machines..................................................................................... 49

5.4     Variable Types.................................................................................... 101

5.5     EngineeringValueType.......................................................................... 102

5.6     ChemometricModelType........................................................................ 102

5.7     ProcessVariableType........................................................................... 103

5.8     Data Types........................................................................................ 105

5.9     Reference Types................................................................................. 106

6      Integration Profiles...................................................................................... 108

6.1     Analyser Server Profiles........................................................................ 108

6.2     Analyser Client Profile.......................................................................... 109

Annex A (informative) – Example of extending ADI Information Model for particle size monitor devices. 110

A.1    Overview........................................................................................... 110

A.2    Parameters of  ParticleSizeMonitorDeviceType........................................... 110

A.3    Accessories of ParticleSizeMonitorDeviceType........................................... 112

Annex B (informative) – Example of extending ADI Information Model for gas chromatograph devices 116

B.1    Overview........................................................................................... 116

B.2    Gas Chromatograph Parameters............................................................. 117

Annex C (informative) – Parameter Representation.................................................. 125

C.1    Simple Parameters.............................................................................. 125

C.2    Array Parameters................................................................................ 126

Annex D (informative) – Events, Alarms and Conditions............................................ 127

Annex E (informative) – Operation level result codes................................................ 128

Annex F (informative) – ADI address space............................................................ 130

F.1     Define your Analyser Server................................................................... 130

F.2     Configuration...................................................................................... 130

F.3     Parameters........................................................................................ 131

F.4     Methods............................................................................................ 134

F.5     DeviceType properties.......................................................................... 134

F.6     Disconnection handling......................................................................... 135

Annex G (informative) – Prediction service............................................................. 136

G.1    Prediction server use case..................................................................... 136

G.2    Prediction service................................................................................ 137

G.3    MVAModelType................................................................................... 138

Annex H (normative) Namespace and Mappings...................................................... 143

 


Figures

Figure 1 – High Level Object Model overview............................................................. 6

Figure 2 - Object Model Overview........................................................................... 8

Figure 3 - AnalyserDeviceType............................................................................... 9

Figure 4 – AnalyserDeviceType Components............................................................ 10

Figure 5 - AnalyserDeviceType Components cont...................................................... 11

Figure 6 - AnalyserDeviceType Hierarchy................................................................ 13

Figure 7 - AnalyserChannelType........................................................................... 21

Figure 8 - AnalyserChannelType FunctionalGroups.................................................... 22

Figure 9 - AnalyserChannelType Components.......................................................... 23

Figure 10 - StreamType Hierarchy......................................................................... 29

Figure 11 - Stream FunctionalGroups..................................................................... 31

Figure 12 - AccessorySlotType Components............................................................ 37

Figure 13 – AccessoryType.................................................................................. 39

Figure 14 - ParticleSizeMonitorDeviceType.............................................................. 45

Figure 15 - ChromatographDeviceType................................................................... 47

Figure 16 - ADI State Machines............................................................................ 50

Figure 17 - AnalyserDeviceStateMachine................................................................ 51

Figure 18 - AnalyserChannelStateMachine.............................................................. 57

Figure 19 - AnalyserChannel_OperatingModeSubStateMachineType.............................. 65

Figure 20 - AnalyserChannel_OperatingModeExecuteSubStateMachineType................... 82

Figure 21 – AccessorySlotStateMachineTypeMachineType.......................................... 98

Figure 22 - AccessoryType of ParticleSizeMonitorDeviceType.................................... 112

Figure 23 – GC overview................................................................................... 116

Figure 24 – MVAModelType............................................................................... 138

 


Tables

Table 1 - AnalyserDeviceType Definition................................................................. 12

Table 2 –AnalyserDeviceType Sub-type definition..................................................... 13

Table 3 – AnalyserDevice Configuration Parameters.................................................. 14

Table 4 – AnalyserDevice Status Parameters........................................................... 15

Table 5 – AnalyserDevice FactorySettings Parameters............................................... 15

Table 6 – GetConfiguration Method........................................................................ 16

Table 7 – SetConfiguration Method........................................................................ 17

Table 8 – GetConfigDataDigest Method.................................................................. 18

Table 9 – CompareConfigDataDigest Method........................................................... 18

Table 10 – ResetAllChannels Method..................................................................... 19

Table 11 – StartAllChannels Method...................................................................... 19

Table 12 – StopAllChannels Method....................................................................... 19

Table 13 – AbortAllChannels Method...................................................................... 19

Table 14 - GotoOperating Method.......................................................................... 20

Table 15 - GotoMaintenance Method...................................................................... 20

Table 16 – Method result codes for AnalyserDeviceType methods................................. 20

Table 17 – AnalyserChannelType Definition............................................................. 24

Table 18 – AnalyserChannel Configuration Parameters............................................... 25

Table 19 – AnalyserChannel Status Parameters........................................................ 25

Table 20 – StartSingleAcquisition Method................................................................ 26

Table 21 - GotoOperating Method.......................................................................... 26

Table 22 - GotoMaintenance Method...................................................................... 26

Table 23 - Reset Method..................................................................................... 26

Table 24 - Start Method...................................................................................... 27

Table 25 - Stop Method....................................................................................... 27

Table 26 - Hold Method....................................................................................... 27

Table 27 - Unhold Method................................................................................... 27

Table 28 - Suspend Method................................................................................. 27

Table 29 - Unsuspend Method.............................................................................. 28

Table 30 - Abort Method...................................................................................... 28

Table 31 - Clear Method...................................................................................... 28

Table 32 - Method result codes for AnalyserChannelType methods................................ 28

Table 33 – StreamType Definition.......................................................................... 32

Table 34 –Stream Configuration Parameters............................................................ 32

Table 35 –Stream Status Parameters..................................................................... 33

Table 36 - Stream AcquisitionSettings Parameters..................................................... 33

Table 37 –Stream AcquisitionStatus Parameters....................................................... 33

Table 38 –Stream AcquisitionData Parameters......................................................... 34

Table 39 –Stream Context Parameters................................................................... 36

Table 40 – Stream ChemometricModelSettings Parameters......................................... 36

Table 41 – AccessorySlotType Definition................................................................. 37

Table 42 – AccessoryType Definition...................................................................... 39

Table 43 - DetectorType...................................................................................... 40

Table 44 - SmartSamplingSystemType................................................................... 40

Table 45 - SourceType....................................................................................... 41

Table 46 - SpectrometerDeviceType...................................................................... 41

Table 47 – SpectrometerDeviceType FactorySettings Parameters................................. 41

Table 48 – SpectrometerDeviceStreamType Configuration Parameters........................... 42

Table 49 – SpectrometerDeviceStreamType AcquisitionSettings Parameters.................... 42

Table 50 – SpectrometerDeviceStreamType AcquisitionStatus Parameters...................... 43

Table 51 – SpectrometerDeviceStreamType AcquisitionData Parameters........................ 43

Table 52 - MassSpectrometerDeviceType................................................................ 44

Table 53 - ParticleSizeMonitorDeviceType............................................................... 45

Table 54 – ParticleSizeMonitorDeviceStreamType AcquisitionData Parameters................ 46

Table 55 - AcousticSpectrometerDeviceType............................................................ 46

Table 56 - ChromatographDeviceType.................................................................... 47

Table 57 – ChromatographDeviceStreamType AcquisitionData Parameters..................... 48

Table 58 - GCOvenType...................................................................................... 49

Table 59 - NMRDeviceType................................................................................. 49

Table 60 – AnalyserDeviceStateMachineType Definition............................................. 52

Table 61 – AnalyserDeviceStateMachineType States................................................. 53

Table 62 – AnalyserDeviceStateMachineType State Description................................... 53

Table 63 – AnalyserDeviceStateMachineType Transitions........................................... 55

Table 64 – AnalyserChannelStateMachineType Definition........................................... 58

Table 65 – AnalyserChannelOperatingStateType Definition.......................................... 59

Table 66 – AnalyserChannelLocalStateType Definition............................................... 59

Table 67 – AnalyserChannelMaintenanceStateType Definition...................................... 59

Table 68 – AnalyserChannelStateMachineType State Description.................................. 59

Table 69 – AnalyserChannelStateMachineType States............................................... 60

Table 70 – AnalyserChannelStateMachineType Transitions......................................... 62

Table 71 – AnalyserChannel_OperatingModeSubStateMachineType Definition................. 67

Table 72 – AnalyserChannelOperatingModeExecuteStateType Definition........................ 69

Table 73 – AnalyserChannel_OperatingModeSubStateMachineType State Descriptions...... 70

Table 74 – AnalyserChannel_OperatingModeSubStateMachineType States..................... 72

Table 75 – AnalyserChannel_OperatingModeSubStateMachine Transitions..................... 76

Table 76 – AnalyserChannel_OperatingModeExecuteSubStateMachineType Definition....... 83

Table 77 – AnalyserChannel_OperatingModeExecuteSubStateMachineType State Descriptions   86

Table 78 – AnalyserChannel_OperatingModeExecuteSubStateMachineType States........... 89

Table 79 – AnalyserChannel_OperatingModeExecuteSubStateMachine Transitions........... 93

Table 80 – AccessorySlotStateMachineType Definition............................................... 99

Table 81 – AccessorySlotStateMachineType State Descriptions.................................... 99

Table 82 – AccessorySlotStateMachineType States................................................. 100

Table 83 – AccessorySlotStateMachineType Transitions........................................... 101

Table 84 – EngineeringValueType Definition........................................................... 102

Table 85 – ChemometricModelType Definition......................................................... 103

Table 86 - Setting OPC UA Variable Attributes and Properties for ChemometricModelType 103

Table 87 – ProcessVariableType Definition............................................................ 105

Table 88 – ExecutionCycleEnumeration states........................................................ 105

Table 89 – AcquisitionResultStatusEnumeration states............................................. 106

Table 90 - Level1 Analyser Server Profile Conformance Units..................................... 108

Table 91 - Level2 Analyser Server Profile Conformance Units..................................... 109

Table 92 - Analyser Client Profile Conformance Units............................................... 109

Table 93 – ParticleSizeMonitorDeviceType AnalyserChannel Configuration Parameters (Laser Diffraction Technology)..................................................................................... 110

Table 94 – ParticleSizeMonitorDeviceType AnalyserChannel Status Parameters (Laser Diffraction Technology)................................................................................................... 110

Table 95 – ParticleSizeMonitorDeviceStreamType AcquisitionSettings Parameters (Laser Diffraction Technology)................................................................................................... 111

Table 96 – ParticleSizeMonitorDeviceType AnalyserChannel Status Parameters (Alternative to Table 94) 111

Table 97 – ParticleSizeMonitorDeviceStreamType AcquisitionSettings Parameters (Alternative to Table 95) 112

Table 98 - DispersionAccessoryType.................................................................... 113

Table 99 – DispersionAccessoryType Configuration Parameters.................................. 113

Table 100 – DispersionAccessoryType Status Parameters......................................... 113

Table 101 - LiquidDispersionUnitType................................................................... 114

Table 102 – LiquidDispersionUnitType Configuration Parameters................................ 114

Table 103 – LiquidDispersionUnitType Status Parameters......................................... 114

Table 104 – GasDispersionUnitType Object............................................................ 115

Table 105 – GasDispersionUnitType Configuration Parameters................................... 115

Table 106 - GasDispersionUnitType Status Parameters............................................. 115

Table 107- ChromatographDeviceType Configuration Parameters................................ 117

Table 108 - ChromatographDeviceType Status Parameters........................................ 117

Table 109 - ChromatographDeviceType AnalyserChannel Configuration Parameters........ 118

Table 110 - ChromatographDeviceStreamType Configuration Parameters...................... 118

Table 111 - ABBComponentValueType definition..................................................... 119

Table 112 – SiemensComponentValueType Definition............................................... 122

Table 113 - ADI DataItem Attributes..................................................................... 125

Table 114 - Uncertain operation level result codes................................................... 128

Table 115 – MVAModelType Definition.................................................................. 138

Table 116 - Setting OPC UA Variable Attributes for MVAModelType............................. 139

Table 117 – MVAOutputParameterType Definition.................................................... 139

Table 118 – AlarmStateEnumeration Values........................................................... 140

Table 119 - MVAPredictMethodType..................................................................... 141


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

Copyright © 2006-2013, OPC Foundation, Inc.

AGREEMENT OF USE

COPYRIGHT RESTRICTIONS

Any unauthorized use of this specification may violate copyright laws, trademark laws, and communications regulations and statutes. This document contains information which is protected by copyright. All Rights Reserved. No part of this work covered by copyright herein may be reproduced or used in any form or by any means--graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems--without permission of the copyright owner.

OPC Foundation members and 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
HTUhttp://www.opcfoundation.orgUTH.

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 are the OPC Foundation,. 16101 N. 82nd Street, Suite 3B, Scottsdale, AZ, 85260-1830

COMPLIANCE

The OPC Foundation shall at all times be the sole entity 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.

ISSUE REPORTING

The OPC Foundation strives to maintain the highest quality standards for its published specifications; hence they undergo constant review and refinement. Readers are encouraged to report any issues and view any existing errata here: HTUhttp://www.opcfoundation.org/errataUTH


Revision 1.1a Highlights

This revision contains only two typos corrections in links in Annex H.

Revision 1.1 Highlights

This revision contains minor modifications simplify implementation,fix typos, synchronize with latest OPC UA and DI specifications.

The following table includes the main changes.

Summary

Resolution

Add support for large configuration

Defined an optional ConfigData File object and associated rules allowing an external to set the ConfigData larger than a single OPC UA message.

Add support for pluggable AnalyserChannel and Stream

Allow AnalyserDevice to have 0..n AnalyserChannel and AnalyserChannel to have 0..n Stream.

Simplify implementation of state machines

Now, all methods are only part of MethodSet, they no longer need to be part of objects themselves neither state machines.

Synchronize with the DI specification v1.1 release

Use same conventions as DI specification v1.1 like DeviceHealth enumeration and profiles

Synchronize with OPC UA v1.02

Use new types defined in [OPC 10000-8].

Offset

The time between the start sample extraction and the start of the analysis is now reflected in the optional AcquisitionData.Offset parameter.

Time management

Time stamp of the acquisition data is now the time of the extraction of the sample.

 

 


1          Scope

This specification is an extension of the overall OPC Unified Architecture specification series and defines the information model associated with analytical devices (analysers). The model described in this specification is intended to provide a unified view of analysers irrespective of the underlying device protocols.

2          Reference documents

[ISA-88]        ANSI/ISA 88.01-1995 Batch Control Part 1: Models and terminology

[ISA-88 TR]    ANSI/ISA TR 88.02-2008 Machine and Unit States Technical Report

[NE-107]       NAMUR Recommendation, Self-Monitoring and Diagnosis of Field Devices.

[OPC 10000-100], OPC Unified Architecture – Part 100: Devices

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

[OPC 10000-1], OPC Unified Architecture – 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-7], OPC Unified Architecture – Part 7: Profiles

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

[OPC 10000-8], OPC Unified Architecture – Part 8: Data Access

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

3          Terms, definitions, and abbreviations

3.1      Terms and definitions

For the purposes of this document, the terms and definitions given in [OPC 10000-1], [OPC 10000-3], [OPC 10000-4], [OPC 10000-5], [OPC 10000-7], [OPC 10000-8], and [OPC 10000-100] as well as the following apply.

3.1.1     

Accessory

a physical device which can be mounted on the Analyser or Analyser Channel to enhance its behaviour or operation.

NOTE:   Examples of accessories are: vial holder, filter wheel, auger, and heater.

3.1.2     

Accessory Slot

a physical location on the Analyser or Analyser Channel where an Accessory can be attached.

3.1.3     

Analyser Device

a device comprised of one or more analyser channels with a single address space which has its own configuration, status and control.

3.1.4     

Analyser Channel

a subset of an Analyser that represents a specific sensing port and associated data, which includes scaled data (e.g. spectrum), configuration, status and control.

3.1.5     

Analyser Client

an OPC UA Client, which is aware of the ADI Information Model.

3.1.6     

Analyser Configuration

a set of values of all Parameters that when set, put the analyser in a well defined state.

3.1.7     

Analyser Model

a description of a mathematical process and associated information to convert raw data into scaled data.

3.1.8     

Analyser Server

an OPC UA Server, which implements the ADI Information Model.

3.1.9     

Calibration

one or more acquisitions using reference samples in order to determine the factors used to convert analyser raw data to scaled data.

3.1.10   

Chemometric Model

a description of a mathematical process and associated information to convert scaled data into one or more process values (process data).

3.1.11   

Chromatographic Application

a defined series of hardware, valves, columns, and detectors, to produce an chromatographic result on a requested process stream analysis.

3.1.12   

Parameter

a specialization of Parameter defined in [OPC 10000-100] for AnalyserDevice, AnalyserChannel, AccessorySlot,  Accessory or Stream and used to configure or publish information about the analytical device or its components.

NOTE: All Parameters described in this specification are represented by OPC UA Variables.

3.1.13   

Process Data

Data generated from scaled data by applying a chemometric model.

NOTE:   Process data is typically represented as a scalar value or a set of scalar values and it is often used for process control. Examples of process data are: concentration, moisture and hardness.

3.1.14   

Raw Data

Data generated by an analyser representing an actual measurement but without any meaningful units.

NOTE: Raw data is typically represented as an array of numbers. Examples of raw data are: raw spectrum, chromatogram and particle size beam count. Typically, this data is not directly consumed by a Client.

3.1.15   

Sampling point

a physical interface point on the process where the process is monitored. Certain analysers perform in-place, non-destructive measurements whereas others extract a sample.

3.1.16   

Scaled Data

Data generated from raw data and representing an actual measurement expressed in meaningful units.

NOTE: Scaled data is typically represented as an array of numbers. Examples of scaled data are: absorbance, scatter intensity.

3.1.17   

Stream

a mapping between an AnalyserChannel and the process sampling points.

NOTE: One AnalyserChannel can handle one or more sampling points, which means that an AnalyserChannel can be associated with one or more Streams.

3.1.18   

Validation

one or more acquisitions using reference samples to demonstrate that the results provided by the analyser are still within the acceptable ranges.

3.2     Abbreviations and symbols

ADI             Analyser Device Integration

ATR            Attenuated Total Reflectance

DA              Data Access

DCS            Distributed Control System

DI               Device Integration

HMI             Human Machine Interface

LIMS           Laboratory Information Management System

OEM           Original Equipment Manufacturer

OPC-ADI      Namespace of the Unified Architecture Analyser Device Interface Information Model

OPC-DI        Namespace of the Unified Architecture Devices Information Model

OPC-UA       Namespace of the Unified Architecture Information Model

UA              Unified Architecture

 

3.3       Naming convention

Instances are referred to using the same identifiers as their type definition without Type suffix.

Identifiers described as a name enclosed in angle brackets e.g. <ParameterIdentifier> or <GroupIdentifier> represent identifiers assigned by the Analyser Server and not explicitly defined by this specification.

4          Concepts

4.1       General

This specification defines an Information Model for analysers. This Information Model is also referred to as the ADI Information Model. Analysers can be further refined into various groups such as light spectrometers, particle size monitoring systems, imaging particle size monitoring systems, acoustic spectrometers, mass spectrometers, chromatographs, Imaging systems and nuclear magnetic resonance spectrometers. These groups can be extended and each group can also be further divided.  The requirements for all of these groups of analysers can vary, but this specification defines an Information Model that can be applied to all groups of analysers.

OEM integrators often build specialized analytical devices, e.g. octane monitor, by combining several off-the-shelf analysers and accessories. That kind of compound analytical device can be treated as yet another type of Analyser to which this Information Model applies.

4.2      Overview

The object model that describes analysers is separated into a definition of AnalyserDevice, AnalyserChannel, Stream, Accessory and AccessorySlot.

Figure 1 provides a high-level view of how those components are related to each other. In general terms AnalyserDevice represents the instrument as a whole. Each AnalyserDevice has at least one AnalyserChannel and may have AccessorySlots through which an Accessory can be connected. Similarly, each AnalyserChannel may have AccessorySlots through which Accessories can be connected. Data acquisition occurs through the AnalyserChannel or through the Accessory connected to that AnalyserChannel. Accessories can only be connected through the AccessorySlots.

The interface with the process to monitor is done through a sampling system that connects the AnalyserChannel to a specific sampling point in the process. This connection is also referred as a Stream.

To decrease the cost of the analyser per sampling point, some analysers use sampling systems that can multiplex more than one sampling point. These systems are often referred to as multi-stream analysers.

More than one AnalyserChannel can collect data from the process at the same time, but only one Stream may be active at a given time on an AnalyserChannel.

 

 

Figure 1 – High Level Object Model overview

For a detailed overview diagram of the ADI object model, refer to Figure 2. Elements illustrated in that diagram are further described in separate sections of this document..

5          Model

The following paragraphs describe the elements of the ADI Information Model. All elements of the ADI Information Model defined by this specification belong to OPC-ADI namespace unless otherwise specified. OPC-ADI namespace is identified by the following URI:

http://opcfoundation.org/UA/ADI/

5.1      General

Figure 2 illustrates the overview of the ADI object model. It illustrates main components of the object model in the OPC-UA notation as described in Appendix D of [OPC 10000-3].

AnalyserDeviceType, AnalyserChannelType, StreamType, AccessorySlotType and AccessoryType represent the main building blocks of the object model. They are described in detail in dedicated paragraphs of this specification. Object of type AnalyserDeviceType is the topmost Object of the ADI object model. It represents an abstract type which shall be subtyped for different types of analyser devices. Subtypes of AnalyserDeviceType are described in 5.2.1.3.

This specification does not attempt to define all Parameters for analysers or their components. Instead, it aims to provide a set of mandatory and optional Parameters which are common for all analysers or analysers within the same class (type). Additionally, this specification defines placeholders (FunctionalGroups) where instrument vendors can expose their custom Parameters.

Figure 2 - Object Model Overview

5.2       Object Types

5.2.1    AnalyserDevice

5.2.1.1 Type definition: AnalyserDeviceType ObjectType

AnalyserDeviceType defines the general structure of an AnalyserDevice Object. Figure 3, Figure 4 and Figure 5 show the inheritance hierarchy and detailed composition of AnalyserDeviceType. It is formally defined in Table 1.

 

 

Figure 3 - AnalyserDeviceType

AnalyserDeviceType is a subtype of DeviceType [OPC 10000-100] and as such can have Parameters which are kept in an Object called ParameterSet. Parameters represented by <ParameterIdentifier> and their list called ParameterSet are inherited from DeviceType.

TopologyElementType [OPC 10000-100] introduced a component called MethodSet, which can be used to organize Methods exposed to the Client. AnalyserDeviceType takes advantage of that inherited component and groups all of its Methods under MethodSet.

DeviceType also introduces FunctionalGroups identified by <GroupIdentifier> that expose its Parameters in an organized fashion reflecting the structure of the device. AnalyserDeviceType can have any number of FunctionalGroups.

AnalyserDeviceType defines three mandatory FunctionalGroups:

·      Configuration - used to organize Parameters representing the high-level configuration items of the analyser, which are expected to be modified by end users.

·      Status - used to organize Parameters which describe the general health of the analyser.

·      FactorySettings - used to organize Parameters, which describe the factory settings of the analyser that are not expected to be modified by end users.

Figure 4 – AnalyserDeviceType Components

The AnalyserDevice Object that represents an analyser has one or more AnalyserChannels. AnalyserChannel is described in clause 5.2.2. The AnalyserChannel Node instances are identified by <ChannelIndentifier> browse name.

AnalyserDevice Object has zero or more Objects of type AccessorySlotType and identified by <AccessorySlotIdentifier>. AccessorySlotType is described in clause5.2.4. AccessorySlot Objects represent physical locations on the analyser where the analytical accessory can be mounted. Accessories currently mounted on the analyser device as well as the supported accessories for the accessory slot are represented as components of the AccessorySlot Object. For details refer to clause 5.2.3.

Figure 5 - AnalyserDeviceType Components cont.

AnalyserDeviceType does not expose any mandatory Parameters to report or manipulate the state of an analyser device. Instead, AnalyserDevice states are exposed through the AnalyserStateMachine component of type AnalyserDeviceStateMachineType. For details on AnalyserDeviceStateMachineType see clause 5.3.2.

Table 1 - AnalyserDeviceType Definition

Attribute

Value

BrowseName

AnalyserDeviceType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the DeviceType defined in [OPC 10000-100]

HasSubtype

ObjectType

SpectrometerDeviceType

Defined in Clause 5.2.6.1

HasSubtype

ObjectType

ParticleSizeMonitorDeviceType

Defined in Clause 5.2.8.1

HasSubtype

ObjectType

AcousticSpectrometerDeviceType

Defined in Clause 5.2.9.1

HasSubtype

ObjectType

MassSpectrometerDeviceType

Defined in Clause 5.2.7.1

HasSubtype

ObjectType

ChromatographDeviceType

Defined in Clause 5.2.10.1

HasSubtype

ObjectType

NMRDeviceType

Defined in Clause 5.2.11.1

 

 

 

 

HasComponent

Object

Configuration

 

FunctionalGroupType

Mandatory

HasComponent

Object

Status

 

FunctionalGroupType

Mandatory

HasComponent

Object

FactorySettings

 

FunctionalGroupType

Mandatory

HasComponent

Object

<ChannelIdentifier>

 

AnalyserChannelType

OptionalPlaceHolder

HasComponent

Object

<AccessorySlotIdentifier>

 

AccessorySlotType

OptionalPlaceHolder

HasComponent

Object

AnalyserStateMachine

 

AnalyserDeviceStateMachineType

Mandatory

 

 

 

 

 

 

AnalyserDeviceType.MethodSet

HasComponent

Method

GetConfiguration

 

 

Mandatory

HasComponent

Method

SetConfiguration

 

 

Mandatory

HasComponent

Method

GetConfigDataDigest

 

 

Mandatory

HasComponent

Method

CompareConfigDataDigest

 

 

Mandatory

HasComponent

Method

ResetAllChannels

 

 

Mandatory

HasComponent

Method

StartAllChannels

 

 

Mandatory

HasComponent

Method

StopAllChannels

 

 

Mandatory

HasComponent

Method

AbortAllChannels

 

 

Mandatory

HasComponent

Method

GotoOperating

 

 

Mandatory

HasComponent

Method

GotoMaintenance

 

 

Mandatory

 

AnalyserDeviceType is a subtype of DeviceType defined in [OPC 10000-100] and as such it inherits DeviceType’s characteristics. For a complete definition of the DeviceType see [OPC 10000-100].

5.2.1.2 AnalyserDevice Object

The AnalyserDeviceType ObjectType is abstract. There will be no instances of an AnalyserDeviceType itself, but there will be instances of sub-types of this type. In this specification, the term AnalyserDevice generically refers to an instance of any ObjectType derived from the AnalyserDeviceType ObjectType.

All AnalyserDevices have Attributes and Properties that they inherit from the DeviceType. For those elements, the same rules as defined for Device Objects in [OPC 10000-100] apply.

5.2.1.3 Sub-types of AnalyserDeviceType ObjectType

The sub types of the AnalyserDeviceType are illustrated in Figure 6.  Each of these sub type may be further sub typed.

Figure 6 - AnalyserDeviceType Hierarchy

The AnalyserDeviceType is derived from the DeviceType as an Abstract type. It is sub-typed for each one of the analyser classes. Six sub-types are introduced:

Table 2 –AnalyserDeviceType Sub-type definition

AnalyserDeviceType

Description

SpectrometerDeviceType

A light spectrometer is an optical instrument used to measure Properties of light over a specific portion of the electromagnetic spectrum (IR/NIR/VIS/UV), typically used in spectroscopic analysis to identify chemical composition of sample materials. The use of analytical techniques to determine process control parameters from spectra allows a wide range of industrial applications. This type covers FTIR, diode array, etc.

AcousticSpectrometerDeviceType

An acoustic spectrometer uses sound wave emission and advanced pattern recognition software to predict the physical Properties of powders and particulates. This type of analyser uses high frequency sounds emitted by all physical and chemical processes (particle impact, turbulent gas flow, gas evolution, fermentation, cavitation and multiphase flow). It is a non-invasive technique which is responding to dynamic event making it suitable for process control.

MassSpectrometerDeviceType

A mass spectrometer is an analytical instrument used to measure the mass-to-charge ratio of ions. It is most generally used to find the composition of a physical sample by generating a mass spectrum representing the masses of sample components. A wide range of industrial process control applications are therefore possible, such as the online control of solvent drying.

ParticleSizeMonitorDeviceType

Particle size can be determined by light scattering (e.g. Focus Beam Reflectance Measurement) or other Methods. This type of analyser can be used to implement particle monitoring technique for in-line real-time measurement of particle size. A wide range of industrial process control applications are therefore possible such as the online control of crystallizers

ChromatographDeviceType

Chromatography is the collective term for a family of techniques for the separation of mixtures. It involves passing a mixture dissolved in a "mobile phase" through a stationary phase, which separates the analyte to be measured from other molecules in the mixture and allows it to be isolated.  Chromatography may be preparative or analytical. Preparative chromatography seeks to separate the components of a mixture for further use (and is thus a form of purification). Analytical chromatography normally operates with smaller amounts of material and seeks to measure the relative proportions of analytes in a mixture. The two are not mutually exclusive

NMRDeviceType

Nuclear Magnetic Resonance spectrometers

 

 

 

5.2.1.4 Parameters of AnalyserDeviceType

Parameters defined for the AnalyserDeviceType are described in the following tables. The tables correspond to mandatory FunctionalGroups defined for the AnalyserDeviceType. Additional Parameters may be defined on subtypes of AnalyserDeviceType and associated with those FunctionalGroups.

All AnalyserDevice Parameters exist as components of ParameterSet Object defined on that AnalyserDevice through inheritance from DeviceType. Each Parameter defined for an AnalyserDevice shall be accessible through one or more FunctionalGroup defined on that AnalyserDevice. Note, that the same Parameter is not instantiated more than once. Both, ParameterSet and a specific FunctionalGroup maintain References to the same instance of the Parameter.

Table 3 shows Parameters that will be organized by the Configuration FunctionalGroup.

Table 3 – AnalyserDevice Configuration Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

ConfigData

Optional representation of the AnalyserDevice configuration

FileType

 

O

 

 

 

 

 

ConfigData is an optional representation of the AnalyserDevice configuration. When it is present, it may be used to read and write the AnalyserDevice configuration in chunks. The main purpose of this element is to provide a way to read and write configuration that are larger than the maximum size of the OPC UA message. Reading and writing configuration through this object are subject to the same state machine constraints as GetConfiguration and SetConfiguration.

To maintain configuration consistency, the server must grant read and write access to one and only one user at any given time.

The steps to update the configuration through the ConfigData object are:

1.   When SetConfiguration is allowed based on the state machine states, a single user may cal “open” the ConfigData. If an “Open” is attempted when not permitted, the server shall return “Bad_InvalidState”.

2.   The user updates the configuration by calling repeatitively and in increasing order “write” method on ConfigData. If the “Write” are not sequential, the server shall return “Bad_InvalidArgument”.

3.   When the whole configuration has been written, the user calls “close” method on the ConfigData.

4.   The server is responsible to verify the configuration. If an error occurs during the verification, the server shall return “Bad_InvalidArgument” on the “Close”. In case of error, the previous configuration is restored.

5.   The server commits the new configuration. . If an error occurs during the commit, the server shall return “Bad_InvalidArgument” on the “Close”. In case of error, the previous configuration is restored.

Table 4 shows Parameters that will be organized by the Status FunctionalGroup. All Parameters organized by this FunctionalGroup shall be read-only.

Table 4 – AnalyserDevice Status Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

DiagnosticStatus

General health status of the analyser

DataItemType

DataType=DeviceHealthEnumeration

 

M

 

 

 

 

 

The DiagnosticStatus Parameter reflects the general health of analyser. It is defined as a Variable of DataItemType type and its possible values are defined by [OPC 10000-100] enumerationDeviceHealthEnumeration. Its value must be the same as DeviceType.DeviceHealth Property.

Table 5 shows Parameters that will be organized by the FactorySettings FunctionalGroup component of the AnalyserDeviceType.

Table 5 – AnalyserDevice FactorySettings Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

 

 

 

 

 

The SerialNumber, Manufacturer, Model, DeviceManual, DeviceRevision, SoftwareRevision and the HardwareRevision Properties are defined on DeviceType and as such available on AnalyserDeviceType. As a general rule, they are read-only properties. However, they can be updated to reflect changes made to the analyser configuration e.g. upgrading the firmware.

DeviceRevision Property will be used to indicate an overall change in the analyser. It is mandatory and shall be updated automatically or manually each time the analyser configuration is altered. It is the customer’s QA responsibility to determine if this particular change affects the validation of the analyser.

The RevisionCounter Property is an incremental counter indicating the number of times the semi-static data within the AnalyserDevice has been modified.

If the analytical device represented by an AnalyserDevice Object is unable to publish a value for a mandatory Parameter defined in Table 5, the Analyser Server should provide a way to manually enter that value.

5.2.1.5 Methods of AnalyserDeviceType

All Methods defined for AnalyserDeviceType and its state machines are grouped under the MethodSet component inherited from DeviceType [OPC 10000-100].

AnalyserDeviceType defines a Method called GetConfiguration, which is used to read the complete configuration of the AnalyserDevice and all of its components (AnalyserChannel, Accessory, AccessorySlot etc.) from the Analyser Server. The configuration is a proprietary structure defined by the analyser vendor, and is represented as a ByteString.

AnalyserDeviceType defines a Method called SetConfiguration, which is used to write the complete configuration of the AnalyserDevice and all of its components to the Analyser Server. This Method can be executed only when all of the AnalyserChannels are in a Stopped state or in a Maintenance state (see 5.3.4.3). An attempt to call it while in any other state results in a failure of the Method call.

When the SetConfiguration Method is executed, it automatically causes a transition of all AnalyserChannels in a Stopped state to the Resetting state and the new configuration becomes active. The configuration is a structure provided by the analyser vendor, and represented as a ByteString.

Even if the ADI Client verifies the configuration before calling the SetConfiguration Method, the Analyser Server has the ultimate responsibility to verify the configuration (Parameter ranges, Parameter values relating to each other, Parameter values in regard to installed hardware) before applying the requested changes. If any Parameter value is invalid, the whole configuration shall be rejected.

If an error occurs during a method call, the analyser state should be returned the same as before the call or at least a stable state.

Table 6 – GetConfiguration Method

Method

Description

GetConfiguration

Read the complete configuration of the AnalyserDevice and all of its components to the Analyser Server.

 

InputArguments

 

Name

DataType

ValueRank / arrayDimension

Description

 

 

N/A

N/A

 

 

OutputArguments

 

Name

DataType

arraySize / arrayDimension

Description

 

ConfigData

ByteString

-1/[0]

Configuration structure represented as a single dimensional array of Bytes. Length of an array is provided by the Server at runtime.

If the size of ConfigData parameter is larger than a single OPC UA message, the AnalyserDevice.ConfigData object shall be used.

 

Table 7 – SetConfiguration Method

Method

Description

SetConfiguration

Write the complete configuration of the AnalyserDevice and all of its components to the Analyser Server and make the new configuration active.

 

InputArguments

 

Name

DataType

ValueRank / arrayDimension

Description

 

ConfigData

ByteString

-1/[0]

Configuration structure represented as a single dimensional array of Bytes. Length of an array is provided by the Client at runtime.

If the size of ConfigData parameter is larger than a single OPC UA message, the AnalyserDevice.ConfigData object shall be used.

 

OutputArguments

 

Name

DataType

arraySize / arrayDimension

Description

 

ConfigDataDigest

String

-1/[0]

Vendor specific digest (like SHA1) of the ConfigData. It is calculated, by the Server, after ConfigData is received and before any change has been made. It is used as the reference to know if the configuration has been altered after the SetConfiguration call.

This string is intended to be human readable for example the hexadecimal or Base64 representation of the SHA1.

 

AnalyserDevice defines a Method called GetConfigDataDigest, which is used to read the digest (e.g. SHA1 hash) of the complete analyser configuration. The digest is returned in a Method argument called ConfigDataDigest. It represents the same data which is calculated by the Server, when SetConfiguration Method is called. The value returned in ConfigDataDigest will change when the configuration of the analyser is changed in a way that may alter the results it produces.  Examples of analyser changes that may affect the value of ConfigDataDigest are:

a)         A configuration Parameter of the analyser or any of its components is modified. There are rare cases where a change of a Parameter does not affect the analyser results like setting an acquisition trigger. In these cases the ConfigDataDigest shall not be recomputed. The vendor shall clearly specify which Parameters do not affect ConfigDataDigest.

b)         A Method call which does not update Parameters but alters behaviour of the analyser (e.g. firmware update) is called. The vendor shall clearly specify which Methods affect the returned value from ConfigDataDigest

c)         An accessory is added or removed

d)         Analyser is configured locally via built-in panel.

By comparing the ConfigDataDigest output argument from the SetConfiguration Method with the current value returned in the ConfigDataDigest argument of the GetConfigDataDigest Method, a Client shall be able to determine if the analyser configuration has been modified in such a way that the results produced by the analyser may be different than expected.

Table 8 – GetConfigDataDigest Method

Method

Description

GetConfigDataDigest

Read the digest of the complete analyser configuration as computed by the Server

 

InputArguments

 

Name

DataType

ValueRank / arrayDimension

Description

 

None

N/A

N/A

 

 

OutputArguments

 

Name

DataType

arraySize / arrayDimension

Description

 

ConfigDataDigest

String

-1/[0]

Vendor specific digest (like SHA1) of the complete analyser configuration. It is used as the reference to know if the configuration has been altered after the last SetConfiguration call.

This string is intended to be human readable for example the hexadecimal or Base64 representation of the SHA1.

 

A Method called CompareConfigDataDigest can be used to ask the AnalyserDevice if the ConfigDataDigest held by the Client reflects the current configuration of the analyser. This approach relieves the client from the responsibility for comparing the configuration digests.

 

Table 9 – CompareConfigDataDigest Method

Method

Description

CompareConfigDataDigest

Compare the provided ConfigDataDigest with the actual one of the analyser.

 

InputArguments

 

Name

DataType

ValueRank / arrayDimension

Description

 

ConfigDataDigest

String

-1/[0]

Vendor specific digest (like SHA1) of the complete analyser configuration as returned by SetConfiguration and GetConfigurationDataDigest.

This string is intended to be human readable for example the hexadecimal or Base64 representation of the SHA1.

 

OutputArguments

 

Name

DataType

arraySize / arrayDimension

Description

 

IsEqual

Boolean

-1/[0]

True if the input ConfigDataDigest is equal to the actual digest of the analyser configuration.

 

AnalyserDeviceType defines several Methods used for simultaneous control of analyser channels. Those Methods are defined in the following tables.

 

Table 10 – ResetAllChannels Method

Method

Description

ResetAllChannels

Reset all AnalyserChannels belonging to this AnalyserDevice.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 11 – StartAllChannels Method

Method

Description

StartAllChannels

Start all AnalyserChannels belonging to this AnalyserDevice.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 12 – StopAllChannels Method

Method

Description

StopAllChannels

Stop all AnalyserChannels belonging to this AnalyserDevice.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 13 – AbortAllChannels Method

Method

Description

AbortAllChannels

Abort all AnalyserChannels belonging to this AnalyserDevice.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Methods described in Table 10, Table 11, Table 12, Table 13 operate on all AnalyserChannels that are in the Operating state and their Configuration.IsEnabled Parameter is set to True. These Methods are not guaranteed to be atomic and their effect on each AnalyserChannel is not necessarily simultaneous. For example, the following implementation is perfectly legal:

 

For each AnalyserChannel

    If AnalyserChannel.IsInOperatingState AND

            AnalyserChannel.Configuration.IsEnabled == TRUE

        AnalyserChannel.Reset ()

 

 

Table 14 - GotoOperating Method

Method

Description

GotoOperating

Causes the AnalyserDeviceStateMachine to go to Operating state, forcing all AnalyserChannels to leave the SlaveMode state and go to the Operating state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 15 - GotoMaintenance Method

Method

Description

GotoMaintenance

Causes the AnalyserDeviceStateMachine to go to Maintenance state, forcing all AnalyserChannels to SlaveMode state..

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 16 – Method result codes for AnalyserDeviceType methods

Result code

Description

Bad_InvalidArgument

One or more argument re invalid.

Bad_InvalidState

Method called when the analyser is not in the appropriate state.

Bad_RequestTooLarge

The request message size exceeds limits set by the server.

Bad_ResponseTooLarge

The response message size exceeds limits set by the client.

Bad_ServiceUnsupported

The analyser does not support the requested service.

Bad_UnexpectedError

An unexpected error occurred.

5.2.2    AnalyserChannel

5.2.2.1 Type definition: AnalyserChannelType ObjectType

This ObjectType defines the structure of an AnalyserChannel Object. Figure 7 depicts the AnalyserChannelType hierarchy. Figure 8 and Figure 9 show the AnalyserChannelType components. It is formally defined in Table 17.

Figure 7 - AnalyserChannelType

AnalyserChannelType is a subtype of TopologyElementType.

An AnalyserChannel may have Parameters. If an AnalyserChannel has Parameters they appear in an Object called ParameterSet as a flat list of Parameters. ParameterSet is inherited from TopologyElementType [OPC 10000-100]. Parameters of an AnalyserChannel are identified by the <ParameterIdentifier> browse name.

TopologyElementType [OPC 10000-100] introduces a component called MethodSet, which shall be used to organize Methods exposed to the Client. AnalyserChannelType takes advantage of that inherited component and groups all of its Methods and the ones from its substate machines under MethodSet.

Parameters of an AnalyserChannel can be organized in FunctionalGroups identified as <GroupIdentifier> browse name.

AnalyserChannelType defines two mandatory FunctionalGroups (see clause 5.2.1.4 for details)

·      Configuration - used to organize Parameters representing the high-level configuration items of the channel, which are expected to be modified by end users.

·      Status - used to organize Parameters which describe the general health of the channel.

 

Figure 8 - AnalyserChannelType FunctionalGroups

AnalyserChannel Object has zero or more Objects of type AccessorySlotType and identified by <AccessorySlotIdentifier> browse name. AccessorySlotType is described in clause 5.2.3. AccessorySlot Objects represent physical locations on the physical channel where the analytical accessory can be mounted. Accessories currently mounted on the analyser channel as well as the supported accessories for the AccessorySlot are defined as components of the AccessorySlot Object. For details refer to clause 5.2.3.

Figure 9 - AnalyserChannelType Components

AnalyserChannelType does not expose any mandatory Parameters to report or manipulate the state of an AnalyserChannel. Instead, AnalyserChannel states are exposed through the ChannelStateMachine Object of the type AnalyserChannelStateMachineType. For details on AnalyserChannelStateMachineType see clause 5.3.2.

 

Table 17 – AnalyserChannelType Definition

Attribute

Value

BrowseName

AnalyserChannelType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the TopologyElementType defined in [OPC 10000-100].

HasComponent

Object

ParameterSet

 

BaseObjectType

Mandatory

 

 

 

 

 

 

HasComponent

Object

<GroupIdentifier>

 

FunctionalGroupType

OptionalPlaceHolder

HasComponent

Object

Configuration

 

FunctionalGroupType

Mandatory

HasComponent

Object

Status

 

FunctionalGroupType

Mandatory

HasComponent

Object

<StreamIdentifier>

 

StreamType

OptionalPlaceHolder

HasComponent

Object

<AccessorySlotIdentifier>

 

AccessorySlotType

OptionalPlaceHolder

HasComponent

Object

ChannelStateMachine

 

AnalyserChannelStateMachineType

Mandatory

 

 

 

 

 

 

AnalyserChannelType.MethodSet

HasComponent

Method

GotoOperating

 

 

Mandatory

HasComponent

Method

GotoMaintenance

 

 

Mandatory

HasComponent

Method

StartSingleAcquisition

 

 

Mandatory

HasComponent

Method

Reset

 

 

Mandatory

HasComponent

Method

Start

 

 

Mandatory

HasComponent

Method

Stop

 

 

Mandatory

HasComponent

Method

Hold

 

 

Mandatory

HasComponent

Method

Unhold

 

 

Mandatory

HasComponent

Method

Suspend

 

 

Mandatory

HasComponent

Method

Unsuspend

 

 

Mandatory

HasComponent

Method

Abort

 

 

Mandatory

HasComponent

Method

Clear

 

 

Mandatory

 

 

5.2.2.2 AnalyserChannel Object

The term AnalyserChannel refers to an instance of the AnalyserChannelType ObjectType as defined in Table 17.

All AnalyserChannels have Attributes and Properties inherited from the BaseObject.

Each AnalyserDevice Object has at least one AnalyserChannel Object as its component.

5.2.2.3 Parameters of AnalyserChannelType

Parameters defined for the AnalyserChannelType are described in the following tables. The tables correspond to mandatory FunctionalGroups defined for the AnalyserChannelType. Additional Parameters may be defined for AnalyserChannel on subtypes of AnalyserDeviceType and associated with those FunctionalGroups

All AnalyserChannel Parameters exist as components of the ParameterSet Object defined on that AnalyserChannel. Each Parameter defined for an AnalyserChannel shall be accessible through one and only one FunctionalGroup defined on that AnalyserChannel. Note, that the same Parameter is not instantiated more than once. Both, ParameterSet and a specific FunctionalGroup maintain References to the same instance of the Parameter.

Table 18 shows Parameters that will be organized by the Configuration FunctionalGroup.

Table 18 – AnalyserChannel Configuration Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

ChannelId

Channel Id defined by user. On some analysers, the name of a channel may be configured using a maintenance tool, which leads to having two names to refer to the same channel for example: Channel1 and FirstChannel. In this case, one is for the BrowseName and the second is the ChannelId.

DataItemType

(DataType=String)

O

IsEnabled

True if this AnalyserChannel maybe used to perform acquisition.

Allow an AnalyserChannel to be marked as “not in use” so xxxAllChannels Methods of the AnalyserDevice may skip it.

In the case of “software” AnalyserChannel like GC, this allows a chromatographic application to be disabled.

DataItemType

(DataType=Boolean)

M

 

Table 19 shows Parameters that will be organized by Status FunctionalGroup. All Parameters organized by this FunctionalGroup shall be read-only.

Table 19 – AnalyserChannel Status Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

DiagnosticStatus

AnalyserChannel health status

DataItemType

(DataType=DeviceHealthEnumeration)

M

ActiveStream

Active stream for this AnalyserChannel.

Its value is the BrowseName of the active stream.

If no Stream is active, it shall be set to NULL.

DataItemType

(DataType=String)

M

 

The DiagnosticStatus Parameter reflects the general health of the channel. It is defined as a Variable of DataItemType type and its value is defined by [OPC 10000-100] enumeration DeviceHealthEnumeration.

5.2.2.4 Methods of AnalyserChannelType

All Methods defined for AnalyserChannelType and its substate machines are grouped under the MethodSet component inherited from TopologyElementType [OPC 10000-100].

AnalyserChannel defines a Method called StartSingleAcquisition, which is used to start a single data acquisition, which uses current values of Parameters from the AcquisitionSettings FunctionalGroup of the Stream indicated by SelectedStream argument. The Method argument ExecutionCycle is used to indicate what it is that the acquisition is collecting e.g. sample, background, and dark noise.

If an error occurs during a method call, the analyser state should be the same as before the call.

Table 20 – StartSingleAcquisition Method

Method

Description

StartSingleAcquisition

Start collection of a single sample or reference data

 

InputArguments

 

Name

DataType

ValueRank / arrayDimension

Description

 

ExecutionCycle

ExecutionCycleEnumeration

-1/[0]

Enumeration which specifies the type of the acquisition cycle  (e.g. Calibration, Sampling )

 

ExecutionCycleSubcode

UInteger

-1/[0]

Vendor defined code, which further describes the acquisition cycle. This code should correspond to one of the enumeration codes defined for ExecutionCycleSubcode Parameter in the AcquisitionStatus FunctionalGroup on a Stream.

 

SelectedStream

String

-1/[0]

Browse name of the target Stream for this acquisition

 

OutputArguments: NONE

 

Table 21 - GotoOperating Method

Method

Description

GotoOperating

Causes the AnalyserChannelStateMachine to go to Operating state..

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 22 - GotoMaintenance Method

Method

Description

GotoMaintenance

Causes the AnalyserChannelStateMachine to go to Maintenance state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 23 - Reset Method

Method

Description

Reset

Causes transition to the Resetting state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 24 - Start Method

Method

Description

Start

Causes transition to the Starting state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 25 - Stop Method

Method

Description

Stop

Causes transition to the Stopping state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 26 - Hold Method

Method

Description

Hold

Causes transition to the Holding state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 27 - Unhold Method

Method

Description

Unhold

Causes transition to the Unholding state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 28 - Suspend Method

Method

Description

Suspend

Causes transition to the Suspending state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

 

 

Table 29 - Unsuspend Method

Method

Description

Unsuspend

Causes transition to the Unsuspending state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 30 - Abort Method

Method

Description

Abort

Causes transition to the Aborting state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 31 - Clear Method

Method

Description

Clear

Causes transition to the Clearing state.

 

InputArguments: NONE

 

OutputArguments: NONE

 

Table 32 - Method result codes for AnalyserChannelType methods

Result code

Description

Bad_InvalidArgument

One or more argument re invalid.

Bad_InvalidState

Method called when the analyser is not in the appropriate state on one of its state machines.

Bad_RequestTooLarge

The request message size exceeds limits set by the analyser; the ConfigData is too big.

Bad_ResponseTooLarge

The response message size exceeds limits set by the client; the ConfigData is too big.

Bad_ServiceUnsupported

The analyser does not support the requested service.

Bad_UnexpectedError

An unexpected error occurred.

 

5.2.3    Stream

5.2.3.1 Type definition: StreamType ObjectType

This ObjectType defines the structure of a Stream Object. Figure 10 depicts the StreamType hierarchy. It is formally defined in Table 33.

 

Figure 10 - StreamType Hierarchy

StreamType is a subtype of TopologyElementType.

A Stream may have Parameters. If a Stream has Parameters they appear in an Object called ParameterSet as a flat list of Parameters. Parameters of a Stream are identified by the <ParameterIdentifier> browse name. Parameters of a Stream can be organized in FunctionalGroups identified as <GroupIdentifier> browse name.

StreamType defines seven mandatory FunctionalGroups (see clause 5.2.1.4 for more details)

·      Configuration - used to organize Parameters representing the high-level configuration items of the stream, which are expected to be modified by end users.

·      Status - used to organize Parameters which describe the general health of the stream.

·      AcquistionSettings - used to organize Parameters which describe the conditions of the following acquisition on a stream.

·      AcquisitionStatus – used to organize Parameters which describe the status of an ongoing acquisition on a stream.

·      AcquisitionData - used to organize all Parameters which represent data retrieved at the end of the data acquisition.

·      ChemometricModelSettings - used to organize Parameters which describe/configure the chemometric models used during the data acquisition

·      Context - used to organize all Parameters which provide the context for the data acquired through the Stream. Context Parameters are not generally used by the analyser but can be published to uniquely tie acquired data with the controlling process. Examples of context Parameters are: CampaignID, BatchID, LotID, MaterialID, and SampleId.

Figure 11 - Stream FunctionalGroups

 

 

Table 33 – StreamType Definition

Attribute

Value

BrowseName

StreamType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the TopologyElementType defined in [OPC 10000-100].

 

 

 

 

 

 

HasComponent

Object

ParameterSet

 

BaseObjectType

Mandatory

 

 

 

 

 

 

HasComponent

Object

<GroupIdentifier>

 

FunctionalGroupType

OptionalPlaceHolder

HasComponent

Object

Configuration

 

FunctionalGroupType

Mandatory

HasComponent

Object

Status

 

FunctionalGroupType

Mandatory

HasComponent

Object

AcquisitionSettings

 

FunctionalGroupType

Mandatory

HasComponent

Object

AcquisitionStatus

 

FunctionalGroupType

Mandatory

HasComponent

Object

AcquisitionData

 

FunctionalGroupType

Mandatory

HasComponent

Object

ChemometricModelSettings

 

FunctionalGroupType

Mandatory

HasComponent

Object

Context

 

FunctionalGroupType

Mandatory

 

5.2.3.2 Parameters of StreamType

Parameters defined for the StreamType are described in the following tables. The tables correspond to mandatory FunctionalGroups defined for the StreamType. Additional Parameters may be defined for Stream on subtypes of AnalyserDeviceType and associated with those FunctionalGroups

All Stream Parameters exist as components of the ParameterSet Object defined on that Stream. Each Parameter defined for a Stream shall be accessible through one and only one FunctionalGroup defined on that Stream. Note, that the same Parameter is not instantiated more than once. Both, ParameterSet and a specific FunctionalGroup maintain References to the same instance of the Parameter.

Table 34 describes the Parameters that are organized by the Configuration FunctionalGroup of a Stream.

Table 34 –Stream Configuration Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

IsEnabled

True if this stream maybe used to perform acquisition.

This Parameter is mainly used for maintenance.

DataItemType

(DataType=Boolean)

M

IsForced

True if this Stream is forced, which means that is the only Stream on this AnalyserChannel that can be used to perform acquisitions.

This Parameter is mainly used for maintenance.

DataItemType

(DataType=Boolean)

O

 

Table 35 describes the Parameters that are organized by the Status FunctionalGroup of a Stream. All Parameters organized by this FunctionalGroup shall be read-only.

Table 35 –Stream Status Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

DiagnosticStatus

Stream health status

DataItemType

(DataType=DeviceHealthEnumeration)

M

LastCalibrationTime

Time at which the last successful calibration was run. This is the SourceTimestamp of the main acquisition data of the first acquisition for this calibration.

If unknown, it shall be set to DateTime.MinValue.

DataItemType

(DataType=DateTime)

O

LastValidationTime

Time at which the last successful validation was run. This is the SourceTimestamp of the main acquisition data of the first acquisition for this validation.

If unknown, it shall be set to DateTime.MinValue.

DataItemType

(DataType=DateTime)

O

LastSampleTime

Time at which the last sample was acquired. This is the SourceTimestamp of the main acquisition data for this sample acquisition.

If unknown, it shall be set to DateTime.MinValue.

DataItemType

(DataType=DateTime)

M

 

 

 

 

 

Table 36 describes the Parameters that are organized by the AcquisitionSettings FunctionalGroup of a Stream.

Table 36 - Stream AcquisitionSettings Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

TimeBetweenSamples

Number of milliseconds between two consecutive starts of acquisition.

Value 0  means “as fast as possible”

AnalogItemType

(DataType=Duration)

O

 

Table 37 describes the Parameters that are organized by theAcquisitionStatus FunctionalGroup of a Stream. All Parameters organized by this FunctionalGroup shall be read-only.

Table 37 –Stream AcquisitionStatus Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

IsActive

True if this stream is actually running, acquiring data.

Only one Stream may be marked as IsActive on a given AnalyserChannel at any given time.

DataItemType

(DataType=Boolean)

M

ExecutionCycle

Indicates which acquisition cycle is in progress

DataItemType

(ExecutionCycleEnumeration)

M

ExecutionCycleSubcode

Indicates a vendor defined code, which further describes the acquisition cycle.

MultiStateDiscreteType

M

Progress

Indicates the progress of an acquisition (e.g. percentage of completion)

DataItemType

(DataType=Float)

M

 

ExecutionCycle indicates the type of acquisition in progress and it is set in the SelectExecutionCycle state of the AnalyserChannel_OperatingModeExecuteSubStateMachine..

Progress is a float number from 0 to 100 defining the completion of the ongoing acquisition cycle. The granularity of the Progress update is vendor specific. It is set to 0 in the SelectExecutionCycle of the AnalyserChannel_OperatingModeExecuteSubStateMachine.

Table 38 describes the Parameters that are organized by the AcquisitionData FunctionalGroup of a Stream.

Table 38 –Stream AcquisitionData Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

AcquisitionCounter

Simple counter incremented after each Sampling acquisition performed on this Stream; The counter is not incremented for acquisition cycles other than Sampling. It is used to support detection of missing acquisition. Wrap to 0 when it reaches 2147483647.

The starting value at power up is vendor specific

AnalogItemType

(DataType=Counter)

M

AcquisitionResultStatus

Quality of the acquisition

DataItemType

(AcquisitionResultStatusEnumeration)

M

<ProcessVariableIdentifier>

Most commonly, it is a reference to process data produced as a result of applying the chemometric model to ScaledData.. There can be multiple Parameters representing process data and uniquely identified by the <ProcessVariableIdentifier> BrowseName.

ProcessVariableType

O

Offset

The Offset Parameter holds the difference in milliseconds between the start of sample extraction and the start of the analysis.

AnalogItemType

(DataType=Duration)

O

RawData

Raw data produced as a result of data acquisition on the Stream (see definition of raw data)

DataItemType

(DataType is defined on a subtype of AnalyserDeviceType)

O

ScaledData*

Scaled data produced as a result of data acquisition on the Stream and applying  the analyser model. The data type used is analyser dependent.  (see definition of scaled data)

DataItemType

(DataType is defined on a subtype of AnalyserDeviceType)

M

AcquisitionEndTime

The end time of the
AnalyseSample or AnalyseCalibrationSample  or AnalyseValidationSample state of the AnalyserChannel_OperatingModeExecuteSubStateMachine state machine.

This time should not be used for critical data synchronization but rather for correlation with other external events in the diagnostic context.

If unknown, AcquisitionEndTime shall be set to DateTime.MinValue

DataItemType

(DataType=DateTime)

M

 

*Definition of the ScaledData Parameter here is only to indicate that this Parameter must be defined for a Stream on a subtype of an AnalyserDeviceType. Since different analyser classes will produce scaled data of different type as their output, it is impossible to fully define this Parameter at this level. See ScaledData Parameter definition for specific class of analyser. If more than one ScaledData is required, Parameters representing those additional ScaledData shall be called ScaledData1, ScaledData2... ScaledData<n>.

The Offset Parameter holds the difference in milliseconds between the start of sample extraction and the start of the analysis which is the time in millisconds between the WaitForXXXTrigger to ExtractXXXSample transition and the PrepareXXXSample to AnalyseXXXSample transition.

As a general rule, a single Parameter shall not be used to represent different data elements. For example, ScaledData shall be used for the Sample acquisition and another Parameter shall be used to publish the output of the Calibration acquisition.  However, in the case where the Validation cycle consists only of acquisition of normal samples, the ScaledData Parameter may be used. A consumer of data from an Analyser Server must be able to correlate values collected from different Parameters. Specifically, it must be possible to associate scaled data with raw data, process data and context data collected during the same acquisition cycle. The data correlation is based on time-stamps used during data collection. SourceTimestamp shall be the time when the sampling system starts extracting the sample, defined by the start of the ExtractSample or ExtractCalibrationSample or ExtractValidationSample state of the AnalyserChannel_OperatingModeExecuteSubStateMachine. The difference between the SourceTimestamp and the time when the sample is analysed, is reflected in the Offset Parameter defines in AcquisitionData.

To simplify integration with historians, Parameters in the AcquisitionData FunctionalGroup shall be updated once per acquisition cycle.

Time-stamp management rules:

1)   The time-stamp of the analyser main data (RawData, ScaledData) shall be the start time of the ExtractSample or ExtractCalibrationSample or ExtractValidationSample state of the AnalyserChannel_OperatingModeExecuteSubStateMachine.

2)   All values derived from acquired data shall have the same SourceTimestamp as the acquired data. For example RawData, ScaledData, AcquisitionEndTime shall have the same SourceTimestamp.

3)   If a derived value combines acquired data from different data sources, the time-stamp of the “main” data shall be used. Which data source is the main data, is vendor specific, but shall be consistent and documented.

4)   If a derived value combines acquired data from different AnalyserChannels, the time-stamp of the “main” AnalyserChannel shall be used. Which AnalyserChannel is the main AnalyserChannel, is vendor specific, but shall be consistent and documented.

5)   The last item updated after the end of acquisition (PublishResults state) is AcquisitionResultStatus which is set to GOOD_1, BAD_2, UNKNOWN_3 or PARITAL_4. This implies that all items that are part of this acquisition shall have been updated; this includes items from AcquisitionData and Context FunctionalGroup.

6)   The OPC UA SourceTimestamp is always in UTC time.

For details on SourceTimestamp elements of a DataValue see [OPC 10000-4].

When the analyser is working in a standalone mode i.e. it is not driven by a DCS or other external control system, the analyser should publish the Context Parameters using data provided by user or other system entry system like a barcode reader.

Table 39 describes the Parameters that are organized by the Context FunctionalGroup of a Stream.

Table 39 –Stream Context Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

CampaignId

Defines the current campaign

DataItemType

(DataType=String)

O

BatchId

Defines the current batch

DataItemType

(DataType=String)

O

SubBatchId

Defines the current sub-batch

DataItemType

(DataType=String)

O

LotId

Defines the current lot

DataItemType

(DataType=String)

O

MaterialId

Defines the current material

DataItemType

(DataType=String)

O

Process

Current Process name

DataItemType

(DataType=String)

O

Unit

Current Unit name

DataItemType

(DataType=String)

O

Operation

Current Operation name

DataItemType

(DataType=String)

O

Phase

Current Phase name

DataItemType

(DataType=String)

O

UserId

Login name of the user who is logged on at the device console.

If no Operator logon, “System” shall be assigned to UserId.

DataItemType

(DataType=String)

O

SampleId

Identifier for the sample

DataItemType

(DataType=String)

O

 

Table 40 shows Parameters that will be organized by the ChemometricModelSettings FunctionalGroup.

Table 40 – Stream ChemometricModelSettings Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

<ChemometricModelId>

Chemometric Model used to convert scaled data into process data

ChemometricModelType

(DataType=Byte)

O

 

 

5.2.4    Accessory Slot

5.2.4.1 Type definition: AccessorySlotType ObjectType

AccessorySlotType defines the general structure of an AccessorySlot Object. Figure 12 shows the detailed composition of AccessorySlotType. It is formally defined in Table 41.

 

The SupportedTypes folder is used to maintain the set of (sub-types of) AccessoryTypes supported by that accessory slot.

AccessorySlotType states are exposed through the AccessorySlotStateMachine Object of type AccessorySlotStateMachineType. For details on AccessorySlotStateMachineType see clause 5.3.5.

Figure 12 - AccessorySlotType Components

Table 41 – AccessorySlotType Definition

Attribute

Value

BrowseName

AccessorySlotType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ConfigurableObjectType defined in [OPC 10000-100]

HasProperty

Variable

IsHotSwappable

Boolean

PropertyType

Mandatory

HasProperty

Variable

IsEnabled

Boolean

PropertyType

Mandatory

HasComponent

Object

AccessorySlotStateMachine

 

AccessorySlotStateMachineType

Mandatory

HasComponent

Object

<AccessoryIdentifier>

 

AccessoryType

OptionalPlaceHolder

 

AccessorySlotType inherits from the ConfigurableObjectType. SupportedTypes contain References to supported AccessoryTypes. .

IsHotSwappable Property is True if an accessory can be inserted in the accessory slot while it is powered.

IsEnabled Property is True if this accessory slot is capable of accepting an accessory in it.

AccessorySlotStateMachine describes internal states of the accessory slot.

<AccessoryIdentifier> represents the accessory currently installed in the accessory slot.

5.2.4.2 AccessorySlot Object

The term AccessorySlot refers to an instance of AccessorySlotType ObjectType as defined in Table 41.

AccessorySlotType can be instantiated as components of an AnalyserDevice Object or any of its subtypes.

Optionally AccessorySlotAccessorySlotType can be instantiated as components of the AnalyserChannel Objects.

5.2.5    Accessory

5.2.5.1 Type definition: AccessoryType ObjectType

This ObjectType defines the structure of an Accessory Object. Figure 13 shows the AccessoryType components. It is formally defined in Table 42.

AccessoryType is a subtype of TopologyElementType.

An Accessory may have Parameters. If an Accessory has Parameters they appear in an Object called ParameterSet as a flat list of Parameters. Parameters of an Accessory are identified by <ParameterIdentifier> Parameters of an Accessory can be organized in FunctionalGroups identified as <GroupIdentifier>. An Accessory has at least three FunctionalGroups that expose its Parameters in an organized fashion. The three mandatory FunctionalGroups are: 

·      Configuration - used to organize Parameters representing the high-level configuration items of the accessory, which are expected to be modified by end users.

·      Status - used to organize Parameters which describe the general health of the accessory.

·      FactorySettings - used to organize Parameters which describe the factory settings of the accessory and are not expected to be modified by end users.

Figure 13 – AccessoryType

Table 42 – AccessoryType Definition

Attribute

Value

BrowseName

AccessoryType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the TopologyElementTypee defined in [OPC 10000-100]

HasComponent

Object

Configuration

 

FunctionalGroupType

Mandatory

HasComponent

Object

Status

 

FunctionalGroupType

Mandatory

HasComponent

Object

FactorySettings

 

FunctionalGroupType

Mandatory

 

 

 

 

 

 

HasComponent

Variable

IsHotSwappable

Boolean

PropertyType

Mandatory

HasComponent

Variable

IsReady

Boolean

PropertyType

Mandatory

 

IsHotSwappable Property is True if this accessory can be inserted in an accessory slot while it is powered. Its value may only be True when it is in Installed state. It shall be False in all other states.

 

IsReady Property is True if this accessory is ready to be used. Its value may only be True when it is in Installed state, It shall be False in all other states.

5.2.5.2 Accessory Object

The term Accessory refers to an instance of AccessoryType ObjectType as defined in Table 42.

Accessory Objects can be instantiated as components of an AccessorySlot Object.

5.2.5.3 Sub-types of AccessoryType ObjectType

This specification defines three sub-types of AccesoryType: DetectorType, SmartSamplingSystemType and SourceType.

Table 43 describes a detector Accessory which is capable of producing raw data for an analyser.

Table 43 - DetectorType

Attribute

Value

BrowseName

DetectorType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AccessoryType defined in 5.2.5.

 

 

 

 

 

 

 

Table 44 describes an intelligent sampling system Accessory used to extract samples from the process monitored by an analyser. It may also be used for non-intrusive device like ATR. It is “smart” in the sense that it provides interaction through configuration and/or status compared to passive sampling systems that provide no status or control capabilities.

 

Table 44 - SmartSamplingSystemType

Attribute

Value

BrowseName

SmartSamplingSystemType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AccessoryType defined in 5.2.5.

 

 

 

 

 

 

Table 45 describes an Accessory used by spectrometers (infrared, visible, UV etc.) with internal source that illuminate the sample.

Table 45 - SourceType

Attribute

Value

BrowseName

SourceType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AccessoryType defined in 5.2.5.

 

 

 

 

 

 

 

5.2.6    SpectrometerDevice

5.2.6.1 Type definition: SpectrometerDeviceType ObjectType

Table 46 - SpectrometerDeviceType

Attribute

Value

BrowseName

SpectrometerDeviceType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AnalyserDeviceType defined in 5.2.1.1

 

 

 

 

 

5.2.6.2 SpectrometerDevice Object

The term SpectrometerDevice refers to an instance of SpectrometerDeviceType ObjectType as defined in Table 46

All SpectrometerDevice Objects have Attributes and Properties that they inherit from the AnalyserDeviceType.

5.2.6.3 Parameters of SpectrometerDeviceType

Table 47 describes the Parameters that are organized by the FactorySettings FunctionalGroup of a SpectrometerDeviceType.

Table 47 – SpectrometerDeviceType FactorySettings Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

SpectralRange

All spectral ranges that can be covered by this analyser. Vendors are expected to use a subtype of DataItemType to provide engineering units through the standard Property EngineeringUnits of type EUInformation. Typical units will be cm-1 and µm.

DataItemType

(DataType=Range[] )

O

 

In general, a spectrometer covers one spectral range, but some spectrometers may cover more than one. In case of spectrometers based on a filter wheel, each entry in the array is the band of one of the filters. This is why an array of Range is used as the data type for this Parameter.

5.2.6.4 SpectrometerDeviceStreamType

SpectrometerDeviceStreamType defines seven mandatory FunctionalGroups described in5.2.3.1: Configuration, Status, AcquistionSettings, AcquisitionStatus, AcquisitionData, ChemometricModelSettings, and Context.

Table 48 describes the Parameters that are organized by the Configuration FunctionalGroup of a SpectrometerDeviceStreamType.

Table 48 – SpectrometerDeviceStreamType Configuration Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

ActiveBackground

Background spectrum used for the evaluation of the absorbance.

In the case of spectrometer like diode array that requires black and white background, this is the white background.

YArrayItemType

(DataType=Float)

 

M

ActiveBackground1

Background spectrum used for the evaluation of the absorbance.

In the case of spectrometer like diode array that requires black and white background, this is the black background and the Parameter is mandatory.

YArrayItemType

(DataType=Float)

 

O

 

If more then one background spectrum is required, Parameters representing those additional background spectra shall be called ActiveBackground1, ActiveBackground2,...,ActiveBackground<n>  and the same ModellingRules as for ActiveBackground Parameter shall apply.

Table 49 describes the Parameters that are organized by the AcquisitionSettings FunctionalGroup of a SpectrometerDeviceStreamType.

Table 49 – SpectrometerDeviceStreamType AcquisitionSettings Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

SpectralRange

Spectral range of this acquisition. Vendors are expected to use a subtype of DataItemType to provide engineering units through the standard Property EngineeringUnits of type EUInformation. Typical units will be cm-1 and µm.

DataItemType

(DataType=Range)

O

Resolution

Acquisition resolution

May be an enum or Float

DataItemType

 

O

RequestedNumberOfScans

Number of scans to be averaged

This Parameter is often referred to as ObservationTime

AnalogItemType

(DataType=Int32)

O

Gain

Detector gain

May be an enum or Float

DataItemType

 

O

TransmittanceCutoff

Transmittance clipping limits

DataItemType

(DataType=Range)

O

AbsorbanceCutoff

Absorbance clipping limits

DataItemType

(DataType=Range)

O

 

Many of the Parameters in the AcquisitionSettings FunctionalGroup are used for sample acquisition. Calibration and validation may or may not use the same value. It is up to the vendor to select his approach: share Parameters or use different ones. Nested FunctionalGroup may also be used to organize different set of Parameters.

Table 50 describes the Parameters that are organized by the AcquisitionStatus FunctionalGroup of a SpectrometerDeviceStreamType. All Parameters organized by this FunctionalGroup shall be read-only.

Table 50 – SpectrometerDeviceStreamType AcquisitionStatus Parameters

BrowseName

Description

VariableType

RW

Optional/

Mandatory

NumberOfScansDone

Actual number of scans completed

AnalogItemType

(DataType=Int32)

RO

O

 

Table 51 describes the Parameters that are organized by the AcquisitionData FunctionalGroup of a SpectrometerDeviceStreamType.

Table 51 – SpectrometerDeviceStreamType AcquisitionData Parameters

BrowseName

Description

VariableType

RW

Optional/

Mandatory

RawData

Raw spectrum in arbitrary units

YArrayItemType

(DataType=Float)

RO

O

ScaledData*

Absorbance

YArrayItemType

(DataType=Float)

RO

M

TotalNumberOfScansDone

Total number of scans done at the end of acquisition.

AnalogItemType

(DataType=Int32)

RO

M

BackgroundAcquisitionTime

Time stamp of the background used for this acquisition. If more then one background spectrum is required, the time of ActiveBackground shall be used. Background is acquired during calibration acquisition cycle.

DataItemType

(DataType=DateTime)

RO

M

PendingBackground

Last acquired Background spectrum. This Background is not automatically used for evaluation of ScaledData (Absorbance) - see ActiveBackground Parameter.

In the case of spectrometer like diode array that requires black and white background, this is the white background.

YArrayItemType

(DataType=Float)

 

RO

M

PendingBackground1

Last acquired Background spectrum. This Background is not automatically used for evaluation of ScaledData (Absorbance) - see ActiveBackground Parameter.

In the case of spectrometer like diode array that requires black and white background, this is the black background and the Parameter is mandatory

YArrayItemType

(DataType=Float)

 

RO

O

 

If more then one background spectrum is required, Parameters representing those additional background spectra shall be called PendingBackground1, PendingBackground2,...,PendingBackground<n>  and the same ModellingRules as for PendingBackground Parameter shall apply.

* ScaledData Parameter at this level represents the same Parameter that was defined on StreamType. Since different types of analysers may represent ScaledData differently, it was impossible to declare the VariableType of this Parameter at the StreamType level. It is possible here because the scope of the definition is limited to SpectrometerDeviceType. Devices of this type use YArrayItemType to represent ScaledData.

5.2.7    MassSpectrometerDevice

5.2.7.1 Type definition: MassSpectrometerDeviceType ObjectType

Table 52 - MassSpectrometerDeviceType

Attribute

Value

BrowseName

MassSpectrometerDeviceType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AnalyserDeviceType defined in 5.2.1.1

 

 

 

 

 

 

 

5.2.7.2 MassSpectrometerDevice Object

The term MassSpectrometerDevice refers to an instance of MassSpectrometerDeviceType ObjectType as defined in Table 52.

5.2.7.3 MassSpectrometerDeviceStreamType

There is no specific Parameter in MassSpectrometerDeviceStreamType.

5.2.8    ParticleSizeMonitorDevice

5.2.8.1 Type definition: ParticleSizeMonitorDeviceType ObjectType

Particle size can be determined by light scattering (e.g. Focus Beam Reflectance Measurement, Laser Diffraction) or other Methods. This type of analyser can be used to implement particle monitoring technique for in-line real-time measurement of particle size. A wide range of industrial process control applications are therefore possible such as the online control of crystallizers.

ParticleSizeMonitorDeviceType defines the general structure of a ParticleSizeMonitorDevice Object.

 

 

Figure 14 - ParticleSizeMonitorDeviceType

ParticleSizeMonitorDeviceType is a subtype of AnalyserDeviceType.

Table 53 - ParticleSizeMonitorDeviceType

Attribute

Value

BrowseName

ParticleSizeMonitorDeviceType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AnalyserDeviceType defined in 5.2.1.1

 

 

 

 

 

 

 

5.2.8.2 ParticleSizeMonitorDevice Object

The term ParticleSizeMonitorDevice refers to an instance of ParticleSizeMonitorDeviceType ObjectType as defined in Table 53.

All ParticleSizeMonitorDevice have Attributes and Properties that they inherit from the AnalyserDeviceType.

5.2.8.3 ParticleSizeMonitorDeviceStreamType

ParticleSizeMonitorDeviceStreamType defines seven mandatory FunctionalGroups described in5.2.3.1: Configuration, Status, AcquistionSettings, AcquisitionStatus, AcquisitionData, ChemometricModelSettings, Context. Parameters exposed by an Stream of a ParticleSizeMonitorDevice should be organized by those FunctionalGroups based on their meaning.

Table 54 describes the Parameters that are organized by the AcquisitionData FunctionalGroup of a ParticleSizeMonitorDeviceStreamType.

Table 54 – ParticleSizeMonitorDeviceStreamType AcquisitionData Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

Background

Array describing the measured background on detector(s.)

YArrayItemType

(DataType=Float)

O

RawData

Array describing the measured raw data on detector(s) in arbitrary units.

YArrayItemType

(DataType=Float)

O

ScaledData

Array describing the  corrected measured data detector(s), for example after background subtraction

YArrayItemType

(DataType=Float)

M

SizeDistribution

Returns the Particle Size Distribution

YArrayItemType

(DataType=Float)

M

BackgroundAcquisitionTime

Time stamp of the background used for this acquisition

DataItemType

(DataType=DateTime)

M

 

5.2.9    AcousticSpectrometerDevice

5.2.9.1 Type definition: AcousticSpectrometerDeviceType ObjectType

Table 55 - AcousticSpectrometerDeviceType

Attribute

Value

 

BrowseName

AcousticSpectrometerDeviceType

 

IsAbstract

False

 

 

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

 

Subtype of the AnalyserDeviceType defined in 5.2.1.1

 

 

 

 

 

 

 

 

5.2.9.2 AcousticSpectrometerDevice Object

The term AcousticSpectrometerDevice refers to an instance of AcousticSpectrometerDeviceType ObjectType as defined in Table 55.

5.2.9.3 AcousticSpectrometerDeviceStreamType

There is no specific Parameter in AcousticSpectrometerDeviceStreamType.

5.2.10  ChromatographDevice

5.2.10.1           Type definition: ChromatographDeviceType ObjectType

Chromatograph retrieves the concentration of chemical components by using a set of separation columns that separate each molecule based on the time it takes to go through a given column path.

ChromatographrDeviceType defines the general structure of a ChromatographDevice Object

 

Figure 15 - ChromatographDeviceType

ChromatographDeviceType is a subtype of AnalyserDeviceType

Table 56 - ChromatographDeviceType

Attribute

Value

BrowseName

ChromatographDeviceType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AnalyserDeviceType defined in 5.2.1.1

 

 

 

 

 

 

 

5.2.10.2           ChromatographDevice Object

The term ChromatographDevice refers to an instance of ChromatographType ObjectType as defined in Table 56.

All ChromatographDevices have Attributes and Properties that they inherit from the AnalyserDeviceType.

5.2.10.3           ChromatographDeviceStreamType

StreamType defines seven mandatory FunctionalGroups described in5.2.3.1: Configuration, Status, AcquistionSettings, AcquisitionStatus, AcquisitionData, ChemometricModelSettings, and Context. The following tables describe Parameters defined on the Stream of a ChromatographDevice.

Table 40 describes the Parameters that are organized by the AcquisitionData FunctionalGroup of a ChromatographDeviceStreamType.

 

Table 57 – ChromatographDeviceStreamType AcquisitionData Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

ScaledData*

Chromatogram

YArrayItemType []

(DataType=Float)

M

ComponentX

Component analysed by a chromatograph

EngineeringValueType

(DataType=Float)

M

 

* ScaledData Parameter at this level represents the same Parameter that was defined on StreamType. Since different types of analysers may represent ScaledData differently, it was impossible to declare the VariableType of this Parameter at the StreamType level. It is possible here because the scope of the definition is limited to ChromatographDeviceType. Devices of this type use array of YArrayItemType to represent ScaledData.

The YArrayItem describing the chromatogram has the following behaviors:

·      Because the Chromatograph may collect many chromatograms simultaneously, ScaledData is an array of YArrayItem.

·      X axis is the time in seconds since the injection time, which is the start of the ExtractSample or ExtractCalibrationSample or ExtractValidationSample state of the AnalyserChannel_OperatingModeExecuteSubStateMachine.

·      Y axis unit is vendor specific, usually volts at the detector output.

·      To reduce data bandwidth, the X axis may not be continuous i.e. when there is no peak, no data is produced. This implies that the xAxisDefinition.axisSteps shall be provided.

·      The xAxisDefinition.axisSteps of each chromatogram may be different because the peak positions are different from column to column.

5.2.10.4           Component

The Chromatograph Component values are mapped using EngineeringValueType and they are placed under the appropriate Stream in the AcquisitionData FunctionalGroup. Annex B provides an example of its sub-elements.

5.2.10.5           GCOvenType

Table 58 describes a gas chromatograph oven Accessory which maintains its set of valves, columns and detectors at the temperature defined by the chromatographic application.

Table 58 - GCOvenType

Attribute

Value

BrowseName

GCOvenType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AccessoryType defined in 5.2.5.

 

 

 

 

 

 

 

5.2.11  NMRDevice

5.2.11.1           Type definition: NMRDeviceType ObjectType

Table 59 - NMRDeviceType

Attribute

Value

BrowseName

NMRDeviceType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the AnalyserDeviceType defined in 5.2.1.1

 

 

 

 

 

 

 

5.2.11.2           NMRDevice Object

The term NMRDevice refers to an instance of NMRDeviceType ObjectType as defined in Table 59.

5.2.11.3           NMRDeviceStreamType

There is no specific Parameter in NMRStreamType.

5.3       State Machines

5.3.1    Introduction

The following diagram shows the state and command model for the subclasses of the AnalyserDeviceType, AnalyserChannelType and AccessorySlotType. An AnalyserDeviceType contains a state machine of type AnalyserDeviceStateMachineType. AnalyserChannelType contains a state machine of type AnalyserChannelStateMachineTypeAccessorySlotType contains a state machine of type AccessorySlotStateMachineType. (See [OPC 10000-5] for a description of state machines.) 

For all state machines defined in this specification, for each self-Transition (where the from-state and to-state are the same) that is used to indicate the progress within a state, the self-Transition shall occur only if the time required to pass through this state exceeds 5 seconds and shall reoccur at 5 (±1) second intervals. The Transition event should include information on the remaining time to complete this state when available

All state machines defined in this specification are mandatory unless explicitly stated otherwise. However, some states may be implemented as transient (do-nothing) states depending on the unique characteristics of an analyser.

Figure 16 - ADI State Machines

 

5.3.2    AnalyserDeviceStateMachineType

AnalyserDeviceStateMachineType is a subtype of FiniteStateMachineType. The states are derived from the ANSI/ISA TR 88.02-2008 Machine and Unit States Technical Report [ISA-88 TR], which in turn were derived from the OMAC PackML tag definition set and the ANSI/ISA 88 Part 1 standard [ISA-88].

AnalyserDeviceStateMachineType contains a nested state model that defines the top level states Operating, Local and Maintenance (called Modes in [ISA-88 TR] and OMAC) of a device.

 

Figure 17 - AnalyserDeviceStateMachine

The Powerup state is where the AnalyserDevice waits for the completion of the power-up setup. Its sub-states are out of scope of the ADI specification.

The Shutdown state is where the AnalyserDevice waits for the completion of the power down sequence. Its sub-states are out of scope of the ADI specification.

5.3.2.1 Type definition: AnalyserDeviceStateMachineType ObjectType

AnalyserDeviceStateMachineType.is formally defined in Table 60 .

Table 60 – AnalyserDeviceStateMachineType Definition

Attribute

Value

BrowseName

AnalyserDeviceStateMachineType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FiniteStateMachineType defined in [OPC 10000-5]

HasComponent

Object

Powerup

 

InitialStateType

Mandatory

HasComponent

Object

Operating

 

StateType

Mandatory

HasComponent

Object

Local

 

StateType

Mandatory

HasComponent

Object

Maintenance

 

StateType

Mandatory

HasComponent

Object

Shutdown

 

StateType

Mandatory

 

 

 

 

 

 

HasComponent

Object

PowerupToOperatingTransition

 

TransitionType

Mandatory

HasComponent

Object

OperatingToLocalTransition

 

TransitionType

Mandatory

HasComponent

Object

OperatingToMaintenanceTransition

 

TransitionType

Mandatory

HasComponent

Object

LocalToOperatingTransition

 

TransitionType

Mandatory

HasComponent

Object

LocalToMaintenanceTransition

 

TransitionType

Mandatory

HasComponent

Object

MaintenanceToOperatingTransition

 

TransitionType

Mandatory

HasComponent

Object

MaintenanceToLocalTransition

 

TransitionType

Mandatory

HasComponent

Object

OperatingToShutdownTransition

 

TransitionType

Mandatory

HasComponent

Object

LocalToShutdownTransition

 

TransitionType

Mandatory

HasComponent

Object

MaintenanceToShutdownTransition

 

TransitionType

Mandatory

 

 

 

 

 

 

 

5.3.2.2 AnalyserDeviceStateMachineType States

5.3.2.2.1          Introduction

Table 61 specifies the AnalyserStateMachine’s State Objects. These State Objects are instances of the StateType defined in [OPC 10000-5]. Each State is assigned a unique StateNumber value. Subtypes of the AnalyserDeviceStateMachineType can add References from any state to a subordinate or nested StateMachine Object to extend the FiniteStateMachine.  

See Table 62 for a description of the states.

Table 61 – AnalyserDeviceStateMachineType States

BrowseName

References

Target BrowseName

Value

Target Type Definition

Notes

States

Powerup

HasProperty

StateNumber

100

PropertyType

 

 

ToTransition

PowerupToOperatingTransition

 

TransitionType

 

 

 

 

 

 

 

Operating

HasProperty

StateNumber

200

PropertyType

 

 

FromTransition

PowerupToOperatingTransition

 

TransitionType

 

 

FromTransition

MaintenanceToOperatingTransition

 

TransitionType

 

 

FromTransition

LocalToOperatingTransition

 

TransitionType

 

 

ToTransition

OperatingToLocalTransition

 

TransitionType

 

 

ToTransition

OperatingToMaintenanceTransition

 

TransitionType

 

 

ToTransition

OperatingToShutdownTransition

 

TransitionType

 

 

 

 

 

 

 

Local

HasProperty

StateNumber

300

PropertyType

 

 

FromTransition

OperatingToLocalTransition

 

TransitionType

 

 

FromTransition

MaintenanceToLocalTransition

 

TransitionType

 

 

ToTransition

LocalToOperatingTransition

 

TransitionType

 

 

ToTransition

LocalToMaintenanceTransition

 

TransitionType

 

 

ToTransition

LocalToShutdownTransition

 

TransitionType

 

 

 

 

 

 

 

Maintenance

HasProperty

StateNumber

400

PropertyType

 

 

FromTransition

OperatingToMaintenanceTransition

 

TransitionType

 

 

FromTransition

LocalToMaintenanceTransition

 

TransitionType

 

 

ToTransition

MaintenanceToOperatingTransition

 

TransitionType

 

 

ToTransition

MaintenanceToLocalTransition

 

TransitionType

 

 

ToTransition

MaintenanceToShutdownTransition

 

TransitionType

 

 

 

 

 

 

 

Shutdown

HasProperty

StateNumber

500

PropertyType

 

 

FromTransition

OperatingToShutdownTransition

 

TransitionType

 

 

FromTransition

LocalToShutdownTransition

 

TransitionType

 

 

FromTransition

MaintenanceToShutdownTransition

 

TransitionType

 

 

A standard set of states are defined for analyser devices. These states represent the operational condition of the device.  All devices that contain an AnalyserDeviceStateMachineType must support this base set.  A device may or may not require a Client action to cause the state to change, as defined in the state descriptions below.

Table 62 – AnalyserDeviceStateMachineType State Description

StateName

Description

Powerup

The AnalyserDevice is in its power-up sequence and cannot perform any other task.

Operating

The AnalyserDevice is in the Operating mode.

The ADI Client uses this mode for normal operation: configuration, control and data collection.

In this mode, each child AnalyserChannels are free to accept commands from the ADI Client and the Parameter values published in the address space values are expected to be valid.

When entering this state, all AnalyserChannels of this AnalyserDevice automatically leave the SlaveMode state and enter their Operating state.

Local

The AnalyserDevice is in the Local mode. This mode is normally used to perform local physical maintenance on the analyser.

To enter the Local mode, the operator shall push a button, on the analyser itself. This may be a physical button or a graphical control on the local console screen. To quit the Local mode, the operator shall press the same or another button on the analyser itself.

When the analyser is in Local mode, all child AnalyserChannels sit in the SlaveMode state of the AnalyserChannelStateMachine.

In this mode, no commands are accepted from the ADI interface and no guarantee is given on the values in the address space.

Maintenance

The AnalyserDevice is in the Maintenance mode. This mode is used to perform remote maintenance on the analyser like firmware upgrade.

To enter in Maintenance mode, the operator shall call the GotoMaintenance Method from the ADI Client. To return to the Operating mode, the operator shall call the GotoOperating Method from the ADI Client.

When the analyser is in the Maintenance mode, all child AnalyserChannels sit in the SlaveMode state of the AnalyserChannelStateMachine.

In this mode, no commands are accepted from the ADI interface for the AnalyserChannels and no guarantee is given on the values in the address space.

Shutdown

The AnalyserDevice is in its power-down sequence and cannot perform any other task.

 

The set of states defined to describe an AnalyserDevice can be expanded. Sub-states can be defined for the base states to provide more resolution to the process and to describe the cause and effects of additional stimuli and transitions.

5.3.2.2.2          Operating State

The Operating state of the AnalyserDeviceStateMachineType has no required sub-states.

5.3.2.2.3          Local State

The Local state of the AnalyserDeviceStateMachineType has no required sub-states. 

The Local state provides suitably authorized personnel the ability to operate individual subordinate equipment controls (such as accessory logic) within the device under manual control (often pushbutton or embedded HMI).  Such controls in this state may be on a "hold-to-run" basis such that removal of the run signal will cause a device to be stopped.  The ability to perform specific functions will be dependent upon mechanical constraints and interlocks.  Local state may be of particular use for setting up the machine to work. 

5.3.2.2.4          Maintenance State

The Maintenance state of the AnalyserDeviceStateMachineType has no required sub-states. 

The Maintenance state allows suitably authorized personnel the ability to run an individual device independent of other devices that may be in the same production line or lab cell.  This would typically be used for faultfinding, device trials or testing operational improvements. 

5.3.2.3 AnalyserDeviceStateMachineType Transitions

Transitions are instances of Objects of the TransitionType defined in [OPC 10000-5] which also includes the definitions of the ToState, FromState, HasCause, and HasEffect References used. Table 63 specifies the Transitions defined for the AnalyserDeviceStateMachineType. Each Transition is assigned a unique TransitionNumber.

Table 63 – AnalyserDeviceStateMachineType Transitions

BrowseName

References

Target BrowseName

Value

Target Type Definition

Notes

Transitions       

PowerupToOperatingTransition

HasProperty

TransitionNumber

1

PropertyType

 

 

FromState

Powerup

 

InitialStateType

 

 

ToState

Operating

 

StateType

 

 

HasCause

Analyser is powering-up

 

 

External cause

 

 

 

 

 

 

OperatingToLocalTransition

HasProperty

TransitionNumber

2

PropertyType

 

 

FromState

Operating

 

StateType

 

 

ToState

Local

 

StateType

 

 

HasCause

Pressing Local button on analyser

 

 

External cause

 

 

 

 

 

 

OperatingToMaintenanceTransition

HasProperty

TransitionNumber

3

PropertyType

 

 

FromState

Operating

 

StateType

 

 

ToState

Maintenance

 

StateType

 

 

HasCause

GotoMaintenance

 

Method

 

 

 

 

 

 

 

LocalToOperatingTransition

HasProperty

TransitionNumber

4

PropertyType

 

 

FromState

Local

 

StateType

 

 

ToState

Operating

 

StateType

 

 

HasCause

Releasing Local button on analyser

 

 

External cause

 

 

 

 

 

 

LocalToMaintenanceTransition

HasProperty

TransitionNumber

5

PropertyType

 

 

FromState

Local

 

StateType

 

 

ToState

Maintenance

 

StateType

 

 

HasCause

Releasing Local button on analyser

 

 

External cause

 

 

 

 

 

 

MaintenanceToOperatingTransition

HasProperty

TransitionNumber

6

PropertyType

 

 

FromState

Maintenance

 

StateType

 

 

ToState

Operating

 

StateType

 

 

HasCause

GotoOperating

 

Method

 

 

 

 

 

 

 

MaintenanceToLocalTransition

HasProperty

TransitionNumber

7

PropertyType

 

 

FromState

Maintenance

 

StateType

 

 

ToState

Local

 

StateType

 

 

HasCause

Pressing Local button on analyser

 

 

External cause

 

 

 

 

 

 

OperatingToShutdownTransition

HasProperty

TransitionNumber

8

PropertyType

 

 

FromState

Operating

 

StateType

 

 

ToState

Shutdown

 

StateType

 

 

HasCause

Analyser is powering-down

 

 

External cause

 

 

 

 

 

 

LocalToShutdownTransition

HasProperty

TransitionNumber

9

PropertyType

 

 

FromState

Local

 

StateType

 

 

ToState

Shutdown

 

StateType

 

 

HasCause

Analyser is powering-down

 

 

External cause

 

 

 

 

 

 

MaintenanceToShutdownTransition

HasProperty

TransitionNumber

10

PropertyType

 

 

FromState

Maintenance

 

StateType

 

 

ToState

Shutdown

 

StateType

 

 

HasCause

Analyser is powering-down

 

 

External cause

 

5.3.3    AnalyserChannelStateMachineType

5.3.3.1 Introduction

AnalyserChannelStateMachineType is a subtype of FiniteStateMachineType.   The states are derived from the ANSI/ISA TR 88.02-2008 Machine and Unit States Technical Report [ISA-88 TR], which in turn were derived from the OMAC PackML tag definition set and the ANSI/ISA 88 Part 1 standard [ISA-88].

AnalyserChannelStateMachineType contains a nested state model that defines the top level states Operating, Local and Maintenance (called Modes in [ISA-88 TR] and OMAC) and the Operating sub-states of a device.

Figure 18 - AnalyserChannelStateMachine

The SlaveMode state is where the AnalyserChannel stays when its parent AnalyserDevice is in Local or Maintenance mode. In this context, the AnalyserDevice has the absolute control over all of its AnalyserChannels.

The Local button refers to a Local button on a given analyser channel for symmetry with the analyser device.

5.3.3.2 Type definition: AnalyserChannelStateMachineType ObjectType

AnalyserChannelStateMachineType.is formally defined in Table 64.

Table 64 – AnalyserChannelStateMachineType Definition

Attribute

Value

BrowseName

AnalyserChannelStateMachineType

IsAbstract

False

 

 

References

Node

Class

BrowseName

Data

Type

TypeDefinition

Modelling

Rule

Subtype of the FiniteStateMachineType defined in [OPC 10000-5]

HasComponent

Object

SlaveMode

 

InitialStateType

Mandatory

HasComponent

Object

Operating

 

AnalyserChannelOperatingStateType

Mandatory

HasComponent

Object

Local

 

AnalyserChannelLocalStateType

Mandatory

HasComponent

Object

Maintenance

 

AnalyserChannelMaintenanceStateType

Mandatory

 

 

 

 

 

 

HasComponent

Object

SlaveModeToOperatingTransition

 

TransitionType

Mandatory

HasComponent

Object

OperatingToLocalTransition

 

TransitionType

Mandatory

HasComponent

Object

OperatingToMaintenanceTransition

 

TransitionType

Mandatory

HasComponent

Object

LocalToOperatingTransition

 

TransitionType

Mandatory

HasComponent

Object

LocalToMaintenanceTransition

 

TransitionType

Mandatory

HasComponent

Object

MaintenanceToOperatingTransition

 

TransitionType

Mandatory

HasComponent

Object

MaintenanceToLocalTransition

 

TransitionType

Mandatory

HasComponent

Object

OperatingToSlaveModeTransition

 

TransitionType

Mandatory

HasComponent

Object

LocalToSlaveModeTransition

 

TransitionType

Mandatory

HasComponent

Object

MaintenanceToSlaveModeTransition

 

TransitionType

Mandatory

 

 

 

 

 

 

HasComponent

Object

OperatingSubStateMachine

 

AnalyserChannel_OperatingModeSubStateMachineType

Mandatory

HasComponent

Object

LocalSubStateMachine

 

FiniteStateMachineType

Optional

HasComponent

Object

MaintenanceSubStateMachine

 

FiniteStateMachineType

Optional

 

 

 

 

 

 

 

GotoOperating Method transitions the AnalyserChannel to Operating mode.

GotoMaintenance Method transitions the AnalyserChannel to Maintenance mode.

Table 65 – AnalyserChannelOperatingStateType Definition

Attribute

Value

BrowseName

AnalyserChannelOperatingStateType

IsAbstract

False

 

 

References

NodeClass

BrowseName

Data

Type

TypeDefinition

Modelling

Rule

Subtype of the StateType defined in [OPC 10000-5]

HasSubStateMachine

Object

OperatingSubStateMachine

 

AnalyserChannel_OperatingModeSubStateMachineType

Mandatory

 

Table 66 – AnalyserChannelLocalStateType Definition

Attribute

Value

BrowseName

AnalyserChannelLocalStateType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModelingRule

Subtype of the StateType defined in [OPC 10000-5]

HasSubStateMachine

Object

LocalSubStateMachine

 

FiniteStateMachineType

Optional

 

Table 67 – AnalyserChannelMaintenanceStateType Definition

Attribute

Value

BrowseName

AnalyserChannelMaintenanceStateType

IsAbstract

False

References

NodeClass

BrowseName

Data

Type

TypeDefinition

Modelling

Rule

Subtype of the StateType defined in [OPC 10000-5]

HasSubStateMachine

Object

MaintenanceSubStateMachine

 

FiniteStateMachineType

Optional

 

5.3.3.3 AnalyserChannelStateMachineType States

Table 69 specifies the AnalyserChannelStateMachine’s State Objects. These State Objects are instances of the StateType defined in [OPC 10000-5]. Each State is assigned a unique StateNumber value. Subtypes of the AnalyserChannelStateMachineType can add References from any state to a subordinate or nested StateMachine Object to extend the FiniteStateMachine.  

A standard set of states are defined for analyser channels. These states represent the operational condition of the channel.  All devices that contain an AnalyserChannelStateMachineType shall support this base set.  A channel may or may not require a client action to cause the state to change. See Table 68 for a description of the states.

Table 68 – AnalyserChannelStateMachineType State Description

StateName

Description

SlaveMode

The AnalyserDevice is in Local or Maintenance mode and all AnalyserChannels are in SlaveMode

Operating

The AnalyserChannel is in the Operating mode.

The ADI Client uses this mode for normal operation: configuration, control and data collection.

In this mode, AnalyserChannel can accept commands from the ADI Client and the Parameters published in the address space values are expected to be valid.

Local

The AnalyserChannel is in the Local mode.

This mode is normally used to perform local physical maintenance on the AnalyserChannel.

To enter the Local mode, the operator shall push a button, on the AnalyserChannel itself. This may be a physical button or a graphical control on the local console screen. To quit the Local mode, the operator shall press the same or another button on the AnalyserChannel itself.

When the AnalyserChannel is in the Local mode, the parent AnalyserDevice has no control over it.

In this mode, no commands are accepted from the ADI interface and no guarantee is given on the values in the address space of the AnalyserChannel.

Maintenance

The AnalyserChannel is in the Maintenance mode.

This mode is used to perform remote maintenance on the AnalyserChannel.

To enter the Maintenance mode, the operator shall call the GotoMaintenance Method from the ADI Client. To return to the Operating mode, the operator shall call the GotoOperating Method from the ADI Client.

When the AnalyserChannel is in the Maintenance mode, the parent AnalyserDevice has no control over it.

In this mode, there is no guarantee given on the values in the address space.

 

Table 69 – AnalyserChannelStateMachineType States

BrowseName

References

Target BrowseName

Value

Target Type Definition

Notes

States

SlaveMode

HasProperty

StateNumber

100

PropertyType

 

 

FromTransition

OperatingToSlaveModeTransition

 

TransitionType

 

 

FromTransition

MaintenanceToSlaveModeTransition

 

TransitionType

 

 

FromTransition

LocalToSlaveModeTransition

 

TransitionType

 

 

ToTransition

SlaveModeToOperatingTransition

 

TransitionType

 

 

 

 

 

 

 

Operating

HasProperty

StateNumber

200

PropertyType

 

 

FromTransition

SlaveModeToOperatingTransition

 

TransitionType

 

 

FromTransition

MaintenanceToOperatingTransition

 

TransitionType

 

 

FromTransition

LocalToOperatingTransition

 

TransitionType

 

 

ToTransition

OperatingToLocalTransition

 

TransitionType

 

 

ToTransition

OperatingToMaintenanceTransition

 

TransitionType

 

 

ToTransition

OperatingToSlaveModeTransition

 

TransitionType

 

 

 

 

 

 

 

Local

HasProperty

StateNumber

300

PropertyType

 

 

FromTransition

OperatingToLocalTransition

 

TransitionType

 

 

FromTransition

MaintenanceToLocalTransition

 

TransitionType

 

 

ToTransition

LocalToOperatingTransition

 

TransitionType

 

 

ToTransition

LocalToMaintenanceTransition

 

TransitionType

 

 

ToTransition

LocalToSlaveModeTransition

 

TransitionType

 

 

 

 

 

 

 

Maintenance

HasProperty

StateNumber

400

PropertyType

 

 

FromTransition

OperatingToMaintenanceTransition

 

TransitionType

 

 

FromTransition

LocalToMaintenanceTransition

 

TransitionType

 

 

ToTransition

MaintenanceToOperatingTransition

 

TransitionType

 

 

ToTransition

MaintenanceToLocalTransition

 

TransitionType

 

 

ToTransition

MaintenanceToSlaveModeTransition

 

TransitionType

 

 

The set of states defined to describe an AnalyserChannel can be expanded. Sub-states can be defined for the base states to provide more resolution to the process and to describe the cause and effects of additional stimuli and transitions.

5.3.3.4 AnalyserChannelStateMachineType Transitions

Transitions are instances of Objects of the TransitionType defined in [OPC 10000-5] which also includes the definitions of the FromState, ToState, HasCause, and HasEffect References used. Table 70 specifies the Transitions defined for the AnalyserChannelStateMachineType. Each Transition is assigned a unique TransitionNumber.

Table 70 – AnalyserChannelStateMachineType Transitions

BrowseName

References

Target BrowseName

Value

Target Type Definition

Notes

Transitions       

SlaveModeToOperatingTransition

HasProperty

TransitionNumber

1

PropertyType

 

 

FromState

SlaveMode

 

InitialStateType

 

 

ToState

Operating

 

AnalyserChannelOperatingStateType

 

 

HasCause

 

 

 

The AnalyserDevice moves from Local or Maintenance state to Operating state

 

 

 

 

 

 

OperatingToLocalTransition

HasProperty

TransitionNumber

2

PropertyType

 

 

FromState

Operating

 

AnalyserChannelOperatingStateType

 

 

ToState

Local

 

AnalyserChannelLocalStateType

 

 

HasCause

Press Local button on channel

 

 

External cause

 

 

 

 

 

 

OperatingToMaintenanceTransition

HasProperty

TransitionNumber

3

PropertyType

 

 

FromState

Operating

 

AnalyserChannelOperatingStateType

 

 

ToState

Maintenance

 

AnalyserChannelMaintenanceStateType

 

 

HasCause

GotoMaintenance

 

Method

 

 

 

 

 

 

 

LocalToOperatingTransition

HasProperty

TransitionNumber

4

PropertyType

 

 

FromState

Local

 

AnalyserChannelLocalStateType

 

 

ToState

Operating

 

AnalyserChannelOperatingStateType

 

 

HasCause

Release Local button on channel

 

 

External cause

 

 

 

 

 

 

LocalToMaintenanceTransition

HasProperty

TransitionNumber

5

PropertyType

 

 

FromState

Local

 

AnalyserChannelLocalStateType

 

 

ToState

Maintenance

 

AnalyserChannelMaintenanceStateType

 

 

HasCause

Release Local button on channel

 

 

External cause

 

 

 

 

 

 

MaintenanceToOperatingTransition

HasProperty

TransitionNumber

6

PropertyType

 

 

FromState

Maintenance

 

AnalyserChannelMaintenanceStateType

 

 

ToState

Operating

 

AnalyserChannelOperatingStateType

 

 

HasCause

GotoOperating

 

Method

 

 

 

 

 

 

 

MaintenanceToLocalTransition

HasProperty

TransitionNumber

7

PropertyType

 

 

FromState

Maintenance

 

AnalyserChannelMaintenanceStateType

 

 

ToState

Local

 

AnalyserChannelLocalStateType

 

 

HasCause

Press Local button on channel

 

 

External cause

 

 

 

 

 

 

OperatingToSlaveModeTransition

HasProperty

TransitionNumber

8

PropertyType

 

 

FromState

Operating

 

AnalyserChannelOperatingStateType

 

 

ToState

SlaveMode

 

StateType

 

 

HasCause

AnalyserDevice moves from Operating to Local or Maintenance state.

 

 

External cause

 

 

 

 

 

 

LocalToSlaveModeTransition

HasProperty

TransitionNumber

9

PropertyType

 

 

FromState

Local

 

AnalyserChannelLocalStateType

 

 

ToState

SlaveMode

 

StateType

 

 

HasCause

AnalyserDevice moves from Operating to Local or Maintenance state.

 

 

External cause

 

 

 

 

 

 

MaintenanceToSlaveModeTransition

HasProperty

TransitionNumber

10

PropertyType

 

 

FromState

Maintenance

 

AnalyserChannelMaintenanceStateType

 

 

ToState

SlaveMode

 

StateType

 

 

HasCause

AnalyserDevice moves from Operating to Local or Maintenance state.

 

 

External cause

 

5.3.4    AnalyserChannel_OperatingModeSubStateMachineType

5.3.4.1 Introduction

AnalyserChannel_OperatingModeSubStateMachineType is a subtype of FiniteStateMachineType.   The states are derived from the ANSI/ISA TR 88.02-2008 Machine and Unit States Technical Report [ISA-88 TR], which in turn were derived from the OMAC PackML tag definition set and the ANSI/ISA 88 Part 1 standard.

 

Figure 19 - AnalyserChannel_OperatingModeSubStateMachineType

 

When the AnalyserChannel is suspended or held:

·      The normal Execute state is interrupted

·      The actual Execute sub-state information shall be kept

When returning from Suspended or Held state:

·      The restart point in Execute state shall be the junction point driven by the SelectExecutionCycle

·      All sub-states shall be executed, but the vendor may use the information stored at the interruption point to optimize the execution of some sub-states.

5.3.4.2 Type definition: AnalyserChannel_OperatingModeSubStateMachineType ObjectType

The AnalyserChannel_OperatingModeSubStateMachineType is formally defined in Table 71.

Table 71 – AnalyserChannel_OperatingModeSubStateMachineType Definition

Attribute

Value

BrowseName

AnalyserChannel_OperatingModeSubStateMachineType

IsAbstract

False

 

 

References

NodeClass

BrowseName

Data

Type

Target Type Definition

Modelling

Rule

Subtype of the FiniteStateMachineType defined in [OPC 10000-5]

HasComponent

Object

Stopped

 

InitialStateType

Mandatory

HasComponent

Object

Resetting

 

StateType

Mandatory

HasComponent

Object

Idle

 

StateType

Mandatory

HasComponent

Object

Starting

 

StateType

Mandatory

HasComponent

Object

Execute

 

AnalyserChannelOperatingModeExecuteStateType

Mandatory

HasComponent

Object

Completing

 

StateType

Mandatory

HasComponent

Object

Complete

 

StateType

Mandatory

HasComponent

Object

Suspending

 

StateType

Mandatory

HasComponent

Object

Suspended

 

StateType

Mandatory

HasComponent

Object

Unsuspending

 

StateType

Mandatory

HasComponent

Object

Holding

 

StateType

Mandatory

HasComponent

Object

Held

 

StateType

Mandatory

HasComponent

Object

Unholding

 

StateType

Mandatory

HasComponent

Object

Stopping

 

StateType

Mandatory

HasComponent

Object

Aborting

 

StateType

Mandatory

HasComponent

Object

Aborted

 

StateType

Mandatory

HasComponent

Object

Clearing

 

StateType

Mandatory

 

 

 

 

 

 

HasComponent

Object

StoppedToResettingTransition

 

TransitionType

Mandatory

HasComponent

Object

ResettingTransition

 

TransitionType

Mandatory

HasComponent

Object

ResettingToIdleTransition

 

TransitionType

Mandatory

HasComponent

Object

IdleToStartingTransition

 

TransitionType

Mandatory

HasComponent

Object

StartingTransition

 

TransitionType

Mandatory

HasComponent

Object

StartingToExecuteTransition

 

TransitionType

Mandatory

HasComponent

Object

ExecuteToCompletingTransition

 

TransitionType

Mandatory

HasComponent

Object

CompletingTransition

 

TransitionType

Mandatory

HasComponent

Object

CompletingToCompleteTransition

 

TransitionType

Mandatory

HasComponent

Object

CompleteToStoppedTransition

 

TransitionType

Mandatory

HasComponent

Object

ExecuteToHoldingTransition

 

TransitionType

Mandatory

HasComponent

Object

HoldingTransition

 

TransitionType

Mandatory

HasComponent

Object

HoldingToHeldTransition

 

TransitionType

Mandatory

HasComponent

Object

HeldToUnholdingTransition

 

TransitionType

Mandatory

HasComponent

Object

UnholdingTransition

 

TransitionType

Mandatory

HasComponent

Object

UnholdingToHoldingTransition

 

TransitionType

Mandatory

HasComponent

Object

UnholdingToExecuteTransition

 

TransitionType

Mandatory

HasComponent

Object

ExecuteToSuspendingTransition

 

TransitionType

Mandatory

HasComponent

Object

SuspendingTransition

 

TransitionType

Mandatory

HasComponent

Object

SuspendingToSuspendedTransition

 

TransitionType

Mandatory

HasComponent

Object

SuspendedToUnsuspendingTransition

 

TransitionType

Mandatory

HasComponent

Object

UnsuspendingTransition

 

TransitionType

Mandatory

HasComponent

Object

UnsuspendingToSuspendingTransition

 

TransitionType

Mandatory

HasComponent

Object

UnsuspendingToExecuteTransition

 

TransitionType

Mandatory

 

 

 

 

 

 

HasComponent

Object

StoppingToStoppedTransition

 

TransitionType

Mandatory

HasComponent

Object

AbortingToAbortedTransition

 

TransitionType

Mandatory

HasComponent

Object

AbortedToClearingTransition

 

TransitionType

Mandatory

HasComponent

Object

ClearingToStoppedTransition

 

TransitionType

Mandatory

 

 

 

 

 

 

HasComponent

Object

ResettingToStoppingTransition

 

TransitionType

Mandatory

HasComponent

Object

IdleToStoppingTransition

 

TransitionType

Mandatory

HasComponent

Object

StartingToStoppingTransition

 

TransitionType

Mandatory

HasComponent

Object

ExecuteToStoppingTransition

 

TransitionType

Mandatory

HasComponent

Object

CompletingToStoppingTransition

 

TransitionType

Mandatory

HasComponent

Object

CompleteToStoppingTransition

 

TransitionType

Mandatory