[0001] The present invention relates to the fields of software prototyping environments and graphical programming. More particularly, the invention relates to displaying operations in an application by using a graphical programming visual representation. One embodiment of the invention relates to displaying machine vision operations in an application by using a graphical programming visual representation, where the machine vision operations implement a machine vision function.
[0002] Traditionally, high level text-based programming languages have been used by programmers in writing application programs. Many different high level programming languages exist, including BASIC, C, Java, FORTRAN, Pascal, COBOL, ADA, APL, etc. Programs written in these high level languages are translated to the machine language level by translators known as compilers or interpreters. The high level programming languages in this level, as well as the assembly language level, are referred to herein as text-based programming environments.
[0003] Increasingly, computers are required to be used and programmed by those who are not highly trained in computer programming techniques. When traditional text-based programming environments are used, the user's programming skills and ability to interact with the computer system often become a limiting factor in the achievement of optimal utilization of the computer system.
[0004] There are numerous subtle complexities which a user must master before he can efficiently program a computer system in a text-based environment. The task of programming a computer system to model or implement a process often is further complicated by the fact that a sequence of mathematical formulas, steps or other procedures customarily used to conceptually model a process often does not closely correspond to the traditional text-based programming techniques used to program a computer system to model such a process. In other words, the requirement that a user program in a text-based programming environment places a level of abstraction between the user's conceptualization of the solution and the implementation of a method that accomplishes this solution in a computer program. Thus, a user often must substantially master different skills in order to both conceptualize a problem or process and then to program a computer to implement a solution to the problem or process. Since a user often is not fully proficient in techniques for programming a computer system in a text-based environment to implement his solution, the efficiency with which the computer system can be utilized often is reduced.
[0005] Examples of fields in which computer systems are employed to interact with physical systems are the fields of instrumentation, process control, industrial automation, and simulation. Computer measurement and control of devices such as instruments or industrial automation hardware has become increasingly desirable in view of the increasing complexity and variety of instruments and devices available for use. However, due to the wide variety of possible testing and control situations and environments, and also the wide array of instruments or devices available, it is often necessary for a user to develop a custom program to control a desired system.
[0006] As discussed above, computer programs used to control such systems traditionally had to be written in text-based programming languages such as, for example, assembly language, C, FORTRAN, BASIC, etc. Traditional users of these systems, however, often were not highly trained in programming techniques and, in addition, text-based programming languages were not sufficiently intuitive to allow users to use these languages without training. Therefore, implementation of such systems frequently required the involvement of a programmer to write software for control and analysis of instrumentation or industrial automation data. Thus, development and maintenance of the software elements in these systems often proved to be difficult.
[0007] U.S. Pat. Nos. 4,901,221; 4,914,568; 5,291,587; 5,301,301; and 5,301,336; among others, to Kodosky et al disclose a graphical system and method for modeling a process, i.e., a graphical programming environment which enables a user to easily and intuitively model a process. The graphical programming environment disclosed in Kodosky et al can be considered a higher and more intuitive way in which to interact with a computer. A graphically based programming environment can be represented at a level above text-based high level programming languages such as C, Basic, Java, etc.
[0008] The method disclosed in Kodosky et al allows a user to construct a diagram using a block diagram editor. The block diagram may include a plurality of interconnected icons such that the diagram created graphically displays a procedure or method for accomplishing a certain result, such as manipulating one or more input variables and/or producing one or more output variables. In response to the user constructing a diagram or graphical program using the block diagram editor, data structures and/or program instructions may be automatically constructed which characterize an execution procedure that corresponds to the displayed procedure. The graphical program may be compiled or interpreted by a computer.
[0009] Therefore, Kodosky et al teaches a graphical programming environment wherein a user places or manipulates icons and interconnects or “wires up” the icons in a block diagram using a block diagram editor to create a graphical “progam.” A graphical program for performing an instrumentation, measurement or automation function, such as measuring a Unit Under Test (UUT) or device, controlling or modeling instruments, controlling or measuring a system or process, or for modeling or simulating devices, may be referred to as a virtual instrument (VI). Thus, a user can create a computer program solely by using a graphically based programming environment. This graphically based programming environment may be used for creating virtual instrumentation systems, modeling processes, control, simulation, and numerical analysis, as well as for any type of general programming.
[0010] A graphical program may have a graphical user interface. For example, in creating a graphical program, a user may create a front panel or user interface panel. The front panel may include various graphical user interface elements or front panel objects, such as user interface controls and/or indicators, that represent or display the respective input and output that will be used by the graphical program or VI, and may include other icons which represent devices being controlled. The front panel may be comprised in a single window of user interface elements, or may comprise a plurality of individual windows each having one or more user interface elements, wherein the individual windows may optionally be tiled together. When the controls and indicators are created in the front panel, corresponding icons or terminals may be automatically created in the block diagram by the block diagram editor. Alternatively, the user can place terminal icons in the block diagram which may cause the display of corresponding front panel objects in the front panel, either at edit time or later at run time. As another example, the front panel may comprise front panel objects, e.g., the GUI, embedded in the block diagram.
[0011] During creation of the block diagram portion of the graphical program, the user may select various function nodes or icons that accomplish his desired result and connect the function nodes together. For example, the function nodes may be connected in one or more of a data flow, control flow, and/or execution flow format. The function nodes may also be connected in a “signal flow” format, which is a subset of data flow. The function nodes may be connected between the terminals of the various user interface elements, e.g., between the respective controls and indicators. Thus the user may create or assemble a graphical program, referred to as a block diagram, graphically representing the desired process. The assembled graphical program may be represented in the memory of the computer system as data structures and/or program instructions. The assembled graphical program, i.e., these data structures, may then be compiled or interpreted to produce machine language that accomplishes the desired method or process as shown in the block diagram.
[0012] Input data to a graphical program may be received from any of various sources, such as from a device, unit under test, a process being measured or controlled, another computer program, or from a file. Also, a user may input data to a graphical program or virtual instrument using a graphical user interface, e.g., a front panel as described above. The input data may propagate through the data flow block diagram or graphical program and appear as changes on the output indicators. In an instrumentation application, the front panel can be analogized to the front panel of an instrument. In an industrial automation application the front panel can be analogized to the MMI (Man Machine Interface) of a device. The user may adjust the controls on the front panel to affect the input and view the output on the respective indicators. Alternatively, the front panel may be used merely to view the input and output, or just the output, and the input may not be interactively manipulable by the user during program execution.
[0013] Thus, graphical programming has become a powerful tool available to programmers. Graphical programming development environments such as the National Instruments LabVIEW product have become very popular. Tools such as LabVIEW have greatly increased the productivity of programmers, and increasing numbers of programmers are using graphical programming environments to develop their software applications. In particular, graphical programming tools are being used for test and measurement, data acquisition, process control, man machine interface (MMI), supervisory control and data acquisition (SCADA) applications, simulation, image processing/machine vision applications, and motion control, among others.
[0014] As new techniques and computerized methods are developed for a given problem domain, specialized software applications for developing solutions to problems in that domain are often created. These specialized applications can provide an environment that is conducive to rapidly and conveniently prototyping a problem solution. Hence, these applications are also referred to herein as “prototyping environments”. A prototyping environment may integrate various capabilities to aid developers of problem solutions. For example, a prototyping environment may provide a library of operations that are specific to one or more problem domains and may enable a user to select various operations from the library for inclusion in an application. Prior art prototyping environments have used various techniques to display the operations in the application, such as using text information arranged in various ways, such as a table or tree view.
[0015] One embodiment of the invention relates to displaying operations in an application by using a graphical programming representation (or block diagram representation). A plurality of operations may be included in the application, e.g., in response to user input received to a graphical user interface of a prototyping environment. A plurality of interconnected icons may be automatically (i.e., programmatically) displayed in response to including the plurality of operations in the application. Each icon may correspond to an operation included in the application.
[0016] In one embodiment, as each operation is added to the application, a corresponding icon may be displayed and may be visually interconnected to one or more other icons that may have been previously displayed. Each icon may be designed to represent the respective operation using an intuitive picture. The plurality of interconnected icons may visually indicate the first function implemented by the plurality of operations in the application. In one embodiment, as each operation is added to the application, the respective operation may also optionally be displayed in a graphical user interface of the application development environment.
[0017] Thus, when the user adds a first operation to the application, a corresponding first icon may be displayed representing the first operation. In addition, a name or other indicia of the respective first operation may optionally be displayed in a graphical user interface of the application development environment. When the user adds a second operation to the application, a corresponding second icon may then be displayed representing the second operation. In addition, a name or other indicia of the respective second operation may be displayed in the graphical user interface of the application development environment. The second icon may be automatically connected to the first icon to indicate the sequence of operations. The above process repeats, where new icons are added to the block diagram representation (and connected with already displayed icons) as the user adds operations to the application.
[0018] As noted above, the system may display interconnecting lines between displayed icons, where each line connects two (or more) icons. The lines may have various meanings or semantics. For example, where the plurality of lines includes a first line that connects a first icon to a second icon, the first line may indicate that performing the first function includes performing the operation corresponding to the first icon before performing the operation corresponding to the second icon. In another embodiment, the first line may indicate that data produced by the operation corresponding to the first icon is used by the operation corresponding to the second icon (data flow). In various embodiments, the interconnection lines or links may visually represent one or more of data flow, control flow, and/or execution flow for the plurality of operations in the application. Thus, the plurality of interconnected icons may be referred to as a graphical programming visual representation (or a block diagram representation) of the plurality of operations in the application. The icons may be displayed in various ways, e.g., in a left-to-right manner or top-to-bottom manner, to visually represent an ordering of the operations or to visually represent other relationships among the operations.
[0019] The plurality of operations may implement a first function. In various embodiments the plurality of operations in the application may implement any of various functions or solutions. As one example, the plurality of operations may include one or more machine vision operations that implement a machine vision function, such as for acquiring and/or analyzing images. As another example, the plurality of operations may include one or more motion control operations that implement a motion control function, such as for controlling motion of a device and/or controlling a device to move an object. As another example, the plurality of operations may include one or more data acquisition (DAQ) operations that implement a DAQ function, such as for acquiring measurement data from a device.
[0020] In one embodiment, the user may perform operations on a displayed image or object (e.g., an image of an object displayed on the display), and this may cause the operations to be stored in the application. The object may also be updated on the display to reflect the operations performed. The system may display a graphical user interface with various menus, dialogs, controls or other GUI elements that the user may use to apply operations to an image. As the user performs each respective operation on the object, a corresponding icon may be displayed to visually represent the operation. Thus, as the user performs each additional operation on the object, a corresponding icon may be immediately displayed to visually represent this operation, and the newly displayed icon may be interconnected with one or more other existing icons. Thus, as noted above, the system may also display a connection between a newly displayed icon and a previously displayed icon to represent their relationship.
[0021] In an embodiment targeted toward machine vision, the system may display an image. The system may also display a graphical user interface that may be used by the user to apply various operations (e.g., image processing or machine vision operations) to the displayed image. The user may use the GUI to perform operations on the displayed image, may draw regions of interest (ROIs) on the image, etc. These actions by the user may cause visual changes to the image according to the operation performed. As the user performs machine vision operations on the displayed image, the machine vision operations may be included or stored in the application, and a corresponding icon may also be displayed to visually represent the machine vision operation. Thus, in one embodiment, as the user performs each operation to the image, 1) the operation is stored in memory, 2) the image is changed according to the operation, 3) a new icon is displayed in the block diagram representation, where the new icon represents the operation, and 4) the new icon may be connected with a pre-existing icon (assuming the new icon does not represent the first operation). The operation may also be displayed in an alternative form in the GUI, such as the textual name of the operation being displayed in a script window.
[0022] In one embodiment, each displayed icon may correspond to a node in a graphical programming development environment. In other words, for each operation provided by the prototyping environment, there may be an equivalent node in the graphical programming development environment. Each of these nodes in the graphical programming development environment may have an iconic appearance that is identical to or substantially the same as the corresponding icon.
[0023] Information representing the application may be stored, e.g., in a data structure or file. The stored information may include information specifying the plurality of operations in the application. For example, the data structure or file may store names or other identifiers that identify the operations in the application. The data structure or file may also store information regarding various properties or parameter values configured for one or more operations in the application.
[0024] In one embodiment, each operation may be executed as the operation is included in the application. In another embodiment, the entire application may be executed together. Executing the application may include executing the plurality of operations in the application to perform the first function.
[0025] Also, in one embodiment the prototyping environment may be operable to programmatically (automatically) generate a graphical program based on the application, where the graphical program is operable to perform the first function. The generated graphical program may appear the same as or substantially the same as the displayed plurality of interconnected icons. The graphical program may then be executed to perform the first function. In another embodiment, the displayed graphical programming representation (or block diagram representation) is itself an executable graphical program that the user may run, use execution highlighting with, etc.
[0026] A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033] FIGS.
[0034]
[0035]
[0036] While the invention is susceptible to various modifications and alternative forms specific embodiments are shown by way of example in the drawings and are herein described in detail. It should be understood however, that drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary the invention is to cover all modifications, equivalents and alternative following within the spirit and scope of the present invention as defined by the appended
[0037] Incorporation by Reference
[0038] The following references are hereby incorporated by reference in their entirety as though fully and completely set forth herein.
[0039] U.S. patent application Ser. No. 09/518,492 titled “System and Method for Programmatically Creating a Graphical Program,” filed Mar. 3, 2000.
[0040] U.S. patent application Ser. No. 09/745,023 titled “System and Method for Programmatically Generating a Graphical Program in Response to Program Information,” filed Dec. 20, 2000.
[0041] 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. 6, 2000.
[0042] 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.
[0043] U.S. patent application Ser. No. 10/051,474 titled “System and Method for Graphically Creating a Sequence of Motion Control Operations,” filed Jan. 18, 2002.
[0044] U.S. patent application Ser. No. ______ titled “System and Method for Automatically Porting a Prototype to an Embedded Device,” filed ______.
[0045]
[0046] Knowledge of computer-implemented techniques for solving problems in a wide array of fields is expanding at a rapid pace. As new techniques and computerized methods are developed for a given problem domain, specialized software programs for developing solutions to problems in that domain are often created. These specialized software programs can provide an environment that is conducive to rapidly and conveniently prototyping a problem solution (or “application”). Hence, these programs are also referred to herein as “prototyping environments”.
[0047]
[0048] As used herein, the term “application” refers to the result that may be produced by such a prototyping environment. In other words, the term “application” refers to a set of operations, and possibly associated parameters, that may be selected by the user using a prototyping environment. The term “application” is intended to encompass a sequence, solution, prototype, algorithm, script, or similar concept. Thus, a prototyping environment may be used to generate an application which represents an algorithm or process designed by the user in the prototyping environment.
[0049] Prototyping environments are usually designed for ease of use and may be specialized for developing solutions for a particular problem domain. They may enable users to create a computer-implemented solution to a problem without requiring the users to utilize or understand traditional programming techniques. For example, the prototyping environment may aid the user in creating an application including a plurality of operations, without requiring the user to write programming language code. Instead of writing code, the user may interact at a higher level with the graphical user interface of the prototyping environment to create the application.
[0050] As described below, according to one embodiment of the present invention, the prototyping environment may be operable to display the operations included in the application by using a graphical programming visual representation of the operations and their relationship with each other. For example, a plurality of interconnected icons may be displayed in response to including operations in the application. Each icon may correspond to an operation in the application, so that the plurality of interconnected icons visually indicates a function or process performed by the operations. As each operation is added to the application, a corresponding icon may be immediately visually displayed in the graphical programming visual representation (or block diagram representation).
[0051] Prototyping environments may be developed for many different problem domains. Various exemplary prototyping environments are mentioned herein. One example is a motion control prototyping environment application for developing a sequence of motion control operations. A motion control sequence is also referred to herein as a motion control “application”.
[0052] Computer-based motion control involves precisely controlling the movement of a device or system. Computer-based motion control is widely used in many different types of applications, including applications in the fields of industrial automation, process control, test and measurement automation, robotics, and integrated machine vision, among others. A typical computer-based motion system includes components such as the moving mechanical device(s), a motor with feedback and motion I/O, a motor drive unit, a motion controller, and software to interact with the motion controller.
[0053] A motion control prototyping environment may be designed to enable a user to easily and efficiently develop/application a motion control sequence or application without requiring the user to perform programming, e.g., without needing to write or construct code in any programming language. For example, the environment may provide a graphical user interface (GUI) enabling the user to develop/application the motion control sequence at a high level, by selecting from and configuring a sequence of motion control operations using the GUI. According to one embodiment of the present invention, the motion control prototyping environment may be operable to display the motion control operations included in the motion control sequence by using a graphical programming visual representation of the motion control operations and their relationship with each other.
[0054] Another example of a prototyping environment described herein is a machine vision prototyping environment. A machine vision prototyping environment may enable a user to rapidly develop an application including a plurality of machine vision operations. As used herein, the term “machine vision operation” may include any of various types of operations related to image analysis, image processing, image acquisition, or other machine vision-related operations. A machine vision application may specify a sequence, script, process, or algorithm for a machine vision application. For example, the machine vision prototyping environment may include a graphical user interface enabling the user to easily apply various machine vision operations to an image and see the results, in order to develop the desired machine vision application.
[0055] In various embodiments, any of various types of machine vision operations may be supported, including image acquisition functions, filtering functions, morphology functions, histogram functions, particle analysis functions, edge detection functions, pattern matching functions, color matching functions, shape matching functions, optical character recognition (OCR), optical character verification (OCV), and 1D and 2D barcodes, etc. In one embodiment, the user may apply various machine vision operations to an image, and the operations may be included in the machine vision application. For example, each operation may be recorded as a step in a script. A script may essentially specify an algorithm; i.e., an algorithm may be defined by the plurality of steps or operations in a script. The user may create the machine vision application without specifying or writing programming language code, similarly as described above. According to one embodiment of the present invention, the machine vision prototyping environment may be operable to display the machine vision operations included in a machine vision application by using a graphical programming visual representation of the machine vision operations and their relationship with each other.
[0056] In various embodiments, the computer system
[0057] an instrumentation environment for interacting with hardware instruments, e.g., in order to initialize an instrument, acquire data from the instrument, analyze the acquired data, etc.
[0058] a circuit design environment for developing and testing circuit designs
[0059] a sound processing environment for applying various audio operations to a sound clip, e.g., in order to analyze the sound clip, eliminate background noise, etc.
[0060] In various embodiments, the operations in any of various types of applications may be displayed by using a graphical programming visual representation. As a few examples, the application may be related to fields such as image processing, image analysis, machine vision, process control, automation, test and measurement, simulation, motion control, robotics, audio, video, graphics, telecommunications, and workflow processes, among others.
[0061] It is noted that a prototyping environment may also enable a user to develop an application which includes operations related to multiple different fields or technologies. For example, one embodiment of a prototyping environment may provide a library of operations including one or more machine vision operations, one or more motion control operations, and one or more data acquisition (DAQ) operations. In this example, the motion control prototyping environment may be referred to as a MC/MV/DAQ prototyping environment. (The abbreviation “MC/MV/DAQ” is used herein to refer to “motion control/machine vision/DAQ”.) For example, a MC/MV/DAQ prototyping environment may be used to create an application including machine vision operations for acquiring and analyzing images of an object, motion control operations for moving the object, and DAQ operations for acquiring measurement data of the object. Such an application may be useful, for example, to specify an automated inspection process performed on manufactured objects.
[0062] Referring again to
[0063] The computer system
[0064] The term “memory medium” is intended to include an installation medium, e.g., a CD-ROM, floppy disks
[0065] FIGS.
[0066]
[0067]
[0068] In one embodiment, the host computer
[0069] The one or more instruments may include a GPIB instrument
[0070] The GPIB instrument
[0071] The GPIB card
[0072] The VXI chassis or instrument
[0073] A serial instrument (not shown) may also be coupled to the computer
[0074] The instruments are coupled to the unit under test (UUT) or process
[0075]
[0076] In one embodiment, the host computer
[0077] The one or more devices may include a data acquisition board
[0078] The DAQ card
[0079]
[0080]
[0081]
[0082] As shown in
[0083] In various embodiments, the images of the objects
[0084] The results of the image analyses may be used to determine whether an object
[0085] The computer system
[0086] The computer system(s)
[0087] Although
[0088]
[0089]
[0090] The computer may include at least one central processing unit or CPU
[0091] The host bus
[0092] A reconfigurable instrument
[0093]
[0094]
[0095] In
[0096] In
[0097] As described above, in various embodiments the plurality of operations in the application may implement any of various functions or solutions. As one example, the plurality of operations may include one or more machine vision operations that implement a machine vision function, such as for acquiring and/or analyzing images. As another example, the plurality of operations may include one or more motion control operations that implement a motion control function, such as for controlling motion of a device and/or controlling a device to move an object. As another example, the plurality of operations may include one or more data acquisition (DAQ) operations that implement a DAQ function, such as for acquiring measurement data from a device.
[0098] The operations in the application may be related to one another or structured in any of various ways. For example, in one embodiment, the application may comprise a sequence of operations. In one embodiment, each operation in the sequence may be performed sequentially. In another embodiment, the user may specify conditional branches that may result in some operations being skipped or performed in different orders, e.g., depending on results of performing previous operations. The user may also specify other types of constructs, such as iteration, looping, jumps, etc.
[0099] In various embodiments, the user may perform any of various actions or may interact with the graphical user interface of the prototyping environment in any of various ways to cause operations to be included in the application. For example, in one embodiment, a plurality of buttons may be displayed, each button corresponding to a particular operation. The user may press the appropriate button to add the desired operation. In another embodiment, a library of icons may be displayed on a panel or palette, where each icon corresponds to a particular operation available for inclusion in the application. The user may select the appropriate icon to add the desired operation. In other embodiments, the user may utilize other menu, keyboard, and/or voice commands to add an operation to the application.
[0100] In one embodiment, operations may be included in the application in response to the user performing the operations on an object of interest. For example, the user may select various operations to apply to the object, and this may cause the operations to be included in or stored in the application. Thus, the application may specify the operations applied to the object. The object or an image of the object may also be updated to reflect results of applying the operations to the object. In one embodiment, the user may directly perform operations on an object, such as by using a virtual reality glove or similar device to manipulate a physical object, and the operations performed by the user may be recorded as operations in the application. Head tracking and eye tracking devices, and other types of virtual reality devices, may also be used.
[0101] In one embodiment, operations may be included in the application in response to the user performing operations on an object displayed on the screen, e.g., an image of an object. The object image may represent a physical system or device. The user may graphically manipulate or otherwise selection operations to affect the object image. For example, the user may desire to create a robotic application to assemble a portion of an automobile, and the user may graphically select and place automobile parts on the screen to create the application.
[0102] In an embodiment targeted toward machine vision, the system may display an image, and the user may perform machine vision operations on the displayed image, which may cause visual changes to the displayed image according to the operation performed. As the user performs machine vision operations on the displayed image, the machine vision operations may be included in or stored in the application.
[0103] In one embodiment each operation may be interactively executed as the operation is included in the application, e.g., may be executed automatically in response to including the operation in the application or may be executed in response to a user request. For example, this may help the user to verify that each individual operation in the application performs as intended. Also, in one embodiment, each operation may be included in the application in response to executing the operation, e.g., in response to applying the operation to an object.
[0104] In one embodiment, the graphical user interface of the prototyping environment may be updated to illustrate the effect of including and/or executing each new operation. For example, as noted above, the graphical user interface of a machine vision prototyping environment may display an image, and the image may be updated to illustrate the effect of applying a new machine vision operation included in the application to the image. As another example, the graphical user interface of a motion control prototyping environment may display one or more views of motion control performed by the application, such as a two-dimensional and/or three-dimensional view of the cumulative movement specified by the application, as well as other types of views, such as a graph indicating a velocity profile. These views may be updated to illustrate the effect of adding a new motion control operation to the motion control application. In this example, the motion control operations may not actually be executed as they are added to the motion control application, e.g., may not actually cause a motion control device to move, but rather their effects may be simulated on the graphical user interface.
[0105] In one embodiment, each operation included in an application may have various associated properties, attributes, or parameters affecting the operation. For example, an arc move motion control operation may have parameters or properties such as a radius, a start angle, and a travel angle. These parameters may initially have default values. The user may configure these parameters or properties (typically using a GUI) to customize each operation.
[0106] In the preferred embodiment, the user may configure the parameters of the operations graphically, without having to write any program code. For example, a graphical panel for configuring the operation may be displayed. This panel may be automatically displayed in response to selecting the operation or adding the operation to the application, or the panel may be displayed in response to user input requesting to configure the operation. User input for configuring the operation may be received to the graphical panel. For example, the panel may include various user interface elements for changing parameter or property values of the operation, such as numeric GUI controls, check boxes, etc.
[0107] In one embodiment, the graphical user interface of the prototyping environment may be updated to illus