12 DataTypes for the Vision System

12.1 Handle

This Simple Data Type defines a UInt32 representing a handle to a collection of data managed by the server.

12.2 TrimmedString

This Simple Data Type defines a String with no leading or trailing whitespace, where whitespace means the Unicode characters defined as whitespace (“WSpace=Y”, “WS”) in the Unicode database.

Where a TrimmedString is specified as input argument to a method and the incoming string contains leading or trailing whitespace, the server is entitled to react with an error (Bad_TypeMismatch) or – preferably – silently trim the string internally before processing it.

12.3 TriStateBooleanDataType

This DataType is an enumeration that identifies the filtering of particular properties in requests for lists of results, recipes etc. Its values are defined in Table 139.

Table 139 – Values of TriStateBooleanDataType
ValueDescription
FALSE_0The filtering function shall look for entities where the filtered value is FALSE.
TRUE_1The filtering function shall look for entities where the filtered value is TRUE.
DONTCARE_2The filtering function shall not take the value into account.

12.4 ProcessingTimesDataType

This structure contains measured times that were generated during the execution of a recipe. These measured values provide information about the duration required by the various sub-functions.

Table 140 – Definition of ProcessingTimesDataType
Name Type Description O / M
ProcessingTimesDataTypestructure
startTimeUtcTimeContains the time when the vision system started execution of the recipe.Mandatory
endTimeUtcTimeContains the time when the vision system finished (or stopped/aborted) execution of the recipe.Mandatory
acquisitionDurationDurationTime spent by the vision system acquiring imagesOptional
processingDurationDurationTime spent by the vision system processing dataOptional

12.5 MeasIdDataType

This structure is used by the client to pass an identification of the measurement to be carried out in a Start method. It is typically not changed by the server and is included in the meta data for identifying a result.

In its basic version here, the MeasIdDataType contains only a TrimmedString. It has been encapsulated in a structure for the purpose of easy sub-typing if more sophisticated identification is required.

A basic MeasIdDataType structure is considered empty when the id member has length 0. For sub-types of MeasIdDataType additional rules may apply., i.e., they shall always be considered empty, when the Id member has length 0, and may also be considered empty when other structure members fulfill particular conditions.

Table 141 – Definition of MeasIdDataType
Name Type Description O / M
MeasIdDataTypestructure
id TrimmedString Id is an identifier/name for identifying the measurement operation. This identifier is passed by the client to the vision system so no assumptions can be made about its uniqueness or other properties.Mandatory
descriptionLocalizedTextOptional short human readable description of the measurement.Optional

12.6 PartIdDataType

This structure defines the identification of a part, i.e. a Unit Under Test. It is formally defined in Table 142.

PartId structures can be passed by the client with a Start method call and should be stored by he server in results pertaining to that part. Thus they describe the connection between a unit under test and a result, which was created during the processing of a recipe applied on this unit under test.

In its basic version here, the PartIdDataType contains only a TrimmedString. It has been encapsulated in a structure for the purpose of easy sub-typing if more sophisticated identification is required, e.g. including a batch or carrier Id.

A basic PartIdDataType structure is considered empty when the id member has length 0. For sub-types of PartIdDataType this can be defined differently.

Table 142 – Definition of PartIdDataType
Name Type Description O / M
PartIdDataTypestructure
id TrimmedString Describes the connection between a unit under test and a result, which was created during the processing of a recipe applied on this unit under test. Usually passed by the client with a Start method call and not changed by the server.Mandatory
descriptionLocalizedTextOptional short human readable description of the part.Optional

12.7 JobIdDataType

This structure is used to pass an identification of the measurement to be carried out following a Start method call. It is typically included in the meta data for identifying a result.

In its basic version here, the JobIdDataType contains only a TrimmedString. It has been encapsulated in a structure for the purpose of easy sub-typing if more sophisticated identification is required.

A basic JobIdDataType structure is considered empty when the id member has length 0. For sub-types of JobIdDataType additional rules may apply, i.e. they shall always be considered empty, when the Id member has length 0, and may also be considered empty when other structure members fulfill particular conditions.

Table 143 – Definition of JobIdDataType
Name Type Description O / M
JobIdDataTypestructure
id TrimmedString Id is a system-wide unique identifier/name for identifying the job carried out. Mandatory

12.8 BinaryIdBaseDataType

This abstract DataType is the base data type for identifying binary data internally and externally. Its subtypes are used in objects of RecipeType which is defined in Section 7.7., of ConfigurationDataType which is defined in Section 12.12 and also in results. It is formally defined in Table 144.

The main rationale for introducing a base type and several (identical) subtypes is to facilitate a type-safe enforcing of the distinction between external and internal Ids in method arguments.

Table 144 – Definition of BinaryIdBaseDataType
Name Type Description O / M
BinaryIdBaseDataTypestructure
Id TrimmedString Id is a system-wide unique name for identifying the binary data. Mandatory
Version TrimmedString Represents an optional version number of the identified binary data. It is recommended to be of the format Major.minor.patch.build or a subset thereof, but the actual format is implementation defined.Optional
hashByteString

