This ObjectType defines the representation of the machine vision system result management. Figure 17 shows the hierarchical structure and details of the composition. It is formally defined in Table 65.

ResultManagementType provides methods to query the results generated by the underlying vision system. Results can be stored in a local result store. An event of ResultReadyEventType, which is defined in Section 8.3.8.4, shall be triggered when the system generates a new result.

image024.png

Figure 17 – Overview ResultManagementType

Table 65 – Definition of ResultManagementType

Attribute

Value

BrowseName

ResultManagementType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in OPC 10000-5

HasComponent

Method

GetResultById

--

--

Mandatory

HasComponent

Method

GetResultComponentsById

--

--

Mandatory

HasComponent

Method

GetResultListFiltered

--

--

Mandatory

HasComponent

Method

ReleaseResultHandle

--

--

Optional

HasComponent

Object

ResultTransfer

--

ResultTransferType

Optional

HasComponent

Object

Results

--

ResultFolderType

Optional

ResultTransfer is an instance of the ResultTransferType defined in Section 7.12 and it is used to transfer the contents of a result by the temporary file transfer method defined in OPC 10000-5, Annex C.4.

Results is an Object of the ResultFolderType that organizes variables of the DataType ResultDataType which is defined in Section 12.17. If the server chooses to expose result information in the Address Space, it may contain the set of all results available on the system or a filtered subset, e.g. the set of all currently finished results. This is implementation-defined. If a server does not expose result information in the Address Space, this variable is expected to be non-existent.

This method is used to retrieve a result from the vision system. Depending on the design of the vision system, the client may be informed by events of ResultReadyEventType that a new result is available. Then, the client might fetch this result using the information provided by events of ResultReadyEventType which is defined in Section 8.3.8.4.

Since the resultId is supposed to be system-wide unique, this method shall return only a single result. Since there may be additional result content to be retrieved by temporary file transfer, the server should keep result data available, resources permitting, until the client releases the handle ReleaseResult. However, the client cannot rely on the data to remain available until then.

Signature

GetResultById ([in]ResultIdDataTyperesultId[in]Int32timeout[out]HandleresultHandle[out]ResultDataTyperesult[out]Int32error);

Table 66 – GetResultById Method Arguments

Argument

Description

resultId

System-wide unique identifier for the result.

timeout

With this argument the client can give a hint to the server how long it will need access to the result data.

A value > 0 indicates an estimated maximum time for processing the data in milliseconds.

A value = 0 indicates that the client will not need anything besides the data returned by the method call.

A value < 0 indicates that the client cannot give an estimate.

The client cannot rely on the data being available during the indicated time period. The argument is merely a hint allowing the server to optimize its resource management.

resultHandle

The server shall return to each client requesting result data a system-wide unique handle identifying the result set / client combination. This handle should be used by the client to indicate to the server that the result data is no longer needed, allowing the server to optimize its resource handling .

result

The result including metadata.

error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 67 – GetResultById Method AddressSpace Definition

Attribute

Value

BrowseName

GetResultById

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

This method is used to retrieve a result from the vision system. It is basically identical to the GetResultById method described in Section 7.10.2.1, but it returns the result not in a single output argument of ResultDataType but in individual output arguments corresponding to the elements of the ResultDataType structure.

The reason for providing this method is to facilitate the use of subtypes to the structures nested inside of ResultDataType. Since the NodeIds of structured DataTypes nested within a structured DataType are not transferred together with the DataType, subtyping these nested structures would then also necessitate subtyping ResultDataType. This is of course possible, but in the absence of such a subtype, the individual components can still be requested by this method.

Signature

GetResultComponentsById ([in]ResultIdDataTyperesultId[in]Int32timeout[out]BooleanhasTransferableDataOnFile[out]HandleresultHandle[out]BooleanisPartial[out]BooleanisSimulated[out]ResultStateDataTyperesultState[out]MeasIdDataTypemeasId[out]PartIdDataTypepartId[out]RecipeIdExternalDataTypeexternalRecipeId[out]RecipeIdInternalDataTypeinternalRecipeId[out]ProductIdDataTypeproductId[out]ConfigurationIdDataTypeexternalConfigurationId[out]ConfigurationIdDataTypeinternalConfigurationId[out]JobIdDataTypejobId[out]UtcTimecreationTime[out]ProcessingTimesDataTypeprocessingTimes[out]BaseDataType[]resultContent[out]Int32error);

Table 68 – GetResultComponentsById Method Arguments

Argument

Description

resultId

System-wide unique identifier for the result

timeout

With this argument the client can give a hint to the server how long it will need access to the result data.

A value > 0 indicates an estimated maximum time for processing the data in milliseconds.

A value = 0 indicates that the client will not need anything besides the data returned by the method call.

A value < 0 indicates that the client cannot give an estimate.

The client cannot rely on the data being available during the indicated time period. The argument is merely a hint allowing the server to optimize its resource management.

hasTransferableDataOnFile

Indicates that TemporaryFileTransfer needs to be used to retrieve all data of the result content.

resultHandle

The server shall return to each client requesting result data a system-wide unique handle identifying the result set / client combination. This handle should be used by the client to indicate to the server that the result data is no longer needed, allowing the server to optimize its resource handling.

