VWorks software calls the
IsLocationAvailable method (repeatedly) during task scheduling to ask the plugin whether the target location is available for a labware-handling process.
This method was created for complicated multi-robot systems to prevent one robot from reaching into the envelope of another robot, which could cause a robot crash.
The IsLocationAvailable method prevents
VWorks software from scheduling tasks on devices with complicated geometry or very long processes until preconditions are met. This method is not meant to preempt the scheduler or to wait for a precondition to occur.
VWorks software passes a LocationAvailable XML block into the
LocationAvailableXML parameter of the
IsLocationAvailable method.
The LocationAvailable XML block contains the LocationAvailable element and all its children. This XML block provides information about the target location. The contents of the LocationAvailable XML block are different for storage and non-storage devices.
The plugin uses the information from the LocationAvailable XML block to determine whether the target location is available for a labware-handling process. Although most plugins return
TRUE directly, some plugins determine availability according to the task name and the location name.
The following sample code is a LocationAvailable XML block that is received by the plugin from
VWorks software as a string in the
LocationAvailableXML parameter of the
IsLocationAvailable method.
VWorks software asks the plugin if the target location named
Cassette 1, Slot 1 on the storage device named
Plate Hub Carousel ‑ 1 is available for a labware-handling process.
The plugin returns VARIANT_TRUE or
VARIANT_FALSE in the
Available parameter of the IsLocationAvailable method.
When the plugin returns VARIANT_TRUE in the
Available parameter, the scheduler does one of the following:
Even if the plugin returns the value VALIANT_TRUE,
VWorks software might not use the location, as explained in the next section.
When a task is executing at a device location, VWorks software knows that the location is unavailable, or busy. Therefore,
VWorks software will
not do either of the following:
Most plugins return VARIANT_TRUE in response to this method; however, if a task is not executing, but the location should still be considered unavailable, the plugin should return
VARIANT_FALSE.
When the gantry on the Bravo moves around, it blocks access to deck locations that are not occupied. This interference might last awhile. Returning
VARIANT_FALSE allows the scheduler to move on and see what else it can do in the system.