IP Library Granted Patent US 7,593,944
Granted Patent B2
US 7,593,944 · App. 11/037,575 · Granted Sep 22, 2009

Variable abstraction

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,593,944
App. No.
11/037,575
Granted
Sep 22, 2009
Kind
B2
Abstract

System and method for creating, configuring, representing, and using variables in programs. A graphical user interface (GUI) may be displayed in response to user input requesting creation and/or configuration of a variable for use in or comprised in one or more programs, e.g., on various devices. User input is received to the GUI configuring attributes of the variable, including: name, data type, and/or scope (e.g., local, global, or network). The configured attributes are stored and optionally displayed, e.g., in a resource tree, and the variable in each of the programs updated in accordance with the configured attributes. When at least one of the programs is incompatible with the configured variable, an error condition may be indicated, e.g., by providing information relating to portions of the program that are incompatible with the configured variable. The program may be modified in response to user input for compatibility with the configured variable.

Claims (102)

1. A computer-implemented method for creating a variable for use in a program, the method comprising:

displaying a graphical user interface (GUI) in response to user input requesting creation of a variable, wherein the variable comprises a specification of a named memory location for storing one or more values, and wherein the variable does not store or reference program instructions;

receiving user input to the GUI specifying attributes of the variable, wherein the attributes comprise:

name;

data type; and

scope

storing the specified attributes;

instantiating the variable in accordance with the specified attributes; and

displaying a representation of the variable, wherein the representation of the variable comprises an icon, wherein the variable is selectable via the representation for inclusion in one or more graphical programs, wherein each graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program;

including the variable in a plurality of graphical programs in response to user input;

Configuring the variable, said configuring comprising:

Displaying the GUI in response to user input requesting configuration of the variables;

Receiving user input to the GUI configuring the attributes of the variable wherein the attributes comprise;

name;

data type; and

scope;

storing the configured attributes; and

updating the variable in each of the plurality of graphical programs in accordance with the configured attributes.

2. The method of claim 1 , wherein the scope comprises one of:

local;

global; and

network.

3. The method of claim 1 , wherein at least one of the plurality of graphical programs is incompatible with the configured variable, the method further comprising: indicating an error condition for the at least one of the one or more graphical programs.

4. The method of claim 3 , wherein indicating an error condition for the at least one of the plurality of graphical programs comprises: providing information relating to one or more portions of the at least one of the plurality of graphical programs that are incompatible with the configured variable (See Gretta column 11, lines 26-49 where it is disclosed that error information for a graphical program can be collected and provided via a GUI to the user).

5. The method of claim 4 , the method further comprising:

modifying the at least one of the plurality of graphical programs in response to user input, wherein the modified at least one graphical program is compatible with the configured variable.

6. The method of claim 1 , wherein said including the variable in the plurality of graphical programs comprises creating one or more variable references in the plurality of graphical programs.

7. The method of claim 6 , wherein said instantiating the variable further comprises:

deploying the variable to a memory location, wherein the one or more variable references in the plurality of graphical programs operate to access the memory location.

8. The method of claim 1 , wherein said including the variable in the plurality of graphical programs further comprises: modifying the plurality of graphical programs to access the variable based on respective target platforms of the one or more graphical programs.

9. The method of claim 1 , wherein said displaying a representation of the variable comprises displaying the representation of the variable in a window, wherein the representation is selectable via user input to the window.

10. The method of claim 9 , wherein said displaying the representation of the variable in the window comprises:

displaying one or more locations where the variable is deployed.

11. The method of claim 10 , wherein said displaying one or more locations where the variable is deployed comprises:

displaying the variable in one or more resource trees.

12. The method of claim 1 , wherein prior to said specifying attributes of the variable, the variable has a default configuration of the attributes of the variable.

13. The method of claim 1 , wherein the representation of the variable further comprises the name.

14. The method of claim 1 , wherein the plurality of graphical programs are comprised on a plurality of devices coupled via a network (See Emmelmann page 2, paragraphs [0025]-[0027] where a web application operable over the internet for creating applications is disclosed. In other words, a program is comprised on at least a client and server device coupled via a network).

15. The method of claim 14 , wherein at least one of the plurality of devices comprises a programmable hardware element.