Represents an optional hash of the binary content of the actual data (as it would be transmitted by the transfer methods).

The hash is supposed to be provided by the environment if existing. The environment shall use the same hash function on all binary data so that a difference in the hash indicates a difference in the binary data. It is recommended to use the SHA-256 algorithm for computing the hash, however, the actual algorithm is implementation-defined.

Optional
hashAlgorithmStringName of the hash function used. Required if internally and externally computed hashes are to be comparedOptional
descriptionLocalizedTextOptional short human readable description of the configurationOptional

12.9 RecipeIdExternalDataType

This structure is used for the external identification of recipes. It is identical to BinaryIdBaseDataType described in Section 12.8 except that it is not abstract.

12.10 RecipeIdInternalDataType

This structure is used for the internal identification of recipes. It is identical to BinaryIdBaseDataType described in Section 12.8 except that it is not abstract.

12.11 RecipeTransferOptions

This structure contains elements to control the transfer of the actual content of a vision system recipe by TemporaryFileTransfer using the GenerateFileForRead and GenerateFileForWrite methods of the RecipeTransferType ObjectType defined in Section 7.6. The structure is formally defined in Table 145Table 147.

Table 145 – RecipeTransferOptions structure
Name Type Description O / M
RecipeTransferOptionsstructure
internalId RecipeIdInternalDataType The InternalId of the recipe to be transferred to or from the client.Mandatory

If RecipeTransferOptions are used in connection with AddRecipe method, the InternalId returned by AddRecipe is to be used for generating the transfer file to have an unambiguous identification.

12.12 ConfigurationDataType

This structure is used to manage one external configuration. It has no knowledge of the internal structure of an external configuration. The actual configuration used by the machine vision system is a system-specific structure, which may be transferred using a TemporaryFileTransfer.

Table 146 – Definition of ConfigurationDataType
Name Type Description O / M
ConfigurationDataTypestructure
hasTransferableDataOnFileBooleanIndicates that actual content of the configuration may be transferred through temporary file transfer method. Optional
externalId ConfigurationIdDataType Identification of the configuration used by the environment. This argument must not be empty.Optional
internalId ConfigurationIdDataType System-wide unique ID for identifying a configuration. This ID is assigned by the vision system.Mandatory
lastModifiedUtcTimeThe time and date when this configuration was last modified.Mandatory

12.13 ConfigurationIdDataType

This structure is used for the identification of an object of ConfigurationDataType which is defined in Section 12.12. It is identical to BinaryIdBaseDataType described in Section 12.8 except that it is not abstract.

12.14 ConfigurationTransferOptions

This structure contains elements to control the transfer of the actual content of a vision system configuration by TemporaryFileTransfer using the GenerateFileForRead and GenerateFileForWrite methods of the ConfigurationTransferType ObjectType defined in Section 7.4. The structure is formally defined in Table 147.

Table 147 – Definition of ConfigurationTransferOptions
Name Type Description O / M
ConfigurationTransferOptionsstructure
internalId ConfigurationIdDataType The Id of the configuration to be transferred to or from the client.Mandatory

12.15 ProductDataType

This structure is used to reference one product known to the vision system. It has no knowledge of the actual manner of managing a product in the vision system, it merely signals that the vision system has knowledge of said product.

Table 148 – Definition of ProductDataType
Name Type Description O / M
ProductDataTypeStructure
externalId ProductIdDataType Identification of the product used by the environment. This argument must not be empty.Mandatory

12.16 ProductIdDataType

This structure is used for identifying an object of ProductDataType.

In its basic version here, the ProductIdDataType contains only a TrimmedString. It has been encapsulated in a structure for the purpose of easy sub-typing if more sophisticated identification is required.

A basic ProductIdDataType structure is considered empty when the id member has length 0. For sub-types of ProductIdDataType additional rules may apply. , i.e., they shall always be considered empty, when the Id member has length 0, and may also be considered empty when other structure members fulfill particular conditions.

Table 149 – Definition of ProductIdDataType
Name Type Description O / M
ProductIdDataTypestructure
id TrimmedString Id is a system-wide unique identifier/name for identifying the product. Mandatory
descriptionLocalizedTextOptional short human readable description of the configurationOptional

12.17 ResultDataType

This structure contains properties that were created during the execution of a recipe. The Id is required to retrieve a result using the method GetResultById, which is defined in Section 7.10.2.1. A result may be a total or a partial result, which is defined by the value of the property IsPartial. The structure of the ResultContent which is generated by the vision system is application-specific and not defined at this time.

Note that this DataType contains nested structures, namely the Id types. If these are subtyped, the entire structure needs to be sub-typed also so that the client can recognize that fact.

