IWorksController interface : Query method

Query method
Overview
This section covers the Query method. Queries, and their responses, are divided into the following categories. See “Query element” for a more complete list that includes descriptions.
Description
The plugin calls the Query method to do one or both of the following:
Request information from another plugin, using VWorks software as the intermediary
The plugin and VWorks software can use the IWorksController Query method in conjunction with the IWorksDriver ControllerQuery method to provide a means for two plugins to communicate with each other. See “Interplugin communication” for more information.
Syntax
 
HRESULT Query(
[in] IControllerClient *Source,
[in] BSTR Query,
[out,retval] BSTR *QueryResult
);
Parameters
 
In this parameter, the plugin passes the query directly to VWorks software, or to the destination plugin through VWorks software.
In this parameter, VWorks software returns its response to the plugin, or VWorks software returns the query response from the destination plugin to the source plugin.
Query XML block
The Query XML block contains the Query element and all its children. This XML block is the request from the source plugin for VWorks software, or for the destination plugin sent through VWorks software.
Velocity11 element
For all Query XML blocks, the value of the file attribute for the Velocity11 element is Query. See “Velocity11 element” .
Query element
The Query element specifies the type of information that is requested, and for interplugin queries, the names of the source and destination plugins. This element has the following attributes:
 
Gets the name and version of VWorks software that is currently running.
Gets information from a destination plugin, using VWorks software as the intermediary.
Gets the name of the configured labware at the specified location. If the location is a stack location, gets the allowable stack height.
Determines whether a barcode scanner should be used to scan the barcode on the specified side of the labware at the specified location.
Gets the coordinates of the specified teachpoint for the specified robot from the destination plugin.
Note: The source plugin can also get this information using the InterPlugin query.
The name of the plugin that sends the query. This value is automatically added to the query by VWorks software, but is not used.
For InterPlugin queries, the name of the plugin that should receive the query. The developer of the plugin must specify this attribute.
For queries that are directed to VWorks software, this attribute is optional and has no default value.
Child elements
The Query element’s children are defined in the “query” sections for each value of the Category attribute.
Response XML block
The Response XML block contains the Response element and all its children. This XML block is the query response that is returned to the source plugin from VWorks software, or from the destination plugin through VWorks software.
Velocity11 element
For all Response XML blocks, the value of the file attribute for the Velocity11 element is QueryResponse. See “Velocity11 element” .
Response element
The Response element specifies the type of information that is returned and, for interplugin query responses, the names of the source and destination plugins. This element has the following attributes:
 
Each value of this Category attribute matches the Category value specified in the query.
The name of the plugin that should receive the response, which is the plugin that sent the query.
Child elements
The Response element’s children are defined in the “query response” sections for each value of the Category attribute.
Query/response types
This section describes the query/response types for each value of the Query and Response elements’ Category attribute:
AllDeviceInfo query/response
AllDeviceInfo query
The AllDeviceInfo query requests all the device names and device types in the device file as follows:
If a protocol is specified, the plugin is requesting the device names and device types in the device file associated with the specified protocol.
If no protocol is specified, the plugin is requesting the device names and device types in the first device file currently open in VWorks software.
XML structure
 
<Query Category='AllDeviceInfo'>
<Parameters>
<Parameter Name='ProtocolName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value ProtocolName.
If the protocol has been saved, the value of this attribute is the protocol’s file path. If the protocol has not been saved, the value is the default protocol name.
Example of an AllDeviceInfo query (ProtocolName is specified)
The following sample code is an AllDeviceInfo query that requests all the device names and device types in the device file that is associated with the protocol named Protocol File  1 (the default protocol name).
 
<Query Category='AllDeviceInfo' >
<Parameters >
<Parameter Name='ProtocolName' Scriptable='1' Style='0' Type='1'
Value='Protocol File - 1' />
</Parameters>
</Query>
Example of an AllDeviceInfo query (ProtocolName is not specified)
The following sample code is an AllDeviceInfo query that requests the device names and device types in the first device file currently open in VWorks software.
 
<Query Category='AllDeviceInfo' />
AllDeviceInfo query response
The AllDeviceInfo query response returns the device names and device types in the device file as follows:
If a protocol was specified in the query, VWorks software returns the device names and device types in the device file associated with the specified protocol.
If no protocol was specified, VWorks software returns the device names and device types in the first device file currently open in VWorks software.
XML structure
 
<Response Category='AllDeviceInfo' ... >
<Parameters>
<Parameter Name='AllDeviceInfo' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value AllDeviceInfo.
DeviceLocationTeachpoints XML block
The DeviceLocationTeachpoints XML block contains the DeviceLocationTeachpoints parent element and all its children. This XML block contains all device names and device types in the device file.
For the DeviceLocationTeachpoints XML block that is returned in the AllDeviceInfo query response, only the DeviceName and DeviceType attributes of the DeviceLocationTeachpoint element are specified. The LocationName, RobotName, and TeachpointName attributes are not specified.
XML structure
The value of the file attribute for the Velocity11 element is MetaData. See “Velocity11 element” .
 
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoint />
...
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
DeviceLocationTeachpoints element (parent)
The DeviceLocationTeachpoints parent element has one DeviceLocationTeachpoints child element.
DeviceLocationTeachpoints element (child)
The DeviceLocationTeachpoints child element contains one or more DeviceLocationTeachpoint elements.
DeviceLocationTeachpoint element
Each DeviceLocationTeachpoint element contains the name and type of a device in the device file. This element has the following attributes:
 
Example of an AllDeviceInfo query response
The following sample code is an AllDeviceInfo query response. If a protocol was specified in the query, the escaped DeviceLocationTeachpoints XML block contains the device names and device types in the device file associated with the protocol. If a protocol was not specified in the query, the escaped DeviceLocationTeachpoints XML block contains the device names and device types in the first device file currently open in VWorks software.
 
version='1.0' >
<Response Category='AllDeviceInfo' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='AllDeviceInfo' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;MetaData&apos;
md5sum=&apos;281f97ac84c697cf58d44c4d4a723622&apos; version=&apos;1.0&apos; &gt;
&lt;DeviceLocationTeachpoints &gt; &lt;DeviceLocationTeachpoints &gt;
&lt;DeviceLocationTeachpoint DeviceName=&apos;Phantom Robot - 1&apos;
DeviceType=&apos;Phantom Robot&apos; /&gt; &lt;DeviceLocationTeachpoint
DeviceName=&apos;PlatePad - 1&apos; DeviceType=&apos;PlatePad&apos; /&gt;
&lt;DeviceLocationTeachpoint DeviceName=&apos;WasteBin - 1&apos;
DeviceType=&apos;WasteBin&apos; /&gt; &lt;/DeviceLocationTeachpoints&gt;
&lt;/DeviceLocationTeachpoints&gt; &lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped DeviceLocationTeachpoints XML block
The following code is the un-escaped DeviceLocationTeachpoints XML block from the preceding AllDeviceInfo query response example.
 
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoint DeviceName='Phantom Robot - 1'
DeviceType='Phantom Robot' />
<DeviceLocationTeachpoint DeviceName='PlatePad - 1' DeviceType='PlatePad' />
<DeviceLocationTeachpoint DeviceName='WasteBin - 1' DeviceType='WasteBin' />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
Barcode query/response
Barcode query
The Barcode query requests all barcodes on the labware at the specified location on the device.
XML structure
 
<Query Category='Barcode'>
<Parameters>
<Parameter Name='Location' ... />
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value Location.
Example of a Barcode query
The following sample code is a Barcode query that requests all barcodes on the labware at the location named Stage 1.
 
