Computer programs and computer-implemented methods for monitoring the progress and properties of parallel chemical reactions. The invention repeatedly receives a measured value or values associated with the contents of each of a plurality of reactor vessels and displays the measured over the course of...http://www.google.com/patents/US6489168?utm_source=gb-gplus-sharePatent US6489168 - Analysis and control of parallel chemical reactions

Computer programs and computer-implemented methods for monitoring the progress and properties of parallel chemical reactions. The invention repeatedly receives a measured value or values associated with the contents of each of a plurality of reactor vessels and displays the measured over the course of a combinatorial chemical reaction. Reaction parameters associated with individual reactor vessels are changed in response to the value measured during the reaction. Reaction parameters include temperature, pressure, stirring speed. The reaction occurring in one or more reactor vessels is quenched in response to values measured during the reaction. The measured values are used to calculate experimental results including temperature change, pressure change, percent conversion of starting material, and viscosity. The measured values and experimental results are displayed. In another aspect, the invention features a method for controlling a combinatorial chemical reactor. The method includes receiving set points for properties associated with the reaction environment in multiple reactor vessels, measuring experimental values associated with each reactor vessel, displaying the experimental values, and changing the vessels' reaction environment in response to input set points and changing experimental values. In another aspect, the invention features a reactor control system for monitoring and controlling a parallel chemical reaction. The system includes modules for providing control signals to a parallel chemical reactor, receiving measured values from the parallel chemical reactor and calculating experimental results from the measured values, and for receiving reaction parameters from the user and displaying the set of measured values and the calculated values.

Images(11)

Claims(38)

What is claimed is:

1. A method of controlling a combinatorial chemical reactor, the reactor comprising a plurality of reactor vessels, each vessel having a reaction environment, the method comprising the steps of:

receiving a set point for a property associated with each vessel's reaction environment;

measuring the property for each vessel's reaction environment to obtain measured values;

simultaneously displaying the measured values associated with the contents of each of the plurality of reactor vessels in a tabular array corresponding to the plurality of reactor vessels; and

changing the reaction environment in one or more of the plurality of reactor vessels as a function of the set point and the measured values;

terminating a reaction occurring in one or more of the vessels as a function of the set point and the measured values; and

displaying a histogram of the measured values simultaneously with the displaying of the tabular array.

2. A method of monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels having a sensor providing measured values relating to a parameter of each of the plurality of reactor vessels, said method comprising the steps of:

(a) receiving measured values associated with the contents of each of the plurality of reactor vessels during the course of the reactions;

(b) providing a first window displaying in tabular form the received measured values associated with the contents of each of the plurality of reactor vessels;

(c) providing a second window displaying in graphical form the received measured values associated with the contents of each of the plurality of reactor vessels; and

(d) selectively displaying the first and second windows in response to a selection by a user.

3. A method of monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels having first and second sensors associated therewith providing first and second signals indicative of first and second properties, respectively, of the reaction in each of the plurality of vessels, said method comprising the steps of:

(a) measuring values corresponding to the first and second signals provided by the first and second sensors so that the measured values correspond to the first and second properties of the reaction in each of the plurality of vessels;

(b) receiving the measured value associated with each of the first and second sensors of each of the plurality of reactor vessels;

(c) simultaneously displaying the received measured values corresponding to a selected one of the first and second properties of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the selected property of the reaction in each of the plurality of reactor vessels during the course of the reactions; and

(d) repeating steps (a), (b), and (c) multiple times for monitoring variations in the selected property in each of the plurality of reactor vessels during the course of the reactions.

4. The method of claim 3, wherein the step of receiving the measured value comprises receiving a set of values for a plurality of reaction conditions associated with each of the plurality of reactor vessels.

5. The method of claim 3 wherein the step of simultaneously displaying comprises the steps of displaying the received measured values in a tabular array corresponding to the plurality of reactor vessels and displaying a graphical representation of the received measured values such that the tabular array and the graphical representation are simultaneously displayed.

6. The method of claim 3, further comprising the step of:

quenching a catalyst in one of the plurality of reactor vessels in response to the received measured value associated with the contents of the one reactor vessel.

7. The method of claim 3 further comprising the step of:

using the received measured values to calculate a change in value of a particular parameter for one of the plurality of reactor vessels.

8. The method of claim 7, wherein the calculated change comprises at least one of the following: temperature change, pressure change, change in percent conversion of starting material and viscosity change.

9. The method of claim 7, further comprising the step of displaying the calculated change simultaneously with displaying the received measured values.

10. The method of claim 3, further comprising the steps of:

providing a first window displaying the received measured values corresponding to the first signals associated with the contents of each of the plurality of reactor vessels;

providing a second window displaying the received measured values corresponding to the second signals associated with the contents of each of the plurality of reactor vessels;

selectively displaying the first and second windows in response to a selection by a user;

controlling a parameter of each of the reactor vessels; and

changing the parameter associated with one of the plurality of reactor vessels in response to operator input during the course of the reactions so that variations in each reaction resulting from the changed parameter are monitored and displayed for each of the plurality of reactor vessels during the course of the reactions.

11. A method of monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels having a sensor associated therewith providing a sequence of signals indicative of a property of the reaction in each of the plurality of vessels, said method comprising the steps of:

(a) measuring values corresponding to the sequence of signals provided by the sensor so that the measured values correspond to the property of the reaction in each of the plurality of vessels;

(b) receiving the measured value associated with the sensor of each of the plurality of reactor vessels;

(c) simultaneously displaying the received measured values corresponding to the property of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the property of the reaction in each of the plurality of reactor vessels during the course of the reactions; and

(d) repeating steps (a), (b), and (c) multiple times for monitoring variations in the property in each of the plurality of reactor vessels during the course of the reactions;

(e) controlling a parameter of each of the reactor vessels during the course of the reactions; and

(f) changing the parameter associated with one or more of the plurality of reactor vessels during the course of the reactions in response to operator input during the course of the reactions so that variations in the property resulting from the changed parameter are monitored and displayed for each of the plurality of reactor vessels during the course of the reactions.

12. The method of claim 11, wherein the changing step maintains the reactor vessel at a predetermined set point, and wherein the control parameters comprise at least one parameter selected from the following group: temperature, pressure and motor speed.

13. The method of claim 11 wherein the step of simultaneously displaying comprises the steps of displaying the received measured values in a tabular array corresponding to the plurality of reactor vessels and displaying a graphical representation of the received measured values such that the tabular array and the graphical representation are simultaneously displayed.

14. The method of claim 11, wherein step (d) is performed at a predetermined sampling rate.

15. The method of claim 11, further comprising the step of:

quenching a catalyst in at least one of the plurality of reactor vessels in response to the received measured value associated with the contents of the one reactor vessel.

16. The method of claim 11, further comprising the step of:

using the received measured values to calculate a change in value of a particular parameter for at least one of the plurality of reactor vessels.

17. The method of claim 16, wherein the calculated change comprises at least one of the following: temperature change, pressure change, change in percent conversion of starting material and viscosity change.

18. The method of claim 16, further comprising the step of displaying the calculated change simultaneously with displaying the received measured values.

19. The method of claim 11 further comprising the step of:

receiving a set point for the property associated with each vessel's reaction environment; and

wherein the step of changing comprises changing the reaction environment in one or more of the plurality of reactor vessels as a function of the set point and the measured values.

20. The method of claim 19, wherein the step of changing the reaction environment in one or more of the plurality of vessels comprises the step of terminating a reaction occurring in one or more of the vessels, the set point comprises a conversion target, and wherein the measured values comprise a change in percent conversion of starting material.

