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:

  1. 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.
  2. 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
  3. An accessory is added or removed
  4. 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.