Table 78 specifies the AnalyserChannel_OperatingModeExecuteSubStateMachine’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 AnalyserChannel_OperatingModeExecuteSubStateMachineType can add References from any state to a subordinate or nested StateMachine Object to extend the FiniteStateMachine.

A standard set of sub-states are defined for AnalyseChannel_OperatingModeExecuteSubStateMachineType. These sub-states represent the operational condition of the AnalyseChannel_OperatingModeSubStateMachine Execute state. All the sub-states must be supported, though they can be transient states.

Table 77 – AnalyserChannel_OperatingModeExecuteSub StateMachineType State Descriptions

StateName

Description

SelectExecutionCycle

This pseudo-state is used to decide which acquisition path shall be taken.

This decision is made using a Parameter ExecutionCycle that can be:

The state machine waits at this state until the underlying system is ready to take a given acquisition path.

WaitForCalibrationTrigger

Wait until the analyser channel is ready to perform the Calibration acquisition cycle, for example:

For analysers that do not need the step, the state is transient.

ExtractCalibrationSample

Collect / setup the sampling system to perform the acquisition cycle of a Calibration cycle, for example:

  • Empty and dry the sample liquid cell.
  • Place a calibrated sample in the acquisition path.

For analysers that do not need the step, the state is transient.

PrepareCalibrationSample

Prepare the Calibration sample for the AnalyseCalibrationSample state ,for example:

  • Heating the Calibration sample
  • Homogenizing the Calibration sample

For analysers that do not need the step, the state is transient.

AnalyseCalibrationSample

Perform the analysis of the Calibration Sample, for example:

  • Collect the reference spectrum
  • Collect the particle size histogram

WaitForValidationTrigger

Wait until the analyser channel is ready to perform the Validation acquisition cycle, for example:

For analysers that do not need the step, the state is transient.

ExtractValidationSample

Collect / setup the sampling system to perform the acquisition cycle of a Validation cycle, for example:

  • Empty and dry the sample liquid cell.
  • Place a calibrated sample in the acquisition path.

For analysers that do not need the step, the state is transient.

PrepareValidationSample

Prepare the Validation sample for the AnalyseValidationSample state ,for example:

  • Heating the Validation sample
  • Homogenizing the Validation sample

For analysers that do not need the step, the state is transient.

AnalyseValidationSample

Perform the analysis of the Validation Sample, for example:

  • Collect the Validation spectrum and compare it with the expected values

WaitForSampleTrigger

Wait until the analyser channel is ready to perform the Sample acquisition cycle, for example:

  • The external trigger is received from another system, like an external sampling system
  • A vendor specific Parameter in the AcquisitionSettings has been updated

For analysers that do not need the step, the state is transient.

ExtractSample

Collect the Sample from the process, for example:

  • Physically extract a Sample from the process to fill a liquid cell
  • Extract powder from the blender

Some analyser probes do not need to extract the Sample from the process, for example a NIR reflectance probe. In this case, this state is a pass-through.

PrepareSample

Prepare the Sample for the AnalyseSample state, for example:

  • Heating the Sample
  • Homogenizing the Sample

For analysers that do not need the step, the state is transient.

AnalyseSample

Perform the analysis of the Sample, for example:

  • Collect the Sample spectrum
  • Collect the Sample particle size histogram
  • Collect the Sample chromatogram

WaitForDiagnosticTrigger

Wait until the analyser channel is ready to perform the Diagnostic cycle, for example:

For analysers that do not need the step, the state is transient.

Diagnostic

Perform the Diagnostic cycle. This cycle is a placeholder allowing the analyser vendor to extend this state to represent vendor specific analyser diagnostic cycles.

WaitForCleaningTrigger

Wait until the analyser channel is ready to perform the cleaning acquisition cycle, for example:

For analysers that do not need the step, the state is transient.

Cleaning

Perform the cleaning cycle.

PublishResults

Publish the results of the previous acquisition cycle. When the transition from PublishResults to CleanupSamplingSystem occurs, all results must be available.

EjectGrabSample

The Sample that was just analysed is ejected from the system to allow the operator or another system to grab it and send it to a control lab for example.

CleanupSamplingSystem

Cleanup the sampling sub-system to be ready for the next acquisition, for example:

  • Flush the liquid cell with a solvent

For in-process probes, this state is transient.

The set of states defined to describe an AnalyserChannel_OperatingModeExecuteSubStateMachine 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. See Table 77 for a description of the states.

ExecutionCycle, ExecutionCycleSubcode and ActiveStream Parameters are set during the SelectExecutionCycle state. From the end of SelectExecutionCycle to the end of CleanupSamplingSystem, these two Parameters shall not change.

ExecutionCycle, ExecutionCycleSubcode, ActiveStream and IsActive Parameters are set during the SelectExecutionCycle state. From the end of SelectExecutionCycle to the end of CleanupSamplingSystem, these two Parameters shall not change.

WaitForxxxTrigger states represent waiting for situation like:

External input i/o visible or not in the address space

Internal timer (visible or not in the address space)

Table 78 – AnalyserChannel_OperatingModeExecuteSub StateMachineType States

BrowseName

References

Target BrowseName

Value

Target Type Definition

States

SelectExecutionCycle

HasProperty

StateNumber

100

PropertyType

FromTransition

CleanupSamplingSystemToSelectExecutionCycleTransition

TransitionType

ToTransition

SelectExecutionCycleToWaitForCalibrationTriggerTransition

TransitionType

ToTransition

SelectExecutionCycleToWaitForValidationTriggerTransition

TransitionType

ToTransition

SelectExecutionCycleToWaitForSampleTriggerTransition

TransitionType

ToTransition

SelectExecutionCycleToWaitForDiagnosticTriggerTransition

TransitionType

ToTransition

SelectExecutionCycleToWaitForCleaningTriggerTransition

TransitionType

ToTransition

SelectExecutionCycleToHoldingTransition

TransitionType

ToTransition

SelectExecutionCycleToSuspendingTransition

TransitionType

WaitForCalibrationTrigger

HasProperty

StateNumber

200

PropertyType

FromTransition

SelectExecutionCycleToWaitForCalibrationTriggerTransition

TransitionType

ToTransition

WaitForCalibrationTriggerTo ExtractCalibrationSampleTransition

TransitionType

ExtractCalibrationSample

HasProperty

StateNumber

300

PropertyType

FromTransition

WaitForCalibrationTriggerToExtractCalibrationSampleTransition

TransitionType

ToTransition

ExtractCalibrationSampleToPrepareCalibrationSampleTransition

TransitionType

PrepareCalibrationSample

HasProperty

StateNumber

400

PropertyType

FromTransition

ExtractCalibrationSampleToPrepareCalibrationSampleTransition

TransitionType

ToTransition

PrepareCalibrationSampleToAnalyseCalibrationSampleTransition

TransitionType

AnalyseCalibrationSample

HasProperty

StateNumber

500

PropertyType

FromTransition

PrepareCalibrationSampleToAnalyseCalibrationSampleTransition

TransitionType

ToTransition

AnalyseCalibrationSampleToPublishResultsTransition

TransitionType

WaitForValidationTrigger

HasProperty

StateNumber

600

PropertyType

FromTransition

SelectExecutionCycleToWaitForValidationTriggerTransition

TransitionType

ToTransition

WaitForValidationTriggerToExtractValidationSampleTransition

TransitionType

ExtractValidationSample

HasProperty

StateNumber

700

PropertyType

FromTransition

WaitForValidationTriggerToExtractValidationSampleTransition

TransitionType

ToTransition

ExtractValidationSampleToPrepareValidationSampleTransition

TransitionType

PrepareValidationSample

HasProperty

StateNumber

800

PropertyType

FromTransition

ExtractValidationSampleToPrepareValidationSampleTransition

TransitionType

ToTransition

PrepareValidationSampleToAnalyseValidationSampleTransition

TransitionType

AnalyseValidationSample

HasProperty

StateNumber

900

PropertyType

FromTransition

PrepareValidationSampleToAnalyseValidationSampleTransition

TransitionType

ToTransition

AnalyseValidationSampleToPublishResultsTransition

TransitionType

WaitForSampleTrigger

HasProperty

StateNumber

1000

PropertyType

FromTransition

SelectExecutionCycleToWaitForSampleTriggerTransition

TransitionType

ToTransition

WaitForSampleTriggerToExtractSampleTransition

TransitionType

ExtractSample

HasProperty

StateNumber

1100

PropertyType

FromTransition

WaitForSampleTriggerToExtractSampleTransition

TransitionType

ToTransition

ExtractSampleToPrepareSampleTransition

TransitionType

PrepareSample

HasProperty

StateNumber

1200

PropertyType

FromTransition

ExtractSampleToPrepareSampleTransition

TransitionType

ToTransition

PrepareSampleToAnalyseSampleTransition

TransitionType

AnalyseSample

HasProperty

StateNumber

1300

PropertyType

FromTransition

PrepareSampleToAnalyseSampleTransition

TransitionType

ToTransition

AnalyseSampleToPublishResultsTransition

TransitionType

WaitForDiagnosticTrigger

HasProperty

StateNumber

1400

PropertyType

FromTransition

SelectExecutionCycleToWaitForDiagnosticTriggerTransition

TransitionType

ToTransition

WaitForDiagnosticTriggerToDiagnosticTransition

TransitionType

Diagnostic

HasProperty

StateNumber

1500

PropertyType

FromTransition

WaitForDiagnosticTriggerToDiagnosticTransition

TransitionType

ToTransition

DiagnosticToPublishResultsTransition

TransitionType

WaitForCleaningTrigger

HasProperty

StateNumber

1600

PropertyType

FromTransition

SelectExecutionCycleToWaitForCleaningTriggerTransition

TransitionType

ToTransition

WaitForCleaningTriggerToCleaningTransition

TransitionType

Cleaning

HasProperty

StateNumber

1700

PropertyType

FromTransition

WaitForCleaningTriggerToCleaningTransition

TransitionType

ToTransition

CleaningToPublishResultsTransition

TransitionType

PublishResults

HasProperty

StateNumber

1800

PropertyType

FromTransition

AnalyseCalibrationToPublishResultsTransition

TransitionType

FromTransition

AnalyseValidationToPublishResultsTransition

TransitionType

FromTransition

AnalyseSampleToPublishResultsTransition

TransitionType

FromTransition

DiagnosticToPublishResultsTransition

TransitionType

FromTransition

CleaningToPublishResultsTransition

TransitionType

ToTransition

PublishResultsToCleanupSamplingSystemTransition

TransitionType

ToTransition

PublishResultsToEjectGrabSampleSystemTransition

TransitionType

EjectGrabSample

HasProperty

StateNumber

1900

PropertyType

FromTransition

PublishResultsToEjectGrabSampleTransition

TransitionType

ToTransition

EjectGrabSampleToCleanupSamplingSystemTransition

TransitionType

CleanupSamplingSystem

HasProperty

StateNumber

2000

PropertyType

FromTransition

PublishResultsToCleanupSamplingSystemTransition

TransitionType

FromTransition

EjectGrabSampleToCleanupSamplingSystemTransition

TransitionType

ToTransition

CleanupSamplingSystemToSelectExecutionCycleTransition

TransitionType