<Query Category='Barcode'>
<Parameters >
<Parameter Name='Location' Scriptable='1' Style='0' Type='1'
Value='Stage 1' />
</Parameters>
</Query>
Barcode query response
The Barcode query response returns the barcodes on the labware at the location specified in the query.
XML structure
 
<Response Category='Barcode' ...>
<Parameters>
<Parameter Category='Barcode' ... />
...
</Parameters>
</Response>
Parameters element
The Parameters element contains one or more Parameter elements.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value Barcode.
0 = South
1 = West
2 = North
3 = East
Example of a Barcode query response
The following sample code is a Barcode query response that returns four barcodes, one for each side of the labware at the location specified in the query.
 
<Response Category='Barcode' Destination='IWorksController Test - 1' />
<Parameters >
<Parameter Category='Barcode' Name='0' Scriptable='1' Style='0' Type='1'
Value='barcode1' />
<Parameter Category='Barcode' Name='1' Scriptable='1' Style='0' Type='1'
Value='barcode2' />
<Parameter Category='Barcode' Name='2' Scriptable='1' Style='0' Type='1'
Value='barcode3' />
<Parameter Category='Barcode' Name='3' Scriptable='1' Style='0' Type='1'
Value='barcode4' />
</Parameters>
DeviceLocationTeachpoints query/response
DeviceLocationTeachpoints query
The DeviceLocationTeachpoints query requests all locations on all devices for which a robot has teachpoints. This query contains an empty DeviceLocationTeachpoints Query XML block.
Example of a DeviceLocationTeachpoints query
The following sample code is a DeviceLocationTeachpoints query.
 
<Query Category='DeviceLocationTeachpoints' />
DeviceLocationTeachpoints query response
The DeviceLocationTeachpoints query response returns all locations on all devices for which the robot has teachpoints.
If the DeviceLocationTeachpoints query is called on a non-robot device, an empty DeviceLocationTeachpoints XML block is returned as the value of the Parameter element’s Value attribute.
XML structure
 
<Response Category='DeviceLocationTeachpoints' ...>
<Parameters>
<Parameter Name='DeviceLocationTeachpoints' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value DeviceLocationTeachpoints.
DeviceLocationTeachpoints XML block
The DeviceLocationTeachpoints XML block contains the DeviceLocationTeachpoints parent element and all its children. This XML block returns the locations and devices for the specified robot.
XML structure
 
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoint />
...
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
DeviceLocationTeachpoints element (parent)
The DeviceLocationTeachpoints parent element has one DeviceLocationTeachpoints child element.
DeviceLocationTeachpoints element (child)
The DeviceLocationTeachpoints child element contains one or more DeviceLocationTeachpoint elements.
DeviceLocationTeachpoint element
The DeviceLocationTeachpoint element has the following attributes:
 
Example of a DeviceLocationTeachpoints query response (robot)
The following sample code is a DeviceLocationTeachpoints query response that contains an escaped DeviceLocationTeachpoints XML block. The response contains the location named Stage and the device named PlatePad  1 for which the robot named IWorksController Test  1 has teachpoints.
 
version='1.0'>
<Response Category='DeviceLocationTeachpoints'
Destination='IWorksController Test - 1'>
<Parameters>
<Parameter Name='DeviceLocationTeachpoints' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;MetaData&apos;
md5sum=&apos;a16eb3001ae9fcd2ff3fd34654eba2d5&apos; version=&apos;1.0&apos; &gt;
&lt;DeviceLocationTeachpoints &gt; &lt;DeviceLocationTeachpoints &gt;
&lt;DeviceLocationTeachpoint DeviceName=&apos;PlatePad - 1&apos;
DeviceType=&apos;PlatePad&apos; LocationName=&apos;Stage&apos;
RobotName=&apos;IWorksController Test - 1&apos; TeachpointName=&apos;Teachpoint
1&apos; /&gt; &lt;/DeviceLocationTeachpoints&gt; &lt;/DeviceLocationTeachpoints&gt;
&lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped DeviceLocationTeachpoints XML block
The following code is the un-escaped DeviceLocationTeachpoints XML block from the preceding DeviceLocationTeachpoints query response example.
 
version='1.0' >
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoint DeviceName='PlatePad - 1' DeviceType='PlatePad'
LocationName='Stage' RobotName='IWorksController Test - 1'
TeachpointName='Teachpoint 1' />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
Example of a DeviceLocationTeachpoints query response (non-robot device)
The following sample code is a DeviceLocationTeachpoints query response for a non-robot device. The response contains an empty DeviceLocationTeachpoints XML block.
 
version='1.0'>
<Response Category='DeviceLocationTeachpoints'
Destination='IWorksController Test - 1'>
<Parameters>
<Parameter Name='DeviceLocationTeachpoints' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;MetaData&apos;
md5sum=&apos;a16eb3001ae9fcd2ff3fd34654eba2d5&apos;
version=&apos;1.0&apos; &gt; &lt;DeviceLocationTeachpoints /&gt;
&lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped empty DeviceLocationTeachpoints XML block
The following code is the empty un-escaped DeviceLocationTeachpoints XML block from the preceding DeviceLocationTeachpoints query response example.
 
<DeviceLocationTeachpoints />
GetDeviceName query/response
GetDeviceName query
The user can specify a name for each instance of the plugin, but the plugin instance does not know what its device name is. The plugin calls the GetDeviceName query to get its device name in VWorks software. This query contains an empty GetDeviceName Query XML block.
Example of a GetDeviceName query
The following sample code is a GetDeviceName query.
 
<Query Category='GetDeviceName' />
GetDeviceName query response
The GetDeviceName query response returns the plugin’s device name.
XML structure
 
<Response Category='GetDeviceName' ...>
<Parameters>
<Parameter Name='DeviceName' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value DeviceName.
Example of a GetDeviceName query response
The following sample code is a GetDeviceName query response that returns the requested plugin device named IWorksController Test  1.
 
version='1.0' >
<Response Category='GetDeviceName' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='DeviceName' Scriptable='1' Style='0' Type='1'
Value='IWorksController Test - 1' />
</Parameters>
</Response>
GetIOManagerPointInput query/response
GetIOManagerPointInput query
The GetIOManagerPointInput query requests the value of a digital input channel, which is specified in the IO Manager.
XML structure
 
<Query Category='GetIOManagerPointInput'>
<Parameters>
<Parameter Name='PointName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value PointName.
Example of a GetIOManagerPointInput query
The following sample code is a GetIOManagerPointInput query that requests the value of the digital input channel named P1.
 
<Query Category='GetIOManagerPointInput' >
<Parameters >
<Parameter Name='PointName' Scriptable='1' Style='0' Type='1' Value='P1' />
</Parameters>
</Query>
GetIOManagerPointInput query response
The GetIOManagerPointInput query response returns the value of the digital input signal that was specified in the query.
XML structure
 
<Response Category='GetIOManagerPointInput' ...>
<Parameters>
<Parameter Name='PointState' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value PointState.
Example of a GetIOManagerPointInput query response
The following sample code is a GetIOManagerPointInput query response that returns the value 0 for the digital input signal that was specified in the query.
 
version='1.0' >
<Response Category='GetIOManagerPointInput'
Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='PointState' Scriptable='1' Style='0' Type='8' Value='0' />
</Parameters>
</Response>
GetJavascriptVariable query/response
GetJavascriptVariable query
The GetJavascriptVariable query requests the value of the specified JavaScript variable in the specified protocol. The plugin can use this value, for example, to calculate the value of the internal variables for a device.
XML structure
 
