The subject matter described relates generally to laboratory automation and, in particular, to a robot task scheduler.
Modern laboratories include many different computer-based instruments. Many experimental tasks (e.g., assays) involve the use of multiple instruments with one or more robots transferring a sample from instrument to instrument. Coordinating such tasks between instruments is typically challenging because each uses its own data formats and protocols. In many cases, the instruments are made by different manufacturers and have no built-in functions for interoperability. There is this a need for a system that can coordinate the operation of multiple robots and instruments regardless of the underlying protocols and data formats used by each.
The figures and the following description describe certain embodiments by way of illustration only. One skilled in the art will readily recognize from the following description that alternative embodimenhere
ts of the structures and methods may be employed without departing from the principles described. Wherever practicable, similar or like reference numbers are used in the figures to indicate similar or like functionality. Where elements share a common numeral followed by a different letter, this indicates the elements are similar or identical. A reference to the numeral alone generally refers to any one or any combination of such elements, unless the context indicates otherwise.
A GUI is used to schedule a set of tasks for one or more robots, such as testing samples as part of a clinical trial using one or more instruments. Instructions to complete the tasks are sent to the robots and/or instruments using dedicated drivers that represent tasks in a standardized format. The instructions sent, any responses received, and the results generated may be processed (e.g., for quality control) and stored in a standardized format to enable further analysis and complete auditing in compliance with regulatory requirements. Using standardized formats enables support for new types of robot and/or instrument to be easily added to the system. A driver that maps the protocols and data structures used by the new robot or instrument to the standardized format can be defined. Thus, from the system's perspective, once a driver is provided, the instruments and robots all appear to use the same data format and protocol. A set of one or more robots and one or more instruments may collectively be referred to as a set of devices.
The workstation 110 includes one or more computing devices that enable a user to schedule tasks (e.g., using a graphical user interface (GUI)). The workstation generates instructions for implementing the tasks by the robot 120 and/or one or more instruments 130 in a standardized format. Various embodiments of the workstation are described in greater detail below, with reference to
The robot/controller 120 is a robotic system that can interact with the instruments 130 to perform scheduled tasks. For example, the robot/controller 120 can implement instructions received from the workstation to move a sample from a storage area to a first instrument 130A for a first step in an assay and then move the sample to a second instrument 130B for a second step of the assay, etc. Using the instructions issued by the workstations 110, the robot/controller 120 may implement highly complex workflows using unconventional format and perform fully automated cross-titration experiments.
The instruments 130 are devices that perform tests or other operations on samples. The instruments 130 may be provided by different manufacturers and use different protocols and/or data formats. The instruments 130 may receive instructions directly from the workstation 110 and/or via the robot/controller 120 to perform operations. Each instrument 130 receives instructions in its own format that have been mapped from the standardized format used by the workstation using a driver. Similarly, the data generated by the instrument in its own format may be provided to the workstation 110 which maps it into a standardized storage format for further analysis.
The components of the networked computing environment 100 communicate via one or more networks. The network(s) can include any combination of local area and wide area networks, using wired or wireless communication systems. In one embodiment, a network uses standard communications technologies and protocols. For example, the network can include communication links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, 5G, code division multiple access (CDMA), digital subscriber line (DSL), etc. Examples of networking protocols used for communicating via the network 170 include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP). Data exchanged over the network may be represented using any suitable format, such as hypertext markup language (HTML) or extensible markup language (XML). In some embodiments, some or all of the communication links of the network 170 may be encrypted using any suitable technique or techniques.
The director module 210 links instruments such as robotic arms and surrounding peripherals. In one embodiment, the director module 210 provides a multistep high-throughput screening platform. The director module 210 provides for display a user interface (e.g., a GUI) that enables an operator to update the system inventory, load processes, and control integrated drivers. The director module 210 may support multiple simultaneous processes across as series of units, and information transfer between units. The director module 210 may maintain an inventory of the plates that exist within the system. As plates are processed at various stations within the automation platform, director module 210 can associate or retrieve relevant information (e.g. file paths, clusters of data) to or from any plate in the inventory. This information can then serve as an input for downstream instrument functions, which are configured to make use of or further process the retrieved information. This can enable dynamic behavior of the system, such as on-the-fly decision making, data consolidation, image analysis, and calculations.
The editor module 220 provides a user interface (e.g., a GUI) with which the operator can create multistep protocols for multiple instruments and/or robots. For example the user interface may enable the user to define how instructions in the standardized format used by the director module 210 map to instructions in the native protocol or language used by a new type of instrument or robot that is being added to the environment 100. In one embodiment, the robots and instruments are integrated into the platform by defining drivers and positioning them in the system topology. Protocols created using the editor module 220 can be executed by the director module 210 for automatic, multistep use of multiple robots and/or instruments.
The drivers module 230 manages drivers within the system. A driver can enable one the workstation 110 to communicate with a specific instrument or robot by providing a mapping between a standardized format used by the director module 210 and the specific protocols and/or data formats used by the instrument or robot. By mapping drivers to the standardized format, the drivers module 230 enables the director module 210 to easily aggregate data from multiple sources. The director module 210 can define a set of operations in the unified language, distribute those instructions to the relevant robots or instruments (with the instructions being translated into the appropriate format for each end point by the corresponding drivers), and receive results data back in a standardized format (having been converted as needed from a native data format to the standardized format by the corresponding drivers).
The datastore 240 includes one or more computer-readable media that store the data used by the workstation. For example, the drivers used by the driver module 230 may be stored in the datastore 240. The data received from instruments may also be stored in the datastore 240. Although the datastore 240 is shown as a single entity within the workstation, the data stored may be distributed among multiple such datastores in one or more locations. For example, instrument data may be stored in a distributed database along with metadata providing context for what the data is (e.g., date and time collected, instrument or instruments used, assay performed, subject ID, etc.) accessed via the network 170.
In one embodiment, the automatic transfer of data includes dedicated “Data” and “Trace” folders on the workstation 110. Folder replication software may be used to look for newly generated files and replicate any such files to an HPC share. The process may check for new files every minute to minimize the risk of data loss or modification. This transfer is performed by a dedicated service account which has at least read access to the source location and write access to the target location. There may be a staging area on the HPC share for storing files that are generated each day. OpenLab sweep may be used to transfer files from the staging area to the secure repository, and then delete the copy in the staging area. Official source files may be in OpenLab for long-term storage. When a process is started, the director module 210 may create copies of the following: Topology File, Process Inventory File, and a TPDEditor report xml file; the names of these files will all have the lead in of ProcRunID (TeliosTopology (.csv), Inventory (.csv), TPDReport (.xml). All these files are deposited in Trace for the sweep.
For source locations, the raw data file may be stored into the following folder structure for each instrument: . . . \Telios\<SYSTEM NAME>\Data\ . . . . The trace file may be stored into the following folder structure for each instrument: . . . \Telios<SYSTEM NAME>\Trace\ . . . .
For the staging area, the system may store raw data in a network drive within the following folder structure: \\<SHARE>\<SYSTEM NAME>\Data\ . . . . The system may store the trace file in the network drive within the following folder structure: \\<SHARE>\<SYSTEM NAME>\Trace\ . . . .
For long term storage, the system may store raw data in Openlab within the following folder structure: \<DEPT>\<SYSTEM NAME>\Data\ . . . . The system may store trace file in Openlab within the following folder structure: \<DEPT>\<SYSTEM NAME>\Trace\ . . . .
The following process may be used by a user to authenticate for a director workstation. A user (e.g., a trained robotic scientist) may use a generic service account to access the workstation. The user launches the director executable and Telios launches, but all controls are locked by default. The user clicks on the “UNLOCK” button on the right control panel. A login window appears. The user will enter their userID and password. Access to the Telios Director is provisioned and the users userID is recorded in the trace file. The system may lock access to the Telios Director after a predetermined period of inactivity (e.g., thirty minutes), but this may not stop the execution of a run currently in progress.
The following process may be used by a user to authenticate for a driver workstation. The user may login through a remote desktop service and a policy setting will determine which users can access the console of the workstation. This may be managed through the remote desktop users group. The driver workstation may be headless (meaning, it will be configured to operate without a monitor, keyboard, and a mouse) and once access to the console has been established, the Telios generic service account may be used to authenticate to the operating system. The system may end the remote connection to the Telios Driver after a predetermined period (e.g., thirty minutes) of inactivity but this will not stop the execution of a run currently in progress.
In one embodiment, the following input field definitions are used:
\Data folder=Data files (**2) from readers for units read during online assays. Any instrument which generates ‘data’ is integrated such that the director is informed about what is generated. The director collects the data and brings back to this folder on director pc.
\Exe folder=Exe folder components: DirectorExe-3 files in total (TeliosDirector[VersionNumber].exe, aliases, .ini); LineUp_c_32.dll; MerckStm.ini, NI-DAQmx.ini; TeliosSystem.ini; TeliosWatchDog.exe (3 files in total), TeliosSystem.ini (**5), and TeliosTopology.csv. Contains files needed for the Director executable to open and run. The TPDEditor is also stored in this directory.
Inventory folder=Recommended organization is a ‘folder’ is made for each ‘project’; inside this folder are all of the files for the supported processes. Recommended naming convention of the inventory file is: ProjectName_#ofplates_date. Contains the System Inventory file and process inventory files (**1) for individual assays. The Director reads in the information stored in the System Inventory file when opened and writes the most current inventory information to it when closed. The TeliosTopology.csv (**6) and TeliosSystemInventory.csv must be present for the Director to open. Topology file contains information about each instrument station. TeliosSystemInventory.csv is a universal file. This file should be kept up to date and not used as a process inventory file (the file that defines the units to run in an assay). The Director when shutdown will write out the current inventory to this file, and upon restarting it will read this file in so that the inventory is persistent.
\Log folder=MessageLog.txt (this file is a log of all ‘messages’ the director has sent),
‘System’ folder=this folder contains AllocatedResources.sys, FuncUnit.sys, Hotel.sys, Inventory.sys, Operations.sys, Process.sys, RequestedResources.sys, TeliosNotifications.sys—these are the ‘storage system’ files which the director periodically updates with all of its current arrays of ‘system clusters’. This enables the restoration of system function if a catastrophic event occurs (i.e., pulling plug on director PC). These files are written every minute, as this enables the Restore Process Functionality.
\Ops folder=Run Summary (**4) csv files are saved to the location at the completion of a process. The ‘run summary’ file is placed here upon process completion. The run summary is all of the units trace entries combined in one file.
\ProcDef folder=Telios Process Definition (TPD) files (**7)=same structure as ‘inventory’ folder; recommended naming convention of tpd: ProjectName_briefprocdescription_versionID
\SupportFiles folder=Any files to assist the operator with the Telios Systems such as user manuals.
\Trace folder=The final trace files (**3) for finished functional units.
Note that a user may get an output of the teliostopology, inventory file, and tpd file—which are all harmonized by the same beginning of their respective file names (ProcRunId is that lead in). Further, ‘STM’=STM is the communication package Telios uses; this folder is placed in C:\Program Files (x86)\National Instruments\LabVIEW 2020\user.lib
A process inventory file is a type of input that may use the CSV format. It is typically user generated. In one embodiment, the process inventory file is a list of barcodes the director processes against the specified ‘tpd’ (telios process definition). The column the barcode appears in designates what ‘unit’ it is (i.e., 0,1,2, etc.).
Instruments may generate data in text files. A driver may be used to change the file extension that is relevant to the source of the data.
Trace files includes the ‘ops’ which occurred to the functional unit or its associated units. When the director completes an op for a unit, it writes a trace entry. A trace entry is also created when a unit is inventoried and when a process starts. When a process is complete, a trace file is created summarizing main process information, and a trace file per unit is created detailing each op for a unit. In one embodiment, a trace file is in the XML format. The following is an example trace entry:
A Telios process can run through several plates (units) in the respective inventory file. The xml file is showing information for one plate out of all plates in a run, so the “number” of this plate out of all plates (in the order it's listed in the inventory file—i.e., Number=3/7 is “this XML file/barcode is the 3rd plate out of 7 plates). Step is the step number in the tpd (not the spreadsheet row index). Each step also has several ops. This TPD Editor structure was implemented so that the user can generate 1 step, but the TPD Editor will automatically fill in the needed smaller Ops to execute that step. The ParamInd can be several things. For example, it can be read from the StepID column of the TPD Editor file spreadsheet (.tpd), which describes what the step is doing, (e.g., Pacing is always the 1st step of the tpd, and other steps could be “SUM 18to19—Rbtmv . . .”) which means Single Unit Move station 18 to 19 Robot Move. As another example, each step in the TPD has other background steps (e.g., ops 1 through 7) that each TPD step goes through which are not always recorded in the TPD Editor steps (for readability and eliminating redundancy). For steps before pacing (initialization of the process by the Director that is not included in the TPD) and after TPD steps are complete—the ParmInd entry in XML may have values such as 1.000000, a file location, or just be blank, depending on what the director is doing.
A run summary file for a run includes information for units in a run. In one embodiment, a run summary file is a CSV file that includes information for all of the nits in a run combined together. In contrast, the corresponding .xml trace files are for individual units for a run.
A TeliosSystem.ini file stores configuration settings that connect the director to the system's drivers and data handler and specify certain operating parameters. It is typically a text file and includes information such as the system ID, system type, I/O server, base path, program name, authentication process to be used, and other configuration properties of the system.
A TeliosTopology file contains information about each station (e.g., what instruments are currently available). In one embodiment, the TeliosTopology file is a CSV file.
A Telios Process Definition contains step parameters provided by a user that define a set of one or more steps that may be performed (e.g., to perform an assay).
Director Inventory files include a “virtual” set of information (cached) when looping vs. writing to a drive (as inventory is changing this may be stored programmatically). In one embodiment, the Director reads in the information stored in the System Inventory file when Director is opened and writes the most current inventory information to it when closed. The inventory manager may deposit this set of information into a CSV file when an “Inventory to File” button is pushed in the inventory manager in the director. When it is output from the inventory manager, it provides the most recent information. This may then be copied into the process inventory file.
A Driver Inventory file enables a computer controlling an instrument which has inventory (e.g., incubators, liquid handling stations with storage attached to it, etc.) to track. Manage, and/or use the inventory. In one embodiment, the driver inventory is updated manually when units are loaded to the storage device for the first time. Once the units are in the inventory and a process is started or the instrument is controlled manually from the driver, the driver inventory is automatically updated based on the location of the plate throughout the process. At the end of a process, unless the user specifies in the TPD Editor a virtual step as the last process step to change the home location of the plate from the original driver inventory to another driver inventory, the unit will stay in the original driver inventory.
In the embodiment shown, the driver configuration begins by configuring an instrument ini file to connect the driver to an instrument and the director. The driver interface application is launched and the driver interface function is set to a “set interface director mode.” The system verifies that the director connection is online, the director operational status is ready, and the driver status is ready. The system configures instrument methods using the vendor's software and creates a process inventory file to list barcodes the director will process against. The system also creates a TPD file to configure the instrument's step actions and generates a StepGenTable for the instrument. Any errors in the StepGenTable are resolved and steps may be added to the OpTable (these being final steps to run once the driver is loaded into the director). The steps in the OpTable may be edited and the process operation reviewed (with any desired changes being made). The TPD and process inventory files are saved along with a topology CSV file indicating the topology of the networked environment. The director is launched and sets a station's instrument parameters, which may be viewed at this time. Units may be added to the instrument inventory or inventories. Units may also be added to the directory inventory. Error conditions may be configured and a process is loaded from the process configuration tab (e.g., in response to user selection) which is started and run. The process may be monitored in a functional units table or process operations tab. Once the process completes, the director may be shut down.
The Telios driver interface information section provides feedback information from the driver to inform the user of its current statuses. The following table describes the information provided in the illustrated driver interface information portion:
In one embodiment, to operate a driver, the user may select between a director or local mode. In the director mode, the instrument is operated autonomously through the Telios Director on the Director Workstation computer. In the local mode, the instrument is operated manually from the Telios instrument driver installed on the computer connected to the instrument. NOTE: the local interface may also be accessed from the Director's instrument control panel when the driver is set to director mode.
In various embodiments, the Director mode enables the Telios Director to send commands to the driver for automatic process execution. A Telios Driver interface within the Director GUI can also be accessed for manual control and quick error resolution without having to switch to the Driver computer and setting the driver to Local mode. Director mode enables the instrument to be used with robots and in parallel with other instruments. Once the “Set Interface Mode Director” option is chosen and the OK button has been hit, the “Director Connection” indicator will light up as “Online.” Instrument-specific methods can be sent to instruments and the user can create a larger method using the Telios TPD Editor involving the instrument protocol and any other online instruments (as well as instruments without drivers, such as a hotel). The driver interface may display status updates but may not allow the user to change settings or send commands while connected to the director. The director may fault, and no method execute, if a user tries to operate with a director while the driver is in local mode settings. If the driver is in director mode, commands may not be able to be sent through the instrument parameters with the driver interface.
In various embodiments, the local mode enables settings that are used to control the instrument through the Telios Driver Interface on the computer directly connected to the instrument. The user clicks on the Driver Interface Function box to display its options, selects “Set Interface Mode Local,” and presses the green OK button. The user selects an option under instrument parameters and fills in any configuration parameters for the selected option. The user selects “Execute Instrument Function” from the Driver Interface Function options and presses the OK button to send a command to the instrument.
In various embodiments, the Telios driver provides an “Instrument Parameters” section which enables configuration of the parameters necessary to carry out the actions of an instrument function in either director or local mode. The instruments parameters section may have the following options available (plus, in some instances, instrument specific options):
Where instrument-specific options are available, selection of those options causes display of the appropriate selectable parameters or controls.
The IO Subsystem function may have the following functions available (plus potentially other instrument-specific options):
The Telios driver may also provide an “Instrument Indicators” section which displays relevant information for the user to view or director to collect.
When the user selects “OK,” the driver executes. In one embodiment, the “DataFilePath” contains the location for the file that is collecting the data. As the Director executes this, the parameters may be auto populated here (this is what the driver populates for the director to read back specifically as an indicator section—parms in, indicators out). • The driver interface cluster (which is the master thread of info) is sent back and forth between director and driver. At the driver level the parms and indicators are extracted from the driver interface cluster and loaded into the driver parms and indicators.
The TPD Editor provides the ability to create multistep protocols for Telios platforms that contain multiple instruments and robots. These robots and instruments are first integrated onto the platform and its Telios Topology and then made available in the Editor.
The TPD editor may be used by a user to create new process steps within a steps parameters section of the user interface. In one embodiment, a step is defined by one or more of the following parameters:
A step type selected in the Step Parameters may be actually comprised of a series of smaller operations (ops) for the platform to complete, which are auto-populated for ease of use.
The following table illustrates example step types that may be available in the TPD editor:
The TPD Editor may provide the ability to add a newly generated process step to a StepGen Table (which may be used to verify the steps before adding them to the final OpTable).
The following table includes call option window parameters that may be available in the TPD editor:
To improve performance, when a parallel call is initiated, a parallel call return may be executed at the same station later on in the assay to ‘complete’ the station action which was originally executed.
In various embodiments, a step is generated and populated in the StepGenTable for the user to review before adding it into the final OpTable. Example driver interface functions that may be included arte shown in the following table:
Typically, a step includes three ops (if the unit is moving between stations within the same cell and no lid options are selected), but some steps include more or less ops. Op 0 will usually check the status of the destination station. The second Op (Op 1) usually then checks the status of the station the unit is currently on, unless the station does not have a driver, such as a Hotel. A unit may move only when both stations are available and ready. A SUM between multiple cells or lidding or delidding a plate may have additional ops to include these options. A SUM to or from an incubator may have additional ops to import or export the plate, since that is the most common application of an incubator. A SUM to or from an instrument requiring a plate to be re-gripped at a re-grip station amy also have additional ops to stop by the re-grip station. A SUM for which a lid op was selected (delid, relid, or waste) may have additional ops to stop by the delid station.
A Single Unit Move that involves an incubator or hotel is different than a typical SUM since that driver's inventory will change. If moving a plate from an incubator, the export is part of the get status current station. If a plate is moving to an incubator, the get status destination may look for the first empty index available. If one is not found, the step may wait until a position becomes available before going to the next step (this will not cause an error from the director). Conversely, if one is found, the index may be set to “reserved” in the driver inventory, and the SUM may run. The station may not import the plate as part of a SUM. The operator may then want to add an Incubate or Virtual Action-relocate, depending on the assay.
Once a step has been generated, added to the StepGen Table, and checked for any errors (errors will appear in the cells of the StepGen Table), the step should be added to the OpTable (which contains the final steps in the order they will be run once loaded by the Director). If the ops in the StepGenTable are correct and without error (errors appear under the “OpVi” but can also appear in other locations in the form: ERR, Error), they can be added to the OpTable by clicking the “InsertStep” button. The OpTable contains the final steps in the order they will be run once loaded by the Director. The TPD Editor may also provide the ability to delete, renumber, resequence, and/or sort the steps within the OpTable.
In some embodiments, the TPD editor can provide advanced functionality, such as the example shown in the following table:
If a button in the replicate steps dialog box is pressed, it may activate a green button that says GenerateTimeCourse. The user may enter the step range to generate a time course and the replicate number.
In one embodiment, the TPD Editor provides the ability to configure the following for a time course type: station to generate the time course for, unit of time for which the time course will be generated in, the time for the system to complete one cycle of the core operations, and different peripheral times for each read sequence. If the “ReplicateSteps” button in the Replicate Step dialog box is pressed, it may change to a green button that says “GenerateTimeCourse.” Clicking the “GenerateTimeCourse” button may cause display of a ConfigureTimeCourse.vi screen. The operator can then choose to generate either a static or dynamic time course. The following table illustrates some options that may be available in this context:
The TPD Editor may also provide the ability to configure a Static Time Course, which includes the time of the first station action/read that will be generated by the time course, the time interval between each read though when the steps are generated, and the program/method station action instrument will execute at every interval. The following table illustrates options that may be available in this context:
In contrast, a dynamic time course includes the time at which plates are read or imaged by the designated station and the program or method file name that the user would like the chosen station to execute. The following table illustrates options that may be available for a dynamic time course.
In one embodiment, the TPD Editor provides the ability to combine multiple process definition files into one file. The MultiTPD still uses one Process Inventory File (PIF) but allows the user to assign specific TPD files to each row in the PIF or a pattern of TPDs assigned to rows. The file generated can be run from the Telios Director when the Process Type is selected as MultiTpdFromFile. The Telios Director may have an applet to create a MultiTPD: MultiProcDef Editor. Example options include:
In one embodiment, the TPD Editor provides the ability to look at the process operations and make changes to them.
Options for editing a process op may include:
In one embodiment, the TPD Editor provides the ability to display the full topology that is loaded when the Editor is launched.
In one embodiment, the Telios Director provides the ability to add a unit's barcode to the Director inventory. The inventory represents the plates that the system has for processes. Before a process can run, the plates involved are added to this inventory (e.g., through the Inventory Manager in addition to being in the Process Inventory File, and in the Driver inventory). The Inventory Manager includes the options to: send a storage device's inventory to the director, load an inventory file, or harmonize the Director inventory to a storage device's inventory.
The Telios Director may provide the ability to select a unit in the inventory array. This is accomplished by choosing Unit Inventory Control. (Unit Inventory represents all the plates that the system has). This displays the Unit ID, Home Location, Lid status, Trace Array and Unit Information. A scroll box below the “Lid?” status bar scrolls through the selected unit's trace array.
The Telios Director may provide the ability to display the Unit Inventory array. This is accomplished by populating the ‘UnitID’ in the left control section with the unit of interest. Press the Go to Unit button to populate the Unit Inventory array in the right control section. This shows where the home location is in and below all the trace entries which have been logged for that unit. The trace cluster has several different data types outlining what occurred for that op. Below is the unit information array where data file paths and virtual parameters are associated with units.
The Telios Director may provide the ability update the lid status, trace information, and unit information. The steps to accomplish this are: populate the ‘UnitID’ in the left control section with the unit of interest; press the Go to Unit button to populate the into the Unit Inventory array in the right control section; and in the left section change the lid status, trace information, and unit information. After populating the appropriate fields, select the button(s) at the top that correspond to the change (UpdateUnitInfoString, UpdateTrace, UpdateLid). Under “Unit Information,” FlattenString=associate virtual information in different parts of the array to recall it to use it in different parts of processes and UnitInfoString=associate data to a unit (path to the data that was generated for this particular unit). When a plate is done and a data file should be sent to a different location, steps can be used to recall this piece of information to manipulate.
In one embodiment, the Telios Director provides the ability to display information about the robotic system and manually control an instrument's driver from the director. This can be implemented through a topology tab, an example of which is shown in
TopologyArray Panel—Users can scroll through the topology array using the top left scroll box to see each instrument integrated on the working director.
DirIfClusterArray Panel—This array allows users to select an instrument in the system topology to display its driver interface cluster.
InstrumentControlPanel Button—Produces a pop-up window of the currently displayed instrument's driver instrument parameters. From this window, the user can control the instrument, sending it the same commands available through the driver.
Acknowledge Complete—Button to free the instrument and allow the director to move on.
SystemInfo Panel—Displays the System Id (name of the system), System Type, Version number of the Director, and the Labview Project ID.
Director Start Time Panel—The time and date the director interface was opened.
Telios Notifications Panel: The Telios Director provides the ability to configure error notifications and the corresponding email distribution list.
System Messages Panel—Displays any system messages from the system.
Exit Director Button—Only active when director is suspended. Produces a user dialog box confirming the shutdown of the director interface.
LaunchWatchDog Button
In one embodiment, the Telios Director provides the ability to load and configure a process through a process configuration tab.
In one embodiment, the Telios Director provides the ability for the operator to observe the running processes using a process operation tab.
The illustrated embodiment of the process operations tab also includes a FuncUnitArray section that displays an overview of each running functional unit. This overview may contain:
The illustrated embodiment of the process operations tab also includes an OpArray section that displays updated details about the operational state for a selected functional unit. The OpArray section may include:
In one embodiment, the OpState parameter can take the following values:
In one embodiment, the Telios Director provides the ability to display the functional units and their status when a process is running in a FunctionalUnits table tab.
In one embodiment, the Telios Director provides the ability to remove or release resources in a Resources tab.
In one embodiment, the Telios Director provides the ability to clear errors and skip states. This functionality may be provided by buttons in the user interface. These buttons should be used only when the system is ready to continue running after an error has been manually recovered (such as a crash). Examples of such buttons include:
In one embodiment, the Telios Director provides the ability to shutdown the system. First the system is suspended, and then “Exit” is selected from the System Topology tab. The Director updates the TeliosSystemInventory.csv file with the most current inventory when shutdown. If this file is open when shutting down, the Director will remain open and send an error message to close the file before continuing. The instruments drivers can also be closed and the instruments shutdown, if desired.
Appendix A, which makes up a part of this disclosure and specification, includes additional details of an example use case of Telios, according to one embodiment. Note that Appendix A describes specific embodiments by way of example only. Any feature that is described as important, critical, essential, or otherwise required should be considered to only be required in that embodiment. Other embodiments may not include such elements.
In the embodiment shown in
The types of computers used by the entities within the networked computing environment 100 can vary depending upon the embodiment and the processing power required by the entity. Furthermore, the computers can lack some of the components described above, such as keyboards 510, graphics adapters 512, and displays 518.
Some portions of above description describe the embodiments in terms of algorithmic processes or operations. These algorithmic descriptions and representations are commonly used by those skilled in the computing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs comprising instructions for execution by a processor or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of functional operations as modules, without loss of generality.
As used herein, any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. Similarly, use of “a” or “an” preceding an element or component is done merely for convenience. This description should be understood to mean that one or more of the elements or components are present unless it is obvious that it is meant otherwise.
Where values are described as “approximate” or “substantially” (or their derivatives), such values should be construed as accurate +/−10% unless another meaning is apparent from the context. From example, “approximately ten” should be understood to mean “in a range from nine to eleven.”
As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the described subject matter is not limited to the precise construction and components disclosed. The scope of protection should be limited only by any claims that ultimately issue.
Number | Date | Country | |
---|---|---|---|
20240133907 A1 | Apr 2024 | US |
Number | Date | Country | |
---|---|---|---|
63418438 | Oct 2022 | US |