Table 150 – Definition of ResultDataType
Name Type Description O / M
ResultDataTypeStructure
resultId ResultIdDataType System-wide unique identifier, which is assigned by the system. This ID can be used for fetching exactly this result using the methods detailed in Section 7.10.2 and it is identical to the ResultId of the ResultReadyEventType defined in Section8.3.8.4.Mandatory
hasTransferableDataOnFileBooleanIndicates that additional data for this result can be retrieved by temporary file transferOptional
isPartialBooleanIndicates whether the result is the partial result of a total result. Mandatory
isSimulatedBooleanIndicates whether the system was in simulation mode when the result was created. Optional
resultState ResultStateDataType ResultState provides information about the current state of a result and the ResultStateDataType is defined in Section 12.18.Mandatory
measId MeasIdDataType This identifier is given by the client when starting asingle 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 jobwhich the result belongs to, this makes for easier filtering on the part of the client without keeping track of JobIds.Optional
partId PartIdDataType 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.Optional
externalRecipeId RecipeIdExternalDataType External Id of the recipe in use which produced the result. The ExternalID is only managed by the environment.Optional
internalRecipeId RecipeIdInternalDataType Internal Id of the recipe in use which produced the result. This ID is system-wide unique and it is assigned by the vision system.Mandatory
productId ProductIdDataType productId which was used to trigger the job which created the result.Optional
externalConfigurationId ConfigurationIdDataType External Id of the configuration in use while the result was produced.Optional
internalConfigurationId ConfigurationIdDataType Internal Id of the configuration in use while the result was produced. This ID is system-wide unique and it is assigned by the vision system.Mandatory
jobId JobIdDataType The ID of the job, created by the transition from state Ready to state SingleExecution or to state ContinuousExecution which produced the result.Mandatory
creationTimeUtcTimeCreationTime indicates the time when the result was created. Mandatory
processingTimes ProcessingTimesDataType Collection of different processing times that were needed to create the result. Optional
resultContentBaseDataType[]Abstract data type to be subtyped from to hold result data created by the selected recipe. Optional

12.18 ResultIdDataType

This structure is used to pass an identification of a result generated by an operation of the vision system.

In its basic version here, the ResultIdDataType contains only a TrimmedString. It has been encapsulated in a structure for the purpose of easy sub-typing if more sophisticated identification is required.

A basic ResultIdDataType structure is considered empty when the id member has length 0. For sub-types of ResultIdDataType additional rules may apply, i.e. they shall always be considered empty, when the Id member has length 0, and may also be considered empty when other structure members fulfil particular conditions.

Table 151 – Definition of ResultIdDataType
Name Type Description O / M
ResultIdDataTypestructure
Id TrimmedString Id is a system-wide unique identifier/name for identifying the generated result. Mandatory

12.19 ResultStateDataType

This subtype of Int32 provides information about the current state of a result. This status can change during recipe processing.

It is deliberately not an Enumeration, allowing for system-specific extensions.

Table 152 – Definition of ResultStateDataType
Attribute Value
BrowseNameResultStateDataType
IsAbstractFalse
References Node
Class
BrowseName DataType TypeDefinition Modelling
Rule
Subtype of the Int32 DataType defined in OPC 10000-5
Table 153 – Values of ResultStateDataType
Allowed ValueDescription
< 0Application-specific states
0Undefined: Initialization value. When returned by access methods of ResultManagementType it indicates an error.
1Completed: Processing was carried out correctly.
2Processing: Processing has not been finished yet.
3Aborted: Processing was stopped at some point before completion.
4Failed: Processing failed in some way.

12.20 ResultTransferOptions

This structure contains elements to control the transfer of the actual content of a vision system result by TemporaryFileTransfer using the GenerateFileForRead method of the ResultTransferType ObjectType defined in Section 7.12. The structure is formally defined in Table 154.

Table 154 – Definition of ResultTransferOptions
Name Type Description O / M
ResultTransferOptionsstructure
id ResultIdDataType The Id of the result to be transferred to the client.Mandatory

12.21 SystemStateDataType

This DataType is an enumeration that identifies the pre-defined SEMI E10 states as described in Section 11.6. Its values are defined in Table 155.

Table 155 – Values of SystemStateDataType
ValueDescription
PRD_1Production: The vision system is currently working on a job.
SBY_2Stand by: The vision system is ready to accept a command but is currently not executing a job. It could for example be waiting for a Start command or a user input.
ENG_3Engineering: The vision system is not working and not ready to accept a command because a user is currently working on the system. This could be for editing a recipe or changing the system configuration.
SDT_4Scheduled downtime: The vision system is not available for production and this was planned in advance. This could be for cleaning, maintenance or calibration works.
UDT_5Unscheduled downtime: The vision system is not available for production due to failure and repair. This covers all kinds of error states that might occur during operation.
NST_6Nonscheduled time: The vision system is not working because no production was scheduled. This also covers things like operator training on the system.

12.22 SystemStateDescriptionDataType

This structure is used to describe the system state as explained in Section 11.6.

Table 156 – Definition of SystemStateDescriptionDataType
Name Type Description O / M
SystemStateDescriptionDataTypeStructure
state SystemStateDataType Denotes one of the basic SEMI E10 statesMandatory
stateDescription TrimmedString Optional string describing the full state path, starting with the SEMI E10 state denoted by the state member; the string format is described in Section 11.6.Optional