21. The method of claim 20 wherein the step of simultaneously displaying comprises the steps of displaying the received measured values in a tabular array corresponding to the plurality of reactor vessels and displaying a graphical representation of the received measured values such that the tabular array and the graphical representation are simultaneously displayed.

22. The method of claim 21 wherein the graphical representation comprises a histogram.

23. The method of claim 11 wherein an additional sensor is associated with each of the plurality of vessels for providing an additional sequence of signals indicative of an additional property of the reaction in each of the plurality of vessels, said method comprising the steps of:

(g) measuring values corresponding to the additional sequence of signals provided by the additional sensor so that the measured values correspond to the additional property of the reaction in each of the plurality of vessels;

(h) receiving the measured value associated with the additional sensor of each of the plurality of reactor vessels;

(i) simultaneously displaying the received measured values corresponding to the additional property of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the additional property of the reaction in each of the plurality of reactor vessels during the course of the reactions; and

(j) repeating steps (g), (h), and (i) multiple times for monitoring variations in the additional property in each of the plurality of reactor vessels during the course of the reactions wherein variations in the additional property resulting from the changed parameter are monitored and displayed for each of the plurality of reactor vessels during the course of the reactions.

24. A computer program on a computer-readable medium for monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels having first and second sensors associated therewith providing first and second signals indicative of first and second properties, respectively, of the reaction in each of the plurality of vessels, said computer program comprising instructions for:

(a) measuring values corresponding to the first and second signals provided by the first and second sensors so that the measured values correspond to the first and second properties of the reaction in each of the plurality of vessels;

(b) receiving the measured value associated with each of the first and second sensors of each of the plurality of reactor vessels;

(c) simultaneously displaying the received measured values in a tabular array corresponding to a selected one of the first and second properties of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the selected property of the reaction in each of the plurality of reactor vessels during the course of the reactions; and

(d) repeating steps (a), (b), and (c) multiple times for monitoring variations in the selected property in each of the plurality of reactor vessels during the course of the reactions.

25. The computer program of claim 24, further comprising instructions for:

changing a parameter associated with at least one of the plurality of reactor vessels in response to the received measured value.

26. The computer program of claim 21 wherein the instructions for simultaneously displaying the received measured values comprises displaying a graphical representation and a tabular array of the received measured values.

27. A reactor control system for monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels having first and second sensors associated therewith providing first and second signals indicative of first and second properties, respectively, of the reaction in each of the plurality of vessels, said system comprising:

(a) a data analysis module for measuring values corresponding to the first and second signals provided by the first and second sensors so that the measured values correspond to the first and second properties of the reaction in each of the plurality of vessels and for receiving the measured value associated with each of the first and second sensors of each of the plurality of reactor vessels;

(c) a display module for simultaneously displaying the received measured values corresponding to a selected one of the first and second properties of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the selected property of the reaction in each of the plurality of reactor vessels during the course of the reactions; and

(d) a system control module for controlling parameters of each of the plurality of reactor vessels.

28. The reactor control system of claim 27, wherein the display module simultaneously displays the received measured values in a tabular array corresponding to the plurality of reactor vessels.

29. The system of claim 28, wherein the display module also displays a graphical representation of the received measured values, and the tabular array and the graphical representation are simultaneously displayed.

30. The reactor control system of claim 27 wherein the system control module changes the control signals in response to the received measured values.

31. A system for monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels, said system comprising:

(a) first and second sensors associated with each of the plurality of vessels for providing first and second signals indicative of first and second properties, respectively, of the reaction in each of the plurality of vessels

(b) a data analyzer measuring values corresponding to the first and second signals provided by the first and second sensors so that the measured values correspond to the first and second properties of the reaction in each of the plurality of vessels;

(c) a display simultaneously displaying the measured values corresponding to a selected one of the first and second properties of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the selected property of the reaction in each of the plurality of reactor vessels during the course of the reactions.

32. The system of claim 31 further comprising a control controlling parameters of the reactor vessels and changing the parameters in response to the measured values.

33. The system of claim 31 wherein the display displays a graphical representation and a tabular array of the received measured values, and wherein the tabular array and the graphical representation are simultaneously displayed.

34. A method of monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, said method comprising the steps of:

(a) measuring first measured values provided by a first set of sensors relating to a first property of the reaction in each of the plurality of reactor vessels;

(b) measuring second measured values provided by a second set of sensors relating to a second property of the reaction in each of the plurality of reactor vessels;

(c) receiving the first measured values associated with the contents of each of the plurality of reactor vessels during the course of the reactions;

(d) receiving the second measured values associated with the contents of each of the plurality of reactor vessels during the course of the reactions;

(e) providing a first window displaying the first received measured values associated with the contents of each of the plurality of reactor vessels;

(f) providing a second window displaying the second received measured values associated with the contents of each of the plurality of reactor vessels;

(g) selectively displaying the first and second windows in response to a selection by an operator for simultaneously monitoring variations in the first and second properties of the reaction in each of the plurality of reactor vessels during the course of the reactions;

(h) controlling a parameter of each of the reactor vessels; and

(i) changing the parameter associated with one of the plurality of reactor vessels in response to operator input during the course of the reactions so that variations in the first and second properties resulting from the changed parameter are monitored and displayed in each of the plurality of reactor vessels during the course of the reactions.

35. The method of claim 34 wherein the first property is temperature and the first set of sensors is a set of temperature sensors associated with the reactor vessels, and wherein the second property is pressure and the second set of sensors is a set of pressure sensors associated with the reactor vessels.

36. A method of monitoring a combinatorial chemistry experiment during which a plurality of reactions are simultaneously occurring substantially independent of each other in a plurality of reactor vessels, respectively, each of the plurality of vessels having a sensor associated therewith providing a sequence of signals indicative of a property of the reaction in each of the plurality of vessels, said method comprising the steps of:

(a) measuring values corresponding to the sequence of signals provided by the sensor so that the measured values correspond to the property of the reaction in each of the plurality of vessels;

(b) receiving the measured value associated with the sensor of each of the plurality of reactor vessels;

(c) displaying the received measured values corresponding to the property of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the property of the reaction in each of the plurality of reactor vessels during the course of the reactions;

(d) receiving from an operator a designation of one of the reactor vessels; and

(e) displaying additional information relating to the reaction of the designated reactor vessel.

37. The method of claim 36 further comprising:

providing a first window displaying the received measured values associated with each of the plurality of reactor vessels; and

providing a second window displaying synthesis information relating to the reaction in the designated reactor vessel.

38. The method of claim 36 wherein an additional sensor is associated with each of the plurality of vessels for providing an additional sequence of signals indicative of an additional property of the reaction in each of the plurality of vessels, said method comprising the steps of:

(f) measuring values corresponding to the additional sequence of signals provided by the additional sensor so that the measured values correspond to the additional property of the reaction in each of the plurality of vessels;

(g) receiving the measured value associated with the additional sensor of each of the plurality of reactor vessels; and

(h) simultaneously displaying the received measured values corresponding to the additional property of the reaction in each of the plurality of reactor vessels for simultaneously monitoring the additional property of the reaction in each of the plurality of reactor vessels during the course of the reactions.

Description

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of commonly assigned, co-pending U.S. patent application Ser. No. 09/211,982, filed Dec. 14, 1998, which is a continuation in part of U.S. application Ser. No. 09/177,170, filed Oct. 22, 1998, which claims the benefit of U.S. Provisional Application No. 60/096,603, filed Aug. 13, 1998. All three of the foregoing applications are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

The present invention relates to methods and computer programs for rapidly screening and characterizing an array of materials.

In combinatorial chemistry, a large number of candidate materials are created from a relatively small set of precursors and subsequently evaluated for suitability for a particular application. As currently practiced, combinatorial chemistry permits scientists to explore systematically the influence of structural variations in candidates by dramatically accelerating the rates at which they are created and evaluated. Compared to traditional discovery methods, combinatorial methods sharply reduce the costs associated with preparing and screening each candidate.

Combinatorial chemistry has revolutionized the process of drug discovery. One can view drug discovery as a two-step process: acquiring candidate compounds through laboratory synthesis or through natural products collection, followed by evaluation or screening for efficacy. Pharmaceutical researchers have long used high-throughput screening (HTS) protocols to rapidly evaluate the therapeutic value of natural products and libraries of compounds synthesized and cataloged over many years. However, compared to HTS protocols, chemical synthesis has historically been a slow, arduous process. With the advent of combinatorial methods, scientists can now create large libraries of organic molecules at a pace on par with HTS protocols.

Recently, combinatorial approaches have been used for discovery programs unrelated to drugs. For example, some researchers have recognized that combinatorial strategies also offer promise for the discovery of inorganic compounds such as high-temperature superconductors, magnetoresistive materials, luminescent materials, and catalytic materials. See, for example, co-pending U.S. patent application Ser. No. 08/327,513 “The Combinatorial Synthesis of Novel Materials” (published as WO 96/11878) and co-pending U.S. patent application Ser. No. 08/898,715 “Combinatorial Synthesis and Analysis of Organometallic Compounds and Catalysts” (a version of which has been published as WO 98/03251), which are all incorporated herein by reference.

SUMMARY OF THE INVENTION

The present invention provides computer programs and computer-implemented methods for monitoring the progress and properties of parallel chemical reactions.

In general, in one aspect, the invention features a method of monitoring a combinatorial chemical reaction. The method includes (a) receiving a measured value associated with the contents of each of a plurality of reactor vessels; (b) storing the measured values in a memory; and (c) repeating steps (a) and (b) multiple times over the course of the combinatorial chemical reaction.

Implementations of the invention can include one or more of the following advantageous features. The measured values include a set of values for a number of reaction conditions associated with each of the reactor vessels. Step (c) is performed at a predetermined sampling rate. The method also includes changing a reaction parameter associated with one of the reactor vessels in response to the measured value to maintain the reactor vessel at a predetermined set point. the reaction condition is temperature. The reaction condition is pressure. The reaction condition is motor speed. The method also includes quenching a catalyst in one of the reactor vessels in response to the measured value associated with the contents of the reactor vessel. The method also includes using the measured value to calculate an experimental value for one of the reactor vessels. The experimental variable is a change in temperature. The experimental variable is a change in pressure. The experimental variable is percent conversion of starting material. The experimental variable is viscosity. The method also includes displaying the experimental variable.

In general, in another aspect, the invention features a method for controlling a combinatorial chemical reactor including multiple reactor vessels, each containing a reaction environment. The method includes receiving a set point for a property associated with each vessel's reaction environment; measuring a set of experimental values for the property for each vessel; storing the set of experimental values in a memory; and changing the reaction environment in one or more of the plurality of reactor vessels in response to the set point and a change in one or more of the set of experimental values.

Implementations of the invention can include one or more of the following advantageous features. Changing the reaction environment includes terminating a reaction occurring in a reactor vessel, the set point is a conversion target, and the change in an experimental value is a change in percent conversion of starting material. A graphical representation of the set of experimental values is displayed. The graphical representation is a histogram.

In general, in another aspect, the invention features a computer program on a computer-readable medium for monitoring a combinatorial chemical reaction. The program includes instructions to (a) receive a measured value associated with the contents of each of a plurality of reactor vessels; (b) store the measured values in a memory, and (c) repeat steps (a) and (b) multiple times during the course of the combinatorial chemical reaction.

Implementations of the invention can include one or more of the following advantageous features. The computer program includes instructions to change a reaction parameter associated with one of the reactor vessels in response to the measured value to maintain the reactor vessel at a predetermined set point.

In general, in another aspect, the invention features a reactor control system for monitoring and controlling parallel chemical reactions. The reactor system includes a control providing control signals to a parallel chemical reactor including multiple reactor vessels; an analyzer receiving a set of measured values from the parallel chemical reactor and calculating one or more calculated values for each of the reactor vessels; and a user interface for receiving at least one of the reaction parameters and displaying at least one of the set of measured values and the calculated values.

Advantages that can be seen in implementations of the invention include one or more of the following. Process variables can be monitored and controlled for multiple elements in a combinatorial library as a chemical reaction progresses. Data can be extracted for each library element repeatedly and in parallel over the course of the reaction, instead of extracting only a limited number of data points for selected library elements. Calculations and corrections can be applied automatically to every available data point for every library element over the course of the reaction. A single experimental value can be calculated from the entire data set for each library element.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a data processing system showing an implementation of the invention.

FIGS. 2a-2d are schematic diagrams of a parallel reactor suitable for use with the invention.

FIG. 3 is a flow diagram of a method of controlling and analyzing a parallel chemical reaction.

FIG. 4 is an illustration of a dialog window for user input of system configuration information.

FIG. 5 is an illustration of a dialog window for user input of data display information.

FIG. 6a is an illustration of a dialog window for user input of parallel reactor parameters.

FIG. 6b is an illustration of a dialog window for user input of a temperature gradient for reactor blocks in a parallel reactor.

FIGS. 7a-7b are illustrations of windows displaying system status and experimental results for a parallel reactor.

FIG. 8 is an illustration of a window displaying experimental results for a single reactor vessel.

FIG. 9 is an illustration of a dialog window for user input of color scaling parameters.

FIG. 10 is a schematic diagram of a computer platform suitable for implementing the data processing system of the invention.

Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

The present invention provides computer programs and computer-implemented methods for monitoring the progress and properties of multiple reactions in situ. It is especially useful for screening and characterizing combinatorial libraries, but offers significant advantages over conventional experimental reactor control and data analysis techniques as well. For example, in situ monitoring of individual reaction mixtures not only provides feedback for process controllers, but also provides data for determining reaction rates, product yields, and various properties of the reaction products, including viscosity and molecular weight, while the experiment is in progress. Moreover, in situ monitoring coupled with tight process control can improve product selectivity, provide opportunities for process and product optimization, allow processing of temperature-sensitive materials, and decrease experimental variability.

One implementation of the invention is illustrated in FIG. 1. Reactor control system 100 sends control data 120 to and receives experimental data 130 from reactor 110. As will be described in more detail below, in one embodiment reactor 110 is a parallel polymerization reactor and the control and experimental data 120 and 130 include set point values for temperature, pressure, time and stirring speed as well as measured experimental values for temperature and pressure. Alternatively, in other embodiments reactor 110 can be any other type of parallel reactor or conventional reactor, and data 120, 130 can include other control or experimental data. System control module 140 provides reactor 110 with control data 120 based on system parameters obtained from the user through user I/O devices 150, such as a display monitor, keyboard or mouse. Alternatively, system control module 140 can retrieve control data 120 from storage 180.

Reactor control system 100 acquires experimental data 130 from reactor 110 and processes the experimental data in system control module 140 and data analysis module 145 under user control through user interface module 170. Reactor control system 100 displays the processed data both numerically and graphically through user interface module 170 and user I/O devices 150, and optionally through printer 190.

Parallel Polymerization Reactor Control and Analysis

FIG. 2a illustrates one embodiment of reactor 110 in more detail. Reactor 110 includes reactor block 200, which contains sealed reactor vessels 210 for receiving reagents. In one embodiment, reactor block 200 is a single unit containing each of reactor vessels 210. Alternatively, reactor block 200 can include a number of reactor block modules, each of which contains a number of reactor vessels 210. Reactor 110 includes a mixing control and monitoring system 220, a temperature control and monitoring system 230 and a pressure control and monitoring system 240. These systems communicate with reactor control system 100.

The details of mixing control and monitoring system 220 are illustrated in FIG. 2b. Each of reactor vessels 210 contains a stirrer 221 for mixing the vessel contents. In one embodiment, stirrers 221 are stirring blades mounted on spindles 222 and driven by motors 223. Separate motors 223 can control each individual stirrer 221; alternatively, motors 223 can control groups of stirrers 221 associated with reactor vessels 210 in separate reactor blocks. In another embodiment, magnetic stirring bars or other known stirring mechanisms can be used. System control module 140 provides mixing control signals to stirrers 221 through interface 226, 228, and one or more motor cards 224. Interface 226, 228 can include a commercial motor driver 226 and motor interface software 228 that provides additional high level motor control, such as the ability to initialize motor cards 224, to control specific motors or motor axes (where each motor 224 controls a separate reactor block), to set motor speed and acceleration, and to change or stop a specified motor or motor axis.

Mixing control and monitoring system 220 can also include torque monitors 225, which monitor the applied torque in each of reactor vessels 210. Suitable torque monitors 225 can include optical sensors and magnetic field sensors mounted on spindles 222, or strain gauges (not shown), which directly measure the applied torque and transmit torque data to system control module 140 and data analysis module 145. Monitors 225 can also include encoders, resolvers, Hall effect sensors and the like, which may be integrated into motors 223. These monitors measure the power required to maintain a constant spindle 222 rotational speed, which is related to applied torque.

Referring to FIG. 2c, temperature control and monitoring system 230 includes a temperature sensor 232 and a heating element 234 associated with each reactor vessel 210 and controlled by temperature controller 236. Suitable heating elements 234 can include thin filament resistance heaters, thermoelectric devices, thermistors, or other devices for regulating vessel temperature. Heating elements can include devices for cooling, as well as heating, reactor vessels 210. System control unit 140 transmits temperature control signals to heating elements 234 through interface 238, 239 and temperature controller 236. Interface 238, 239 can include a commercial temperature device driver 238 implemented to use hardware such as an RS232 interface, and temperature interface software 239 that provides additional high level communication with temperature controller 236, such as the ability to control the appropriate communication port, to send temperature set points to temperature controller 236, and to receive temperature data from temperature controller 236.

Suitable temperature sensors 232 can include thermocouples, resistance thermoelectric devices, thermistors, or other temperature sensing devices. Temperature controller 236 receives signals from temperature sensors 232 and transmits temperature data to reactor control system 100. Upon determining that an increase or decrease in reactor vessel temperature is appropriate, system control module 140 transmits temperature control signals to heating elements 234 through heater controller 236. This determination can be based on temperature parameters entered by the user through user interface module 170, or on parameters retrieved by system control module 140 from storage. System control module 140 can also use information received from temperature sensors 232 to determine whether an increase or decrease in reactor vessel temperature is necessary.

As shown in FIG. 2d, pressure control and monitoring system 240 includes a pressure sensor 242 associated with each reactor vessel 210. Each reactor vessel 210 is furnished with a gas inlet/outlet 244 that is controlled by valves 245. System control module 140 controls reactor vessel pressure through pressure interface 248, 249 and pressure controller 243. Pressure interface 248, 249 can be implemented in hardware, software or a combination of both. Pressure controller 243 transmits pressure control signals to valves 245 allowing gases to enter or exit reactor vessels 210 through inlet/outlet 244 as required to maintain reactor vessel pressure at a level set by the user through user interface 170.

Pressure sensors 242 obtain pressure readings from reactor vessels 210 and transmit pressure data to system control module 140 and data analysis module 145 through pressure controller 243 and interface 248, 249. Data analysis module 145 uses the pressure data in calculations such as the determination of the rate of production of gaseous reaction products or the rate of consumption of gaseous reactants, discussed in more detail below. System control module 140 uses the pressure data to determine when adjustments to reactor vessel pressure are required, as discussed above.

FIG. 3 is a flow diagram illustrating the operation of a reactor control system 100. The user initializes reactor control system 100 by setting the initial reaction parameters, such as set points for temperature, pressure and stirring speed and the duration of the experiment, as well as selecting the appropriate hardware configuration for the experiment (step 300). The user can also set other reaction parameters that can include, for example, a time at which additional reagents, such as a liquid co-monomer in a co-polymerization experiment, should be added to reaction vessels 210, or a target conversion percentage at which a quenching agent should be added to terminate a catalytic polymerization experiment. Alternatively, reactor control system 100 can load initial parameters from storage 180. The user starts the experiment (step 310). Reactor control system 100 sends control signals to reactor 110, causing motor, temperature and pressure control systems 220, 230 and 240 to bring reactor vessels 210 to set point levels (step 320).

Reactor control system 100 samples data through mixing monitoring system 220, temperature monitoring system 230 and pressure monitoring system 240 at sampling rates, which may be entered by the user (step 330). Reactor control system 100 can provide process control by testing the experimental data, including sampled temperature, pressure or torque values as well as elapsed time, against initial parameters (step 340). Based on these inputs, reactor control system 100 sends new control signals to the mixing, temperature and/or pressure control and monitoring systems of reactor 110 (steps 350, 320). These control signals can also include instructions to a material handling robot to add material, such as a reagent or a catalyst quenching agent, to one or more reactor vessels based upon experimental data such as elapsed time or percent conversion calculated as discussed below. The user can also enter new parameters during the course of the experiment, such as changes in motor speed, set points for temperature or pressure, or termination controlling parameters such as experiment time or percent conversion target (step 355), which may also cause reactor control system 100 to send new control signals to reactor 110 (steps 355, 350, 320).

Data analysis module 145 performs appropriate calculations on the sampled data (step 360), as will be discussed below, and the results are displayed on monitor 150 (step 370). Calculated results and/or sampled data can be stored in data storage 180 for later display and analysis. Reactor control system 100 determines whether the experiment is complete—for example, by determining whether the time for the experiment has elapsed (step 380). Reactor control system 100 can also determine whether the reaction occurring in one or more of reactor vessels 210 has reached a specified conversion target based on results calculated in step 360; in that case, reactor control system 100 causes the addition of a quenching agent to the relevant reactor vessel or vessels as discussed above, terminating the reaction in that vessel. For any remaining reactor vessels, reactor control system 100 samples additional data (step 330) and the cycle begins anew. When all reactor vessels 210 in reactor block 200 have reached a specified termination condition, the experiment is complete (step 390). The user can also cause the reaction to terminate by aborting the experiment at any time. It should be recognized that the steps illustrated in FIG. 3 are not necessarily performed in the order shown; instead, the operation of reactor control system 100 can be event driven, responding, for example, to user events, such as changes in reaction parameters, or system generated periodic events.

Analysis of Experimental Data

The type of calculation performed by data analysis module 145 (step 360) depends on the nature of the experiment. As discussed above, while an experiment is in progress, reactor control system 100 periodically receives temperature, pressure and/or torque data from reactor 110 at sampling rates set by the user (step 330). System control module 140 and data analysis module 145 process the data for use in screening materials or for performing quantitative calculations and for display by user interface module 170 in formats such as those shown in FIGS. 7a-7b and 8.

Reactor control system 100 uses temperature measurements from temperature sensors 232 as a screening criteria or to calculate useful process and product variables. For instance, in one implementation, catalysts of exothermic reactions are ranked based on peak reaction temperature reached within each reactor vessel, rates of change of temperature with respect to time, or total heat released over the course of reaction. Typically, the best catalysts of an exothermic reaction are those that, when combined with a set of reactants, result in the greatest heat production in the shortest amount of time. In other implementations, reactor control system 100 uses temperature measurements to compute rates of reaction and conversion.