isPartial

Indicates whether the result is the partial result of a total result.

isSimulated

Indicates whether the system was in simulation mode when the job generating this result was created.

resultState

ResultState provides information about the current state of a result and the ResultStateDataType is defined in Section 12.19.

measId

This identifier is given by the client when starting a single or continuous execution and transmitted to the vision system. It is used to identify the respective result data generated for this job. Although the system-wide unique JobId would be sufficient to identify the job which the result belongs to, this makes for easier filtering on the part of the client without keeping track of JobIds.

partId

A PartId is given by the client when starting the job; although the system-wide unique JobId would be sufficient to identify the job which the result belongs to, this makes for easier filtering on the part of the client without keeping track of JobIds.

externalRecipeId

External identifier of the recipe in use which produced the result. This is only managed by the environment.

internalRecipeId

Internal identifier of the recipe in use which produced the result. This identifier is system-wide unique and it is assigned by the vision system.

productId

Identifier of the product in use which produced the result. This is only managed by the environment.

externalConfigurationId

External identifier of the configuration in use while the result was produced.

InternalConfigurationId

Internal identifier of the configuration in use while the result was produced. This identifier is system-wide unique and it is assigned by the vision system.

jobId

The identifier of the job, created by the transition from state Ready to state SingleExecution or to state ContinuousExecution which produced the result.

creationTime

CreationTime indicates the time when the result was created.

processingTimes

Collection of different processing times that were needed to create the result.

resultContent

Abstract data type to be subtyped from to hold the actual result content created by the job.

error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 69 – GetResultComponentsById Method AddressSpace Definition

Attribute

Value

BrowseName

GetResultById

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

This method is used to get a list of results matching certain filter criteria.

Signature

GetResultListFiltered ([in]ResultStateDataTyperesultState[in]MeasIdDataTypemeasId[in]PartIdDataTypepartId[in]RecipeIdExternalDataTypeexternalRecipeId[in]RecipeIdInternalDataTypeinternalRecipeId[in]ConfigurationIdDataTypeexternalConfigurationId[in]ConfigurationIdDataTypeinternalConfigurationId[in]ProductIdDataTypeproductId[in]JobIdDataTypejobId[in]UInt32maxResults[in]UInt32startIndex[in]Int32timeout[out]BooleanisComplete[out]UInt32resultCount[out]HandleresultHandle[out]ResultDataType[]resultList[out]Int32error);

Table 70 – GetResultListFiltered Method Arguments

Argument

Description

resultState

If not 0, only results having the specified state are returned.

measId

If not empty, only results corresponding to the given measId are returned

partId

If not empty, only results corresponding to the given partId are returned.

externalRecipeId

If not empty, only results corresponding to the given externalRecipeId are returned.

internalRecipeId

If not empty, only results corresponding to the given internalRecipeId are returned.

externalConfigurationId

If not empty, only results corresponding to the given externalConfigurationId are returned.

internalConfigurationId

If not empty, only results corresponding to the given internalConfigurationId are returned.

productId

If not empty, only results corresponding to the given productId are returned.

jobId

If not empty, only results corresponding to the given jobId are returned.

maxResults

Maximum number of results to return in one call; by passing 0, the client indicates that it does not put a limit on the number of results.

startIndex

Shall be 0 on the first call, multiples of maxResults on subsequent calls to retrieve portions of the entire list, if necessary.

timeout

With this argument the client can give a hint to the server how long it will need access to the result data.

A value > 0 indicates an estimated maximum time for processing the data in milliseconds.

A value = 0 indicates that the client will not need anything besides the data returned by the method call.

A value < 0 indicates that the client cannot give an estimate.

The client cannot rely on the data being available during the indicated time period. The argument is merely a hint allowing the server to optimize its resource management.

isComplete

Indicates whether there are more results in the entire list than retrieved according to startIndex and resultCount.

resultCount

Gives the number of valid results in ResultList.

resultHandle

The server shall return to each client requesting result data a system-wide unique handle identifying the result set / client combination. This handle has to be used by the client to release the result set.

resultList

List of results matching the Filter.

error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 71 – GetResultListFiltered Method AddressSpace Definition

Attribute

Value

BrowseName

GetResultListFiltered

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

There are the following cases with the respect to the number of results:

This method is used to inform the server that the client has finished processing a given result set allowing the server to free resources managing this result set.

The server should keep the data of the result set available for the client until the ReleaseResultHandle method is called or until a timeout given by the client has expired. However, the server is free to release the data at any time, depending on its internal resource management, so the client cannot rely on the data being available. ReleaseResultHandle is merely a hint allowing the server to optimize its internal resource management. For timeout usage see the description in Section 7.10.2.1.

Signature

ReleaseResultHandle ([in]HandleresultHandle[out]Int32error);

Table 72 – ReleaseResultHandle Method Arguments

Argument

Description

resultHandle

Handle returned by GetResultById or GetResultList, identifying the result set/client combination.

Error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 73 – ReleaseResultHandle Method AddressSpace Definition

Attribute

Value

BrowseName

ReleaseResultHandle

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory