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.
The plugin calls the Query method to do one or both of the following:
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.
HRESULT Query( [in] IControllerClient *Source, [in] BSTR Query, [out,retval] BSTR *QueryResult );
|
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.
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:
The Query element’s children are defined in the “query” sections for each value of the
Category attribute.
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.
For all Response XML blocks, the value of the file attribute for the
Velocity11 element is
QueryResponse. See
“Velocity11 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:
The Response element’s children are defined in the “query response” sections for each value of the
Category attribute.
<Query Category='AllDeviceInfo'>
<Parameter Name='ProtocolName' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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' >
<Parameter Name='ProtocolName' Scriptable='1' Style='0' Type='1'
→Value='Protocol File - 1' />
|
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' />
|
•
|
If no protocol was specified, VWorks software returns the device names and device types in the first device file currently open in VWorks software.
|
<Response Category='AllDeviceInfo' ... >
<Parameter Name='AllDeviceInfo' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
The value of the file attribute for the
Velocity11 element is
MetaData. See
“Velocity11 element” .
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoint />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
|
The DeviceLocationTeachpoints parent element has one
DeviceLocationTeachpoints child element.
The DeviceLocationTeachpoints child element contains one or more
DeviceLocationTeachpoint elements.
Each DeviceLocationTeachpoint element contains the name and type of a device in the device file. This element has the following attributes:
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.
<Response Category='AllDeviceInfo' Destination='IWorksController Test - 1' >
<Parameter Name='AllDeviceInfo' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='MetaData'
→md5sum='281f97ac84c697cf58d44c4d4a723622' version='1.0' >
→<DeviceLocationTeachpoints > <DeviceLocationTeachpoints >
→<DeviceLocationTeachpoint DeviceName='Phantom Robot - 1'
→DeviceType='Phantom Robot' /> <DeviceLocationTeachpoint
→DeviceName='PlatePad - 1' DeviceType='PlatePad' />
→<DeviceLocationTeachpoint DeviceName='WasteBin - 1'
→DeviceType='WasteBin' /> </DeviceLocationTeachpoints>
→</DeviceLocationTeachpoints> </Velocity11>' />
|
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoint DeviceName='Phantom Robot - 1'
→DeviceType='Phantom Robot' />
<DeviceLocationTeachpoint DeviceName='PlatePad - 1' DeviceType='PlatePad' />
<DeviceLocationTeachpoint DeviceName='WasteBin - 1' DeviceType='WasteBin' />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
|
<Query Category='Barcode'>
<Parameter Name='Location' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Query Category='Barcode'>
<Parameter Name='Location' Scriptable='1' Style='0' Type='1'
|
<Response Category='Barcode' ...>
<Parameter Category='Barcode' ... />
|
The Parameters element contains one or more
Parameter elements.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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' />
<Parameter Category='Barcode' Name='0' Scriptable='1' Style='0' Type='1'
<Parameter Category='Barcode' Name='1' Scriptable='1' Style='0' Type='1'
<Parameter Category='Barcode' Name='2' Scriptable='1' Style='0' Type='1'
<Parameter Category='Barcode' Name='3' Scriptable='1' Style='0' Type='1'
|
The DeviceLocationTeachpoints query requests all locations on all devices for which a robot has teachpoints. This query contains an empty DeviceLocationTeachpoints Query XML block.
<Query Category='DeviceLocationTeachpoints' />
|
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.
<Response Category='DeviceLocationTeachpoints' ...>
<Parameter Name='DeviceLocationTeachpoints' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoint />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
|
The DeviceLocationTeachpoints parent element has one
DeviceLocationTeachpoints child element.
The DeviceLocationTeachpoints child element contains one or more
DeviceLocationTeachpoint elements.
The DeviceLocationTeachpoint element has the following attributes:
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.
<Response Category='DeviceLocationTeachpoints'
→Destination='IWorksController Test - 1'>
<Parameter Name='DeviceLocationTeachpoints' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='MetaData'
→md5sum='a16eb3001ae9fcd2ff3fd34654eba2d5' version='1.0' >
→<DeviceLocationTeachpoints > <DeviceLocationTeachpoints >
→<DeviceLocationTeachpoint DeviceName='PlatePad - 1'
→DeviceType='PlatePad' LocationName='Stage'
→RobotName='IWorksController Test - 1' TeachpointName='Teachpoint
→1' /> </DeviceLocationTeachpoints> </DeviceLocationTeachpoints>
|
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoints >
<DeviceLocationTeachpoint DeviceName='PlatePad - 1' DeviceType='PlatePad'
→LocationName='Stage' RobotName='IWorksController Test - 1'
→TeachpointName='Teachpoint 1' />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
|
The following sample code is a DeviceLocationTeachpoints query response for a non-robot device. The response contains an empty DeviceLocationTeachpoints XML block.
<Response Category='DeviceLocationTeachpoints'
→Destination='IWorksController Test - 1'>
<Parameter Name='DeviceLocationTeachpoints' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='MetaData'
→md5sum='a16eb3001ae9fcd2ff3fd34654eba2d5'
→version='1.0' > <DeviceLocationTeachpoints />
|
The following code is the empty un-escaped DeviceLocationTeachpoints XML block from the preceding DeviceLocationTeachpoints query response example.
<DeviceLocationTeachpoints />
|
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.
<Query Category='GetDeviceName' />
|
<Response Category='GetDeviceName' ...>
<Parameter Name='DeviceName' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Response Category='GetDeviceName' Destination='IWorksController Test - 1' >
<Parameter Name='DeviceName' Scriptable='1' Style='0' Type='1'
→Value='IWorksController Test - 1' />
|
<Query Category='GetIOManagerPointInput'>
<Parameter Name='PointName' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Query Category='GetIOManagerPointInput' >
<Parameter Name='PointName' Scriptable='1' Style='0' Type='1' Value='P1' />
|
<Response Category='GetIOManagerPointInput' ...>
<Parameter Name='PointState' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
<Response Category='GetIOManagerPointInput'
→Destination='IWorksController Test - 1' >
<Parameter Name='PointState' Scriptable='1' Style='0' Type='8' Value='0' />
|
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.
<Query Category='GetJavascriptVariable'>
<Parameter Name='VariableName' ... />
<Parameter Name='ProtocolName' ... />
|
The Parameters element contains two
Parameter elements.
Each Parameter element has one of the following pairs of
Name and
Value attributes plus the
Scriptable,
Style, and
Type attributes:
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' >
<Parameter Name='VariableName' Scriptable='1' Style='0' Type='1' Value='a' />
<Parameter Name='ProtocolName' Scriptable='1' Style='0' Type='1'
→Value='Protocol File - 1' />
|
The GetJavascriptVariable query response returns the value of the specified JavaScript variable contained in the protocol that is specified in the query.
<Response Category='GetJavascriptVariable' ...>
<Parameter Name='VariableValue' ... />
|
The Parameters element contains on
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
The JSObject XML block contains the JSObject element and all its children. This XML block provides the serialization of the JavaScript variable.
The value of the file attribute for the
Velocity11 element is
JSSerialize. See
“Velocity11 element” .
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:
|
|
|
|
|
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:
|
|
|
|
|
|
|
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.
|
|
|
The JSProperty element contains one
JSObject child element and has the following attribute:
The JSObject child element has the following attributes:
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.
<Response Category='GetJavascriptVariable'
→Destination='IWorksController Test - 1'>
<Parameter Name='VariableValue' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='JSSerialize'
→md5sum='620957083f71145b8c66848ae28c28be' version='1.0' >
→<JSObject Type='Int' Value='1' /> </Velocity11>' />
|
<JSObject Type='Int' Value='1' />
|
<JSObject Type='Int' Value='94' />
<JSObject Type='Int' Value='73' />
|
<JSProperty Name='John Smith'>
<JSObject Type='String' Value='555-1212'>
<JSProperty Name='Jane Smith'>
<JSObject Type='String' Value='555-1234'>
|
The GetProductInfo query requests the name and version of VWorks software that is currently running. This query contains an empty GetProductInfo Query XML block.
<Query Category='GetProductInfo' />
|
<Response Category='GetProductInfo' ...>
<Parameter Name='ApplicationName' ... />
<Parameter Name='ApplicationVersion' ... />
|
The Parameters element contains two
Parameter elements.
Each Parameter element has one of the following pairs of
Name and
Value attributes plus the
Scriptable,
Style, and
Type attributes:
<Response Category='GetProductInfo' Destination='IWorksController Test - 1' >
<Parameter Name='ApplicationName' Scriptable='1' Style='0' Type='1'
<Parameter Name='ApplicationVersion' Scriptable='1' Style='0' Type='1'
|
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.
<Query Category='GetRunSetStatus' />
|
<Response Category='GetRunSetStatus' ...>
<Parameter Name='RunsetXML' ... />
<Parameter Name='Error' ... />
|
The Parameters element contains two
Parameter elements.
Each Parameter element has one of the following pairs of
Name and
Value attributes plus the
Scriptable,
Style, and
Type attributes:
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.
<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' ... />
|
The Runsets element contains one or more
Runset elements.
The Runset element contains one
Parameters element and has the following attribute:
The Parameters element contains 17
Parameter elements.
Each Parameter element has one of the following pairs of
Name and
Value attributes:
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' >
<Parameter Name='RunsetXML' Scriptable='1' Style='0' Type='1' Value='<?xml →version='1.0' encoding='ASCII' ?> <Velocity11
→file='Runset_Data' md5sum='1d3e31c99c747ac48b15c06c275ec75d'
→version='1.0' > <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>
<Parameter Name='Error' Scriptable='1' Style='0' Type='1' />
|
<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' />
<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' />
|
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 Name and Value attributes of the query Parameter element
|
•
|
The Name and Value attributes of the response Parameter elements in the Response XML block
|
<Query Category='InterPlugin' ...>
|
The Parameters element has one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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' >
<Parameter Name='InterpluginParameter' Scriptable='1' Style='0' Type='1'
|
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.
<Response Category='InterPlugin' ...>
<Parameter Name='InnerResponse' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Response Category='InterPlugin' ...>
|
The Parameters element contains two
Parameter elements: one acknowledges receipt of the query and the other has the query response.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
<Response Category='InterPlugin' Destination='IWorksController Test - 1'
→Source='IWorksController Test - 2'>
<Parameter Name='InnerResponse' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='QueryResponse'
→md5sum='3b449c37c9e8fb774cf67147a540e0dd' 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> </Velocity11>' />
|
<Response Category='InterPlugin' Destination='IWorksController Test - 1'
→Source='IWorksController Test - 2' >
<Parameter Name='InterPlugin Param' Scriptable='1' Style='0' Type='1'
<Parameter Name='Param #2' Scriptable='1' Style='0' Type='1'
→Value='Value 2222222222' />
|
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.
<Query Category='Labware'>
<Parameter Name='Labware_Entry' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Query Category='Labware' >
<Parameter Name='Labware_Entry' Scriptable='1' Style='0' Type='1'
→Value='1536 Greiner 782076 blk sqr well flt btm' />
|
<Response Category='Labware' ...>
<Parameter Name='Labware_Entry' ... />
<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' ... />
|
The Parameters element has 62
Parameter elements: 60 are labware properties.
Each Parameter element has one of the following pairs of
Name and
Value attributes plus the
Scriptable,
Style, and
Type attributes:
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
|
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.
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:
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' >
<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'
<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'
<Parameter Name='Y_WELL_TO_WELL' Scriptable='1' Style='0' Type='1'
<Parameter Name='Z_TIP_ATTACH_OFFSET' Scriptable='1' Style='0' Type='1'
<Parameter Name='NAME' Scriptable='1' Style='0' Type='1'
→Value='1536 Greiner 782076 blk sqr well flt btm' />
|
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.
<Query Category='LocationInformation'>
<Parameter Name='LocationName' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Query Category='LocationInformation' >
<Parameter Name='LocationName' Scriptable='1' Style='0' Type='1'
|
If configured labware is present at the location, the LocationInformation query response contains the name of the configured labware at the specified location.
<Response Category='LocationInformation' ...>
<Parameter Name='PlateStackHeight' ... />
<Parameter Name='Labware' ... />
|
The Parameters element contains two
Parameter elements.
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 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).
<Response Category='LocationInformation' Destination='IWorksController Test - 1' >
<Parameter Name='PlateStackHeight' Scriptable='1' Style='0' Type='12'
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'
→Value='1536 Black Greiner' />
|
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' >
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'
→Value='1536 Black Greiner' />
|
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' >
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'/>
|
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.
<Query Category='LocationToTeachpoints'>
<Parameter Name='LocationName' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Query Category='LocationToTeachpoints' >
<Parameter Name='LocationName' Scriptable='1' Style='0' Type='1'
|
The LocationToTeachpoints query response contains the names of all teachpoints that have been set at the location specified in the query.
<Response Category='LocationToTeachpoints' ...>
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
The value of the file attribute for the
Velocity11 element is
MetaData. See
“Velocity11 element” .
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoints>
<DeviceLocationTeachpoint />
</DeviceLocationTeachpoints>
</DeviceLocationTeachpoints>
|
The DeviceLocationTeachpoints parent element contains one
DeviceLocationTeachpoints child element.
The DeviceLocationTeachpoints child element contains one or more
DeviceLocationTeachpoint elements.
The DeviceLocationTeachpoint element has the following attributes:
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.
<Response Category='LocationToTeachpoints'
→Destination='IWorksController Test - 1' >
<Parameter Name='DeviceLocationTeachpoints' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='MetaData'
→md5sum='d2c8c47c4e820342ae53818cb5201de5' version='1.0' >
→<DeviceLocationTeachpoints > <DeviceLocationTeachpoints >
→<DeviceLocationTeachpoint DeviceName='IWorksController Test - 1'
→DeviceType='IWorksController Test' LocationName='Stage 1'
→RobotName='3-Axis Robot - 1' RobotType='IWorksController Test'
→TeachpointName='Teachpoint 1' /> <DeviceLocationTeachpoint
→DeviceName='IWorksController Test - 1' DeviceType='IWorksController
→Test' LocationName='Stage 1' RobotName='DDR - 1'
→RobotType='IWorksController Test' TeachpointName='Teachpoint 2'
→/> <DeviceLocationTeachpoint DeviceName='IWorksController Test - 1'
→DeviceType='IWorksController Test' LocationName='Stage 1'
→RobotName='Phantom Robot - 1' RobotType='Phantom Robot'
→TeachpointName='Teachpoint 3' />
→</DeviceLocationTeachpoints> </DeviceLocationTeachpoints>
|
<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>
|
<Query Category='PlateVolume'>
<Parameter Name='LocationInfo' />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
The VolumeUpdates element contains the name of the specified location. This element has the following attributes:
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'>
<Parameter Name='LocationInfo' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='MetaData'
→md5sum='79b157293c2417174d4fbc6ca5cb98c3' version='1.0' >
→<VolumeUpdates Location='Stage 1' ResetAbsolute='0' />
|
The following code is the un-escaped VolumeUpdates element from the previous PlateVolume query example.
<VolumeUpdates Location='Stage 1' ResetAbsolute='0' />
|
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.
<Response Category='PlateVolume' ...>
<Parameter Name='PlateVolume' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
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
|
The VolumeUpdates child element contains one or more
VolumeUpdate elements.
The VolumeUpdate element contains the coordinates of the well and the volume change. This element has the following attributes:
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' >
<Parameter Name='PlateVolume' Scriptable='1' Style='0' Type='1'
→Value='<?xml version='1.0' encoding='ASCII' ?>
→<Velocity11 file='MetaData' →md5sum='485b3ebca3e27731dcb098a2727e6a9a' version='1.0' >
→<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>
|
<VolumeUpdates ResetAbsolute='0' >
<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' />
|
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.
<Query Category='ScanBarcode'>
<Parameter Name='Location' ... />
<Parameter Name='Side' ... />
|
The Parameters element contains two
Parameter elements.
Each Parameter element has one of the following pairs of
Name and
Value attributes plus the
Scriptable,
Style, and
Type attributes:
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' >
<Parameter Name='Location' Scriptable='1' Style='0' Type='1'
<Parameter Name='Side' Scriptable='1' Style='0' Type='1' Value='0' />
|
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.
•
|
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.
|
<Response Category='ScanBarcode' ...>
<Parameter Name='ShouldScan' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
|
|
|
|
|
no = A barcode scanner should not be used
yes = A barcode scanner should be used
|
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.
<Response Category='ScanBarcode' Destination='IWorksController Test - 1' >
<Parameter Name='ShouldScan' Scriptable='1' Style='0' Type='1' Value='yes' />
|
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.
<Query Category='SystemPlateInformation'>
<Parameter Name='PlateName' ... />
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
<Query Category='SystemPlateInformation' >
<Parameter Name='PlateName' Scriptable='1' Style='0' Type='1'
|
<Response Category='SystemPlateInformation' ...>
|
The Parameters element contains one
Parameter element.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
<Response Category='SystemPlateInformation'
→Destination='IWorksController Test - 1' >
<Parameter Name='Labware' Scriptable='1' Style='0' Type='1'
→Value='1536 Greiner 782076 blk sqr well flt btm' />
|
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:
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.
|
4
|
VWorks software forwards the query response to Plugin A in the output parameter of the IWorksController Query method using the TeachpointInformation category.
|
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 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.
<Query Category='TeachpointInformation'>
<Parameter Name='RobotName' ... />
<Parameter Name='TeachpointName' ... />
|
<Query Category='TeachpointValue'>
<Parameter Name='RobotName' ... />
<Parameter Name='TeachpointName' ... />
|
The Parameters element contains two
Parameter elements.
Each Parameter element has one of the following pairs of
Name and
Value attributes plus the
Scriptable,
Style, and
Type attributes:
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' >
<Parameter Name='RobotName' Scriptable='1' Style='0' Type='1'
→Value='IWorksController Test - 1' />
<Parameter Name='TeachpointName' Scriptable='1' Style='0' Type='1'
|
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' >
<Parameter Name='RobotName' Scriptable='1' Style='0' Type='1'
→Value='IWorksController Test - 1' />
<Parameter Name='TeachpointName' Scriptable='1' Style='0' Type='1'
|
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.
<Response Category='TeachpointInformation' ...>
|
<Response Category='TeachpointValue' ...>
|
The Parameters element contains one or more
Parameter elements.
The Parameter element has the following attributes plus the
Scriptable,
Style, and
Type attributes:
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.
<Response Category='TeachpointInformation' Destination='Robot - 1' >
<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' />
|
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.
<Response Category='TeachpointValue' Destination='Robot - 1' >
<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' />
|