WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Graphical system for modelling a process and associated method    
United States Patent4914568   
Link to this pagehttp://www.wikipatents.com/4914568.html
Inventor(s)Kodosky; Jeffrey L. (Austin, TX); Truchard; James J. (Austin, TX); MacCrisken; John E. (Palo Alto, CA)
AbstractA 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4914568
Graphical system for modelling a process and associated method - US Patent 4914568 Drawing
Graphical system for modelling a process and associated method
Inventor     Kodosky; Jeffrey L. (Austin, TX); Truchard; James J. (Austin, TX); MacCrisken; John E. (Palo Alto, CA)
Owner/Assignee     National Instruments, Inc. (Austin, TX)
Patent assignment
All assignments
Publication Date     April 3, 1990
Application Number     06/923,127
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 24, 1986
US Classification     715/763 703/2 715/771 715/967 715/970
Int'l Classification     G06F 015/46 G06F 003/153
Examiner     Zache; Raulfe B.
Assistant Examiner     Muteanu; Florin R.
Attorney/Law Firm     Flehr, Hohbach, Test, Albritton & Herbert
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS 364/300 MS 364/900 MS 364/578
Patent Tags     graphical modelling associated
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4695968
Sullivan, II
703/13
Sep,1987

[0 after 0 votes]
4677587
Zemany, Jr.
716/20
Jun,1987

[0 after 0 votes]
4663704
Jones
700/83
May,1987

[0 after 0 votes]
4656603
Dunn
715/835
Apr,1987

[0 after 0 votes]
4546435
Herbert
717/109
Oct,1985

[0 after 0 votes]
4455619
Masui
345/530
Jun,1984

[0 after 0 votes]
4315315
Kossiakoff
717/109
Feb,1982

[0 after 0 votes]
4064394
Allen
700/84
Dec,1977

[0 after 0 votes]
4813013
Dunn
715/763
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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