Test and measurement instruments need to be set up to make a measurement or generate an output, and to plot the results. This can be done by manually interacting with the physical instrument, such as turning a knob or pushing some buttons on the instrument itself. This manual interaction can become repetitive and time-consuming, so users find ways to automate the process.
One form of automation is to write software for controlling an instrument and analyzing the result. However, this approach requires programming expertise on the part of the user. The user must have sufficient knowledge of the relevant programming language (e.g. C, C++, C#, etc.) to write the proper commands in software.
Some visual programming languages exist that attempt to reduce the complexity involved in writing software for an instrument or system of instruments. For example, National Instruments sells a package called LabView, and Agilent Technologies, Inc. sells one called VEE. LabView and VEE are visual programming languages that represent a software program as a set of interconnected blocks. Users visually manipulate connections between the blocks to control the acquisition and analysis of data. When a sample program for a desired measurement/output and analysis has already been written in such a language, it is relatively simple for a user to make some modifications for an easy customization. However, if no sample program exists, the user must write her own program from scratch. This can be time consuming.
Therefore, it is desirable to reduce the time and difficulty involved with automating control of an instrument.
Plot-driven measurement software allows a user to control a test and measurement instrument via interaction with a graphical user interface (GUI). A user indicates on a plot outline in the GUI what measurement should be executed to acquire data. The plot outline is translated by the software into a instruction set to the instrument, which carries out the instruction set to execute the measurement and acquire the desired data. The resulting data is displayed on the plot outline. In this manner, the user can control an instrument without needing any special visual or textual programming knowledge.
The plot-driven measurement software 13 on computer 12 sends instructions to and receive messages and/or data from the instrument 16 via a communication channel 20. The instrument 16 acquires data from or generates signals to the DUT 18 through a test channel 22. Communication channel 20 and test channel 22 may be physical connections (e.g. cables or wires) or wireless connections. Although the computer 12, display 14, and instrument 16 are shown as separate distinct devices in the figure, any of the devices can be integrated with the others. For example, the computer 12, display 14, and instrument 16 may all be integrated as one device. The display 14, computer 12, instrument 16, and DUT 18 may also be separate devices in completely different locations. Although
The capabilities of the instrument 15 which will depend on the type of instrument used. For example, if the instrument 15 is a digital multimeter, its capabilities include measuring the voltage, current, resistance, etc. of the DUT 18. If the instrument 15 is a signal generator, its capabilities include generating sine waves, square waves, modulated waveforms, etc. to send to the DUT 18. These two instruments are listed as examples only—any other instrument having capabilities compatible with the plot-driven measurement software 13 may also be used. Such instruments include, but are not limited to: digital multimeters, function generators, network analyzers, spectrum analyzers, power supplies, frequency counters, RF signal generators, mass spectrometers, DNA microarray scanners, chromatographs, and other instruments that generate or acquire data that may need to be plotted.
The plot outline 26 is an empty plot frame that initially has no data showing. The plot outline 26 includes at least one plot variable also displayed on the plot outline 26. In the example of
A user needs to assign values to the plot variables on the plot outline 26 to make a measurement with the instrument 16. In the example of
For example, suppose a user wishes to measure the voltage at the DUT 18 over time. To the Y-axis of the graph 28, the user would assign the capability of “Voltage” as shown in the capability list 24. To the X-axis of the graph 28, the user can assign a range of time over which the desired measurement should take place, e.g. 0-60 seconds. Or, the time range can be left open to obtain an ongoing measurement.
The assignments of values to the plot variables can be done in various ways. In one embodiment, the user can click and drag selected capabilities from the capability list 24 onto the desired plot variable to make the assignment. Refer to
It should be obvious to one of ordinary skill in the art that there are many other ways to assign values to the plot variables in the plot outline 26. For example, the user could select from a pull-down menu of available options to assign a capability to the plot variable in question. The user can also directly type in the desired value to the plot variables, using a keyboard or other data input device. The user could also write the capability on the plot with a mouse and keyboard combination, or with a stylus. In such an example, the plot-driven measurement software 13 would need to include character recognition to link a variable to a capability. Instead of assigning the capability within the GUI 15, the user could also specify the equivalent plot outline in a command line, in a plot-driven measurement programming language, or as calls to functions in an existing programming language.
Once the user has assigned the needed values to the plot variables, the plot outline 26 and its variable values are translated into an instruction set that is sent to the instrument 16 via the communication channel 22 (seen in
Translating the plot outline 26 into an instruction set requires a mapping between a capability of the instrument 16, and the instructions needed to configure and execute the capability. Table 1 below shows an exemplary table mapping between some capabilities of a digital multimeter instrument and its respective instructions for configuration and execution.
The examples in Table 1 follow the Standard Commands for Programmable Instrumentation (SCPI) format. The parameters to each command are shown between the angle brackets. The parameters between square brackets are optional. Also, although only a single command is shown per capability in Table 1, there may be multiple commands associated with each capability. Such a mapping can be provided by the manufacturer of the instrument or a third party having knowledge of the instruments capabilities. A mapping can also be generated by the user of the instrument 16. The syntax of instructions for a particular instrument are highly instrument-dependent, so the instructions shown in Table 1 are purely exemplary.
The instrument 16 receives the instruction set from the computer 12 and executes the instruction set. The data gathered by the instrument 16 from executing the instruction set is sent back to the computer 12 and the plot-driven measurement software 13. The plot-driven measurement software 13 fills in the plot outline 26 with the gathered data.
More than one instrument can be controlled using plot-driven measurement software.
In the exemplary plot outline 26 of
When this plot outline 26 is translated into an instruction set, instructions are generated for both the function generator and the digital multimeter. The instructions for the function generator will instruct it to sweep in values from 50 MHz to 100 MHz. The instructions to the digital multimeter will tell it to measure voltage of the DUT 18 at a given frequency of the function generator. The results of such a measurement are also plotted on the plot outline 26.
Some instrument capabilities may have or need additional setup or configuration beyond what is indicated by the plot variables on a plot outline. Such additional configuration can be handled by allowing the user to enter additional input with a configuration prompt.
Derived quantities that are not listed as instrument capabilities can also be measured.
A user fills in a plot outline 26 with the capabilities and configuration desired from the instrument(s). The plot input parser 41 extracts the capabilities and configuration data entered by the user, and sends it to the input translator 42.
The input translator 42 translates the capabilities and configuration data into an instruction set 44 that is sent to the instrument(s). The input translator 42 utilizes an instruction mapping, such as the example of Table 1, to generate the instruction set 44. The instruction set 44 contains the instructions needed to configure and execute the instrument capabilities selected by the user in the plot outline 26. The instruction set 44 is sent to the instrument(s) for execution. If the capability and configuration data extracted from the plot outline 26 includes a user-created equation as described in
The data translator 43 receives measurement data 46 from the instrument(s) executing the instruction set 44. The data translator 43 translates the measurement data 46 into internal programming data for displaying the measurement data 46 in the GUI 15. The output of the data translator 43 is sent to the equation interpreter 50, which performs the mathematical calculations necessary to generate the results of any user-created equations, if needed.
The plot manager 45 manages the display seen by the user in the GUI 15. It plots the measurement data received from the instrument(s), or the results of a user-created equation calculated on the measurement data.
The plot-driven measurement software 13 can be written using almost any programming language, including but not limited to: C, C++, Java, C#, Visual Basic, Matlab, and LabVIEW. The software 13 can interface with other software programs. For example, software programs such as National Instruments Max (available from National Instruments Corporation) and Agilent Connection Expert (available from Agilent Technologies, Inc.) allow connected instruments to be automatically detected by the computer. The plot-driven measurement software 13 can utilize such available software to present the available instruments to the user. The software 13 can be stored on any computer-readable medium, including but not limited to: compact disk (CD), digital video disc (DVD), memory card, hard disk drive.
In step 60, display an instrument capability within a GUI.
In step 62, display a plot outline in the GUI, the plot outline having a plot variable. The plot outline can include, but is not limited to: graphs (2-D, 3-D, etc), pie charts, etc. The plot variable can include, but is not limited to: an axis of a graph.
In step 64, assign the capability to the plot variable within the GUI. This can be done in the GUI by a user. For example, the user can manipulate a pointer within the GUI to “click-and-drag” the capability onto the plot variable. Assigning a capability can also include assigning an equation containing the capability.
In step 66, determine if any additional configuration is needed to execute the capability. If additional configuration is needed, continue to step 67. If no additional configuration is needed, then continue to step 68.
In step 67, enter any additional configuration. For example, if a range of values is needed, or if a setup parameter is needed, it should be entered.
In step 68, translate the plot outline (including any additional configuration, if needed) into an instruction set and send to the instrument to execute. The translation can be done by referencing an instruction mapping which maps a capability of an instrument to the necessary instructions to configure and execute the capability.
In step 70, receive data from the instrument resulting from executing the instruction set.
In step 72, determine whether any equations were entered into the plot outline. If there were equations entered, then continue to step 73. If no equations were entered then continue to step 75.
In step 73, if equations were entered into the plot outline, calculate the equation using the data received.
In step 74, display the results from calculating the equation in step 73.
In step 75, if no equations were entered into the plot outline, then display the data as received from the instrument on the plot outline.
Although the present invention has been described in detail with reference to particular embodiments, persons possessing ordinary skill in the art to which this invention pertains will appreciate that various modifications and enhancements may be made without departing from the spirit and scope of the claims that follow.