<Query Category='GetJavascriptVariable'>
<Parameters>
<Parameter Name='VariableName' ... />
<Parameter Name='ProtocolName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains two Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
The value VariableName.
The value ProtocolName.
If the protocol has been saved, the value of this attribute is the protocol’s file path. If the protocol has not been saved, the value is the default protocol name.
Example of a GetJavascriptVariable query
The following sample code is a GetJavascriptVariable query that requests the value of JavaScript variable a, which is contained in the protocol named Protocol File  1.
 
<Query Category='GetJavascriptVariable' >
<Parameters >
<Parameter Name='VariableName' Scriptable='1' Style='0' Type='1' Value='a' />
<Parameter Name='ProtocolName' Scriptable='1' Style='0' Type='1'
Value='Protocol File - 1' />
</Parameters>
</Query>
GetJavascriptVariable query response
The GetJavascriptVariable query response returns the value of the specified JavaScript variable contained in the protocol that is specified in the query.
XML structure
 
<Response Category='GetJavascriptVariable' ...>
<Parameters>
<Parameter Name='VariableValue' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains on Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value VariableValue.
JSObject XML block
The JSObject XML block contains the JSObject element and all its children. This XML block provides the serialization of the JavaScript variable.
XML structure
The value of the file attribute for the Velocity11 element is JSSerialize. See “Velocity11 element” .
 
<JSObject />
JSObject element (parent)
The JSObject element can contain one or more JSObject child elements or one or more JSProperty elements. The element can have one of the following pairs of Type and Value attributes:
 
The value Nothing.
Not used for this Type attribute.
Not used for this Type attribute. The JSObject child elements contain the array values as shown in the following XML structure:
Not used for this Type attribute. The JSObject child elements contain the hash values, as shown in the following XML structure:
The value String.
The value Double.
For JSObject XML blocks that contain arrays
JSObject element (child)
Each JSObject child element is an array item and has the following attributes:
 
The value String, Double, or Int.
All JSObject children (array items) contained in a JSObject parent element must be of the same type.
For JSObject XML blocks that contain a hash table
JSProperty element
The JSProperty element contains one JSObject child element and has the following attribute:
 
JSObject element (child)
The JSObject child element has the following attributes:
 
The value String, Double, or Int.
Example of a GetJavascriptVariable query response
The following sample code is a GetJavascriptVariable query response that contains an escaped JSSerialize XML block. This XML block contains the value 1 for the JavaScript variable in the protocol that was specified in the query.
 
version='1.0'>
<Response Category='GetJavascriptVariable'
Destination='IWorksController Test - 1'>
<Parameters>
<Parameter Name='VariableValue' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;JSSerialize&apos;
md5sum=&apos;620957083f71145b8c66848ae28c28be&apos; version=&apos;1.0&apos; &gt;
&lt;JSObject Type=&apos;Int&apos; Value=&apos;1&apos; /&gt; &lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped JSObject XML block (integer value)
The following code is the un-escaped JSObject XML block from the previous GetJavascriptVariable query response example.
 
version='1.0' >
<JSObject Type='Int' Value='1' />
Example of a JSObject XML block for an array
The following sample code is a JavaScript array that holds two values: 94 and 73.
 
version='1.0' >
<JSObject Type='Array'>
<JSObject Type='Int' Value='94' />
<JSObject Type='Int' Value='73' />
</JSObject>
Example of a JSObject XML block for a hash table
The following sample code is a JavaScript hash table that holds two key–value pairs.
 
version='1.0' >
<JSObject Type='Hash'>
<JSProperty Name='John Smith'>
<JSObject Type='String' Value='555-1212'>
</JSProperty>
<JSProperty Name='Jane Smith'>
<JSObject Type='String' Value='555-1234'>
</JSProperty>
</JSObject>
GetProductInfo query/response
GetProductInfo query
The GetProductInfo query requests the name and version of VWorks software that is currently running. This query contains an empty GetProductInfo Query XML block.
Example of a GetProductInfo query
The following sample code is a GetProductInfo query.
 
<Query Category='GetProductInfo' />
GetProductInfo query response
The GetProductInfo query response returns the name and version of VWorks software that is currently running.
XML structure
 
<Response Category='GetProductInfo' ...>
<Parameters>
<Parameter Name='ApplicationName' ... />
<Parameter Name='ApplicationVersion' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains two Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
The value ApplicationName.
The value ApplicationVersion.
The version of VWorks software that is currently running.
Example of a GetProductInfo query response
The following sample code is a GetProductInfo query response that returns the version of VWorks software that is currently running, which is 4.0.0.
 
version='1.0' >
<Response Category='GetProductInfo' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='ApplicationName' Scriptable='1' Style='0' Type='1'
Value='VWorks' />
<Parameter Name='ApplicationVersion' Scriptable='1' Style='0' Type='1'
Value='4.0.0' />
</Parameters>
</Response>
GetRunSetStatus query/response
GetRunSetStatus query
The GetRunSetStatus query requests information about all protocol runs that are listed in the Runset Manager. This query contains an empty GetRunSetStatus Query XML block. The plugin can use the information, for example, to determine when to add another protocol to the runset.
Example of a GetRunSetStatus query
The following sample code is a GetRunSetStatus query.
 
<Query Category='GetRunSetStatus' />
GetRunSetStatus query response
The GetRunSetStatus query response returns information about all protocol runs that are listed in the Runset Manager.
XML structure
 
<Response Category='GetRunSetStatus' ...>
<Parameters >
<Parameter Name='RunsetXML' ... />
<Parameter Name='Error' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains two Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
The value RunsetXML.
A text string describing the error that occurred when the plugin received the requested information. If no error occurred, this attribute is not specified.
Runsets XML block
The Runsets XML block contains the Runsets element and all its children. This XML block contains information for all protocol runs that are listed in the Runset Manager.
XML structure
 
<Runsets>
<Runset>
<Parameters >
<Parameter Name='Protocol Name' ... />
<Parameter Name='Runs' ... />
<Parameter Name='Protocol Notes' ... />
<Parameter Name='Priority' ... />
<Parameter Name='ID' ... />
<Parameter Name='Start_Year' ... />
<Parameter Name='Start_Month' ... />
<Parameter Name='Start_Day' ... />
<Parameter Name='Start_Hour' ... />
<Parameter Name='Start_Minute' ... />
<Parameter Name='Start_Second' ... />
<Parameter Name='State' ... />
<Parameter Name='Depend ID' ... />
<Parameter Name='Depend_Day' ... />
<Parameter Name='Depend_Hour' ... />
<Parameter Name='Depend_Minute' ... />
<Parameter Name='Depend_Second' ... />
</Parameters>
</Runset>
...
</Runsets>
Runsets element
The Runsets element contains one or more Runset elements.
Runset element
The Runset element contains one Parameters element and has the following attribute:
 
Parameters element
The Parameters element contains 17 Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes:
 
