|
|
|
| United States Patent | 4914568 |
| Link to this page | http://www.wikipatents.com/4914568.html |
| Inventor(s) | Kodosky; Jeffrey L. (Austin, TX);
Truchard; James J. (Austin, TX);
MacCrisken; John E. (Palo Alto, CA) |
| Abstract | A method for programming a computer system having a display console for
displaying inages to control at least one of a virtual instrument and an
instrument by the steps of displaying on the screen at least one first
function-icon that references at least one first control module for
controlling at least one first function; displaying on the screen at least
one iteration-icon that references iteration control module for
controlling multiple iterations of data flow displaying on the screen at
least one first input variable-icon that references at least one first
input variable; displaying on the screen at least one first output
variable-icon that references at least one first output variable;
assembling on the screen a panel and assembling on the screen a first
acyclic data flow diagram including the at least one first function-icon
and the at least one iteration-icon and the at least one first input
variable-icon and the at least one first output variable-ion, such that
the diagram displays a first procedure for producing at least one value
for the at least one first output variable-icon from at least one value
for the at least one first input variable-icon, and such that the at least
one iteration-icon in the diagram indicates multiple iterations of the at
least one first function in the course of the first procedure. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 4914568 |
|
|
Graphical system for modelling a process and associated method |
|
|
|
|
|
| Publication Date |
April 3, 1990 |
|
|
|
|
|
| Filing Date |
October 24, 1986 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 4695968 Sullivan, II 703/13 Sep,1987 |      Your vote accepted [0 after 0 votes] | | 4677587 Zemany, Jr. 716/20 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4663704 Jones 700/83 May,1987 |      Your vote accepted [0 after 0 votes] | | 4656603 Dunn 715/835 Apr,1987 |      Your vote accepted [0 after 0 votes] | | 4546435 Herbert 717/109 Oct,1985 |      Your vote accepted [0 after 0 votes] | | 4455619 Masui 345/530 Jun,1984 |      Your vote accepted [0 after 0 votes] | | 4315315 Kossiakoff 717/109 Feb,1982 |      Your vote accepted [0 after 0 votes] | | 4064394 Allen 700/84 Dec,1977 |      Your vote accepted [0 after 0 votes] | | 4813013 Dunn 715/763 Dec,1969 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. A method for programming a computer system including means for
displaying images on a screen to control at least one of a virtual
instrument and an instrument, the method comprising the steps of:
providing a class of respective function-icons that reference respective
control means for controlling respective functions;
selecting from the class of function-icons at least one first function-icon
that references at least one first control means for controlling a first
function;
providing a class of respective variable-icons wherein each respective
variable-icon references a respective variable, the class of
variable-icons including a strip chart-icon that displays past and present
values of a variable and that references strip chart control means for
storing past and present values for a variable;
selecting at least one first input variable-icon from the class of
variable-icons;
selecting the strip chart-icon from the class of variable-icons;
assembling on the screen a first front panel including the at least one
first input variable-icon and the strip-chart-icon; and
assembling on the screen a first data flow diagram including the at least
one first function-icon and the at least one first input variable-icon and
the strip chart-icon, wherein the first diagram displays a first procedure
for producing at least one value for the strip chart-icon from at least
one value for the at least one first input variable-icon.
2. The method of claim 1 and further comprising the step of:
in the course of said step of assembling on the screen said front panel,
displaying on the screen the at least one first input variable-icon and
the strip chart-icon.
3. The method of claim 1 and further comprising the step of:
in the course of said step of assembling on the screen said first data flow
diagram, displaying on the screen the at least one first function-icon and
the at least one first input variable-icon and the strip chart-icon.
4. The method of claim 1 and further comprising the step of:
simultaneously displaying on the screen the first front panel and the first
data flow diagram.
5. The method of claim 1 and further comprising the steps of:
assembling on the screen a first user-defined-function-icon that displays
on the screen a reference to the first diagram;
selecting from the class of function-icons at least one second
function-icon that references at least one second control means for
controlling a second function;
selecting at least one second input variable-icon from the class of
variable-icons;
selecting at least one second input variable-icon from the class of
variable-icons;
assembling on the screen a second front panel including the at least one
second input variable-icon and the at least one second output
variable-icon; and
assembling on the screen a second data flow diagram including the first
user-defined-function-icon and the at least one second function-icon and
the at least one second input variable-icon and the at least one second
output variable-icon, wherein the second diagram displays a second
procedure for producing at least one value for the at least one second
output variable-icon from at least one value for the at least one second
input variable-icon;
whereby a hierarchy of diagrams is produced in which the first diagram is
referenced by the first user-defined-function-icon in the second diagram.
6. The method of claim 5 and further comprising the steps of:
assembling on the screen a second user-defined-function-icon that displays
on the screen a reference to the second-diagram;
selecting from the class of function-icons at least one third function-icon
that reference at least one third control means for controlling a third
function;
selecting at least one third input variable-icon from the class of
variable-icons;
selecting at least one third output variable-icon from the class of
variable-icons;
assembling on the screen a third front panel including the at least one
third input variable-icon and the at least one third output variable-icon;
and
assembling on the screen a third data flow diagram including the second
user-defined-function-icon and the at least one third function-icon and
the at least one third input variable-icon and the at least one third
output variable-icon, wherein the third diagram displays a third procedure
for producing at least one value for the at least one third output
variable-icon from at least one value for the at least one third input
variable-icon;
whereby a hierarchy of diagrams is produced in which the first diagram is
referenced by the first user-defined-function-icon in the second diagram
and the second diagram is referenced by the second
user-defined-function-icon in the third diagram.
7. The method of claim 6 and further comprising the steps of:
assembling on the screen a third user-defined-function-icon that displays
on the screen a reference to the third diagram;
selecting from the class of function-icons at least one fourth
function-icon that references at least one fourth control means for
controlling a fourth function;
selecting at least one fourth input variable-icon from the class of
variable-icons;
selecting at least one fourth output variable-icon from the class of
variable-icons;
assembling on the screen a fourth front panel including the at least one
fourth input variable-icon and the at least one fourth output
variable-icon; and
assembling on the screen a fourth data flow diagram including the third
user-defined-function-icon and the at least one fourth function-icon and
the at least one fourth input variable-icon and the at least one fourth
output variable-icon, wherein the fourth diagram displays a fourth
procedure for producing at least one value for at least one fourth output
variable-icon from at least one value for the at least one fourth input
variable-icon;
whereby a hierarchy of diagrams is produced in which the first diagram is
referenced by the first user-defined-function-icon in the second diagram
and the second diagram is referenced by the second
user-defined-function-icon in the third diagram and the third diagram is
referenced by the third user-defined-function-icon in the fourth diagram.
8. The method of claim 7 and further comprising the steps of:
assembling on the screen an (n-1)th user -defined-function-icon that
displays on the screen a reference to an (n-1)th data flow diagram,
wherein n is an integer and n.gtoreq.5;
selecting at least one nth function-icon from the class of function-icons;
selecting at least one nth input variable-icon from the class of
variable-icons;
selecting at least one nth output variable-icon from the class of
variable-icons;
assembling on the screen an nth front panel including the at least one nth
input variable-icon and the at least one nth output variable-icon, and
assembling on the screen an nth data flow diagram including the (n-1)th
user-defined-function-icon and the at least one nth function-icon and the
at least one nth input variable-icon and the at least one nth output
variable-icon, wherein the nth diagram displays an nth procedure for
producing at least one value for the at least one nth output variable-icon
from at least one value for the at least one nth input variable-icon;
whereby a hierarchy of diagrams is produced in which the (n-1)th diagram is
referenced by the (n-1)th user-defined-function-icon in the nth diagram.
9. The method of claim 5 wherein said step of assembling on the screen a
first user-defined-function-icon includes the steps of:
displaying on the screen at least one panel-pattern-icon from a set of
respective panel-pattern-icons wherein each respective panel-pattern-icon
references a distinct arrangement of panels;
selecting a first panel-pattern-icon from the set of panel-pattern-icons;
displaying on the screen the first panel-pattern-icon and the at least one
first input variable-icon;
displaying on the screen the first panel-pattern-icon and the strip
chart-icon;
defining an association between at least one first inlet panel of the first
panel-pattern-icon and the at least one first input variable-icon; and
defining an association between at least one first output panel of the
first panel-pattern-icon and the strip chart-icon.
10. The method of claim 9 and further comprising the step of:
in the course of said step of defining an association between the at least
one first input panel of the first panel-pattern-icon and the at least one
first input variable-icon, displaying the defining association between the
at least one first input panel of the first panel-pattern-icon and time at
least one first input variable-icon; and
in the course of said step of defining an association between the at least
first output panel of the first panel-pattern-icon and the at least one
first output variable-icon, displaying the defined association between the
at least one first output panel of the first panel-pattern-icon and the
strip chart-icon.
11. The method of claim 1 and further comprising the step of:
displaying on the the screen a first menu identifying a class of functions
that respectively correspond to the function-icons of the class of
function-icons.
12. The method of claim 1 and further comprising the steps of:
displaying on the screen a first menu identifying a class of functions that
respectively correspond to the function-icons of the class of
function-icons; and
displaying on the screen a second menu identifying a class of variables
that respectively correspond to the variable-icons of the class of
variable-icons.
13. The method of claim 1 and further comprising the step of:
selecting the at least one first control means.
14. The method of claim 13 wherein:
said step of selecting the at least one first control means is performed
automatically in the course of said steps of selecting the at least one
first function-icon and assembling on the screen the first front panel and
assembling on the screen the first diagram.
15. The method of claims 13 or 14 wherein said first control means is
substantially implemented in software.
16. The method of claim 15 and further comprising the steps of:
reserving first input variable space in memory of the computer system
corresponding to the selected at least first input variable-icon; and
reserving first output variable space in memory of the computer system
corresponding to the strip chart-icon.
17. The method of claim 16 wherein:
said step of reserving first input variable space is performed
automatically in the course of said steps of selecting the at least one
first input variable-icon and assembling on the screen the first front
panel and assembling on the screen the first diagram; and
said step of reserving first output variable space is performed
automatically in the course of said steps of selecting the strip
chart-icon and assembling on the screen the first front panel and
assembling on the screen the first diagram.
18. The method of claim 16 wherein said step of assembling on the screen
the first diagram further includes the steps of displaying on the screen
at least one first input arc between the at least one first input
variable-icon and the at least one first function-icon and displaying on
the screen at least one first output arc between the strip chart-icon and
the at least one first function-icon; and further comprising the steps of:
forming first input means for moving respective input values for the at
least one first input variable between the at least one first input
variable space and the at least one first control means.
19. The method of claim 18 wherein:
said step of forming first input means is performed automatically in the
course of said step of displaying on the screen the at least one first
input arc.
20. The method of claim 18 wherein:
the at least one first control means and the first input means are
substantially implemented in software.
21. The method of claim 18 and further comprising the steps of:
assigning at least one value for each at least one first input
variable-icon;
storing in the reserved first input variable space each at least one
assigned value;
after said steps of assigning and storing at least one value for each at
least one first input variable-icon, moving each at least one value for
the at least one first input variable-icon from the reserved first input
variable space to the at least one first control means using the first
input means;
after said steps of assigning and storing at least one value for each at
least one first input variable-icon, producing at least one value for the
strip chart-icon using the at least one first control means to control the
first function; and
storing each value for the at least one first output variable-icon in the
reserved first output variable space.
22. The method of claim 16 and further comprising the steps of:
assigning at least one value for each at least one first input
variable-icon;
storing in the reserved first input variable space each at least one
assigned value;
after said steps of assigning and storing at least one value for each at
least one first input variable-icon, producing at least one value for the
strip chart-icon; and
storing each value for the at least one first output variable in the
reserved first output variable space.
23. The method of claim 22 wherein:
said step of storing each at least one assigned value is performed
automatically in the course of said step of assigning.
24. The method of claim 1 wherein said step of assembling on the screen the
first diagram further includes the steps of displaying at least one first
input arc between the at least one first input variable-icon and the at
least one first function-icon and displaying on the screen at least one
first output arc between the strip chart-icon and the at least one first
function-icon.
25. The method of claim 1 and further comprising the steps of:
assigning at least one value for each at least one first input
variable-icon;
after assigning at least one value for each at least one first input
variable-icon, producing at least one value for the strip chart-icon from
the at least one value for each at least one first input variable-icon.
26. The method of claim 25 wherein said step of assigning includes the
steps of:
displaying said first front panel; and
instructing the at least one first input variable-icon to display the at
least one assigned value.
27. The method of claim 26 and further including the step of:
displaying the at least one produced value in conjunction with the strip
chart-icon.
28. The method of claim 25 wherein said step of producing at least one
value for the strip chart-icon includes using said at least one first
control means to control the first function. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to systems for modeling processes and more
particularly to computer systems for modeling processes.
2. Description of the Related Art
Currently there is a strong movement toward very high level programming
languages which can enhance programmer productivity by making a
programming task more understandable and intuitive. The increasing use of
computers by users who are not highly trained in computer programming
techniques has lead to a situation in which the user's programming skills
and ability to interact with a computer system often become a limiting
factor in the achievement of optimal utilization of the computer system.
There are numerous subtle complexities which a user often must master
before she can efficiently program a computer system. For example, typical
earlier computer systems generally comprise software subsystems which
include multiple programs, and such programs often utilize one or more
subroutines. Software systems typically coordinate activity between
multiple programs, and each program typically coordinates activity between
multiple subroutines. However, techniques for coordinating multiple
programs generally differ from techniques for coordinating multiple
subroutines. Furthermore, since programs ordinarily can stand alone while
subroutines usually cannot, techniques for linking programs to a software
system generally differ from techniques for linking subroutines to a
program. Complexities such as these often make it difficult for a user,
who although she may be a specialist in her field is not a specialist in
the computer field, to efficiently make use of powerful computer systems
which are available for her use.
The task of programming a computer system to model a process often is
further complicated by the fact that a sequence of mathematical formulas,
mathematical steps or other procedures customarily used to conceptually
model such a process often does not closely correspond to the traditional
programming techniques used to program a computer system to model such a
process. For example, a user of a computer system frequently develops a
conceptual model for a physical system which can be partitioned into
functional blocks, each of which corresponds to actual systems or
subsystems. Computer systems, however, ordinarily do not actually compute
in accordance with such conceptualized functional blocks. Instead, they
often utilize calls to various subroutines and retrievals of data from
different memory storage locations to implement a procedure which could be
conceptualized by a user in terms of a functional block. Thus, a user
often must substantially master different skills in order to both
conceptually model a system and then to cause a computer system to model
that system. Since a user often is not fully proficient in techniques for
causing a computer system to implement her model, the efficiency with
which the computer system can be utilized to perform such modelling often
is reduced.
One particular field in which computer systems are employed to model
physical systems is the field of instrumentation. An instrument typically
collects information from an environment. Some of the types of information
which might be collected by respective instruments, for example, include:
voltage, distance, velocity, pressure, frequency of oscillation, humidity
or temperature. An instrumentation system ordinarily controls its
constituent instruments from which it acquires data which it analyzes,
stores and presents to a user of the system. Computer control of
instrumentation has become increasingly desirable in view of the
increasing complexity and variety of instruments available for use.
In recent years, increasing effort has been directed toward providing more
efficient means for implementing instrumentation systems. The task has
been complicated by the fact that such systems include arbitrary
combinations of hardware instruments and software components. The need for
more efficient means of implementation has been prompted by increasing
demands for automated instrumentation systems and an increasing variety of
hardware and software combinations in use.
In the past, many instrumentation systems comprised individual instruments
physically interconnected. Each instrument typically included a physical
front panel with its own peculiar combination of indicators, knobs, or
switches. A user generally had to understand and manipulate individual
controls for each instrument and record readings from an array of
indicators. Acquisition and analysis of data in such instrumentation
systems was tedious and error prone. An incremental improvement in user
interface was made with the introduction of centralized control panels. In
these improved systems, individual instruments were wired to a control
panel and the individual knobs, indicators or switches of each front panel
were either preset or were selected to be presented on a common front
panel.
Another significant advance occurred with the introduction of computers to
provide more flexible means for interfacing instruments with a user. In
such computerized instrumentation systems the user interacted with a
software program of the computer system through a terminal rather than
through a manually operated front panel. These earlier improved
instrumentation systems provided significant performance efficiencies over
earlier systems for linking and controlling test instruments.
Additional problems soon developed, however. Computer programs used to
control such improved instrumentation systems had to be written in
conventional programming language such as, for example, machine code,
FORTRAN, BASIC, Pascal, or ATLAS. Traditional users of instrumentation
systems, however, often were not highly trained in programming techniques
and, therefore, implementation of such systems frequently required the
involvement of a programmer to write software for control and analysis of
instrumention data. Thus, development and maintenance of the software
elements in these instrumentation systems often proved to be difficult.
Some reasons for the difficulties associated with earlier computerized
instrumentation systems included, for example: (1) textual programming
languages were non-intuitive and unfamiliar to the instrumentation system
user; (2) traditional programming languages did not readily support the
parallel activity of multiple individual instruments; (3) concepts
embodied in a computer program often were significantly different from
concepts embodied in an instrumentation system's instrument hardware; (4)
computer program software modules often did not match an instrumentation
system's hardware modularity making interchangeability of software and
hardware difficult; and (5) techniques for designing, constructing, and
modifying computer software were significantly different from
corresponding techniques for developing an instrument hardware system.
A general type of programming technique involves data flow programming.
Data flow programming typically involves an ordering of operations which
is not specifically specified by a user but which is implied by data
interdependencies. An advantage of data flow programming is that it
introduces parallelism into a computer system which, of course, usually
increases the speed and efficiency of the system.
Unfortunately, there has been difficulty constructing data flow computer
systems because such systems often experience difficulty implementing
conditional type and loop type operations. Furthermore, data flow computer
systems often are relatively difficult to construct or even to comprehend
due to the their relative complexity.
Thus, there exists a need for a system which can be relatively easily
programmed for use in modelling a process. Furthermore, there exists a
need for an instrumentation system utilizing such a system. Finally, there
exists a need for such a system which employs data flow techniques. The
present invention meets these needs.
SUMMARY OF THE INVENTION
The present invention provides a system for modelling a process. A process
typically can be characterized by one or more input variables and one or
more output variables. The system includes a computer. It also includes an
editor for displaying at least one diagram and for constructing execution
instructions. The diagram graphically displays a procedure by which the
one or more input variables can produce the one or more output variables.
It also results in the construction of execution instructions which
characterize an execution procedure which substantially corresponds to the
displayed procedure. The system also includes an execution subsystem for
assigning respective values for the one or more input variables and for
executing the execution instructions to produce respective values for the
one or more output variables.
The invention also provides a method for electronically modelling a
process. A process typically can be characterized by a reception of one or
more input variables and a provision of one or more output variables. The
method includes the step of electronically constructing at least one
diagram display such that the diagram display graphically displays a
procedure by which the one or more input variables can produce the one or
more output variables. In response to the step of electronically
constructing the diagram display, execution instructions are
electronically constructed which characterize an execution procedure which
substantially corresponds to the displayed procedure. Respective values
are assigned for the respective input variables. The execution
instructions are electronically executed to produce respective values for
respective output variables.
These and other features and advantages of the present invention will
become more apparent from the following detailed description of exemplary
embodiments thereof, as illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
The purpose and advantages of the present invention will be apparent to
those skilled in the art from the following detailed description in
conjunction with the appended drawings in which:
FIG. 1 shows a block diagram of a first system for modelling a process in
accordance with the present invention;
FIG. 2 shows a block diagram of a second system including the first system
of FIG. 1;
FIG. 3 is an illustrative drawing of a representation of a virtual
instrument produced using the second system of FIG. 2;
FIG. 4 shows a block diagram of an instrumentation system including the
second system of FIG. 2;
FIG. 5 shows an illustrative front panel produced using the front panel
editor of the instrumentation system of FIG. 4;
FIG. 6 shows an illustrative icon produced using the icon editor of the
instrumentation system of FIG. 4; .
FIG. 7 shows an illustrative representation of an icon library which can be
stored in a memory and used to construct a block diagram using the block
diagram editor of the instrumentation system of FIG. 4;
FIG. 8 shows a graphical representation of a sequence structure;
FIG. 9 shows a graphical representation of an iterative loop structure;
FIG. 10 shows a graphical representation of a conditional structure;
FIG. 11 shows a graphical representation of an indefinite loop structure;
FIG. 12 shows graphical representations of shift registers on the
respective iterative loop structure of FIG. 9 and indefinite loop
structure of FIG. 11;
FIG. 13 shows an illustrative block diagram generally corresponding to the
graphical representation of a sequence structure shown in FIG. 8;
FIG. 14 shows an illustrative block diagram generally corresponding to the
graphical representation of an iterative loop structure show in FIG. 9;
FIG. 15 shows an illustrative block diagram generally corresponding to the
graphical representation of a conditional structure shown in FIG. 10;
FIG. 16 shows an illustrative block diagram generally corresponding to the
graphical representation of an indefinite loop structure shown in FIG. 11;
FIG. 17 shows an illustrative block diagram generally corresponding to the
graphical representation of an iterative loop structure including a shift
register shown on the left in FIG. 12;
FIG. 18 shows a block diagram representing an exemplary data flow system;
FIG. 19a illustrates a virtual instrument data structure diagram used by
the first system of FIG. 1, the second system of FIG. 2 and the
instrumentation system of FIG. 4;
FIG. 19b shows a legend applicable to the illustration FIG. 19a;
FIGS. 20a-l illustrate computer terminal displays during each successive
step in a construction of an exemplary block diagram using the block
diagram editor of FIGS. 2 or 4;
FIG. 21 is a drawing of an illustrative hardware instrumentation system of
the present invention;
FIG. 22 is a drawing representing a block diagram according to the present
invention as displayed on a computer console to model the illustrative
hardware system of FIG. 21;
FIG. 23a shows the PROTO icon;
FIG. 23b the startup screen with empty front panel window;
FIG. 24 illustrates the FILE menu (Items in clear surrounds can be used and
stippled items do not yet work);
FIG. 25 illustrates the EDIT menu;
FIG. 26 illustrates the FORMAT menu;
FIG. 27 illustrates the CONTROL menu from the front panel window;
FIG. 28 illustrates the NUMERIC control dialog box;
FIG. 29 is an illustration of the STRING control dialog box;
FIG. 30 shows the GRAPHICAL dialog box;
FIG. 31 illustrates an OPEN DIAGRAM selection from the FILE menu of the
active front panel window pens and makes active a block diagram window;
FIG. 32 illustrates employ, active Block-Diagram window created by choosing
OPEN DIAGRAM from the FILE menu;
FIG. 33 illustrates FUNCTION menu from Block-Diagram window;
FIG. 34 shows a graphical representation of a sequence structure;
FIG. 35 shows a graphical representation of a for loop structure;
FIG. 36 shows a graphical representation of a case selection structure;
FIG. 37 shows a graphical presentation of an indefinite loop structure;
FIG. 38 shows a graphical representation of a shift register in loop;
FIG. 39 illustrates a dialog box obtained by choosing SPECIAL from the
FUNCTIONS menu;
FIG. 40 illustrates a "for" loop structure layed down in the active block
diagram window by selecting a glyph from the dialog box shown in FIG. 39;
FIG. 41 illustrates selection regions on structure glyphs (Moving dashded
box encircles a glyph when it is selected);
FIG. 42 illustrates that the the left side shows the proper position for
placement of the grabber tool for residing the structure glyph
(Click-dragging produces the result shown in the right side of the figure.
Release the mouse button and the enlarged structure will remain in place);
FIG. 43 shows two enlarged "for" loop structures rearranged for the
Fibonacci instrument;
FIG. 44 shows the dialog box obtained by choosing ARITHMETIC from the
FUNCTION menu;
FIG. 45, shows a block diagram window after addition function was chosen
from dialog box show in FIG. 44;
FIG. 46 shows a block diagram window with addition and multiplication
functions placed inside loop structures;
FIG. 47 shows a dialog box obtained by choosing CURVE FIT from the
FUNCTIONS menu.
FIG. 48 shows a block diagram window with CURVE-FIT object in place;
FIG. 49 illustrates loop structure with shift register installed;
FIG. 50 is an illustration of the final positions of constant objects
alongside the inputs to the shift register;
FIG. 51 shows a pointer control in the front panel window obtained from the
dialog box displayed by choosing the NUMERIC option from the CONTROLS
menu;
FIG. 52 shows the front panel window with one pointer control and two
indicator controls;
FIG. 53 shows the front panel window with graphical display repositioned to
the upper right-hand corner of the window;
FIG. 54 shows the block diagram for the Fibonacci instrument with
components in position ready for wiring.
FIG. 55 illustrates thata connection is established between the
slide-pointer control and the iteration variable box of the loop structure
using the wiring tool;
FIG. 56 illustrates "hot spots" for available functions;
FIG. 57 is an illustration of the wired Fibonacci virtual instrument block
diagram;
FIG. 58 is an illustration of examples of data types and their block
diagrams representations;
FIG. 59 is an illustration of the ICON EDITOR dialog box obtained by
selecting the ICON EDIT PANE option from the FORMAT menu in the front
panel window;
FIG. 60 is an illustration of the icon editor following selection of the
ICON button;
FIG. 61 is a drawing in the icon editor;
FIG. 62 is an illustration displaying the instrument icon in the front
panel window;
FIG. 63 shows a terminal connector pane displayed in the upper left-had
corner of the active window by choosing CONNECTOR PANE option from the
FORMAT menu;
FIG. 64 is an illustration of available arrangements of connector
terminals;
FIG. 65a is an illustration of the front panel window with selected
terminal in connector pane;
FIG. 65b is an illustration of the highlighted terminal and control to be
connected;
FIG. 65c is an illustration of the connection between the established
terminal and control;
FIG. 66 is an illustration of the dialog box warning of consequences of
clearing associations between controls and terminals;
FIG. 67 (left) is an illustration of the virtual instrument to invert value
set by control and display result on indicator;
FIG. 68 (right) is an illustration of correctly operating inverter virtual
instrument;
FIG. 69 is an illustration of an icon for the inverter instrument;
FIG. 70 is an illustration of an instrument for inverting and then adding
two numbers;
FIG. 71 is an illustration of the dialog box for selecting instrument to
drop into block diagram window;
FIG. 72 is an illustration of an user-created INVERTER virtual instrument
dropped into block diagram window;
FIG. 73 is an illustration of an icon for user-created invert-and-add
instrument;
FIG. 74 is an example solution for adding two resistances in parallel using
two low-level, user-created virtual instruments in a hierarchical virtual
instrument;
FIG. 75 is an illustration of an dialog box from INSTRUMENTS option in the
FUNCTIONS menu displaying two user-created virtual instruments;
FIG. 76 illustrates serial execution mode;
FIG. 77 illustrates "wait" icon execution;
FIG. 78 illustrates the parallel execution mode;
FIG. 79 illustrates a ready mode lost;
FIG. 80 illustrates atomic execution mode;
FIG. 81 illustrates serial execution mode;
FIG. 82 illustrates parallel execution mode for code virtual instruments;
FIG. 83 illustrates parallel execution mode for block diagram virtual
instrument;
FIGS. 84-94 illustrate various virtual instrument execution states;
FIG. 96 illustrates an execution road map;
FIG. 97 illustrates execution state symbols;
FIG. 98 illustrates virtual instruments in various execution states;
FIG. 99 illustrates virtual instruments in various execution states;
FIG. 100 illustrates s scrolling waterfall graph;
FIG. 101 illustrates a strip chart recorder;
FIG. 102 illustrates a block diagram of strip chart recorder operation;
FIG. 103 illustrates a relational data base;
FIG. 104 illustrates a chart showing different data types;
FIG. 105 illustrates a virtual instrument icon in a diagram;
FIG. 106 illustrates a virtual instrument icon together with a data base
structure; and
FIGS. 107-110 illustrates LabVIEW error handling.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention comprises a novel system and associated method for
modelling a process. The following description is presented to enable any
person skilled in the art to make and use the invention, and is provided
in the context of particular applications and their requirements. Various
modifications to the preferred embodiments will be readily apparent to
those skilled in the art, and the generic principles defined herein may be
applied to other embodiments and applications without departing from the
spirit and scope of the invention. Thus, the present invention is not
intended to be limited to the embodiments shown, but is to be accorded the
widest scope consistent with the principles and features disclosed herein.
Referring to the drawing of FIG. 1, there is shown a generalized block
diagram 20 of a first system for modelling a process in accordance with
the present invention. The first system 20 includes a block diagram editor
22, an execution subsystem 24 and a control processor 26. In the preferred
embodiment, the block diagram editor 22 and the execution subsystem 24 are
constructed in software.
As will be explained more fully below the block diagram editor 22 can be
used to construct and to display a graphical diagram which visually and
pictorially displays a procedure by which an input variable can produce an
output variable. The procedure together with the input variable and output
variable comprise a model of a process. Furthermore, the block diagram
editor 22 constructs execution instructions which characterize an
execution procedure which substantially corresponds to the displayed
procedure. The execution subsystem 24 assigns at least one value to the
input variable and executes the execution instructions to produce a value
for the output variable. The control processor 26 implements the block
diagram editor 22 and the execution subsystem 24 of the preferred
embodiment.
The illustrative drawing of FIG. 2 shows a second system 28 for modelling a
process in accordance with the present invention. The second system 28
includes a respective block diagram editor 30, and an execution subsystem
32 which are substantially identical to the block diagram editor 22 and
the execution subsystem 24 of the first system 20. The second system 28
also includes an icon editor 34 and a front panel editor 36. The second
system 28 also includes a control processor 38 which is substantially
identical to that of the first system 20.
The second system 28 permits a user to construct a virtual instrument 40
such as that represented in generalized form in the illustrative drawings
of FIG. 3. The virtual instrument 40 includes a front panel 42 which
permits interactive use of the virtual instrument 40 by a user. As will be
explained more fully below, the front panel permits graphical
representation of input and output variables provided to the virtual
instrument 40. The virtual instrument 40 also includes an icon 44 which
permits use of the virtual instrument 40 as a subunit in other virtual
instruments (not shown). The virtual instrument 40 also includes a block
diagram 46 which graphically provides a visual representation of a
procedure by which a specified value for an input variable displayed in
the front panel 42 can produce a corresponding value for an output
variable in the front panel 42. The virtual instrument 40 itself is a
hierarchical construction comprising within its block diagram 46
respective icons 48 and 50 referencing other virtual instruments indicated
generally by respective blocks 52 and 54.
The generalized block diagram of FIG. 4 shows an instrumentation system 56
incorporating the second system 28 shown in FIG. 2. Elements of the
instrumentation system 56 which are substantially identical to those of
the second system 28 are referenced by primed reference numerals identical
to those of the second system 28. The instrumentation system 56 includes a
keyboard | | |