In addition to processing temperature data as a screening tool, in another implementation, reactor control system 100 uses temperature measurement—combined with proper thermal management and design of the reactor system—to obtain quantitative calorimetric data. From such data, reactor control system 100 can, for example, compute instantaneous conversion and reaction rate, locate phase transitions (e.g., melting point, glass transition temperature) of reaction products, or measure latent heats to deduce structural information of polymeric materials, including degree of crystallinity and branching.

Calorimetric data can be obtained using a reactor 200 made of a material having high thermal conductivity, such as aluminum, stainless steel or brass. High thermal conductivity, accompanied by active heating or cooling using any of the methods described above, help maintain a uniform temperature To throughout the reactor block 200. Reactor vessels 210 are generally made of a material having relatively low thermal conductivity and are insulated to further decrease heat transfer to or from the vessels. Each vessel contains stirring blades 221 to ensure that the contents of the vessels 210 are well mixed and that the temperature within any one of the vessels 210, Tj, is uniform. Each of the vessels contains a thermistor, which serves as a temperature sensor 232, measuring temperature Tj, and a heating element 234 to heat the vessel contents. One can account for non-uniform temperatures within the reactor block 200 by measuring Toj, the temperature of the block 200 in the vicinity of each of the vessels 210, using block temperature sensors. In such cases, Toj, instead of To, is used in the calorimetric calculations described next.

An energy balance around the contents of one of the vessels 210 (jth vessel) yields an expression for fractional conversion Xj, of a key reactant at any time t, assuming that the heat of reaction ΔHrj and the specific heat of the vessel contents CPj are known and are constant over the temperature range of interest: MjcP,jTjt=mo,jΔHr,jXjt+Qin,j-Qout,j.(Eq.1)

In Equation 1, M, is the mass of the contents of the jth vessel; moj is the initial mass of the key reactant; and Qinj is the rate of heat transfer into the jth vessel by processes other than reaction, as for example, by resistance heating of the thermistor. Qoutj is the rate of heat transfer out of the jth vessel, which can be determined from the expression:

Qoutj=UjAj(Tj−To)=UjAjΔTj (Eq. 2)

where Aj is the heat transfer area—the surface area of the jth vessel—and is the heat transfer coefficient, which depends on the properties of the vessel 210 and its contents, as well as the stirring rate. Uj can be determined by measuring the temperature rise ΔTj in response to a known heat input.

Reactor control system 100 can use Equations 1 and 2 to determine conversion from calorimetric data in at least two ways. In a first method, the temperature of the reactor block 200 is held constant, and sufficient heat is added to each of the vessels 210 through thermistor 234 to maintain a constant value of ΔTj. Under such conditions, and after combining Equations 1 and 2, the conversion can be calculated from the expression Xj=1mo,jΔHr,j(UjAjtjΔTj-∫0tfQin,jt),(Eq.3)

where the integral can be determined by numerically integrating the power consumption of the thermistor 234 over the length of the experiment tj. In this implementation, reactor control system 100 method determines the heat output of a reaction under isothermal conditions.

