 |
The advantage of the time-resolved/static/dynamic scheduler is that is offers parallel processing, that is, multiple instruments can be used simultaneously.
This can be achieved with a event-driven scheduler such as Overlord3. The process is often referred to as round robin and can be best described as keeping all the instruments running when there is a possibility to achieve full system activity.
The key is consider the multistage process as a simple series of stages. Consider the example of add a diluent to a microplate followed by a plate reader step. To get maximum throughput it is necessary to dilute and read at the same time. |
categories
which scheduler? Overlord3 Overlord3 SocketSet Overlord3 Remoting Software Development Kit Overlord3 instrument drivers Overlord Scheduler 21 cfr (Part 11) version Assay Manager
download app note Round Robin Scheduling
|
First consider a one stage step, e.g. read a plate. The plate reader can be in on of 4 states:
- ready for loading (TRUE if ready to load)
- busy running a read process (TRUE if running)
- ready for unloading (TRUE if ready to unload)
- in an error state (TRUE if in an error state)
Clearly there are logical steps to be followed:
- a plate cannot be loaded on to the plate reader if steps 2,3, or 4 are true
- a plate cannot be unloaded if steps 1, 2 or 4 are true
So for the complete process in Overlord3 it is necessary to write a procedure like this:
- Determine the number of plates to be processed (ask the user, automatically count the plates in the plate stack), set a variable (#PlatesToProcess) to this number
- Set up a conditional loop that will stop when all the plates are processed (#PlatesProcessed)
- set #PlatesProcessed to zero at the beginning of the run
- check the value of #PlatesProcessed on every loop, exit the process when #PlatesToProcess = #PlatesProcessed
- determine if the plate reader is busy (check the process status or ask the instrument for its status)
- if the plate reader is ready for loading, get a plate from the in stack and put it in the plate reader, start the required plate reader method
- if the plate reader is busy, go around the loop again
- if the plate reader is ready to unload, return the plate to the out stack, increment the #PlatesProcessed
- if the plate reader is in an error state, stop the process
- the loop is completed, return to step 4
This simple routine will process all the plates in a stack.
For a multiple stage process, the procedure just has to check the status of each instrument in the way described above. For example dilute and read.
- STAGE 1 is to dilute the plate
- STAGE 2 is to read the plate
- Determine the number of plates to be processed (ask the user, automatically count the plates in the plate stack), set a variable (#PlatesToProcess) to this number
- Set up a conditional loop that will stop when all the plates are processed (#PlatesProcessed)
- set #PlatesProcessed to zero at the beginning of the run
- check the value of #PlatesProcessed on every loop, exit the process when #PlatesToProcess = #PlatesProcessed
- determine if the plate reader is busy (check the process status or ask the instrument for its status)
- if the plate reader is ready for loading, get a plate from the diluter and put it in the plate reader, start the required plate reader method
- if the plate reader is busy, go around the loop again
- if the plate reader is ready to unload, return the plate to the out stack, increment the #PlatesProcessed
- if the plate reader is in an error state, stop the process
- determine if the diluter is busy (check the process status or ask the instrument for its status)
- if the diluter is ready for loading, get a plate from the in stack and put it in the diluter, start the required diluter method
- if the diluter is busy, go around the loop again
- if the diluter is ready to unload, go around the loop again
- if the plate reader is in an error state, stop the process
- the loop is completed, return to step 4
Just add an additional section for each extra stage of the process.
Click to see a demonstration video of round robin scheduling using an automate.it scara robot loading a BioTek ELx405 and Thermo Multidrop showing multitasking for parallel equipment operation.
download app note Round Robin Scheduling
|