The value ProtocolName.
If the protocol has been saved, the value of this attribute is the protocol’s file path. If the protocol has not been saved, the value is the default protocol name.
The value ProtocolNotes.
The value Priority.
The value Start_Year.
The value Start_Month.
The value Start_Day.
The value Start_Hour.
The value Start_Minute.
The value Start_Second.
0 = Run as soon as possible
1 = Run at a fixed time
2 = Depend on another protocol to start
3 = Depend on another protocol to finish
4 = Dependency is broken
The value Depend ID.
The value of this attribute can be greater than 0 when the value of the State attribute is 2 or 3; otherwise, the value is 0.
The value Depend_Day.
The value of this attribute can be greater than 0 when the value of the State attribute is 2 or 3; otherwise, the value is 0.
The value Depend_Hour.
The value of this attribute can be greater than 0 when the value of the State attribute is 2 or 3; otherwise, the value is 0.
The value Depend_Minute.
The value of this attribute can be greater than 0 when the value of the State attribute is 2 or 3; otherwise, the value is 0.
The value Depend_Second.
The value of this attribute can be greater than 0 when the value of the State attribute is 2 or 3; otherwise, the value is 0.
Example of a GetRunSetStatus query response
The following sample code is a GetRunSetStatus query response that contains an escaped Runsets XML block. This XML block returns information that is listed in the Runset Manager for two protocol runs.
 
<Response Category='GetRunSetStatus' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='RunsetXML' Scriptable='1' Style='0' Type='1' Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt; &lt;Velocity11
file=&apos;Runset_Data&apos; md5sum=&apos;1d3e31c99c747ac48b15c06c275ec75d&apos;
version=&apos;1.0&apos; &gt; &lt;Runsets &gt; &lt;Runset Name=&apos;&apos; &gt;
&lt;Parameters &gt; &lt;Parameter Name=&apos;Protocol Name&apos;
Value=&apos;C:\VWorks Workspace\Protocol files\Protocol File - 1.pro&apos; /&gt;
&lt;Parameter Name=&apos;Runs&apos; Value=&apos;2&apos; /&gt; &lt;Parameter
Name=&apos;Protocol Notes&apos; Value=&apos;&apos; /&gt; &lt;Parameter
Name=&apos;Priority&apos; Value=&apos;1&apos; /&gt; &lt;Parameter
Name=&apos;ID&apos; Value=&apos;1&apos; /&gt; &lt;Parameter
Name=&apos;Start_Year&apos; Value=&apos;2010&apos; /&gt; &lt;Parameter
Name=&apos;Start_Month&apos; Value=&apos;7&apos; /&gt; &lt;Parameter
Name=&apos;Start_Day&apos; Value=&apos;1&apos; /&gt; &lt;Parameter
Name=&apos;Start_Hour&apos; Value=&apos;16&apos; /&gt; &lt;Parameter
Name=&apos;Start_Minute&apos; Value=&apos;40&apos; /&gt; &lt;Parameter
Name=&apos;Start_Second&apos; Value=&apos;39&apos; /&gt; &lt;Parameter
Name=&apos;State&apos; Value=&apos;1&apos; /&gt; &lt;Parameter Name=&apos;Depend
ID&apos; Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Day&apos;
Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Hour&apos;
Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Minute&apos;
Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Second&apos;
Value=&apos;0&apos; /&gt; &lt;/Parameters&gt; &lt;/Runset&gt; &lt;Runset
Name=&apos;&apos; &gt; &lt;Parameters &gt; &lt;Parameter Name=&apos;Protocol Name&apos; Value=&apos;C:\VWorks Workspace\Protocol files\Protocol File -
2.pro&apos; /&gt; &lt;Parameter Name=&apos;Runs&apos; Value=&apos;10&apos; /&gt;
&lt;Parameter Name=&apos;Protocol Notes&apos; Value=&apos;&apos; /&gt;
&lt;Parameter Name=&apos;Priority&apos; Value=&apos;2&apos; /&gt; &lt;Parameter
Name=&apos;ID&apos; Value=&apos;2&apos; /&gt; &lt;Parameter
Name=&apos;Start_Year&apos; Value=&apos;2010&apos; /&gt; &lt;Parameter
Name=&apos;Start_Month&apos; Value=&apos;7&apos; /&gt; &lt;Parameter
Name=&apos;Start_Day&apos; Value=&apos;2&apos; /&gt; &lt;Parameter
Name=&apos;Start_Hour&apos; Value=&apos;16&apos; /&gt; &lt;Parameter
Name=&apos;Start_Minute&apos; Value=&apos;29&apos; /&gt; &lt;Parameter
Name=&apos;Start_Second&apos; Value=&apos;2&apos; /&gt; &lt;Parameter
Name=&apos;State&apos; Value=&apos;1&apos; /&gt; &lt;Parameter Name=&apos;Depend
ID&apos; Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Day&apos;
Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Hour&apos;
Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Minute&apos;
Value=&apos;0&apos; /&gt; &lt;Parameter Name=&apos;Depend_Second&apos;
Value=&apos;0&apos; /&gt; &lt;/Parameters&gt; &lt;/Runset&gt; &lt;/Runsets&gt;
&lt;/Velocity11&gt;' />
<Parameter Name='Error' Scriptable='1' Style='0' Type='1' />
</Parameters>
</Response>
Un-escaped Runsets XML block
The following sample code is the un-escaped Runsets XML block from the previous GetRunSetStatus query response example.
 
<Runsets >
<Runset Name='' >
<Parameters >
<Parameter Name='Protocol Name' Value='C:\VWorks Workspace\Protocol files\Protocol File - 1.pro' />
<Parameter Name='Runs' Value='2' />
<Parameter Name='Protocol Notes' Value='' />
<Parameter Name='Priority' Value='1' />
<Parameter Name='ID' Value='1' />
<Parameter Name='Start_Year' Value='2010' />
<Parameter Name='Start_Month' Value='7' />
<Parameter Name='Start_Day' Value='1' />
<Parameter Name='Start_Hour' Value='16' />
<Parameter Name='Start_Minute' Value='40' />
<Parameter Name='Start_Second' Value='39' />
<Parameter Name='State' Value='1' />
<Parameter Name='Depend ID' Value='0' />
<Parameter Name='Depend_Day' Value='0' />
<Parameter Name='Depend_Hour' Value='0' />
<Parameter Name='Depend_Minute' Value='0' />
<Parameter Name='Depend_Second' Value='0' />
</Parameters>
</Runset>
<Runset Name='' >
<Parameters >
<Parameter Name='Protocol Name'
Value='C:\VWorks Workspace\Protocol files\Protocol File - 2.pro' />
<Parameter Name='Runs' Value='10' />
<Parameter Name='Protocol Notes' Value='' />
<Parameter Name='Priority' Value='2' />
<Parameter Name='ID' Value='2' />
<Parameter Name='Start_Year' Value='2010' />
<Parameter Name='Start_Month' Value='7' />
<Parameter Name='Start_Day' Value='2' />
<Parameter Name='Start_Hour' Value='16' />
<Parameter Name='Start_Minute' Value='29' />
<Parameter Name='Start_Second' Value='2' />
<Parameter Name='State' Value='1' />
<Parameter Name='Depend ID' Value='0' />
<Parameter Name='Depend_Day' Value='0' />
<Parameter Name='Depend_Hour' Value='0' />
<Parameter Name='Depend_Minute' Value='0' />
<Parameter Name='Depend_Second' Value='0' />
</Parameters>
</Runset>
</Runsets>
InterPlugin query/response
InterPlugin query
The source plugin sends an InterPlugin query to request information from the destination plugin, using VWorks software as the intermediary. VWorks software returns the response from the destination plugin in the InterPlugin query response.
The developers of the two plugins must define their own mutually agreed-upon values for the following attributes:
The Name and Value attributes of the query Parameter element
The Name and Value attributes of the response Parameter elements in the Response XML block
XML structure
 
