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

image013.png

Figure 10- StreamType Hierarchy

StreamTypeis a subtype of TopologyElementType.

A Streammay have Parameters. If a Streamhas Parametersthey appear in an Objectcalled ParameterSetas a flat list of Parameters. Parametersof a Streamare identified by the <ParameterIdentifier> browse name. Parametersof a Streamcan be organized in FunctionalGroupsidentified as <GroupIdentifier> browse name.

StreamTypedefines seven mandatory FunctionalGroups (see clause 5.2.1.4for more details):

  • Configuration - used to organize Parametersrepresenting the high-level configuration items of the stream, which are expected to be modified by end users.
  • Status- used to organize Parameterswhich describe the general health of the stream.
  • AcquistionSettings - used to organize Parameterswhich describe the conditions of the following acquisition on a stream.
  • AcquisitionStatus – used to organize Parameterswhich describe the status of an ongoing acquisition on a stream.
  • AcquisitionData - used to organize all Parameterswhich represent data retrieved at the end of the data acquisition.
  • ChemometricModelSettings - used to organize Parameterswhich describe/configure the chemometric models used during the data acquisition
  • Context - used to organize all Parameterswhich provide the context for the data acquired through the Stream. Context Parametersare not generally used by the analyser but can be published to uniquely tie acquired data with the controlling process. Examples of context Parametersare: CampaignID, BatchID, LotID, MaterialID, and SampleId.

image014.png

Figure 11- StreamFunctionalGroups

Table 33– StreamType Definition

Attribute

Value

BrowseName

StreamType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the TopologyElementTypedefined 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

Parametersdefined for the StreamTypeare described in the following tables. The tables correspond to mandatory FunctionalGroupsdefined for the StreamType. Additional Parametersmay be defined for Streamon subtypes of AnalyserDeviceTypeand associated with those FunctionalGroups.

All Stream Parametersexist as components of the ParameterSet Objectdefined on that Stream. Each Parameterdefined for a Streamshall be accessible through one and only one FunctionalGroupdefined on that Stream.Note, that the same Parameteris not instantiated more than once. Both, ParameterSetand a specific FunctionalGroupmaintain References to the same instance of the Parameter.

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

Table 34–Stream ConfigurationParameters

BrowseName

Description

VariableType

Optional/

Mandatory

IsEnabled

True if this stream maybe used to perform acquisition.

This Parameteris mainly used for maintenance.

DataItemType

(DataType=Boolean)

M

IsForced

True if this Streamis forced, which means that is the only Streamon this AnalyserChannelthat can be used to perform acquisitions.

This Parameteris mainly used for maintenance.

DataItemType

(DataType=Boolean)

O

Table 35describes the Parametersthat are organized by the Status FunctionalGroup of a Stream. All Parametersorganized by this FunctionalGroupshall be read-only.

Table 35–Stream StatusParameters

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 SourceTimestampof 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 SourceTimestampof 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 SourceTimestampof the main acquisition data for this sample acquisition.

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

DataItemType

(DataType=DateTime)

M

Table 36describes the Parametersthat are organized by the AcquisitionSettings FunctionalGroup of aStream.

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 37describes the Parametersthat are organized by theAcquisitionStatus FunctionalGroup of a Stream. All Parametersorganized by this FunctionalGroupshall be read-only.

Table 37–Stream AcquisitionStatusParameters

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

ExecutionCycleindicates the type of acquisition in progress and it is set in the SelectExecutionCyclestate of the AnalyserChannel_OperatingModeExecuteSubStateMachine..

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

Table 38describes the Parametersthat 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 Parametersrepresenting 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 Streamand 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 Parameterhere is only to indicate that this Parametermust be defined for a Streamon 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 Parameterat this level. See ScaledData Parameterdefinition for specific class of analyser. If more than one ScaledDatais required, Parametersrepresenting those additional ScaledDatashall 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 isthe time in millisconds between the WaitForXXXTrigger to ExtractXXXSample transition and the PrepareXXXSample to AnalyseXXXSample transition.

As a general rule, a single Parametershall not be used to represent different data elements. For example, ScaledDatashall be used for the Sample acquisition and another Parametershall 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 Parametermay 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. SourceTimestampshall be the time when the sampling system starts extracting the sample, defined by the start of the ExtractSampleor ExtractCalibrationSampleor ExtractValidationSamplestate of the AnalyserChannel_OperatingModeExecuteSubStateMachine. The difference between the SourceTimestampand the time when the sample is analysed, is reflected in the Offset Parameter defines in AcquisitionData.

To simplify integration with historians, Parametersin the AcquisitionData FunctionalGroupshall 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 SourceTimestampas the acquired data. For example RawData, ScaledData, AcquisitionEndTimeshall 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” AnalyserChannelshall be used. Which AnalyserChannelis 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 AcquisitionResultStatuswhich 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 AcquisitionDataand Context FunctionalGroup.
  6. The OPC UA SourceTimestampis always in UTC time.

For details on SourceTimestampelements 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 Parametersusing data provided by user or other system entry system like a barcode reader.

Table 39describes the Parametersthat 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 40shows Parametersthat will be organized bytheChemometricModelSettings FunctionalGroup.

Table 40StreamChemometricModelSettings Parameters

BrowseName

Description

VariableType

Optional/

Mandatory

<ChemometricModelId>

Chemometric Model used to convert scaled data into process data

ChemometricModelType

(DataType=Byte)

O