In a second implementation, the temperature of the reactor block 200 is again held constant, but Tj increases or decreases in response to heat produced or consumed in the reaction. Equations 1 and 2 become under such circumstances Xj=1mo,jΔHr,j(MjcP,j(Tf,j-Ti,j+UjAj∫0tfΔTjt).(Eq.4)

In Equation 4, the integral can be determined numerically, and Tfj and Tij are temperatures of the reaction mixture within the jth vessel at the beginning and end of reaction, respectively. Thus, if Tfj equals Tij, the total heat liberated is proportional to ∫0tfΔTjt.

This method is simpler to implement than the isothermal method since it does not require temperature control of individual vessels. However, it can be used only when the temperature change in each of the reaction vessels 210 due to reaction does not significantly influence the reaction under study.

In another implementation, reactor control system 100 calculates the instantaneous rate of disappearance of the key reactant in the jth vessel, −rj, using Equations 1, 3 or 4 because −rj is related to conversion through the relationship -rj=C0,jXjt,(Eq.5)

which is valid for constant volume reactions. The constant Coj is the initial concentration of the key reactant.

Reactor control system 100 can also monitor mixing variables such as applied stirring blade torque in order to determine the viscosity of the reaction mixture and related properties. Reactor control system 100 can use such data to monitor reactant conversion and to rank or characterize materials based on molecular weight or particle size.

The viscosity of a polymer solution depends on the molecular weight of the polymer and its concentration in solution. For polymer concentrations well below the “semidilute limit”—the concentration at which the solvated polymers begin to overlap one another—the solution viscosity η is related to the polymer concentration C in the limit as C approaches zero by the expression

η=(1+C[η])ηs (Eq. 6)

where ηs is the viscosity of the solvent. Essentially, adding polymer to a solvent increases the solvent's viscosity by an amount proportional to the polymer concentration. The proportionality constant [η] is known as the intrinsic viscosity and is related to the polymer molecular weight Mthrough the expression

[η]=[ηo]Mα, (Eq. 7)

where [ηo] and α are empirical constants. In one implementation, reactor control system 100 uses Equation 7, known as the Mark-Houwink-Sakurda (MHS) relation, along with Equation 6, to determine molecular weight from viscosity measurements.

Equation 6 requires concentration data from another source; with polymerization reactions, polymer concentration is directly related to monomer conversion. Reactor control system 100 obtains such data by measuring heat evolved during reaction (see Equations 3 and 4) or, as described below, by measuring the amount of a gaseous reactant consumed during reaction. The constants in the MHS relation are functions of temperature, polymer composition, polymer conformation, and the quality of the polymer-solvent interaction. The empirical constants [ηo] and a have been measured for a variety of polymer-solvent pairs and are tabulated in the literature.

Although Equations 6 and 7 can be used to approximate molecular weight, reactor control system 100 uses in situ measurements of viscosity mainly to rank reaction products as a function of molecular weight. Under many circumstances, the amount of solvent necessary to satisfy the concentration requirement of Equation 6 would slow the rate of reaction to an unacceptable level. Therefore, polymerizations are generally carried out at polymer concentrations above the semidilute limit, where the use of Equations 6 and 7 to calculate molecular weight would lead to large error. Nevertheless, reactor control system 100 can use viscosity to rank reaction products even at concentrations above the semidilute limit because a rise in viscosity during reaction generally reflects an increase in polymer concentration, molecular weight or both. If necessary, one can accurately determine molecular weight from viscosity measurements at relatively high polymer concentration by first preparing temperature-dependent calibration curves that relate viscosity to molecular weight for every polymer-solvent pair produced.

In addition to ranking reactions, in other implementations reactor control system 100 uses viscosity measurements to screen or characterize dilute suspensions of insoluble particles—polymer emulsions or porous supports for heterogeneous catalysts—in which viscosity increases with particle size at a fixed concentration. In the case of polymer emulsions, viscosity can serve as a measure of emulsion quality. For example, solution viscosity that is constant over long periods of time may indicate superior emulsion stability, or viscosity within a particular range may correlate with a desired emulsion particle size. With porous supports, viscosity measurements can be used to identify active catalysts: in many cases, the catalyst support will swell during reaction due to the formation of insoluble products within the porous support.

Viscosity or related properties of the reactant mixtures are monitored by measuring the effect of viscous forces on stirring blade rotation. Viscosity is a measure of a fluid's resistance to a shear force. This shear force is equal to the applied torque Γ needed to maintain a constant angular velocity of the stirring blade. The relationship between the viscosity of the reaction mixture and the applied torque can be expressed as

Γ=Kω(ω,T)η, (Eq. 8)

where Kω is a proportionality constant that depends on the angular frequency ω of the stirring bar, the temperature of the reaction mixture, and the geometries of the reaction vessel and the stirring blade. Kω can be obtained through calibration with solutions of known viscosity.

During a polymerization reaction, the viscosity of the reaction mixture increases over time due to the increase in molecular weight of the reaction product or polymer concentration or both. Reactor control system 100 monitors this change in viscosity by measuring the applied torque and using Equation 8 to convert the measured data to viscosity. In many instances, actual values for the viscosity are unnecessary, and one can dispense with the conversion step. For example, in situ measurements of applied torque can be used to rank reaction products based on molecular weight or conversion, as long as stirring rate, temperature, vessel geometry and stirring blade geometry are about the same for each reaction mixture.

In addition to direct measurement, reactor control system 100 can determine torque indirectly by measuring the phase angle or phase lag between the stirring blade and the driving force or torque. Indirect measurement requires that the coupling between the driving torque and the stirring blade is soft, so that significant and measurable phase lag occurs.

With magnetic stirring, soft coupling occurs automatically. The torque on the stirring bar is related to the magnetic moment of the stirring bar, μ, and the amplitude of the magnetic field that drives the rotation of the stirring bar, H, through the expression

Γ=μH sin θ, (Eq. 9)

where θ is the angle between the axis of the stirring bar (magnetic moment) and the direction of the magnetic field. At a given angular frequency, and for known μ and H, the phase angle θ will automatically adjust itself to the value necessary to provide the amount of torque needed at that frequency. If the torque required to stir at frequency ω is proportional to the solution viscosity and the stirring frequency—a useful approximation—the viscosity can be calculated from measurements of the phase angle using the equation

Γ=μH sin θ=aηω (Eq. 10)

where a is a proportionality constant that depends on temperature and on the geometry of the vessel and the stirring blade. In practice, one may use Equation 8 or a similar empirical expression for the right hand side of Equation 10 if the torque does not depend linearly on the viscosity-frequency product.

Reactor control system 100 can also assess reaction kinetics by monitoring pressure changes due to production or consumption of various gases during reaction. Reactor control system 100 uses pressure sensors 242 to measure changes in pressure in each reactor vessel headspace—the volume within each vessel that separates the liquid reagents from the vessel's sealed cap. During reaction, any changes in the head space pressure, at constant temperature, reflect changes in the amount of gas present in the head space. Reactor system 100 uses this pressure data to determine the molar production or consumption rate ri of a gaseous component since, for an ideal gas at constant temperature, ri=1RTpit(Eq.11)

where R is the universal gas constant and pi is the partial pressure of the ith gaseous component. Reactor control system 100 receives data from temperature sensors 232 that can be used to account for changes in pressure resulting from variations in head space temperature. The ideal gas law or similar equation of state can be used to calculate the pressure correction.

Alternatively, valves 245 are used to compensate for the consumption of a gaseous reactant in a reaction where there is a net loss in moles of gas-phase components. At the beginning of the reaction, valves 245 open to allow gas to enter each of the vessels 210. Once the pressure within each of the vessels, as read by the sensor 242, reaches a predetermined value PH, pressure controller 243 causes valves 245 to close. As the reaction consumes the source gas, the total pressure within each of the vessels 210 decreases. Once the pressure in a particular vessel falls below a predetermined value PL, reactor control system 100, through pressure controller 243, opens the valve 245 associated with the particular vessel, repressurizing it to PH. This process—filling each of the vessels with source gas to PH, allowing the head space pressure to drop below PL, and then refilling the vessels with source gas to PH—is usually repeated many times during the course of the reaction. Furthermore, the total pressure in the head space of each of the vessels 210 is continuously monitored and recorded during the gas fill-pressure decay cycle.

An analogous method can be used to investigate reactions where there is a net gain of gas-phase components. At the beginning of a reaction, all reaction materials are introduced into the vessels 210 and the valves 245 are closed. As the reaction proceeds, gas production results in a rise in head space pressure, which sensors 242 and reactor control system 100 monitor and record. Once the pressure within a particular vessel reaches PH, reactor control system 100 directs the controller 243 to open the appropriate valve 245 to depressurize the vessel. Once the head space pressure falls below PL, reactor control system 100 instructs the controller 243 to close the valve 245. The total pressure is continuously monitored and recorded during the gas rise-vent cycle.

Reactor control system 100 can estimate gas consumption (production) rates from the total pressure data by a variety of methods. One estimate of gas consumption (production) can be made from the slope of the pressure decay (growth) curves obtained when the valve is closed. These data, after converting total pressure to partial pressure based on reaction stoichiometry, can be inserted into Equation 6 to calculate ri, the molar consumption (production) rate. A second estimate can be made by assuming that a fixed quantity of gas enters (exits) the vessel during each valve cycle. The frequency at which the reactor is repressurized (depressurized) is therefore proportional to the gas consumption (production) rate. A third, more accurate estimate can be obtained by assuming a known gas flow rate through the valve. Multiplying this value by the time during which the valve remains open yields an estimate for the quantity of gas that enters or leaves the vessel during a particular cycle. Dividing this product by the time between the next valve cycle—that is, the time it takes for the pressure in the vessel head space to fall from PH to PL—yields an average value for the volumetric gas consumption (production) rate for the particular valve cycle. Summing the quantity of gas added during all of the cycles equals the total volume of gas consumed (produced) during the reaction.

Operation of a Reactor Control System

Referring to FIG. 4, reactor control system 100 receives system configuration information from the user through system configuration window 400, displayed on monitor 150. System configuration window 400 allows the user to specify the appropriate hardware components for an experiment. For example, the user can choose the number of motor cards 224 and the set a number of motor axes per card in motor pane 410. Temperature controller pane 420 allows the user to select the number of separate temperature controllers 236 and the number of reactor vessels (the number of feedback control loops) per controller. In pressure sensor pane 430, the user can set the number of pressure channels corresponding to the number of reactor vessels in reactor 110. The user can also view the preset safety limits for motor speed, temperature and pressure through system configuration window 400.

As shown in FIG. 5, reactor control system 100 receives data display information from the user through system option window 500. Display interval dialog 510 lets the user set the refresh interval for data display. The user can set the number of temperature and pressure data points kept in memory in data point pane 520.

At any time before or during an experiment, the user can enter or modify reaction parameters for each reactor vessel 210 in reactor block 200 using reactor setup window 600, shown in FIG. 6a. In motor setup pane 610, the user can set a motor speed (subject to any preset safety limits), and can also select single or dual direction motor operation. The user can specify temperature parameters in temperature setup pane 620. These parameters include temperature set point 630, turn off temperature 640, sampling rate 650, as well as the units for temperature measurement and temperature controller operation modes. By selecting gradient button 660, the user can also set a temperature gradient, as will be discussed below. Pressure parameters, including a pressure set point and sampling rate, can be set in pressure setup pane 670. Panes 610, 620 and 670 can also display safety limits for motor speed, temperature and pressure, respectively. The values illustrated in FIG. 6a are not intended to limit this invention and are illustrative only. Reactor setup window 600 also lets the user set a time for the duration of the experiment. Reactor setup window 600 lets the user save any settings as defaults for future use, and load previously saved settings.

FIG. 6b illustrates the setting of a temperature gradient initiated by selecting gradient button 660. In gradient setup window 680, the user can set a temperature gradient across reactor 110 by entering different temperature set points 690 for each reactor block module of a multi-block reactor 110. As with other setup parameters, such temperature gradients can be saved in reactor setup window 600.

Referring to FIG. 7a, the user can monitor an experiment in reaction window 700. System status pane 710 displays the current system status, as well as the status of the hardware components selected in system configuration window 400. Setting pane 720 and time pane 730 display the current parameter settings and time selected in reactor setup window 600, as well as the elapsed time in the experiment. Experimental results are displayed in data display pane 740, which includes two dimensional array 750 for numerical display of data points corresponding to each reactor vessel 210 in reactor 110, and graphical display 760 for color display of the data points displayed in array 750. Color display 760 can take the form of a two dimensional array of reactor vessels or three dimensional color histogram 780, shown in FIG. 7b. The color range for two dimensional array 760 and histogram 780 is displayed in legends 770 and 790, respectively. Data display pane 740 can display either temperature data or conversion data calculated from pressure measurements as described above. In either case, the displayed data is refreshed at the rate set in the system options window 500.

By selecting an individual reactor vessel 210 in data display pane 740, the user can view a detailed data window 800 for that vessel, as shown in FIG. 8. Data window 800 provides synthesis information and a graphical display of experimental results, including, for example, temperature, pressure, conversion and molecular weight data for that vessel for the duration of the experiment.

Referring again to FIG. 7b, toolbar 795 lets the user set reactor parameters (by entering reactor setup window 600) and color scaling for color displays 760 and 780. The user can also begin or end an experiment, save results and exit system 100 using toolbar 795. The user can enter any observations or comments in comment box 798. User comments and observations can be saved with experimental results.

Referring to FIG. 9, the user can set the color scaling for color displays 760 and 780 through color scaling window 900. Color scaling window 900 lets the user select a color range corresponding to temperature or conversion in color range pane 910. The user can also set a color gradient, either linear or exponential, through color gradient pane 920. Color scaling window 900 displays the selected scale in color legend 930.

The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language.

Suitable computer programs in modules 140 and 145 can be implemented in classes as set forth in the following tables. (The prefix “o” in a name indicates that the corresponding property is a user-defined object; the prefix “c” in a name indicates that the corresponding property is a collection.)

1. Application Class

Property Table:

Category

Name

Access

Description/Comments

General

ClsName

Get

Class name

AppName

Get

Application name

sRootDir

Get/Let

Root directory of all

system files

bDebugMode

Get/Let

System running mode.

If TRUE, display

message boxes for

errors in addition to

error logging. If

FALSE, log the error to

the log file

DBIsConnected

Get/Let

Whether database is

connected

System

SectionGeneral

Get

General section

Registry

SectionSystemLimits

Get

Section for System Limit

Values

SectionDefaultParam

Get

Section for system

default parameters

ColorScaling

oTempScale

Get

Color Scale object

for temperature data

oViscosityScale

Get

Color Scale object

for viscosity data

oConversionScale

Get

Color Scale object

for conversion data

oMWScale

Get

Color Scale object

for molecule

weight data

Method Table:

Name

Argument List

Return Type

Description/Comments

SaveCnfg

Boolean

Save application config-

urations to the system registry

2. ColorScale Class

Parent Class: Application

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class name

Highest

Get/Let

Highest value

Lowest

Get/Let

Lowest value

GradientType

Get/Let

Type of the gradient between the lowest and

highest to the log file

LegendValues

Get

A collection of legend values

Method Table:

Name

Argument List

Return Type

Description/Comments

SetLegendValues

Recalculate the legend

values according

to the current property

values

GetLegendColor

fValue

long

Get color of the

specified data value

3. ColorLegend Class

Parent Class: ColorScale

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

ColorCount

Get

Number of colors used in the legend

Method Table:

Name

Argument List

Return Type

Description/Comments

GetColorValue

fValue

long

Get color for the

specified data value

4. System Class

Property Table:

Description/

Category

Name

Access

Comments

General

ClsName

Get

ExpID

System Status

Status

Get/Let

Status variable

STATUS_OFF

Get

constant

STATUS_RUN

Get

constant

STATUS_IDLE

Get

constant

STATUS_ERROR

Get

constant

System Timing

oExpTiming

Get

Control and

record the

experiment time

oDisplayTiming

Get

Control the

data display

updating rate

System Alarming

oAlarm

Get

Provide alarm

when system

error occurs

System Components

oMotors

Get

oHeaters

Get

oPressures

Get

Method Table:

Name

Argument List

Return Type

Description/Comments

Run

StopRunning

Archive

5. ExpTiming Class

Parent Class: System

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

TimingByTime

Get/Let

Boolean type

TimingByPressure

Get/Let

Boolean type

TimingByTemperature

Get/Let

Boolean type

TargetTime

Get/Let

System will stop if specified target

value is achieved

TargetPressure

Get/Let

System will stop if specified target

value is achieved

TargetTemperature

Get/Let

System will stop if specified target

value if achieved

ExpDate

Get/Let

Date when experiment starts to run

ExpStartTime

Get/Let

Time when experiment starts to run

ExpEndTime

Get/Let

Time when experiment stop running

ExpElapsedTime

Get/Set

The time passed during the experiment

TimerInterval

Let

Timer used to update the elapsed time

Method Table:

Name

Argument List

Return Type

Description

LoadDefaultExpTiming

boolean

SaveDefaultExpTiming

boolean

6. DisplayTiming Class

Parent Class: System

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

DisplayTimer

Get/Set

Timer used to update the data

TimerIntercal

Get/Let

Method Table:

Name

Argument List

Return Type

Description

SaveDefaultParam

Boolean

7. Alarm Class

Parent Class: System

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

BeepTimer

Set

Timer used to control beep

PauseTimer

Set

Timer used to pause the beep

BeepStatus

Get

A boolean value: FALSE if paused,

otherwise TRUE

BeepPauseTime

Let

Time duration for beep to pause

Method Table:

Name

Argument List

Return Type

Description

TurnOnBeep

Start to beep

TurnOffBeep

Stop beeping

BeepPause

Disable beep

BeepResume

Enable beep

8. Motors Class

Parent Class: System

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

SpeedLimit

Get/Let

Safety Limit

MotorIsOn

Get/Let

Status variable

Card1AxesCount

Get/Let

Axes count in card1

Card2AcesCount

Get/Let

Axes count in card2

oMotorCard1

Get

Motor card object

oMotorCard2

Get

Motor card object

oSpinTimer

Get/Set

Timer for dual spin

FoundDLL

Get

Motion DLL

ErrCode

Get

Error code

Method Table:

Argument

Return

Des-

Category

Name

List

Type

cription

To/From system

LoadDefaultParam

boolean

Registry

SaveDefaultParam

boolean

SaveCardAxesCount

boolean

SaveSystemLimit

boolean

Create/Delete

CreateCard1

iAxesCount

Card Objects

CreateCard2

iAxesCount

DeleteCard1

DeleteCard2

Motor Control

Init

boolean

For all

axes

Spin

iAxis,

boolean

dSpeed

run

boolean

For all

axes

StopRunning

boolean

For all

axes

Archive

ArchiveParam

iFileNo

boolean

9. MotorAxis Class

Parent Class: Motors

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

Parent

Set

Reference to the parent object

MotorID

Get/Let

Motor Axis ID

oCurParam

Get

Reference to current parameter setting

Method Table:

Argument

Name

List

Return Type

Description

GetParamSetting

[index]

MotorParam

Return the last in the

parameter collection

Run

boolean

Add oCurParam to the

Param collection, and

run this motor axis

10. MotorParam Class

Parent Class: Motors

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

Parent

Set

Reference to the parent object

MotionType

Get/Let

Dual or single direction spin

DeltaT

Get/Let

Time duration before changing spin direction

SpinRate

Get/Let

Spin rate in RPM

EffectiveTime

Get/Let

Time the parameters take effect

Method Table:

Name

Argument List

Return Type

Description

PrintParam

iFileNo

Boolean

Print the parameters to file

11. Heaters Class

Parent Class: System

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

oParent

Get

Reference to the parent object

TempLimit

Get/Let

Temperature Safety Limit

SplRateLimit

Get/Let

Sample Rate Limit

CtlrLoopCount

Get/Let

Loop count in controller1

CtlrLoopCount

Get/Let

Loop count in controller2

HeaterIsOn

Get/Let

Status variable

oHeaterCtlr1

Get

Heater controller object as clsHeaterCtlr

oHeaterCtlr2

Get

Heater controller object as clsHeaterCtlr

oData

Get

Data object as clsHeaterData

1DataPointsInMem

Get/Let

Number of data points kept in memory

FoundDLL

Get

RS232 DLL. If found, 1, otherwise −1

ErrCode

Get

Error Code

Method Table:

Argument

Return

Des-

Category

Name

List

Type

criptions

To/From

LoadDefaultParam

boolean

system

Registry

SaveDefaultParam

boolean

SaveCtlrLoopCount

boolean

SaveSystemLimit

boolean

Create/Delete

Create Ctlr 1

iLoopCount

Ctlr Objects

Create Ctlr 2

iLoopCount

Delete Ctlr 1

Delete Ctlr 2

Heater Control

Init

boolean

Open

COM1,

COM2

OutputHeat

boolean

For all

loops

TurnOff

boolean

For all

loops

GetTemp

boolean

For all

loops

SafetyMonitor

Icount,

Check

vData

Temp-

erature

SafetyHandler

Archive

ArchiveParam

iFileNo

boolean

12. HeaterCtlr Class

Parent Class: Heaters

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

Parent

Set

Reference to the parent object

oCurParam

Get

Reference to current parameter setting

Method Table:

Argument

Return

Name

List

Type

Description

AddParamSetting

oParam

boolean

Add the parameter object to

the parameter collection

GetParamSetting

[index]

HeaterParam

Return the last in the

parameter collection

13. HeaterParam Class

Parent Class: HeaterCtlr

Property Table:

Name

Access

Description/Comments

clsName

Get

Class Name

Parent

Set

Reference to the parent object

Setpoint

Get/Let

Setpoint for temperature

SplRate

Get/Let

Sampling Rate (Hz)

EffectiveTime

Get/Let

Time the parameters take effect

Method Table:

Name

Argument List

Return Type

Description

PrintParam

iFileNo

Boolean

Print the parameters to file

14. HeaterData Class

Parent Class: Heaters

Property Table:

Name

Access

Description/Comments

clsName

Get

Class Name

Parent

Set

Reference to the parent object

DataPointsInMem

Let

LoopCount

Let

Total loop count

DataCount

Get

Data point count

cTime

Get

Get time data collection

cTemp

Get

Get temperature data collection

Method Table:

Argument

Return

Name

List

Type

Description

GetData

ByRef fTime,

Boolean

Get current data set, or the data

ByRef vTemp,

set with specified index

[,index]

AddData

fTime, vTemp

Add the data set to the data col-

lections

ClearData

Clear the data collection

WriteToDisk

Write the current data to disk

file

15. Pressures Class

Parent Class: System

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

oParent

Get

Reference to the parent object

PressureLimit

Get/Let

Pressure Safety Limit

SplRateLimit

Get/Let

Sample Rate Limit

ChannelCount

Get/Let

Analog Input channel count

PressureIsOn

Get/Let

Status variable

oData

Get

Data object as clsPressureData

1DataPointsInMem

Get/Let

Number of data points kept in memory

oCWAOP

Get

Object of analog output ActiveX control

oCWAIP

Get

Object of analog input ActiveX control

ErrCode

Get

Error code

Method Table:

Argument

Return

Category

Name

List

Type

Description

To/From

LoadDefaultParam

boolean

System

Registry

SaveDefaultParam

boolean

SaveChannelCount

boolean

SaveDataPointsInMem

SaveSystemLimit

boolean

Pressure

AnalogOutput

boolean

Output Pset

System

Control

GetAIData

boolean

Analog Input

Archive

ArchiveParam

iFileNo

boolean

16. PressureParam Class

Parent Class: Pressures

Property Table:

Name

Access

Description/Comments

clsName

Get

Class Name

Parent

Set

Reference to the parent object

Setpoint

Get/Let

Setpoint for pressure (psi)

SplRate

Get/Let

Sampling Rate (Hz)

EffectiveTime

Get/Let

Time the parameters take effect

Method Table:

Argument

Name

List

Return Type

Description

PrintParam

iFileNo

Boolean

Print the parameters to the file

17. PressureData Class

Parent Class: Pressures

Property Table:

Name

Argument

Access

Description/Comments

clsName

Get

Class Name

Parent

Set

Reference to the parent object

DataPointsInMem

Let

ChannelCount

Let

Total AI channel count

PresCount

Get

Pressure data point count

ConvCount

Get

Conversion data point count

cPresTime

Get

Get time collection for

pressure data

cPressure

Get

Get pressure data collection

cConvTime

iChannelNo

Get

Get time collection for

conversion data

cConversion

iChannelNo

Get

Get conversion data collection

Method Table:

Return

Name

Argument List

Type

Description

GetCurPres

ByRef vPres

Boolean

Get current pressure data

set

GetCurConv

ByRef vConv

Boolean

Get current conversion

data set

AddPres

fTime, vPres

Add the pressure data set

to the pressure data

collections, then

calculate conversions

ClearData

Clear all the data

collections

WritePresToDisk

Boolean

Write the current

pressure data to disk file

WriteConvToDisk

Boolean

Write the current

conversion data to disk

file

18. ErrorHandler Class

Property Table:

Name

Access

Description/Comments

ClsName

Get

Class Name

LogFile

Get/Let

Log file for error messages

Method Table:

Argument

Return

Name

List

Type

Description

SaveConfg

boolean

OpenLogFile

iFileNo

boolean

Open log file with specified file

number for APPEND, lock

WRITE

OpenLogfile

iFileNo

boolean

Open log file with specified file

number for APPEND, lock

WRITE

CloseLogFile

LogError

sModName,

Write error messages to the log

sFuncName,

file, also call DisplayError in

debug mode

iErrNo,

sErrText

DisplayError

sModName,

Show messageBox to display the

sFuncName,

error

iErrNo,

sErrText

Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).