<Query Category='InterPlugin' ...>
<Parameters>
<Parameter />
</Parameters>
</Query>
Parameters element
The Parameters element has one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
Example of an InterPlugin query
The following sample code is an Interplugin query from the source plugin for the destination plugin named IWorksController Test  2 that requests the value of a.
 
<Query Category='InterPlugin' Destination='IWorksController Test - 2' >
<Parameters >
<Parameter Name='InterpluginParameter' Scriptable='1' Style='0' Type='1'
Value='a' />
</Parameters>
</Query>
InterPlugin query response
The destination plugin returns its response to VWorks software, and then VWorks software returns the response to the source plugin in the InterPlugin query response.
This section presents an example of how Parameter elements might be defined for an Interplugin query response.
XML structure
 
<Response Category='InterPlugin' ...>
<Parameters>
<Parameter Name='InnerResponse' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value InnerResponse.
Interplugin Response XML block
The escaped Interplugin Response XML block contains the destination plugin’s response to the query from the source plugin.
XML structure
 
<Response Category='InterPlugin' ...>
<Parameters>
<Parameter />
<Parameter />
</Parameters>
</Response>
Parameters element
The Parameters element contains two Parameter elements: one acknowledges receipt of the query and the other has the query response.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
Example of an InterPlugin query response
The following sample code is an Interplugin query response from the plugin named IWorksController Test  2 for the plugin named IWorksController Test  1. The response contains an escaped Interplugin Response XML block that returns the value of a, which is 2222222222.
 
version='1.0'>
<Response Category='InterPlugin' Destination='IWorksController Test - 1'
Source='IWorksController Test - 2'>
<Parameters>
<Parameter Name='InnerResponse' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;QueryResponse&apos;
md5sum=&apos;3b449c37c9e8fb774cf67147a540e0dd&apos; version=&apos;1.0&apos; &gt;
&lt;Response Category=&apos;InterPlugin&apos; Destination=&apos;IWorksController
Test - 1&apos; Source=&apos;IWorksController Test - 2&apos; &gt; &lt;Parameters &gt;
&lt;Parameter Name=&apos;InterPlugin Param&apos; Scriptable=&apos;1&apos;
Style=&apos;0&apos; Type=&apos;1&apos; Value=&apos;Receive a&apos; /&gt;
&lt;Parameter Name=&apos;Param #2&apos; Scriptable=&apos;1&apos;
Style=&apos;0&apos; Type=&apos;1&apos; Value=&apos;Value 2222222222&apos; /&gt;
&lt;/Parameters&gt; &lt;/Response&gt; &lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped Response XML block
The following sample code is the un-escaped Response XML block from the previous InterPlugin query response example.
 
version='1.0' >
<Response Category='InterPlugin' Destination='IWorksController Test - 1'
Source='IWorksController Test - 2' >
<Parameters >
<Parameter Name='InterPlugin Param' Scriptable='1' Style='0' Type='1'
Value='Receive a' />
<Parameter Name='Param #2' Scriptable='1' Style='0' Type='1'
Value='Value 2222222222' />
</Parameters>
</Response>
Labware query/response
Labware query
The Labware query requests the labware entry for the specified labware type. The plugin typically makes this request when the user selects a labware in the Task Parameters area or in a diagnostics dialog box.
XML structure
 
<Query Category='Labware'>
<Parameters>
<Parameter Name='Labware_Entry' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value Labware_Entry.
Example of a Labware query
The following sample code is a Labware query that requests the labware entry for the 1536 Greiner 782076 blk sqr well flt btm labware type.
 
<Query Category='Labware' >
<Parameters >
<Parameter Name='Labware_Entry' Scriptable='1' Style='0' Type='1'
Value='1536 Greiner 782076 blk sqr well flt btm' />
</Parameters>
</Query>
Labware query response
The Labware query response returns the labware entry for the labware specified in the query.
XML structure (truncated)
 
<Response Category='Labware' ...>
<Parameters>
<Parameter Name='Labware_Entry' ... />
<Parameter ... />
<Parameter Name='3RD_PARTY_TIP_CAPACITY' ... />
<Parameter Name='A12_NOTCH' Scriptable='1' ... />
...
<Parameter Name='Y_TEACHPOINT_TO_WELL' ... />
<Parameter Name='Y_WELL_TO_WELL' ... />
<Parameter Name='Z_TIP_ATTACH_OFFSET' ... />
</Parameters>
</Response>
Parameters element
The Parameters element has 62 Parameter elements: 60 are labware properties.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
The value Labware_Entry.
The Name attribute is not specified for this parameter.
This parameter is the (Default) value that is automatically generated when a Windows registry key is created.
One of the properties from the table in “Labware properties” . The Labware query response returns a Parameter element for each property on the list.
Labware properties
The following table lists the possible values for the Parameter element’s Name attribute, where the specified value is a labware property.
 
3RD_PARTY_TIP_CAPACITY
A12_NOTCH
A1_NOTCH
BASE_CLASS
BC_ERROR_CORRECTION_OFFSET
BC_GRIPPER_HOLDING_LIDDED_PLATE_POSITION
BC_GRIPPER_HOLDING_LID_POSITION
BC_GRIPPER_HOLDING_PLATE_POSITION
BC_GRIPPER_HOLDING_STACK_POSITION
BC_GRIPPER_OPEN_POSITION
BC_ROBOT_GRIPPER_OFFSET
BC_SENSOR_OFFSET
BC_STACKER_GRIPPER_OFFSET
BRAVO_ROBOT_GRIPPER_OFFSET
CAN_BE_MOUNTED
CAN_BE_SEALED
CAN_HAVE_LID
CAN_MOUNT
CHECK_PLATE_ORIENTATION
DESCRIPTION
DISPOSABLE_TIP_LENGTH
FILTER_TIP_PIN_TOOL_LENGTH
H12_NOTCH
H1_NOTCH
IMAGE_FILENAME
LIDDED_STACKING_THICKNESS
LIDDED_THICKNESS
LID_DEPARTURE_HEIGHT
LID_RESTING_HEIGHT
LOWER_PLATE_AT_VCODE
MANUFACTURER_PART_NUMBER
MOUNTED_LID_ROBOT_GRIPPER_OFFSET
NAME
NUMBER_OF_WELLS
PRESENTATION_OFFSET
ROBOT_GRIPPER_OFFSET
ROBOT_HANDLING_SPEED
SEALED_STACKING_THICKNESS
SEALED_THICKNESS
SENSOR_INTENSITY
SENSOR_OFFSET
SENSOR_THRESHOLD
SENSOR_THRESHOLD_MIN
SHIM_THICKNESS
STACKER_GRIPPER_OFFSET
STACKING_THICKNESS
THICKNESS
TIPBOX_SOURCE
TIP_CAPACITY
USE_VACUUM_CLAMP
WELL_BOTTOM_SHAPE
WELL_DEPTH
WELL_DIAMETER
WELL_GEOMETRY
WELL_TIP_VOLUME
X_TEACHPOINT_TO_WELL
X_WELL_TO_WELL
Y_TEACHPOINT_TO_WELL
Y_WELL_TO_WELL
Z_TIP_ATTACH_OFFSET
Labware properties in the Windows registry
A labware’s properties are listed in the Windows registry. The following figure shows the list of properties for the 1536 Greiner 782076 blk sqr well flt btm labware type.
Labware Editor property value types
The value type of the Parameter element’s Value element is determined by its format in the Labware Editor, as defined in the following table:
 
Boolean value, where 0 = unchecked and 1 = checked
Integer value of the radio button starting from 1 (top-to-bottom, left-to-right)
Example of a Labware query response (truncated)
The following sample code shows a truncated Labware query response that returns the labware entry for the 1536 Greiner 782076 blk sqr well flt btm labware type.
 