16. The method of claim 1 , wherein at least one of the plurality of graphical programs comprises a block diagram portion and a user interface portion (See Gretta column 3, lines 30-53 where the user can open an editor window to edit a block diagram).

17. The method of claim 16 , further comprising: executing at least one of the plurality of graphical programs.

18. The method of claim 17 , wherein, during execution of the at least one of the plurality of graphical programs, the graphical user interface portion is displayed on a display of a first computer system and the block diagram executes on a second computer system.

19. The method of claim 1 , wherein the plurality of graphical programs comprise a graphical data flow program.

20. The method of claim 1 , wherein the plurality of graphical programs are operable to perform one or more of: an industrial automation function; a process control function; a test and measurement function (See Gretta column 3, lines 30-53 where a system for graphically editing a function block diagram for process control functions is disclosed. Also see Gretta column 1, lines 14-26 where it is disclosed that the field bus network can be used both for process control and industrial automation).

21. Emmelmann discloses a computer-readable memory medium that stores program instructions for creating a variable for use in one or more programs, wherein the program instructions are executable by a computer to perform:

displaying a graphical user interface (GUI) in response to user input requesting creation of a variable, wherein the variable comprises a specification of a named memory location for storing one or more values, and wherein the variable does not store or reference program instructions;

receiving user input to the GUI specifying attributes of the variable, wherein the attributes comprise:

name;

data type; and

scope

storing the specified attributes; and

instantiating the variable in accordance with the specified attributes; and

displaying a representation of the variable, wherein the representation of the variable comprises an icon, wherein the variable is selectable via the representation for inclusion in one or more graphical programs, wherein each graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program;

including the variable in a plurality of graphical programs in response to user input;

Configuring the variable, said configuring comprising:

Displaying the GUI in response to user input requesting configuration of the variables;

Receiving user input to the GUI configuring the attributes of the variable wherein the attributes comprise:

name;

data type; and

scope;

storing the configured attributes; and

updating the variable in each of the plurality of graphical programs in accordance with the configured attributes.

22. A system for configuring a variable for use in one or more graphical programs, comprising:

a processor;

a memory medium coupled to the processor; and

a display device coupled to the processor and the memory medium;

wherein the memory medium stores program instructions which are executable by the processor to:

display a graphical user interface (GUI) in response to user input requesting creation of a variable, wherein the variable comprises a specification of a named memory location for storing one or more values, and wherein the variable does not store or reference program instructions;

receive user input to the GUI specifying attributes of the variable, wherein the attributes comprise:

name;

data type; and

scope

store the specified attributes;

instantiate the variable in accordance with the specified attributes; and

display a representation of the variable, wherein the representation of the variable comprises an icon, wherein the variable is selectable via the representation for inclusion in one or more graphical programs, wherein each graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program;

include the variable in a plurality of graphical programs in response to user input;

Configure the variable, wherein to configure the variable the program instructions are executable to:

Display the GUI in response to user input requesting configuration of the variable;

Receive user input to the GUI configuring the attributes of the variable wherein the attributes comprise:

name;

data type; and

scope;

store the configured attributes; and

update the variable in each of the plurality of graphical programs in accordance with the configured attributes.

23. A system for configuring a variable for use in one or more graphical programs, the system comprising:

means for displaying a graphical user interface (GUI) in response to user input requesting creation of a variable, wherein the variable comprises a specification of a named memory location for storing one or more values, and wherein the variable does not store or reference program instructions;

means for receiving user input to the GUI specifying attributes of the variable, wherein the attributes comprise:

name;

data type; and

scope

means for storing the specified attributes;

means for instantiating the variable in accordance with the specified attributes; and

means for displaying a representation of the variable, wherein the representation of the variable comprises an icon, wherein the variable is selectable via the representation for inclusion in one or more graphical programs, wherein each graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program;

means for including the variable in a plurality of graphical programs in response to user input;

means for Configuring the variable, said configuring comprising:

means for displaying the GUI in response to user input requesting configuration of the variables;

means for receiving user input to the GUI configuring the attributes of the variable wherein the attributes comprise;

name;

data type; and

scope;

means for storing the configured attributes; and

means for updating the variable in each of the plurality of graphical programs in accordance with the configured attributes.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →