Claims
- 1. A computer-implemented method for creating a graphical program based on a sequence that includes motion control, machine vision, and data acquisition (DAQ) operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations, one or more machine vision operations, and one or more DAQ operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation, at least one machine vision operation, and at least one DAQ operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
- 2. The method of claim 1,
wherein said programmatically generating the graphical program comprises automatically generating graphical code in the graphical program without direct user input.
- 3. The method of claim 1,
wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.
- 4. The method of claim 1, further comprising:
executing the graphical program to perform the sequence of operations.
- 5. The method of claim 1,
wherein the graphical program includes a block diagram portion and a user interface panel portion.
- 6. The method of claim 1,
wherein the graphical program is a graphical data flow program.
- 7. The method of claim 1,
wherein said programmatically generating the graphical program comprises including one or more nodes in the graphical program corresponding to the operations in the sequence.
- 8. The method of claim 1,
wherein said programmatically generating the graphical program comprises:
generating portions of graphical code, wherein each portion of graphical code implements one of the operations in the sequence; and linking the portions of graphical code together.
- 9. The method of claim 8,
wherein each portion of graphical code includes one or more graphical program nodes, wherein each node has one or more inputs or outputs; wherein generating each portion of graphical code comprises connecting the node inputs and outputs together in order to implement the operation with which the portion of graphical code is associated.
- 10. The method of claim 8,
wherein linking a first portion of graphical code to a second portion of graphical code comprises connecting an output of a node in the first portion of graphical code to an input of a node in the second portion of graphical code.
- 11. The method of claim 8, further comprising:
for each operation in the sequence, retrieving information associated with the operation from a database; wherein generating the portion of graphical code that implements a particular operation utilizes the database information retrieved for the particular operation.
- 12. The method of claim 1, further comprising:
creating an association between the sequence and the graphical program; modifying the sequence to create a new sequence in response to user input after said creating the association; and modifying the graphical program according to the new sequence to create a new graphical program.
- 13. The method of claim 12,
wherein said modifying the graphical program according to the new sequence uses the association between the sequence and the graphical program; wherein the association remains between the new sequence and the new graphical program.
- 14. The method of claim 1, further comprising:
creating an association between the sequence and the graphical program; and locking the association between the sequence and the graphical program, wherein said locking prevents user editing of the graphical program.
- 15. The method of claim 14, further comprising:
unlocking the association between the sequence and the graphical program in response to user input after said locking; directly changing the graphical program in response to user input after said unlocking.
- 16. The method of claim 15,
wherein said unlocking removes the association between the sequence and the graphical program.
- 17. The method of claim 14, further comprising:
modifying the graphical program in response to user input after said generating the graphical program and after said creating the association between the sequence and the graphical program; determining if an association exists between the sequence and the graphical program in response to said modifying the graphical program; and removing the association between the sequence and the graphical program in response to said modifying.
- 18. The method of claim 1,
wherein said receiving user input to the graphical user interface specifying a desired sequence of operations does not include receiving user input specifying programming language code to implement the sequence of operations.
- 19. The method of claim 1,
wherein the sequence is operable to perform one or more of:
control motion of a device; analyze acquired images; and acquire measurement data.
- 20. The method of claim 1,
wherein the sequence is operable to perform two or more of:
control motion of a device; analyze acquired images; and acquire measurement data.
- 21. The method of claim 1,
wherein the sequence is operable to:
control motion of a device; analyze acquired images; and acquire measurement data.
- 22. The method of claim 1, further comprising:
receiving user input to the graphical user interface for configuring one or more of the operations in the sequence; wherein, for each operation, said configuring the operation affects an action which the operation is operable to perform.
- 23. The method of claim 22,
wherein said receiving user input to the graphical user interface for configuring one or more of the operations in the sequence does not include receiving user input specifying programming language code to configure the operations.
- 24. The method of claim 22, further comprising:
for each operation to be configured, displaying a graphical panel including graphical user interface elements for setting properties of the operation and receiving user input to the graphical panel to set one or more properties of the operation.
- 25. A computer-implemented method for creating a graphical program based on a prototype that includes motion control, machine vision, and data acquisition (DAQ) functionality, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations, one or more machine vision operations, and one or more DAQ operations; receiving user input to the graphical user interface specifying a desired sequence of operations, wherein the specified sequence of operations implements the motion control, machine vision, and DAQ functionality of the prototype; and programmatically generating a graphical program to implement the specified sequence of operations.
- 26. A computer-implemented method for creating a graphical program based on a prototype that specifies motion control, machine vision, and data acquisition (DAQ) functionality, the method comprising:
receiving user input specifying a desired sequence of operations, wherein the specified sequence of operations includes at least one motion control operation, at least one machine vision operation, and at least one data acquisition operation; recording the specified sequence of operations in a data structure, wherein the specified sequence of operations comprises the prototype; and programmatically generating a graphical program based on the prototype to implement the specified sequence of operations.
- 27. The method of claim 26, further comprising:
displaying a graphical user interface (GUI) that provides access to a set of operations, wherein the set of operations includes one or more motion control operations, one or more machine vision operations, and one or more DAQ operations; wherein the user input is received to the graphical user interface.
- 28. A memory medium for creating a graphical program based on a sequence that includes motion control, machine vision, and data acquisition (DAQ) operations, the memory medium comprising program instructions executable to:
display a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations, one or more machine vision operations, and one or more DAQ operations; receive user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation, at least one machine vision operation, and at least one DAQ operation; store the specified sequence of operations based on the user input; and programmatically generate a graphical program to implement the specified sequence of operations.
- 29. The memory medium of claim 28,
wherein said programmatically generating the graphical program comprises automatically generating graphical code in the graphical program without direct user input.
- 30. The memory medium of claim 28,
wherein the graphical program comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.
- 31. The memory medium of claim 28,
wherein the graphical program is a graphical data flow program.
- 32. The memory medium of claim 28,
wherein said receiving user input to the graphical user interface specifying a desired sequence of operations does not include receiving user input specifying programming language code to implement the sequence of operations.
- 33. The memory medium of claim 28, further comprising program instructions executable to execute the graphical program to perform the sequence of operations.
- 34. The memory medium of claim 33,
wherein said executing the graphical program to perform the sequence of operations comprises performing one or more of:
controlling motion of a device; analyzing acquired images; and acquiring measurement data.
- 35. The memory medium of claim 33,
wherein said executing the graphical program to perform the sequence of operations comprises performing two or more of:
controlling motion of a device; analyzing acquired images; and acquiring measurement data.
- 36. The memory medium of claim 33,
wherein said executing the graphical program to perform the sequence of operations comprises:
controlling motion of a device; analyzing acquired images; and acquiring measurement data.
- 37. A system for creating a graphical program based on a sequence that includes motion control, machine vision, and data acquisition (DAQ) operations, the system comprising:
a processor; a memory storing program instructions; and a display device; wherein the processor is operable to execute the program instructions stored in the memory to:
display a graphical user interface (GUI) on the display device that provides access to a set of operations, wherein the set of operations includes one or more motion control operations, one or more machine vision operations, and one or more DAQ operations; receive user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation, at least one machine vision operation, and at least one DAQ operation; store the specified sequence of operations based on the user input; and programmatically generate a graphical program to implement the specified sequence of operations.
- 38. The system of claim 37, further comprising:
a motion control device; an image acquisition device; and a data acquisition device; wherein the processor is operable to execute the graphical program to:
control the motion control device to move an object; control the image acquisition device to acquire one or more images of the object; and control the data acquisition device to acquire measurement data of the object.
- 39. A system for creating a graphical program based on a sequence that includes motion control, machine vision, and data acquisition (DAQ) operations, the system comprising:
means for displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations, one or more machine vision operations, and one or more DAQ operations; means for receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation, at least one machine vision operation, and at least one DAQ operation; means for storing the specified sequence of operations based on the user input; and means for programmatically generating a graphical program to implement the specified sequence of operations.
- 40. A computer-implemented method for creating a graphical program based on a sequence that includes motion control operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
- 41. A computer-implemented method for creating a graphical program based on a sequence that includes machine vision operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more machine vision operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one machine vision operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
- 42. A computer-implemented method for creating a graphical program based on a sequence that includes data acquisition (DAQ) operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more DAQ operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one DAQ operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
- 43. A computer-implemented method for creating a graphical program based on a sequence that includes motion control and machine vision operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations and one or more machine vision operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation and at least one machine vision operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
- 44. A computer-implemented method for creating a graphical program based on a sequence that includes motion control and data acquisition (DAQ) operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more motion control operations and one or more DAQ operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one motion control operation and at least one DAQ operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
- 45. A computer-implemented method for creating a graphical program based on a sequence that includes machine vision and data acquisition (DAQ) operations, the method comprising:
displaying a graphical user interface (GUI) that provides GUI access to a set of operations, wherein the set of operations includes one or more machine vision operations and one or more DAQ operations; receiving user input to the graphical user interface specifying the sequence of operations, wherein the specified sequence of operations includes at least one machine vision operation and at least one DAQ operation; storing the specified sequence of operations based on the user input; and programmatically generating a graphical program to implement the specified sequence of operations.
CONTINUATION DATA
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/587,682 titled “System and Method for Automatically Generating a Graphical Program to Perform an Image Processing Algorithm,” filed Jun. 5, 2000, whose inventors were Nicolas Vazquez, Jeffrey L. Kodosky, Ram Kudukoli, Kevin L. Schultz, Dinesh Nair and Christophe Caltagirone.
[0002] This application is also a continuation-in-part of U.S. patent application Ser. No. 09/595,003 titled “System and Method for Automatically Generating a Graphical Program to Implement a Prototype,” filed Jun. 13, 2000, whose inventors were Nicolas Vazquez, Jeffrey L. Kodosky, Ram Kudukoli, Kevin L. Schultz, Dinesh Nair, and Christophe Caltagirone.
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09587682 |
Jun 2000 |
US |
Child |
10051268 |
Jan 2002 |
US |
Parent |
09595003 |
Jun 2000 |
US |
Child |
10051268 |
Jan 2002 |
US |