<Response Category='Labware' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='Labware_Entry' Scriptable='1' Style='0' Type='1'
Value='1536 Greiner 782076 blk sqr well flt btm' />
<Parameter Scriptable='1' Style='0' Type='1' Value='0' />
<Parameter Name='3RD_PARTY_TIP_CAPACITY' Scriptable='1' Style='0' Type='1'
Value='60' />
<Parameter Name='A12_NOTCH' Scriptable='1' Style='0' Type='1' Value='0' />
<Parameter Name='A1_NOTCH' Scriptable='1' Style='0' Type='1' Value='1' />
...
<Parameter Name='Y_TEACHPOINT_TO_WELL' Scriptable='1' Style='0' Type='1'
Value='3.37500' />
<Parameter Name='Y_WELL_TO_WELL' Scriptable='1' Style='0' Type='1'
Value='2.25000' />
<Parameter Name='Z_TIP_ATTACH_OFFSET' Scriptable='1' Style='0' Type='1'
Value='-1.00000' />
<Parameter Name='NAME' Scriptable='1' Style='0' Type='1'
Value='1536 Greiner 782076 blk sqr well flt btm' />
</Parameters>
</Response>
LocationInformation query/response
LocationInformation query
The LocationInformation query requests the name of the configured labware at the specified location on the device. The plugin can use this information, for example, to check for possible errors during protocol compilation.
If the specified location is a stack location, the allowable stack height is also returned in the query response. The plugin can use this information, for example, during protocol execution to determine whether a stack location is full.
XML structure
 
<Query Category='LocationInformation'>
<Parameters>
<Parameter Name='LocationName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value LocationName.
Example of a LocationInformation query
The following sample code is a LocationInformation query that requests the name of the configured labware at the location named Stage 1.
 
<Query Category='LocationInformation' >
<Parameters >
<Parameter Name='LocationName' Scriptable='1' Style='0' Type='1'
Value='Stage 1' />
</Parameters>
</Query>
LocationInformation query response
If configured labware is present at the location, the LocationInformation query response contains the name of the configured labware at the specified location.
If the specified location is a stack location, the query response also contains the allowable stack height.
XML structure
 
<Response Category='LocationInformation' ...>
<Parameters>
<Parameter Name='PlateStackHeight' ... />
<Parameter Name='Labware' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains two Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
The value PlateStackHeight.
This Name and Value pair is only specified for stack locations.
The value Labware.
Example of a LocationInformation query response (stack location)
The following LocationInformation query response returns the name of the static labware, 1536 Black Greiner, that is placed at the location specified in the query, along with the stack height of 460 (millimeters).
 
version='1.0' >
<Response Category='LocationInformation' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='PlateStackHeight' Scriptable='1' Style='0' Type='12'
Value='460' />
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'
Value='1536 Black Greiner' />
</Parameters>
</Response>
Example of a LocationInformation query response (not a stack location, configured labware present)
The following LocationInformation query response returns the type of the configured labware named 1536 Black Greiner that is placed at the location specified in the query.
 
<Response Category='LocationInformation' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'
Value='1536 Black Greiner' />
</Parameters>
</Response>
Example of a LocationInformation query response (not a stack location, no configured labware present)
The following LocationInformation query response returns a LocationInformation Response XML block. Because no configured labware is present, the Parameter element’s Value attribute is not specified.
 
<Response Category='LocationInformation' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'/>
</Parameters>
</Response>
LocationToTeachpoints query/response
LocationToTeachpoints query
The LocationToTeachpoints query requests the names of all the teachpoints that have been set at the specified location. The plugin can use this information, for example, to determine how many robots are able to access a certain location.
XML structure
 
<Query Category='LocationToTeachpoints'>
<Parameters>
<Parameter Name='LocationName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value LocationName.
Example of a LocationToTeachpoints query
The following sample code is a LocationToTeachpoints query that requests the names of all teachpoints that have been set at the location named Stage 1.
 
<Query Category='LocationToTeachpoints' >
<Parameters >
<Parameter Name='LocationName' Scriptable='1' Style='0' Type='1'
Value='Stage 1' />
</Parameters>
</Query>
LocationToTeachpoints query response
The LocationToTeachpoints query response contains the names of all teachpoints that have been set at the location specified in the query.
XML structure
 
<Response Category='LocationToTeachpoints' ...>
<Parameters>
<Parameter />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value DeviceLocationTeachpoints.
DeviceLocationTeachpoints XML block
The DeviceLocationTeachpoints XML block contains the DeviceLocationTeachpoints element and all its children. This XML block contains the names of all teachpoints that are set at a location.
XML structure
The value of the file attribute for the Velocity11 element is MetaData. See “Velocity11 element” .
 
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoint />
...
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
DeviceLocationTeachpoints element (parent)
The DeviceLocationTeachpoints parent element contains one DeviceLocationTeachpoints child element.
DeviceLocationTeachpoints element (child)
The DeviceLocationTeachpoints child element contains one or more DeviceLocationTeachpoint elements.
DeviceLocationTeachpoint element
The DeviceLocationTeachpoint element has the following attributes:
 
Example of a LocationToTeachpoints query response
The following sample code is a LocationToTeachpoints query response that returns an escaped DeviceLocationTeachpoints XML block. This XML block contains the names of the following teachpoints at the location named Stage 1: Teachpoint 1, Teachpoint 2, and Teachpoint 3.
 
version='1.0' >
<Response Category='LocationToTeachpoints'
Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='DeviceLocationTeachpoints' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;MetaData&apos;
md5sum=&apos;d2c8c47c4e820342ae53818cb5201de5&apos; version=&apos;1.0&apos; &gt;
&lt;DeviceLocationTeachpoints &gt; &lt;DeviceLocationTeachpoints &gt;
&lt;DeviceLocationTeachpoint DeviceName=&apos;IWorksController Test - 1&apos;
DeviceType=&apos;IWorksController Test&apos; LocationName=&apos;Stage 1&apos;
RobotName=&apos;3-Axis Robot - 1&apos; RobotType=&apos;IWorksController Test&apos;
TeachpointName=&apos;Teachpoint 1&apos; /&gt; &lt;DeviceLocationTeachpoint
DeviceName=&apos;IWorksController Test - 1&apos; DeviceType=&apos;IWorksController
Test&apos; LocationName=&apos;Stage 1&apos; RobotName=&apos;DDR - 1&apos;
RobotType=&apos;IWorksController Test&apos; TeachpointName=&apos;Teachpoint 2&apos;
/&gt; &lt;DeviceLocationTeachpoint DeviceName=&apos;IWorksController Test - 1&apos;
DeviceType=&apos;IWorksController Test&apos; LocationName=&apos;Stage 1&apos;
RobotName=&apos;Phantom Robot - 1&apos; RobotType=&apos;Phantom Robot&apos;
TeachpointName=&apos;Teachpoint 3&apos; /&gt;
&lt;/DeviceLocationTeachpoints&gt; &lt;/DeviceLocationTeachpoints&gt;
&lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped DeviceLocationTeachpoints XML block
The following code is the un-escaped DeviceLocationTeachpoint XML block from the LocationToTeachpoints query response example.
 
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoint DeviceName='Plate Sealer' DeviceType='PlateLoc'
LocationName='Stage 1' RobotName='3-Axis Robot - 1' RobotType='3-Axis Robot'
TeachpointName='Teachpoint 1' />
<DeviceLocationTeachpoint DeviceName='Plate Sealer' DeviceType='PlateLoc'
LocationName='Stage 1' RobotName='DDR - 1' RobotType='Direct Drive Robot'
TeachpointName='Teachpoint 2' />
<DeviceLocationTeachpoint DeviceName='Plate Sealer' DeviceType='PlateLoc'
LocationName='Stage 1' RobotName='Phantom Robot - 1' RobotType='Phantom Robot'
TeachpointName='Teachpoint 3' />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
PlateVolume query/response
PlateVolume query
The PlateVolume query requests the current volume of all the wells in the labware at the specified location.
XML structure
 
