The VerifyAsset Method allows a Client to verify whether an Asset’s identity and functionality meet the expectations of system engineering.

Three different modes are available for Asset verification (see VerificationMode). Each mode depends on a set of mandatory and optional Variables (see definition of AssetVerificationModeEnum in 10.4) to be present for verification. The VerifyAsset Method also accepts additional Variables for verification.

An Asset implementing the VerifyAsset Method shall at least support the VerificationMode AssetCompatibility and expose the corresponding mandatory and implemented optional Variables in its Information Model. If at least one of the optional Variables, SerialNumber and/or ProductInstanceUri, are provided, then the VerificationModes AssetIdentity and AssetIdentityAndCompatibility shall be supported.

The signature of this Method is specified below; the arguments are defined in Table 30.

Signature

VerifyAsset (

[in] 2:AssetVerificationModeEnumVerificationMode,

[in] 0:KeyValuePair[] ExpectedVerificationVariables,

[in] 2:NodeIdValuePair[] ExpectedAdditionalVerificationVariables,

[out] 2:AssetVerificationResultEnumVerificationResult,

[out] 0:StatusCode[] VerificationVariablesErrors,

[out] 0:StatusCode[] VerificationAdditionalVariablesErrors

);

Table 30 – VerifyAsset Method arguments

Argument

Description

VerificationMode

Mode for Asset verification: see 10.4 for a definition of the AssetVerificationModeEnum.

ExpectedVerificationVariables

An array of KeyValuePair containing verification Variables. Key shall be the BrowseName of the Variable to verify (relative to the Asset this Method is being called on), and Value is its expected value.

A Client shall pass all mandatory and implemented optional Variables depending on VerificationMode:

IVendorNameplateType ManufacturerUri (M),

IVendorNameplateType ProductCode (M),

IAssetRevisionType MajorAssetVersion (M),

IAssetRevisionType MinorAssetVersion (M),

IAssetRevisionType BuildAssetNumber (O),

IAssetRevisionType SubBuildAssetNumber (O),

IVendorNameplateType HardwareRevision (O),

IVendorNameplateType SoftwareRevision (O)

IVendorNameplateType ManufacturerUri (M),

IVendorNameplateType ProductCode (M),

At least one of:

IVendorNameplateType SerialNumber,

IVendorNameplateType ProductInstanceUri

AssetIdentityAndCompatibility: All mandatory Variables of both AssetCompatibility and AssetIdentity are mandatory for top-level Assets (those directly in the Assets Folder in the AutomationComponent). All optional Variables of AssetCompatibility are optional.

ExpectedAdditionalVerificationVariables

An array of NodeIdValuePair containing additional verification Variables. NodeId shall be the NodeId of the Variable to verify, and Value shall be its expected value. This array may be null or empty if no additional Variables are to be verified.

The following rules shall apply to the usage of NodeIdValuePair:

  • If NodeId refers to variables of type array, it shall be verified that Value is a matching array.
  • If the ArrayIndex is provided, the value shall be checked against the corresponding index.

If Value is null, it shall be verified that NodeId exists. The Node may be a of any NodeClass, but only the NodeClass of Variable or VariableType can have a non-null value.

VerificationResult

The result of Asset verification is determined by the Method implementation; see 10.7 for a definition of the AssetVerificationResultEnum.

The following general rule applies to determine VerificationResult:

  • All string-type Variables shall be stripped of leading and trailing whitespaces before processing.

The following specific rules apply to determine AssetCompatibility:

If this value is set, VerificationVariablesErrors and/or VerificationAdditionalVariablesErrors shall be populated.

The following specific rules apply to determine AssetIdentity:

The following specific rules apply to determine AssetIdentityAndCompatibility:

Mismatch: Shall be returned if verification of AssetCompatibility or AssetIdentity or both result in Mismatch.

VerificationVariablesErrors

An array of StatusCode corresponding to the ExpectedVerificationVariables input argument that indicates any errors that occurred during the processing of ExpectedVerificationVariables. If this array is populated, the length of this array shall match the length of ExpectedVerificationVariables. For possible values in this array, see Table 32.

VerificationAdditionalVariablesErrors

An array of StatusCode corresponding to the ExpectedAdditionalVerificationVariables input argument that indicates any errors that occurred during the processing of ExpectedAdditionalVerificationVariables. If this array is populated, the length of this array shall match the length of ExpectedAdditionalVerificationVariables. For possible values in this array, see Table 33.

The possible Method result codes are formally defined in Table 31.

Table 31 – VerifyAsset Method result codes

Result Code

Description

Bad_InvalidArgument

One or more arguments are invalid, or ExpectedVerificationVariables is missing Variables that are mandatory for the chosen VerificationMode (or optional, and the implementation of this Method expects them because they are implemented).

Bad_NotSupported

The Client specified a VerificationMode that is not supported by this Method implementation.

Uncertain

At least one element in ExpectedVerificationVariables and/or ExpectedAdditionalVerificationVariables is invalid or failed verification. VerificationVariablesErrors and/or VerificationAdditionalVariablesErrors will contain additional information.

The VerificationVariablesErrors StatusCodes are formally defined in Table 32.

Table 32 – VerificationVariablesErrors StatusCodes

Result Code

Description

Bad_BrowseNameInvalid

The BrowseName for the verification Variable is invalid or was passed more than once.

Bad_TypeMismatch

The value supplied for the verification Variable (if non-null) is not of the same type as the implemented verification Variable.

Bad_OutOfRange

The value supplied for the Variable is not equal to the actual value of the Variable (if non-null).

Good

The verification for this Variable succeeded.

The VerificationAdditionalVariablesErrors StatusCodes are formally defined in Table 33.

Table 33 – VerificationAdditionalVariablesErrors StatusCodes

Result Code

Description

Bad_OutOfRange

The value supplied for the Variable is not equal to the actual value of the Variable (if non-null).

Good

The verification for this Variable succeeded.

The VerifyAsset Method representation in the AddressSpace is formally defined in Table 34.

Table 34 – VerifyAsset Method AddressSpace definition

Attribute

Value

BrowseName

3:VerifyAsset

References

Node Class

BrowseName

DataType

TypeDefinition

Other

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

0:HasProperty

Variable

0:OutputArguments

0:Argument[]

0:PropertyType

M

ConformanceUnits

UAFX IAssetRevision VerifyAsset Base