To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer system. The computer system can be programmed to provide a graphical user interface through which computer programs interact with users.

An example of one such type of computer is shown in FIG. 10, which shows a block diagram of a programmable processing system 1000 suitable for implementing or performing the apparatus or methods of the invention. The system 1000 includes a processor 1010, a random access memory (RAM) 1020, a program memory 1030 (for example, a writable read-only memory (ROM) such as a flash ROM), a hard drive controller 1040, and an input/output (I/O) controller 1050 coupled by a processor (CPU) bus 1060. The system 1000 can be preprogrammed, in ROM, for example, or it can be programmed (and reprogrammed) by loading a program from another source (for example, from a floppy disk, a CD-ROM, or another computer).

The hard drive controller 1040 is coupled to a hard disk 1045 suitable for storing executable computer programs, including programs embodying the present invention, and data including the images, masks, reduced data values and calculated results used in and generated by the invention. The I/O controller 1050 is coupled by means of an I/O bus 1070 to an I/O interface 1080. The I/O interface 1080 receives and transmits data in analog or digital form over communication links such as a serial link, local area network, wireless link, and parallel link. Also coupled to the I/O bus 1070 is a display 1090 and a keyboard 1095. Alternatively, separate connections (separate buses) can be used for the I/O interface 1070, display 1090 and keyboard 1095.

The invention has been described in terms of particular embodiments. Other embodiments are within the scope of the following claims. Although elements of the invention are described in terms of a software implementation, the invention may be implemented in software or hardware or firmware, or any combination of the three. In addition, the steps of the invention can be performed in a different order and still achieve desirable results.