<Query Category='PlateVolume'>
<Parameters>
<Parameter Name='LocationInfo' />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value LocationInfo.
An escaped VolumeUpdates element.
VolumeUpdates element
The VolumeUpdates element contains the name of the specified location. This element has the following attributes:
 
VWorks software ignores this attribute, so it should be set to 0.
Example of a PlateVolume query
The following sample code is a PlateVolume query that returns an escaped VolumeUpdates XML element. This XML element contains the specified location.
 
<Query Category='PlateVolume'>
<Parameters>
<Parameter Name='LocationInfo' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;MetaData&apos;
md5sum=&apos;79b157293c2417174d4fbc6ca5cb98c3&apos; version=&apos;1.0&apos; &gt;
&lt;VolumeUpdates Location=&apos;Stage 1&apos; ResetAbsolute=&apos;0&apos; /&gt;
&lt;/Velocity11&gt;' />
</Parameters>
</Query>
Un-escaped VolumeUpdates XML block
The following code is the un-escaped VolumeUpdates element from the previous PlateVolume query example.
 
<VolumeUpdates Location='Stage 1' ResetAbsolute='0' />
PlateVolume query response
The PlateVolume query response contains the current volume of all the wells in the labware at the location specified in the query. The response also tells the plugin how to set the volume change.
XML structure
 
<Response Category='PlateVolume' ...>
<Parameters>
<Parameter Name='PlateVolume' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value PlateVolume.
An escaped VolumeUpdates XML block.
VolumeUpdates XML block
The VolumeUpdates XML block contains the VolumeUpdates element and all its children. This XML block provides the volume change for all the wells in the labware and tells the plugin how to set the volume change.
XML structure
 
<VolumeUpdates>
<VolumeUpdates>
<VolumeUpdate />
...
</VolumeUpdates>
</VolumeUpdates>
VolumeUpdates element (parent)
The VolumeUpdates parent element contains one VolumeUpdates child element. The parent element has the following attribute:
 
0 = Set the volume change to the current volume plus the volume change specified in the VolumeUpdate element
1 = Set the volume change to the volume specified in the VolumeUpdate element
VolumeUpdates element (child)
The VolumeUpdates child element contains one or more VolumeUpdate elements.
VolumeUpdate element
The VolumeUpdate element contains the coordinates of the well and the volume change. This element has the following attributes:
 
Example of a PlateVolume query response
The following sample code is a PlateVolume query response that returns an escaped VolumeUpdates XML block. This XML block contains the current volume of the six wells in the labware at the location specified in the query. The query response also tells the plugin to set the volume change to the current volume plus the volume change specified in the VolumeUpdate element.
 
<Response Category='PlateVolume' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='PlateVolume' Scriptable='1' Style='0' Type='1'
Value='&lt;?xml version=&apos;1.0&apos; encoding=&apos;ASCII&apos; ?&gt;
&lt;Velocity11 file=&apos;MetaData&apos; md5sum=&apos;485b3ebca3e27731dcb098a2727e6a9a&apos; version=&apos;1.0&apos; &gt;
&lt;VolumeUpdates ResetAbsolute=&apos;0&apos; &gt; &lt;VolumeUpdates &gt;
&lt;VolumeUpdate Col=&apos;0&apos; Row=&apos;0&apos; VolumeChange=&apos;10&apos;
/&gt; &lt;VolumeUpdate Col=&apos;1&apos; Row=&apos;0&apos;
VolumeChange=&apos;10&apos; /&gt; &lt;VolumeUpdate Col=&apos;2&apos;
Row=&apos;0&apos; VolumeChange=&apos;10&apos; /&gt; &lt;VolumeUpdate
Col=&apos;0&apos; Row=&apos;1&apos; VolumeChange=&apos;10&apos; /&gt;
&lt;VolumeUpdate Col=&apos;1&apos; Row=&apos;1&apos; VolumeChange=&apos;10&apos;
/&gt; &lt;VolumeUpdate Col=&apos;2&apos; Row=&apos;1&apos;
VolumeChange=&apos;10&apos; /&gt; &lt;/VolumeUpdates&gt; &lt;/VolumeUpdates&gt;
&lt;/Velocity11&gt;' />
</Parameters>
</Response>
Un-escaped VolumeUpdates XML block
The following code is the un-escaped VolumeUpdates XML block from the previous PlateVolume query response example.
 
<VolumeUpdates ResetAbsolute='0' >
<VolumeUpdates >
<VolumeUpdate Col='0' Row='0' VolumeChange='10' />
<VolumeUpdate Col='1' Row='0' VolumeChange='10' />
<VolumeUpdate Col='2' Row='0' VolumeChange='10' />
<VolumeUpdate Col='0' Row='1' VolumeChange='10' />
<VolumeUpdate Col='1' Row='1' VolumeChange='10' />
<VolumeUpdate Col='2' Row='1' VolumeChange='10' />
</VolumeUpdates>
</VolumeUpdates>
ScanBarcode query/response
ScanBarcode query
The plugin uses the ScanBarcode query to determine whether a barcode scanner should be used to scan the barcode on the specified side of the labware at the specified location.
XML structure
 
<Query Category='ScanBarcode'>
<Parameters>
<Parameter Name='Location' ... />
<Parameter Name='Side' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains two Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
Name-Value
The value Location.
0 = South
1 = West
2 = North
3 = East
Example of a ScanBarcode query
The following sample code is a ScanBarcode query that the plugin uses to determine whether a barcode scanner should be used to scan the barcode on the south side of the labware at the location named Stage 1.
 
<Query Category='ScanBarcode' >
<Parameters >
<Parameter Name='Location' Scriptable='1' Style='0' Type='1'
Value='Stage 1' />
<Parameter Name='Side' Scriptable='1' Style='0' Type='1' Value='0' />
</Parameters>
</Query>
ScanBarcode query response
The ScanBarcode query response indicates whether a barcode scanner should be used to scan the specified side of the barcode at the location specified in the query.
The response depends on the values of the Barcode information parameters as follows:
If the value of the Barcode or header <side> parameter is Barcode not in file, the barcode scanner can scan the barcode on that side of the labware at the specified location.
If the Barcode or header <side> parameter has a value other than Barcode not in file, such as No selection, the barcode scanner should not scan the barcode on that side of the labware at the specified location.
XML structure
 
<Response Category='ScanBarcode' ...>
<Parameters>
<Parameter Name='ShouldScan' ... />
</Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value ShouldScan.
no = A barcode scanner should not be used
yes = A barcode scanner should be used
Example of a ScanBarcode query response
The following sample code is a ScanBarcode query response. The response indicates that a barcode scanner should be used to scan the barcode on the specified side of the labware at the location specified in the query.
 
version='1.0' >
<Response Category='ScanBarcode' Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='ShouldScan' Scriptable='1' Style='0' Type='1' Value='yes' />
</Parameters>
</Response>
In the “Example of a ScanBarcode query” , the Barcode information parameters were set to the values in the following figure. Therefore, the value of the ShouldScan parameter in the query response is yes for the south side of the labware, as in this query response example. The Response element for any other side of the labware is empty.
Figure Barcode information parameters
 
SystemPlateInformation query/response
SystemPlateInformation query
The SystemPlateInformation query requests the labware type for the specified labware.
XML structure
 
<Query Category='SystemPlateInformation'>
<Parameters>
<Parameter Name='PlateName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value PlateName.
Example of a SystemPlateInformation query
The following sample code is a SystemPlateInformation query that requests the labware type for the labware named process  1.
 
<Query Category='SystemPlateInformation' >
<Parameters >
<Parameter Name='PlateName' Scriptable='1' Style='0' Type='1'
Value='process - 1' />
</Parameters>
</Query>
SystemPlateInformation query response
The SystemPlateInformation query response contains the labware type for the labware specified in the query.
XML structure
 
<Response Category='SystemPlateInformation' ...>
<Parameters>
<Parameter />
<Parameters>
</Response>
Parameters element
The Parameters element contains one Parameter element.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
The value Labware.
Example of a SystemPlateInformation query response
The following sample code is a SystemPlateInformation query response that returns the labware of type 1536 Greiner 782076 blk sqr well flt btm for the labware specified in the query.
 
version='1.0' >
<Response Category='SystemPlateInformation'
Destination='IWorksController Test - 1' >
<Parameters >
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'
Value='1536 Greiner 782076 blk sqr well flt btm' />
</Parameters>
</Response>
TeachpointInformation query/response
When the IWorksController Query method is used in conjunction with the IWorksDriver ControllerQuery method, the value of the Category attribute for the Query and Response elements is usually the same. (See “ControllerQuery method” .) However, the TeachpointInformation query/response uses different values for the Category attribute, as shown in the following table:
 
Interplugin communication for the TeachpointInformation query/response is done as follows:
1
To send a query to Plugin B, Plugin A calls the IWorksController Query method using the TeachpointInformation category, and passes the query to VWorks software in the input parameter. Then the plugin waits for a reply.
2
VWorks software forwards the query to Plugin B by calling the IWorksDriver ControllerQuery method using the TeachpointValue category, and passing the query in the input parameter.
3
Plugin B returns the query response to VWorks software in the output parameter of the IWorksDriver ControllerQuery method using the TeachpointValue category.
4
VWorks software forwards the query response to Plugin A in the output parameter of the IWorksController Query method using the TeachpointInformation category.
TeachpointInformation query
The TeachpointInformation query requests the coordinates of the specified teachpoint for the specified robot. The plugin might use this information, for example, to determine whether teachpoints were set correctly.
The developers of the two plugins must define their own mutually agreed-upon values for the following attributes:
The Name and Value attributes of the query Parameter element
The Name and Value attributes of the response Parameter elements in the Response XML block
In addition, the plugin can use the TeachpointInformation query to request the teachpoint coordinates from another plugin, using VWorks software as the intermediary.
Note: The plugin can also get this information using the InterPlugin query. See “InterPlugin query/response” .
XML structure (IWorksController Query method)
 
<Query Category='TeachpointInformation'>
<Parameters>
<Parameter Name='RobotName' ... />
<Parameter Name='TeachpointName' ... />
</Parameters>
</Query>
XML structure (IWorksDriver ControllerQuery method)
 
<Query Category='TeachpointValue'>
<Parameters>
<Parameter Name='RobotName' ... />
<Parameter Name='TeachpointName' ... />
</Parameters>
</Query>
Parameters element
The Parameters element contains two Parameter elements.
Parameter element
Each Parameter element has one of the following pairs of Name and Value attributes plus the Scriptable, Style, and Type attributes:
 
The value RobotName.
The value TeachpointName.
Example of a TeachpointInformation query (IWorksController Query method)
The following sample code is a TeachpointInformation query that requests the coordinates of the teachpoint named Teachpoint 1 for the robot named IWorksController Test  1. Note that the value of the Query element’s Category attribute is TeachpointInformation.
 
<Query Category='TeachpointInformation' >
<Parameters >
<Parameter Name='RobotName' Scriptable='1' Style='0' Type='1'
Value='IWorksController Test - 1' />
<Parameter Name='TeachpointName' Scriptable='1' Style='0' Type='1'
Value='Teachpoint 1' />
</Parameters>
</Query>
Example of a TeachpointInformation query (IWorksDriver ControllerQuery method)
The following sample code is a TeachpointInformation query that requests the coordinates of the teachpoint named Teachpoint 1 for the robot named IWorksController Test  1. Note that the value of the Query element’s Category attribute is TeachpointValue.
 
<Query Category='TeachpointValue' >
<Parameters >
<Parameter Name='RobotName' Scriptable='1' Style='0' Type='1'
Value='IWorksController Test - 1' />
<Parameter Name='TeachpointName' Scriptable='1' Style='0' Type='1'
Value='Teachpoint 1' />
</Parameters>
</Query>
TeachpointInformation query response
The destination plugin returns its response to VWorks software, and then VWorks software returns the response to the source plugin in the TeachpointInformation query response. This query response returns the coordinates of the specified teachpoint for the robot that is specified in the query.
The developers of the two plugins must define their own mutually agreed-upon values for any Parameter element’s Name and Value attributes. The developers must also define the number of Parameter elements that is needed to describe the teachpoint.
This section presents an example of how a TeachpointInformation query response might be returned from the destination plugin.
XML structure (IWorksController Query method)
 
<Response Category='TeachpointInformation' ...>
<Parameters>
<Parameter />
...
<Parameters>
</Response>
XML structure (IWorksDriver ControllerQuery method)
 
<Response Category='TeachpointValue' ...>
<Parameters>
<Parameter />
...
<Parameters>
</Response>
Parameters element
The Parameters element contains one or more Parameter elements.
Parameter element
The Parameter element has the following attributes plus the Scriptable, Style, and Type attributes:
 
Example of a TeachpointInformation query response (IWorksController Query method)
The following sample code is a TeachpointInformation query response that returns the four coordinates of the teachpoint for the robot named Robot  1. Note that the value of the Response element’s Category attribute is TeachpointInformation.
 
version='1.0' >
<Response Category='TeachpointInformation' Destination='Robot - 1' >
<Parameters >
<Parameter Name='Axis1' Scriptable='1' Style='0' Type='12' Value='1' />
<Parameter Name='Axis2' Scriptable='1' Style='0' Type='12' Value='2' />
<Parameter Name='Axis3' Scriptable='1' Style='0' Type='12' Value='3' />
<Parameter Name='Axis4' Scriptable='1' Style='0' Type='12' Value='4' />
</Parameters>
</Response>
Example of a TeachpointInformation query response (IWorksDriver ControllerQuery method)
The following sample code is a TeachpointInformation query response that returns the four coordinates of the teachpoint for the robot named Robot  1. Note that the value of the Response element’s Category attribute is TeachpointValue.
 
version='1.0' >
<Response Category='TeachpointValue' Destination='Robot - 1' >
<Parameters >
<Parameter Name='Axis1' Scriptable='1' Style='0' Type='12' Value='1' />
<Parameter Name='Axis2' Scriptable='1' Style='0' Type='12' Value='2' />
<Parameter Name='Axis3' Scriptable='1' Style='0' Type='12' Value='3' />
<Parameter Name='Axis4' Scriptable='1' Style='0' Type='12' Value='4' />
</Parameters>
</Response>
Related information