US5168441A - Methods for set up and programming of machine and process controllers - Google Patents

Methods for set up and programming of machine and process controllers Download PDF

Info

Publication number
US5168441A
US5168441A US07/531,261 US53126190A US5168441A US 5168441 A US5168441 A US 5168441A US 53126190 A US53126190 A US 53126190A US 5168441 A US5168441 A US 5168441A
Authority
US
United States
Prior art keywords
graph
controller
program
graphical
editing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US07/531,261
Inventor
William G. Onarheim
Horace Dudley
Barbara E. Meyer
Michael J. Viste
David J. Morley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Priority to US07/531,261 priority Critical patent/US5168441A/en
Assigned to ALLEN-BRADLEY COMPANY, INC., A CORP OF WI reassignment ALLEN-BRADLEY COMPANY, INC., A CORP OF WI ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: MORLEY, DAVID J.
Assigned to ALLEN-BRADLEY COMPANY, INC., A CORP OF WI reassignment ALLEN-BRADLEY COMPANY, INC., A CORP OF WI ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: DUDLEY, HORACE, MEYER, BARBARA E., ONARHEIM, WILLIAM G., VISTE, MICHAEL J.
Priority to EP91911216A priority patent/EP0531435B1/en
Priority to DE69121712T priority patent/DE69121712T2/en
Priority to PCT/US1991/003628 priority patent/WO1991019237A1/en
Priority to JP3510640A priority patent/JP2984369B2/en
Application granted granted Critical
Publication of US5168441A publication Critical patent/US5168441A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23002Petrinet
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23157Display process, synoptic, legend, pictogram, mimic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23255Object oriented programming, OOP
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23273Select, associate the real hardware to be used in the program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23291Process, graphic programming of a process, text and images

Definitions

  • Microfiche Appendix A with 4 fiche and a total of 339 frames is incorporated in this specification.
  • the field of the invention is computerized controllers for controlling a machine or process in an industrial or commercial environment, and more particularly methods for constructing application programs for such controllers.
  • Graphical programming aids as disclosed in Kossiakoff, U.S. Pat. No. 4,315,315, and Kodosky et al., U.S. Pat. No. 4,901,221, use a programming computer to display a data flow diagram as a graphical representation of a computer program, typically for a second computer. This graphical representation of a computer program is then compiled into an actual program file for operation in the second computer.
  • ladder diagram type which was developed from relay logic diagrams.
  • the uprights of the ladder diagram represent the high and low side of a power supply circuit.
  • the rungs of the ladder complete a circuit path when the logical elements in the rung are analyzed to produce a logic true result for the rung.
  • Another type of programming language is the sequential function chart, in which an industrial process is analyzed as a series of alternating steps and transitions.
  • Another type of programming language is the function block diagram where a block in a program may be assigned various mathematical, logical or other types of functions to relate inputs to outputs. Before designing a program for an individual controller processor, the controller hardware must be selected and arranged.
  • Controller equipment is sold in units and modules which can be selected and arranged ("configured") in many different numbers and types to make up the system or systems controlling the particular industrial operation.
  • An important consideration in this configuration of the hardware is the determination of the input and output points (I/O points) in the controller system.
  • I/O points input and output points
  • an input device for example a pushbutton, sends an electrical signal to the controller system, or an output device, for example a solenoid, receives an output signal from the controller system.
  • controller systems are set up and installed by engineers who specialize in that task. There is a desire to aid a greater number of industrial customers, both large businesses and small, in understanding, installing and using controller equipment. To this end it is desired to provide an easy-to-use and intuitive graphical user interface for a desktop computer, for analyzing an industrial process, configuring the hardware and developing programs for execution by the controller hardware.
  • the invention relates to methods for analyzing an industrial or commercial process, configuring controller hardware and developing program for execution by that controller hardware. These methods are practiced with graphical editing software that runs on a desktop computer.
  • a first graphical editing task which shall be referred to as a process editing task, is used to diagram the industrial or commercial process.
  • a second graphical editing task which shall be referred to as a hardware editing task, is used to diagram the configuration of the controller hardware.
  • a third graphical editing task which shall be referred to as a program editing task, is used to diagram one or more programs for the processor units in the controller hardware. The graphical controller program developed with these graphical editing tasks can then be compiled into an operational program for a controller processor in the controller system.
  • the process and hardware graphical editing tasks are particularly helpful in arranging data to be input to the program editing task.
  • Process I/O signals are identified using the process editing task and these are conveyed to the hardware editing task.
  • the process editing task groups the I/O signals in the process according to location and type for easier matching with the controller hardware.
  • the process I/O signals are related to hardware I/O points.
  • the hardware editing task uses a two-layered icon to simulate the physical units of controller hardware including the important relationship of I/O modules to I/O chassis.
  • the hardware I/O points are then conveyed to the program editing task, where they are related to program variables.
  • the graphical editing tasks have common constituent parts, including a selection bar at the top, a tree graph window immediately below the selection bar, a graph editing window below the tree graph window, and a palette of graphical tools displayed along the left-hand side of the graph editing window.
  • the tree graph window shows the relationship or hierarchy of graphs within a graphical editing task. It can also be used to select the opening and display of a particular graph within the graph editing window.
  • the palettes have a pair of oppositely directed scrolling arrows, which are selected by operating a mouse input device, to cause the scrolling or simulated rotation of the palettes, so that multiple palette panels can be associated with each palette. This gives each editing task the ability to add graphical nodes, and then further characterize these nodes by location, and by the number and type of inputs and outputs to the node, using a sequence of palette panels.
  • One object of the invention is to provide an intuitive, easy-to-use user interface for set up and programming of programmable controller equipment.
  • the general techniques of the invention are further applicable to programming of other types of industrial equipment such as motor controls, motion control equipment, operator interface logic and special purpose displays and vision systems.
  • Another object of the invention is to provide a metaphor to existing programmable controller hardware as used and understood by those in the art of industrial control.
  • FIG. 1 is a control system diagram for a car wash which includes a programming computer in which the methods and program of the present invention are used;
  • FIG. 2 is a diagram showing regions and graph elements used in the present invention.
  • FIG. 3a is a block diagram representing a portion of the object-oriented program of the present invention.
  • FIG. 3b is a block diagram representing a portion of the object-oriented program of the present invention.
  • FIG. 4 shows a screen display at start up of the method and program of the present invention
  • FIGS. 5-43 are further screen displays showing the operation of the methods and program of the present invention.
  • the invention is practiced on a programming computer 10 with graphical programming software for programming an electronic controller in one of several high-level graphical programming languages. Each graphical program is then compiled into a program file 11.
  • the program file 11 is transferred via diskette or via a network 12 to a target processor 23 in a computerized controller system for controlling a commercial or industrial process or machine--in this example, the equipment at a car wash.
  • the programming computer 10 includes a Compaq 286 or Compaq 386 desktop computer 13 with one disk drive 14, four megabytes of internal RAM memory (not shown) and a hard disk 15 of twenty megabytes capacity.
  • the computer 13 is loaded with the MS-DOS operating system, Version 3.31 (not shown).
  • a graphics monitor 16 is equipped with a suitable graphics controller and is connected to the computer 13 to provide for visual output to the user.
  • the user input devices for the personal computer 10 include a mouse 17 and a keyboard 18.
  • the mouse 17 has two buttons, a right hand button (RHB) and a left hand button (LHB).
  • a first programmable controller for controlling equipment in the car wash includes one processor chassis 21 and two remote I/O chassis 22a, 22b, the second I/O chassis 22b being located at the exit.
  • the processor chassis 21 holds a modular system processor module 23 in its left-most slot.
  • the processor chassis 21 also has a power supply 24 attached to one side and a group of I/O modules 25 in other slots.
  • the programming computer 10 is connected to this module 23 through the first network 12 mentioned above.
  • the processor module 23 is also connected to adapter modules 26, 27 in the I/O chassis 22a, 22b to communicate input and output status data to I/O modules 29, 30. This connection is made through a remote I/O master-slave, serial data network 28.
  • the I/O modules 25, 29, 30 in all chassis 21, 22a, 22b connect through wiring (not shown) to the equipment in the car wash 19, 20.
  • the general functions of the controller processor module 23 and the I/O modules 25, 29, 30 are well known to those of ordinary skill in the art.
  • the controller processor module 23 executes a control program, sometimes also referred to as a user's application program, because the program is developed in a user program language for one of many possible industrial applications. In executing the program, the controller processor module 23 generates output status data in response to the state of input status data and according to the logic contained in the user control program.
  • the controller processor module 23 executes an I/O scan in which input status data is read from those of the I/O modules 25, 29 and 30 that are input modules, and output status data is written to those of the I/O modules 25, 29 and 30 that are output modules.
  • the I/O modules 25, 29 and 30 that are input modules convert AC and DC signals from input devices, such as sensors, limit switches and pushbuttons, to digital logic-level signals that can be stored as input data.
  • the I/O modules 25, 29 and 30 that are output modules convert digital logic-level signals to AC and DC signals for operating output devices such as relays and solenoids.
  • the I/O modules 25, 29 and 30 connect to these input and output devices on the car wash equipment 19, 20 through swing-arm connectors with screw-type terminals of a type well known in the art.
  • a control program or user's application program for the controller processor 23 is entered on the programming computer 10 as a high-level graphical diagram, using graphical programming software that runs on the programming computer 10.
  • the controller program file 11 is then compiled into executable code. This file 11 is then transferred to the controller system processor 23.
  • two other programmable controllers 31 and 32 are provided to control car wash equipment at the exit location. These controllers 31 and 32 also have controller processors connected to the first network to receive program files downloaded from the programming computer 10.
  • the programming computer is loaded with software for graphically representing and then generating the controller program files 11.
  • the programming software is developed using the Smalltalk/V-286 programming language and application development program available from Digitalk, Los Angeles, Calif. This development program allows for creation of runtime application programs (called image files) by entering instructions in the object-oriented Smalltalk programming language.
  • the Smalltalk programming language is one of several object-oriented programming languages. These languages are used to construct objects or data structures which can be very complex, and include such things as zoomable windows. Objects have "attributes" which give them individual characteristics. Each object has the ability to manipulate its own internal attributes. An object encapsulates its attributes such that other objects cannot manipulate these attributes directly. Objects communicate with each other by sending messages and these messages may request the second object to do something to its attributes. Many different types of objects may respond to the same message.
  • the object's attributes take the form of data in a data structure and each object has its own data structure.
  • a class defines a data structure for a related group of objects.
  • the class of an object also defines the program methods that the object uses to manipulate its data and data structure. In the Smalltalk language, methods may be thought of as sequences of instructions to carry out a certain procedure relative to such objects and their data.
  • a method is invoked in response to a message being sent to an object.
  • the data structure and methods of one class are inherited by a new class.
  • the new class is referred to as the subclass of the original class (which in turn is referred to as the superclass).
  • the new subclass has all of the attributes and methods of the superclass, but can add attributes and methods of its own, including overriding methods of the superclass.
  • the Smalltalk development program is provided with a set of standard classes and standard methods. Subclasses can be built upon the standard classes and new methods can be added to expand the base development program into a more specific application program.
  • the Smalltalk programming language is applied here to create a graphical programming application.
  • a number of graphs are drawn on the screen. These graphs are made up of graph elements, such as nodes, vertices, or arcs. Classes are provided to define the behavior of these graph elements or objects.
  • the graph elements can be provided with menus of commands to carry out such functions as add, remove, cut and copy, paste, update and redraw.
  • FIG. 2 shows the basic building blocks or graphical elements that will be used for the graphs in this description.
  • Graphs 38 are displayed in a graph editing window 33 and comprise regions 39 in which specific graphical elements 34, 35 will appear. These graphical elements are nodes 34, subnodes, vertices 35 (sometimes called “verts") and arcs. The arcs are lines that appear in a subclass of regions known as arc regions 39a.
  • a function block something like a "black box”, is an example of a node.
  • This node may have one or more sub-nodes and one or more vertexes (also referred to as vertices). Vertices are used as connection points on nodes. Arcs are the lines which connect one vertex on one node to a second vertex on a second node and thus construct the connected graph.
  • the node and vert graph elements 34, 35 are associated with certain models, which are subparts or attributes of the graph element class and its node, vert and arc subclasses.
  • a "function block" is one model of a node.
  • An input or output (I/O) variable is one model of a vert.
  • a model of a node responds to messages from the node and passes data to the node 34.
  • the node model 36 may respond to a set of messages sent by its node 34 as follows.
  • the model In response to a "Graphic Model” message, the model returns data containing a graphical representation of the model. This graphical representation will be displayed in the graph editor window 33 as the graph 38 is being edited.
  • the model In response to the "Select Operation" message, which occurs when the cursor enters the graphic region 39 representing the model, the model returns a message to perform one of two operations. The first is to highlight the graphic region; the second is to invoke a text editing operation on a graphic region that is representing text.
  • the model In response to the "Left Click Operation" message, when the user clicks with the LHB of the mouse 17 on a graphic region 39 representing the model, the model returns a message to perform one of three operations. The first is to invoke a dragging operation to allow the graphic region to be dragged and repositioned by the editor; the second is to invoke a rubberbanding operation which allows graphic regions to be connected together; and the third is to dispatch a "choose" message to the model being represented by the graphic region.
  • the node model 36 In response to a "Verts" message, the node model 36 is responsible for returning a collection of vertices contained by that node. This collection is based on the state of the node model 36 and is determined by the number of connection points it should have. For example, a node model 36 for a function block would return a collection containing a vert for each one of its inputs and outputs.
  • the node model 36 is responsible for returning a collection of sub-node objects that the node 34 should contain.
  • Sub-nodes are similar to verts but contain no connection behavior.
  • Sub-nodes are used to represent information within the model that needs to be manipulated by the user.
  • sub-nodes typically contain a text string to be displayed and edited.
  • a function block would be a node model 36 and would return a sub-node used to represent its name.
  • the node model 36 In response to a "Menu" message, the node model 36 provides a menu of operations that the user can choose to perform on the model 36. The model 36 also provides the methods for carrying out these menu items. These model menu selections may add to menu selections provided by the Graph Element class and a Node Subclass.
  • FIG. 3a illustrates base classes that have been added to the standard classes of the Smalltalk development program.
  • the base classes include some editor classes which provide a graphical editor of the type seen in FIG. 5, where a graphical editor provides data and methods for display of a browsing window 40, which further includes a title bar 41, a selection bar 42, a tree graph window 43, a graph editing window 33 and an editing tool palette 45.
  • FIG. 3a illustrates the base classes that have been added to the Smalltalk standard classes to provide a graphical editor.
  • FIG. 3b illustrates Connected Graph subclasses and Model classes and subclasses that have been added to the Smalltalk standard classes to provide the particular type of nodes, verts and arcs to carry out this application for programming of machine and process controllers.
  • Appendix A lists the Smalltalk code for base classes and Model classes that have been added to the standard Smalltalk classes to provide support for this example.
  • the classes in Appendix A are all subclasses of the Smalltalk class named "Object". Pages 1-3 of Appendix A provide a Class hierarchy in which the direct subclasses of "Object” are signified by the notation (.Subclass). A subsequent subclass noted (..Subclass) would be a subclass of (.Subclass).
  • Some of the first-tier subclasses that will be described herein are: activeEditor; palette; connectedGraph; graphElement; the Model classes under graphElementModel; region; and pane. The description herein will not necessarily follow the conventions for upper case/lower case and word spacing used in the Smalltalk listing and application program. Instead of "lowercaseUppercase", an underscore ( -- ) will sometimes be used to associate two words in text label, such as "CAR -- DETECT -- 4". Initial capital letters will be used for Smalltalk class names.
  • the Editor classes include the Active Editor class 47, the Graph Editor class 48 and the Graph Browser class 49. These classes are instrumental in putting together the pieces to form what is ultimately seen on the screen of the programming computer 10 as the browsing window 40 and its contents.
  • the graph editing window 33 is referred to as a "Pane" within the browsing window 40, however, in this description, this pane will be referred as the graph editing window 33, which is tiled (side-by-side as opposed to overlapping) with other windows and elements to form the larger browsing window 40.
  • the Active Editor class 47 receives data from the Pane classes 46 and the Region class 52 to help put together the background information to display the browsing window 40.
  • One function of the Pane classes 46 is to convert from whole screen coordinates to coordinates within the graph editing window or pane.
  • the Active Editor class 47 receives mouse events and menu selections from the Pane class to control scrolling and zooming of the graph editing window 33.
  • the Active Editor class represented by block 47 in FIG. 3a, adds, deletes and displays regions 39 within the graph editing window 33.
  • the Region classes 52 work in tandem with the editor classes 47-49 by managing individual graphical regions 39 within the graph editing window 33.
  • the active regions contain graph elements, which are generally defined by the abstract Graph Element Class 54 and more specifically defined by the subclasses 55-58 for node, sub-node, vert and arc. These subclasses in turn communicate with the Model classes 59 which define specific types of nodes, sub-nodes, verts and arcs.
  • Arcs are connecting links within a connected graph. Arcs are handled like lines, whereas the nodes 34 and verts 35 are handled like bit-mapped objects in regions 39.
  • node is an object which may contain a number of sub-nodes or a number of vertices from which connections are made by arcs to the vertices of other nodes.
  • a vertex can be associated with multiple arcs.
  • the sub-nodes do not connect to one another; they may be, for example, an item of text for labeling a node.
  • a Graph Editor class 48 which is a subclass of the Active Editor class 47, adds the manipulation of regions 39 by dragging and connection.
  • the Graph Editor class 48 controls the dragging of single or multiple regions 39 within the graph editing window 33, the connection of regions 39 by arcs 39a, the dispatching of tools to the region 39, and the addition of nodes 34 to the graph 38.
  • the editing tool palette 45 seen in FIG. 5 is the result of a group of Palette classes 51 in FIG. 3b, which are subclasses of the Active Editor class 47.
  • An individual tool in the palette in FIG. 5 is chosen by moving the mouse-controlled cursor over it and pressing the LHB to select (clicking on) the tool, which then becomes the current active editing tool.
  • the mouse-controlled cursor is next clicked on an open area of the graph editing window 33, the selected type of palette item is added to the graph.
  • the palette allows graph elements to be quickly added to a graph.
  • a Connected Graph class represented by block 53 in FIG. 3a, carries out the basic functions needed to relate nodes, verts and arcs in a connected graph 38. There are subclasses of this Connected Graphs class 53 to define many types of connected graphs.
  • model for a node could be a "function block"; the model for a vert could be an I/O variable.
  • the Model Classes 59 and the Graph Element classes 54 are operationally connected through the message interface as described earlier in relation to FIG. 2.
  • the browsing window 40 includes a tree graph 50 that illustrates a hierarchy of graphs within any particular editing task. Branches or nodes of the tree represent a particular diagram within the graph hierarchy. Selecting a tree branch or tree node will bring a corresponding graph into the graph editing window 33. This allows a complex, deeply nested graph to be quickly traversed.
  • the Graph Browser class represented by block 49 in FIG. 3a, is a specialization of Graph Editor class 48.
  • the Graph Browser class 49 displays the hierarchical tree structure in the tree graph window 43 above the graph editing window 33 in FIG. 5. It also makes changes in the tree graph 50.
  • the editor classes 47-49 in FIG. 3a are responsible for a) dispatching of mouse events to graphical regions 39 in FIG. 2, b) updating the contents of the graph editing window 33, c) displaying and aligning graphical regions 39 to a grid, d) printing of the connected graph 38, e) displaying palettes 45, and f) dispatching palette tool commands to the graph 38 and to graphical regions 39.
  • FIG. 3b there is a summary of the Graph Classes and Model Classes which provide the particular connected graph diagrams in the application program.
  • a Model Class 60 is provided for Project Documents.
  • a "project document” is represented by the icon 82 in FIG. 4.
  • Project document is a classification of the present application program as it relates to a desktop window seen in FIG. 4,
  • the graphical editor program to be described will execute three editing tasks.
  • the editing tasks are known as the PROCESS, HARDWARE and PROGRAM editing tasks.
  • graphs defined by the Connected Graph class 53 will be viewed in the editing window 33. There is therefore a graph for the PROCESS editing task that is seen in FIG. 5.
  • the collection of objects in this graph is defined by a PROCESS Graph class 61 represented in FIG. 3b.
  • a graph for the HARDWARE editing task is defined by a HARDWARE (Location) Graph class 62 and is seen in FIG. 20.
  • a graph for the PROGRAM editing task is defined by a PROGRAM Graph class 63 and this graph is seen in FIG. 33.
  • the nodes 90-93 in the PROCESS Graph in FIG. 5 are sub-parts or cycles within a car wash operation. These nodes 90-93 are defined by the PROCESS Element Model class 64 in FIG. 3b.
  • the loop back from the the PROCESS Element Model class 64 to the PROCESS Graph class 61 in FIG. 3b shows that other graphs can be nested within nodes 90-93 in FIG. 5.
  • I/O Definition block graph At the lowest level of the PROCESS graphical hierarchy is a single block graph known as an I/O Definition block graph and this is seen in FIGS. 11-15. This is defined by a subclass 65 of the Connected Graph class seen represented in FIG. 3b as "I/O Definition Graph".
  • the single node in this graph is an I/O Definition block which is defined by the I/O Element Model class represented by block 66 in FIG. 3b. This node may include a number of inputs and outputs and these would be defined by the I/O Tag Model class 67 represented in FIG. 3b.
  • the nodes in the HARDWARE (Location) Graph in FIG. 20 are defined by the HARDWARE Location Element Model class 68 represented in FIG. 3b.
  • HARDWARE Devices Graphs can be nested within nodes 131, 132 in FIG. 20. These HARDWARE Devices Graphs are seen in FIGS. 22-24, and are defined by a HARDWARE Devices Graph class represented by block 69 in FIG. 3b. Examples of the nodes in the Devices Graphs are seen in FIGS. 22-24.
  • These nodes are defined by the Model classes 70 and 71 for a processor chassis and an I/O chassis, respectively. These nodes are displayed graphically to represent the processor chassis 21 and the I/O chassis 22a in FIG. 1, as well as the other programmable controllers 31, 32.
  • Model class 72 Nested within these chassis nodes is a node for which the Model class is the I/O Rack Model class 72 represented in FIG. 3b.
  • This class 72 provides the data and methods to display a graphical image of a rack structure seen in FIGS. 25-27, which can be either a processor chassis 21 or the I/O chassis 22a, 22b seen in FIG. 1.
  • This graphical image node can contain a collection of sub-nodes for which the model is defined by the I/O Module model class 73 represented in FIG. 3b.
  • This class defines a graphical image for a controller I/O module that can be superimposed over the image of an I/O rack to simulate positioning of the I/O module in the physical I/O rack.
  • the nodes in this graph are one or more program icons as seen in FIG. 33.
  • the Model class for these nodes is represented by block 74. These nodes each hold a one-block function diagram graph of their respective programs as exemplified in FIG. 36.
  • This diagram or graph is defined by the Connected Graph subclass represented by block 75 in FIG. 3b.
  • the nodes in this graph are defined by the Model class represented by block 76.
  • SFC sequential function chart
  • BBD function block diagram
  • an SFC Graph class defines the diagram for this language as represented by block 77, and the SFC nodes are defined by SFC Element Model classes and represented by block 79. Not illustrated in FIG. 3b, but also included in the application program are classes for the SFC verts. Assuming the second option is selected, a FBD Graph class defines the diagram for this language as represented by block 78, and the FBD nodes are defined by FBD Element Model classes represented by block 80. Not illustrated in FIG. 3b, but also included in the application program are classes for the FBD input and output variables.
  • a graphic application program can be constructed for programming machine or process controller equipment.
  • each window in the application has some basic window tool icons 81 to select the functions of 1) closing the window (), 2) zooming out to enlarge the portion of a graph seen in the window (Z), 3) a title bar only selection, and 4) a resize window command.
  • These functions are provided by the standard classes received with the Smalltalk programming language.
  • the graphical programming interface is started up by selecting an icon 82 seen in FIG. 4 for the "CAR WASH" application program.
  • the application is opened by moving the mouse 17 to position a cursor on the "CAR WASH” icon 82 and by operating the right hand button (RHB) of the mouse 17 to open a menu (not shown).
  • the menu includes the command "edit” which is selected by dragging the mouse 17 to highlight the command and then operating the LHB on the mouse 17. This opens or starts up the application.
  • this particular graphical programming interface includes a graphical editor with three graphical editing tasks, named PROCESS, HARDWARE and PROGRAM. These editing tasks are like applications or individual tasks and run one at a time by the graphical editor.
  • the graphical editing tasks are selected using a selection bar 42 with selection areas 83, 84, 85 for the three specific editing tasks.
  • other graphical editing tasks can be added for other tasks related to set up and programming of electronic controllers, such as the connection of programmable controllers in a network.
  • Each editing task has a browser window 40 as seen in FIG. 5 with the selection bar 42 near the top, just below the caption for the browser window 40.
  • Below the selection bar 42 is the tree graph window 43.
  • a tree graph 50 is partly displayed in FIG. 5.
  • the full tree graph is displayed, as seen in FIG. 6, by executing the "zoom (out)" command.
  • the cursor is positioned in the tree graph window 43 and the RHB on the mouse 17 is operated to open a menu with the "zoom" command.
  • the command is then selected by moving the cursor to it and operating the LHB on the mouse 17.
  • the RHB of the mouse 17 is used to open menus and LHB is used for selecting or clicking on commands and objects.
  • the tree graph 50 defines the relationship of a group of views of connected graphs and graphical objects which can be called up one-by-one to the editing window 33.
  • the car wash application 82 has been defined as having four process nodes or branches, labeled ENTRY, WASH, WAX and DRY, which are four cycles in the car wash operation. These are displayed in alphabetical order in FIG. 6, but another order could be used. These branches or nodes are subdivided further and each connect to a lower tier of graphical objects. For the DRY cycle seen in FIG. 5, these objects are labeled AIR -- FLOW, CAR -- DETECT -- 4, F -- 1 and FAN -- 1.
  • Each branch of the tree graph 50 represents an object or graph which has been stored in the memory of the computer 10 and which can be displayed and edited in the graph editing window 33.
  • a branch of the tree graph is selected by 1) moving the mouse-controlled cursor over the branch or node of the tree graph 50 and 2) clicking the LHB to select the tree node and a corresponding graph for viewing and editing in the graph editing window 33.
  • the node in the tree graph 50 is displayed in a shaded box, which is represented by the dashed line boxes 50a, 50b, 50c and 50d in FIGS. 7-10.
  • the tree graph 50 is drawn automatically by the program of the invention as the parts of the industrial or commercial process are added in the editing window 33.
  • a multi-panel graphical editing tool palette 45 To the left side of editor window 33 in FIG. 5 is a multi-panel graphical editing tool palette 45, in which only one panel 45a is visible at a time. There are two oppositely directed, horizontally pointing, scrolling arrows 86, 87 near the top of the palette 45. The panels of the palettes 45 are changed by moving the mouse-controlled cursor over one of the two arrows 86, 87, and pressing the LHB. (This moving of the cursor and then executing a selection action with the LHB shall be referred to as a "clicking on" operation.) Each time a scrolling arrow 86, 87 is clicked on, the palette 45 rotates in the appropriate sense or direction to the next panel.
  • the PROCESS panel 45a in FIG. 5 has tool selection areas 89 for selecting a set of nodes for this particular car wash application, including CONVEYER, MOTOR, PUMP, SENSOR, TANK and VALVE.
  • These palette tools 89 are set up through Smalltalk programming to reflect the type of equipment to be controlled in the industrial or commercial application for the electronic controller equipment. Instead of text labels, graphical icons could also be used for identifying the palette tools.
  • a palette tool 89 labeled "NEW” is selected to add and define new types of process function blocks in the PROCESS graph editing window 33.
  • a dialog box or highlighted area will prompt the user for a name for the process node.
  • four PROCESS function blocks 90-93 were added to the graph with the names ENTRY, WASH, WAX and DRY.
  • the PROCESS nodes are also identified by location, using a LOCATION panel 45c of the type seen in FIG. 10. Two of the tools 119 provided in this LOCATION panel 45c in FIG. 10 are "ENTRY" and "EXIT", which correspond to the areas where the equipment in the car wash is located. Selection of individual tools on all panels of the palette 45 is made by clicking on the appropriate tool.
  • the tool 94 at the top of the palette with the diagonal arrow symbol is a tool for selecting and dragging objects in the graph editing window 33.
  • the process blocks 90-93 in FIG. 5 are then assigned an input vertex 96 or an output vertex 95, or both, as shown, using a VERTICES palette panel 45b of the type seen in FIG. 7.
  • the vertices 95, 96 are then connected by arcs 97 (seen in straight lines) by using the mouse 17.
  • the verts are connected by moving the mouse 17 to move the cursor over a vertex ("vert") and pressing the left-hand button (LHB) of the mouse 17 ("clicking on" the vert), then moving the cursor to the next vert and clicking on the second vert.
  • LHB left-hand button
  • the PROCESS editing task uses nodes for processes, vertices (sometimes called “verts") for process connection points and arcs as the links between the vertices.
  • vertices sometimes called "verts”
  • the connection of arcs and verts at this level of the process is graphical--the verts are not used as input and output variables which receive changing data, as are the verts used in the PROGRAM editing task to be described below.
  • the palette tools 89 for SENSOR, CONVEYER, and MOTOR shown in FIG. 5 are used to create objects or nodes seen within the ENTRY node of the PROCESS in FIG. 7. These nodes or objects are represented on the screen by icons 98, 99, 100 and 101.
  • the names CAR -- DETECT -- 1, CONVEYER, CAR -- LENGTH and CAR -- PULL are alphanumeric names which are typed in and appear over the icons 98-101 for the object on the screen.
  • the LOCATION panel 45c from FIG. 10 is activated to assign a location "ENTRY".
  • the term "ENTRY" below each icon 98-101 in the graph editing window 33 is not referring to the "ENTRY" part of the PROCESS displayed in the tree graph 50, but is instead referring to the "ENTRY" location of the car wash equipment.
  • the icons in FIG. 7 are then assigned one or more input vertices 96 or one or more output vertices 95, or both, as shown, using a VERTICES panel 45b as seen in FIG. 7.
  • the vertices 95, 96 are then connected by arcs 97 (seen in straight lines) in the manner described earlier to provide a connected graph for the "ENTRY" portion of the PROCESS.
  • FIG. 8 shows the connected graph for the WASH part of the PROCESS.
  • a first sensor node represented by icon 102
  • a second sensor node represented by icon 103
  • a motor node represented by icon 104
  • a tank node represented by icon 105
  • a valve node represented by icon 106
  • a pump node represented by icon 107 is given the name "SPRAY”.
  • These nodes are added with the "PROCESS" panel 45a of the palette seen in FIG. 5. The location of each node is specified below its respective icon, using the LOCATION panel 45c from FIG. 10 as described for the ENTRY portion of the PROCESS.
  • the icons in FIG. 8 are then assigned an input vertex 109 or an output vertex 108, or both, as shown, using a VERTICES panel 45b seen in FIG. 7.
  • the vertices 108, 109 are then connected by arcs 110 (seen in straight lines) in the manner described earlier for connected graphs. This provides a connected graph for the WASH portion of the PROCESS.
  • FIG. 9 shows a connected graph for the WAX part of the PROCESS.
  • a CAR -- DETECT -- 3 sensor represented by icon 111, detects the presence of a car and transmits a CAR -- PRESENT signal to start the motor with the name M -- 1, represented by icon 112.
  • the motor M -- 1 drives a pump, represented by icon 113 with the name "SPRAY", which applies one of two kinds of waxes, labeled GOOD -- WAX and CHEAP -- WAX.
  • GOOD -- WAX and CHEAP -- WAX are alphanumeric names for two respective tanks, represented by icons 114 and 115.
  • a WAX -- 1 valve and a WAX -- 2 valve represented by icons 116 and 117 control the flow of wax solution to SPRAY pump 113.
  • FIG. 10 shows a connected graph for the DRY part of the PROCESS.
  • a CAR -- DETECT 4 sensor represented by icon 120, detects the presence of a car and transmits a CAR -- PRESENT signal to start the motor with the name "F -- 1", represented by icon 121.
  • the F -- 1 motor 121 drives an air pump with the name "FAN -- 1" and represented by icon 122, which applies warm air to the car.
  • the "AIR” is seen as a process input to the air pump 122 labeled "FAN -- 1".
  • FIG. 11 shows such an I/O definition block element 124 for the CAR -- DETECT -- 4 sensor 120.
  • This encapsulated diagram can be displayed in the editing window 33 by clicking on the appropriate node in the tree graph 50 or executing an "edit" command from a pop-open menu.
  • the input and output signals which must be monitored or controlled relative to the CAR -- DETECT -- 4 sensor 120 are defined from a controller viewpoint. This is illustrated with respect to the "DRY" part of the PROCESS in FIGS. 11-15, and is applicable to the other parts of the PROCESS as well.
  • the CAR -- DETECT -- 4 sensor 120 is defined as receiving a PROCESS input signal given the name CAR -- DETECT.
  • the palette 45 for the I/O definition blocks 124 includes panels 45d, 45e and 45f labeled VARIABLE, VAR TYPE and LOCATION, respectively, as seen in FIGS. 11-13. Tools on the VARIABLE panel 45d in FIG. 11 are selected and applied to add an input variable (*IN*) or an output variable (*OUT*). Tools on the VAR TYPE panel 45e in FIG. 12 are selected and applied to define the type of electrical signal at the process input or output. In this case, the electrical signal is selected as a discrete input signal of 5 DC volts. Tools on the LOCATION type panel 45c in FIG. 13 are selected and applied to specify the location of the I/O definition block 124 relative to the available locations for the PROCESS, in this case "EXIT".
  • FIG. 15 shows a second example of an I/O definition block 125 for the FAN -- 1 air pump 122 with two inputs or conditions for turning on, AUX -- CONTACT and FAN -- OVER -- TEMP, and an output signal labeled FAN -- MOTOR -- DRIVE. These have all been defined as 120-volt AC discrete signals, using the palette panel 45e labeled "VAR TYPES" for variable types.
  • a menu 126 will pop open with the command "BROWSE DATA" as seen in FIG. 14.
  • "BROWSE DATA" command 126a is selected by clicking on it with the mouse 17, a list 127-130 in spreadsheet form, as seen in FIGS. 16-19, opens over the editing window 33 and presents a list of input and outputs for the applicable portion of the PROCESS.
  • These inputs and outputs are identified in the first column with their alphanumeric tag names in the format (process node name.I/O variable name).
  • These PROCESS I/O points are defined in the second column according to their direction (IN or OUT) and their variable type (functional electrical signal).
  • These PROCESS I/O points are further defined in the third column of the spreadsheet according to their location in the car wash (e.g. "EXIT").
  • FIG. 19 shows an example list 130 of PROCESS I/O points defined from a controller viewpoint for the DRY part of the PROCESS.
  • This list 130 includes the CAR -- DETECT -- 4.CAR DETECT input signal defined in FIG. 12. This is further defined as a 5 DC volts signal and a discrete input signal.
  • I/O points are the FAN -- 1.AUX -- CONTACT input signal, the FAN -- 1.FAN -- OVER -- TEMP input signal and the FAN -- 1.FAN -- MOTOR -- DRIVE output signal defined in FIG. 15.
  • the FAN -- 1.AUX -- CONTACT input signal is further defined as a 120 AC volts signal and a discrete input signal.
  • the FAN -- 1.FAN -- OVER -- TEMP input signal is further defined as a 120 AC volts signal and a discrete input signal.
  • the FAN -- 1.FAN -- MOTOR -- DRIVE output signal is further defined as a 120 AC volts signal and a discrete output signal.
  • FIGS. 16-18 show the PROCESS I/O point data for the ENTRY, WASH and WAX parts of the PROCESS.
  • the "BROWSE DATA" command 126a can be executed to call up a tag list 127 for the ENTRY cycle.
  • tag CAR -- DETECT -- 1.CAR -- DETECT is a controller input signal of 120 AC volts from the CAR -- DETECT -- 1 sensor 98.
  • Tag CONVEYER.AUX -- CONTACT is a 120 AC volts discrete input signal to a controller from the CONVEYER motor 99.
  • Tag CAR -- PULL.CAR -- LENGTH is a 10-volt DC analog output signal to the CAR -- PULL conveyer 101 related to sensing a car.
  • Tag CAR -- LENGTH.LENGTH is a 10-volt DC analog input signal from the CAR -- LENGTH sensor 100. This partial listing shows how a list of controller inputs and outputs is assembled from the graph of the ENTRY part of the PROCESS.
  • FIG. 17 shows a similar tag list window 128 with a list of tags for the WASH part of the PROCESS.
  • the tag CAR -- DETECT -- 2.CAR -- DETECT identifies a 120-volt AC input signal to a controller from the CAR -- DETECT -- 2 sensor 102 in FIG. 8.
  • the SPRAY -- PUMP motor 104 receives a 120-volt AC discrete output signal from a controller (Tag SPRAY -- PUMP. WATER -- PUMP -- MOTOR in FIG. 17).
  • the sensor 103 labeled "LEVEL” in FIG. 8 sends a 120-volt AC discrete input signal to be sensed by a controller (Tag LEVEL.SOAP -- WATER -- LEVEL in FIG. 17).
  • FIG. 18 shows a similar tag list window 129 with a list of tags for the WAX part of the PROCESS seen in FIG. 9.
  • the CAR -- DETECT -- 3 sensor 111 provides a 120-volt AC discrete input (IN) signal (CAR -- DETECT -- 3.CAR -- DETECT).
  • the WAX -- 1 -- OPEN signal and the WAX -- 2 -- OPEN output signal are 120-volt AC discrete input signals for sensing the position of the valves 116, 117.
  • the WAX -- 1 -- VALVE signal is an output signal to control the opening of the WAX -- 1 valve 116.
  • the M -- 1 motor 112 provides two input signals, an AUX -- CONTACT signal and a OVER -- TEMP signal, both of which are 120-volt AC discrete input signals.
  • the motor 112 is operated in response to a 120-volt AC discrete output signal referred to as M -- 1.WAX -- SPRAY -- PUMP in the tag list 129.
  • M -- 1.WAX -- SPRAY -- PUMP in the tag list 129.
  • the last tag in the "WAX" cycle tag list is the name for a 120-volt discrete AC input signal WAX -- FLOW from the sensor 118 labeled WAX -- SPRAY. As with the other tag lists, this is a partial list to show how a list of controller input and output signals is assembled from the graph of a part of the process.
  • the user is ready to activate the HARDWARE graphical editing task by selecting that choice from the selection bar 42 using the mouse 17.
  • the highest level graph of the HARDWARE editing task is activated in the graph editing window 33 by selecting the HARDWARE selection area 84 in the selection bar 42 using the mouse 17.
  • This graph includes nodes 131, 132 which are created for the ENTRY location and the EXIT location in the car wash. This is accomplished by selecting the "NEW" tool 133c from the LOCATIONS panel 133a of a palette 133 for the HARDWARE editing task and by naming the new nodes.
  • the hardware system node labeled "CARWASH" in the tree graph 134 appears in a shaded box represented by dashed line 234.
  • FIGS. 20 and 21 a tree graph 134 is formed for the HARDWARE editing task to graphically show the hierarchical relationship of graphs or diagrams of the controller hardware.
  • FIG. 21 is viewed on the screen by clicking on the tree graph window 43 and by selecting "zoom" from the menu as discussed for the PROCESS editing task.
  • FIG. 22 is a graph for hardware at the ENTRY location
  • the processor chassis 21 in FIG. 1 is represented by a processor chassis node 135.
  • This node is added using a processor tool 136 in a PROCESSOR palette panel 133b.
  • the choice of one of the processor tools 136 defines the type of processor that is added, in this case PLC -- TYPE -- 1.
  • the processor is given an alphanumeric processor name such as "WASH".
  • the ENTRY node in the tree graph 134 appears in a shaded box represented by dashed line 235.
  • the EXIT node in the tree graph 134 appears in a shaded box represented by dashed line 236.
  • the processor nodes 140, 141 are added in the graph of the EXIT location in FIGS. 23 and 24 to represent the other two programmable controllers 31 and 32 seen in FIG. 1. One of these is added with the PLC -- TYPE -- 2 tool, and the other is added with the PLC -- TYPE -- 3 tool.
  • the PLC -- TYPE -- 2 processor chassis 140 is given the name, ELECTRIC, and the PLC -- TYPE -- 3 processor chassis 141 is given the name, DRY.
  • the three nodes 140, 141 and 142 in FIGS. 23 and 24 are also represented as nodes in the tree graph 134.
  • the palette panel 133b also has a tool 138 for adding I/O chassis nodes 142, such as I/O chassis 22b at the EXIT location in FIG. 1. Only one type of I/O chassis is provided by the single I/O chassis tool 138, but other types of I/O units could be provided with additional tools.
  • a menu 143 pops open, as seen in FIG. 24, so that the user can assign the I/O rack to a processor listed in the menu 143.
  • an I/O rack at the EXIT location is assigned to a processor named "WASH" at the ENTRY location.
  • the node 142 for the I/O rack then appears, as seen in FIGS. 23 and 24, with the lowest available rack identification number, such as RACK -- 2, for that processor.
  • the I/O rack is connected to the "WASH" processor by the single available serial communication channel, which is identified on the I/O node 142 as "CHANNEL 1".
  • a graph or icon can be called up for these objects to assist in determining what specific I/O modules are needed to handle the functional electrical signals previously identified for the car wash process during activation of the PROCESS editing task.
  • the selection of the PLC -- TYPE -- 1 processor node by clicking on a branch of the tree graph 50, as represented by dashed line box 144 in FIG. 25, calls up an image 145 of a physical processor chassis.
  • This image 145 includes the PLC -- TYPE -- 1 processor 146 shown in a left-most slot and eight pairs of physical slots 139.
  • Each pair of slots 139 will hold at least a pair of 8-bit, discrete I/O point modules, which are known as a module group and which are numbered "0" to "7" (octal).
  • the maximum number of I/O modules for any processor or I/O chassis is sixteen, and chassis for four, eight and twelve I/O modules are also available.
  • the processor chassis image 145 is selected by moving the mouse-controlled cursor over it. This selects the object 145 as shown by the display of a heavy line 147 that encloses the module group addresses.”0" to "7". By operating the RHB of the mouse, two menus 148 and 149 are presented as seen in FIG. 25 for adding I/O modules 150 both visually and in a data sense to the selected chassis.
  • the first command 151 on the first menu 148 adds an I/O module 150 in the first slot, which is Rack 0, Module Group 0, Module 0 (left slot) in this example.
  • the address of the starting Rack and starting Module Group No. for the first slot can be changed with selections in the menu 148.
  • the first I/O module to be added visually will be added to the I/O slot with lowest available slot address and furthest to the left.
  • the module 150 can be designated to handle discrete or analog inputs and outputs from the second menu 149, In this example, we shall assume the "DISCRETE INPUTS" command 152 is executed.
  • the first two menus 148, 149 close and a third menu 153 appears, as seen in FIG. 26 to provide options for signal level ranging from 5 DC volts to 240 AC volts.
  • the 120 VAC command 154 is selected by positioning the cursor on it and clicking on it with the mouse LHB.
  • a fourth menu 155 opens as seen on FIG. 27 to provide the available types of I/O modules meeting these parameters.
  • the first command 156 is selected and executed to designate an IN -- TYPE -- 1 module for the first available slot in the processor chassis 145.
  • An image of the input module 150 is superimposed at the correct slot location to simulate insertion of an I/O module 150 into the chassis 145.
  • FIG. 28 shows an image 158 for the RACK -- 1 I/O chassis from FIG. 22.
  • This image 158 appears when the RACK -- 1:WASH node is selected in the tree graph 134, as represented by dashed line box 159 in FIG. 28.
  • This image is similar to the processor chassis image 145, except that an adapter module 157 labeled "ASB" is placed in the left-most slot instead of the PLC -- TYPE -- 1 processor.
  • I/O modules would be added to the I/O chassis image 158 in the manner described for the processor chassis image 145, using the four menus 148, 149, 153 and 155 described above. After adding I/O modules 150, 160, 161 to a processor chassis 145 or an I/O chassis 158, as seen in FIG.
  • a module such as the input module 150 can be selected by moving a cursor over it and operating the LHB of the mouse 17.
  • the processor chassis image 145 is white or light
  • the selection of an I/O module image 150 changes its color from white (light) to red (dark) as represented by a dashed line selection box 162 in FIG. 29.
  • menus 163, 164 can be opened by pressing the RHB of the mouse 17.
  • a "MOVE MODULE" command may be selected and executed to move the I/O module to a different rack or slot.
  • the second menu 164 provides a list of other chassis to which the module 150 can be moved.
  • the input module 150 is being moved from the processor chassis RACK -- 0 to the I/O chassis labeled RACK -- 1:WASH by executing command 165 and making selection 166 from the second menu 164 as seen in FIG. 29.
  • an I/O module 150 it can also be dragged from slot to slot within its I/O chassis.
  • a menu is opened with two choices: 1) unassigned I/O at this location and 2) I/O unassigned to any location.
  • a list 167 for the ENTRY location is displayed as seen in FIG. 30. This is a list of the process input signals and output signals that were defined in the tag lists for the ENTRY and WASH cycles shown in FIGS. 16 and 17, but were not assigned to an hardware input or output. This list is for informational purposes to help the user choose the type of I/O modules in the HARDWARE editing task that are needed to handle these functional signals developed in the PROCESS editing task.
  • the unassigned process I/O signals have tag names in the form of [process node name.equipment node name.process I/O signal name (I/O signal type)].
  • the list 167 is limited to signals that have not been assigned to a hardware input or output on an I/O module 150. This is a reference list. By clicking on the OK area 168 the list is removed from display.
  • FIGS. 29 and 31 illustrate how the process I/O signals are related to inputs and outputs on the controller hardware which have been selected in the preceding Figures.
  • the menu 163 includes an "ASSIGN I/O" command for assigning functional process input signals and output signals from the PROCESS editing task to the I/O modules.
  • ASSIGN I/O an "ASSIGN I/O" command for assigning functional process input signals and output signals from the PROCESS editing task to the I/O modules.
  • the assignment window 169 displays a two-column list 170 under a header 171 that displays Rack 0, Group 0, Module 0. This is a list 170 of assigned and unassigned I/O for ENTRY and WASH parts of the car wash process, because the processor chassis 147 in FIG. 29 is located at the ENTRY location to handle these two parts of the process.
  • the identification of the Rack 0, Module Group 0, I/O Module 0 in the header 171 and individual inputs and outputs "1" to "8" in the left column provides the system I/O addresses for inputs and outputs for the controller hardware This address also identifies the I/O module selected in FIGS. 25-27.
  • In the right column in FIG. 31 are unassigned PROCESS input and output signals in the form [process node name.equipment node name.process I/O signal name (I/O signal type)]. When one signals is assigned, its tag is followed by the note "(ASSIGNED)".
  • FIG. 31 An example of assignment of a process I/O signal to a controller input and output is seen in FIG. 31, where an unassigned one-bit input location "8" in the left column is selected with the mouse and highlighted. Next, the unassigned input signal WASH.SPRAY -- PUMP.OVER -- TEMP in the right column is selected and highlighted, and it will also appear in the left column at the selected location. Once assigned, a notation "(ASSIGNED)" appears in the right column.
  • the HARDWARE editing task provides a convenient graphical method to relate the process to the controller hardware needed for the control system, and particularly, the hardware inputs and outputs at which the controller is connected to the process. This not only helps the user in choosing and setting up controller equipment, but it also provides further information that is helpful in programming the processors in the controller equipment.
  • the user is ready to operate in the PROGRAM graphical editing task to write high-level graphical programs for the controller processors.
  • Various types of graphical programming languages can be used in the PROGRAM editing task. Three types chosen for this application are ladder diagram programming, sequential function chart (SFC) programming, and function block diagram (FBD) programming.
  • FIG. 32 shows the "PROGRAMS DOCUMENTS” graph discussed earlier in relation to block 63 in FIG. 3b.
  • This particular example of the graph shows two icons 175, 176 in the editing window 33.
  • These icons 175, 176 are of the type for representing sequential function chart (SFC) programs.
  • the first program 175 is named “CARWASH” and is intended to run on the processor named “WASH” at the ENTRY location.
  • the other program 176 is named “PROGRAM” and is intended to run on a processor named "ELECTRIC” at the EXIT location.
  • the palette panel 177a seen in FIG. 32 has tools 178, 179 for assigning programs to these two controller processors 23, 31 in FIG. 1. Other tools would be available on the panel 177a to assign programs to various controller processors seen in FIG. 1.
  • FIG. 33 shows a second panel 177b in the revolving palette 177, with a "NEW” tool 182 for adding new types of programs for the processors.
  • the "GRAVEL” tool 183 commands uploading a program from the hard disk 15 to internal RAM memory in the computer 13.
  • FIG. 34 shows the selection of PROGRAM DOCUMENTS graph represented by the dashed line box 181 around the tree node labeled "PROGRAMS”.
  • the CARWASH program 175 is represented by the tree node labeled "CARWASH -- PROG".
  • FIG. 34 also illustrates the selection of one of the programs, the CARWASH program 175 and the opening of a menu 184 related to such a program using the RHB of the mouse 17.
  • This menu 184 provides commands including "PROCESSOR” as an alternative way to assign a program to a specific controller processor. Selection of this command will open another menu (not shown) with a list of controller processors.
  • Another command is "COMPILE” for compiling the program in the executable code file 11 seen in FIG. 1 or into a ladder instruction file in the case of a ladder diagram program.
  • Another command is "DOWNLOAD" for downloading the executable code file 11 or ladder instruction file to a controller processor.
  • the car wash application provides the capability of representing each program as a single function block diagram (FBD) and single function block element, discussed earlier in relation to blocks 75 and 76 in FIG. 4.
  • This FBD graph is opened in the editing window 33 by selecting the CARWASH -- PROG tree node in the tree graph 180 as represented by dashed line box 186 in FIG. 35,
  • the program entitled “CARWASH” is represented as one block 185.
  • the full view of the single FBD graph is seen in FIG. 36 by selecting the zoom command for the graph editing window 33 in FIG. 35.
  • the palette panel 177c entitled “DATA TYPES” in FIG. 35 is one of the palette panels available for this graph in the PROGRAM editing task.
  • This palette panel 177c has an INTEGER tool 187, a real number (REAL) tool 188, and a Boolean (BOOL) tool 189 for defining the type of input or output variables used as inputs and outputs to the function block 185.
  • the inputs for the function block 185 are displayed on the left hand side of the block 185 and the outputs (e.g. ENTRY -- CONV, CAR -- LENGTH) are displayed on the right hand side of the block 185.
  • the items with text outside and to the left of the program function block 185 are process input signals that were previously connected to hardware inputs. Process output signals that were previously connected to hardware outputs would be shown as items with text outside and to the right of the program function block 185.
  • the process and hardware inputs and outputs are visually connected by their tag names to input and output variables in the controller program.
  • the program variables are linked to hardware inputs and outputs at their system I/O addresses.
  • a function block When a function block is added to a graph, it is provided with a set of generic inputs and outputs labeled IN 1, IN 2, etc. These are renamed with test editing operations to specify names for program variables such as ENTRY -- DETECT and ENTRY -- AUX. These program variables are also defined as to the type of data which is received or transmitted by each input or output variable, using the palette panel 177c with tools for data types such as REAL, INTEGER or BOOLEAN.
  • FIG. 37 illustrates the list for all of the inputs for the "WASH" processor.
  • "PROCESSORS” is selected from the first menu 190 and then "INPUTS” from the second menu 191, which opens a third menu 191 with a list of tags assigned to the hardware inputs for the applicable processor.
  • "ALL" is selected from the third menu, all of the input tags on the third menu 191 are added as items with text to the left of the function block 185. Individual input tags could also be selected and added from the third menu 191.
  • the hardware input and output tags can be selected and dragged to a positions opposite input and output variables on the function block 185 using the handles at the left of the text.
  • a hardware input for example, is visually connected to its opposite input program variable using the mouse technique described earlier for connecting two verts with an arc.
  • the other hardware/process input and output tags are then connected to the program variables by clicking on a program variable, moving the cursor over to a hardware/process I/O point, and clicking again to form an arc, and then moving down the opposing pairs in similar fashion.
  • FIG. 38 shows a more detailed diagram in which the CARWASH program is broken down into several function blocks 193 and 194 corresponding to the ENTRY and WASH cycles.
  • a palette panel 195 is provided with tools 196 for adding function blocks having arithmetic functions such as "+” and logical functions such as "AND”.
  • the "NEW” tool 196 uses the "NEW" tool 196, the function blocks can be created for four cycles of the car wash.
  • this more detailed diagram of the CARWASH program is selected by selecting the node labeled CARWASH as represented by dashed line box 202.
  • Input and output variables for these lower level function blocks 193, 194 are named, defined as to data type and then connected to the input and output variables for the higher level function blocks. Data received at the higher level program inputs and outputs can then be passed to and from inputs and outputs at the next lower level of the program.
  • FIG. 39 depicts four menus 197, 198, 199 and 200.
  • the command "ADD" is selected from the first menu 197 and the command “VARIABLE” is selected from the second menu, and the command “INPUT” is selected from the third menu 199, which opens the fourth menu 200.
  • the fourth menu 200 includes a list of the program variables from the single function block 185 for the CARWASH program. Again, the command "ALL" is chosen to display all of the inputs in the fourth menu 200 in the editing window 33.
  • FIG. 40 illustrates that, using the techniques described above, a set of AND and NOT logic blocks with predefined inputs IN -- 1, IN -- 2, IN -- 3 and predefined output OUT can be added and connected to program variables for the WASH function block 194 in FIG. 38.
  • Palette tools 203 and 204 are used to add the "AND” and "NOT” function blocks 205 and 206.
  • Input and output variables are defined as to type (BOOLEAN) for the function blocks 205, 206 and connected to the input and output variables (DETECT, AUX) for the WASH function block 194 as described above for higher levels of the program.
  • This program is displayed by selecting the "WASH" tree node as represented by dashed line box 208.
  • FIG. 41 illustrates a palette panel 207 labeled "PARTS” with graphical symbol tools 222-226 for sequential function block (SFC) programming.
  • This SFC program is encapsulated in the ENTRY function block 193 in FIG. 38, and would be executed by a controller processor at the ENTRY location.
  • This program is displayed by selecting the "ENTRY" tree node as represented by dashed line box 209.
  • SFC instructions include steps and transitions. Steps are represented graphically by a box with three vertices.
  • the first block 210 in FIG. 42 is an initial step that indicates where execution begins. The initial step is signified by the double line border on the box.
  • the start step is followed by a transition instruction 211.
  • Transition instructions are graphically represented by a horizontal bar with vertices on top and bottom.
  • a transition instruction is executed when the "CAR -- DETECT" logical input variable becomes logically "true”.
  • the transition instruction 211 is followed by a step instruction 212. It is connected by an arc to an action block 213.
  • the program branches on the next transition either to a right branch or to a left branch.
  • the left branch has a first transition instruction 214. This branch is entered when the conditions on the transition instruction 214 become logically "true” before the conditions for transition instruction 218 become logically "true”.
  • the transition instruction 214 is followed by a step instruction 215, which is connected to an action block 216. This block is followed by another transition instruction 217.
  • the right branch has a first transition instruction 218. This branch is entered when the conditions on the transition instruction 218 become logically "true” before the conditions for transition instruction 214 become logically "true”.
  • the transition instruction 218 is followed by a step instruction 219, which is connected to an action block 220. This block is followed by another transition instruction 221.
  • the program reads as follows. On startup, represented by step 210, the processor checks the CAR -- DETECT variable, as represented by transition 211. This variable becomes true when a CAR -- DETECT signal is detected, and execution of the program moves to the next step.
  • the value of the variable "CONV” is set to "true” and stored as represented by the boxes with “S” and "CONV” in action block 213.
  • next transition to be executed, and the next branch of the program to be executed depends upon which transition conditions occur first. If the expression "NOT AUX & ALARM -- 1" becomes true, then the transition 214 is executed to the NO -- RUN step 215. In this step 215, the variable "CONV" is reset (R) as shown in action block 216. The next transition 217, back to the start step 210 of the program, occurs when the SPEED variable is detected to be less than "5" as shown for transition 217.
  • the transition instruction 218 is executed to proceed to the TOO -- HOT step 219.
  • the variable "CONV” is removed from storage as shown by the letter “N” in action block 220.
  • FIG. 43 illustrates a palette panel 227 with tools 228 for graphing a ladder diagram program 231 for the DRY portion of the PROCESS as represented by dashed line box 230.
  • This program would be executed by a controller processor at the EXIT location.
  • the graphical symbols for ladder diagram instructions are the tools 228 or "elements" in the palette panel 227.
  • the "COMPILE" command 229 is selected with mouse 17 from a menu 184 in the editing window for the CARWASH program 175. This causes the program to be compiled into an executable code file 11.
  • the file may be saved to disk or transmitted on the network 12 to the target processor 23. If a ladder diagram program is involved, it can be translated to a ladder instruction file before it is saved to disk or transmitted through the network 12 to the target processor 23.
  • the graphical program information from the PROGRAM editing task can be reused.
  • the hardware I/O tags are reconfigured to the new system I/O addresses using the HARDWARE editing task.
  • the executable code is then compiled from the previous graphical program.
  • the menu 184 provides commands including "PROCESSOR” for reassigning a program to a different controller processor. Selection of this command will open another menu (not shown) with a list of controller processors.

Abstract

Graphical editing methods are employed to construct programs in high-level graphical languages prior to compilation and operation in controllers for industrial or commercial equipment. The editing methods include process, hardware and program editing tasks for defining both process and hardware I/O points and connecting them to variables in a controller program. Each editing task has a tree graph window, a graph editing window, and a palette with rotating panels of graphical editing tools. The hardware editing taks uses two-layered icons to graphically simulate the hardware environment. A plurality of graph types are based on generalized node-vert-arc graphical elements which are special classes programmed in the Smalltalk programming language. Languages for the controller program include function block, sequential function chart and ladder diagram.

Description

REFERENCE TO MICROFICHE APPENDIX
Microfiche Appendix A with 4 fiche and a total of 339 frames is incorporated in this specification.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The field of the invention is computerized controllers for controlling a machine or process in an industrial or commercial environment, and more particularly methods for constructing application programs for such controllers.
2. Description of the Background Art
Graphical programming aids, as disclosed in Kossiakoff, U.S. Pat. No. 4,315,315, and Kodosky et al., U.S. Pat. No. 4,901,221, use a programming computer to display a data flow diagram as a graphical representation of a computer program, typically for a second computer. This graphical representation of a computer program is then compiled into an actual program file for operation in the second computer.
For machine or process controllers, several types of graphical programming languages are known. One type is the ladder diagram type, which was developed from relay logic diagrams. The uprights of the ladder diagram represent the high and low side of a power supply circuit. The rungs of the ladder complete a circuit path when the logical elements in the rung are analyzed to produce a logic true result for the rung. Another type of programming language is the sequential function chart, in which an industrial process is analyzed as a series of alternating steps and transitions. Another type of programming language is the function block diagram where a block in a program may be assigned various mathematical, logical or other types of functions to relate inputs to outputs. Before designing a program for an individual controller processor, the controller hardware must be selected and arranged. Controller equipment is sold in units and modules which can be selected and arranged ("configured") in many different numbers and types to make up the system or systems controlling the particular industrial operation. An important consideration in this configuration of the hardware is the determination of the input and output points (I/O points) in the controller system. At these I/O points an input device, for example a pushbutton, sends an electrical signal to the controller system, or an output device, for example a solenoid, receives an output signal from the controller system.
Many controller systems are set up and installed by engineers who specialize in that task. There is a desire to aid a greater number of industrial customers, both large businesses and small, in understanding, installing and using controller equipment. To this end it is desired to provide an easy-to-use and intuitive graphical user interface for a desktop computer, for analyzing an industrial process, configuring the hardware and developing programs for execution by the controller hardware.
SUMMARY OF THE INVENTION
The invention relates to methods for analyzing an industrial or commercial process, configuring controller hardware and developing program for execution by that controller hardware. These methods are practiced with graphical editing software that runs on a desktop computer.
A first graphical editing task, which shall be referred to as a process editing task, is used to diagram the industrial or commercial process. A second graphical editing task, which shall be referred to as a hardware editing task, is used to diagram the configuration of the controller hardware. A third graphical editing task, which shall be referred to as a program editing task, is used to diagram one or more programs for the processor units in the controller hardware. The graphical controller program developed with these graphical editing tasks can then be compiled into an operational program for a controller processor in the controller system.
The process and hardware graphical editing tasks are particularly helpful in arranging data to be input to the program editing task.
Process I/O signals are identified using the process editing task and these are conveyed to the hardware editing task.
The process editing task groups the I/O signals in the process according to location and type for easier matching with the controller hardware.
Using the hardware editing task, the process I/O signals are related to hardware I/O points. The hardware editing task uses a two-layered icon to simulate the physical units of controller hardware including the important relationship of I/O modules to I/O chassis. The hardware I/O points are then conveyed to the program editing task, where they are related to program variables.
The graphical editing tasks have common constituent parts, including a selection bar at the top, a tree graph window immediately below the selection bar, a graph editing window below the tree graph window, and a palette of graphical tools displayed along the left-hand side of the graph editing window.
The tree graph window shows the relationship or hierarchy of graphs within a graphical editing task. It can also be used to select the opening and display of a particular graph within the graph editing window.
The palettes have a pair of oppositely directed scrolling arrows, which are selected by operating a mouse input device, to cause the scrolling or simulated rotation of the palettes, so that multiple palette panels can be associated with each palette. This gives each editing task the ability to add graphical nodes, and then further characterize these nodes by location, and by the number and type of inputs and outputs to the node, using a sequence of palette panels.
One object of the invention is to provide an intuitive, easy-to-use user interface for set up and programming of programmable controller equipment. The general techniques of the invention are further applicable to programming of other types of industrial equipment such as motor controls, motion control equipment, operator interface logic and special purpose displays and vision systems.
Another object of the invention is to provide a metaphor to existing programmable controller hardware as used and understood by those in the art of industrial control.
Other objects and advantages besides those discussed above shall be apparent to those of ordinary skill in the art from the description of a preferred embodiment of the invention which follows. In the description, reference is made to the accompanying drawings, which form a part hereof, and which illustrate examples of the invention. Such examples, however, are not exhaustive of the various embodiments of the invention, and therefore reference is made to the claims which follow the description for determining the scope of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a control system diagram for a car wash which includes a programming computer in which the methods and program of the present invention are used;
FIG. 2 is a diagram showing regions and graph elements used in the present invention;
FIG. 3a is a block diagram representing a portion of the object-oriented program of the present invention;
FIG. 3b is a block diagram representing a portion of the object-oriented program of the present invention;
FIG. 4 shows a screen display at start up of the method and program of the present invention;
FIGS. 5-43 are further screen displays showing the operation of the methods and program of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT A. The Application of the Invention to a Computer-Based Control System
The invention is practiced on a programming computer 10 with graphical programming software for programming an electronic controller in one of several high-level graphical programming languages. Each graphical program is then compiled into a program file 11. The program file 11 is transferred via diskette or via a network 12 to a target processor 23 in a computerized controller system for controlling a commercial or industrial process or machine--in this example, the equipment at a car wash.
The programming computer 10 includes a Compaq 286 or Compaq 386 desktop computer 13 with one disk drive 14, four megabytes of internal RAM memory (not shown) and a hard disk 15 of twenty megabytes capacity. The computer 13 is loaded with the MS-DOS operating system, Version 3.31 (not shown). A graphics monitor 16 is equipped with a suitable graphics controller and is connected to the computer 13 to provide for visual output to the user. The user input devices for the personal computer 10 include a mouse 17 and a keyboard 18. The mouse 17 has two buttons, a right hand button (RHB) and a left hand button (LHB).
As seen in FIG. 1, certain car wash equipment 19 is located near the entry of the car wash and certain car wash equipment 20 is located near the exit of the car wash. A first programmable controller for controlling equipment in the car wash includes one processor chassis 21 and two remote I/O chassis 22a, 22b, the second I/O chassis 22b being located at the exit. The processor chassis 21 holds a modular system processor module 23 in its left-most slot. The processor chassis 21 also has a power supply 24 attached to one side and a group of I/O modules 25 in other slots. The programming computer 10 is connected to this module 23 through the first network 12 mentioned above. The processor module 23 is also connected to adapter modules 26, 27 in the I/O chassis 22a, 22b to communicate input and output status data to I/O modules 29, 30. This connection is made through a remote I/O master-slave, serial data network 28. The I/ O modules 25, 29, 30 in all chassis 21, 22a, 22b connect through wiring (not shown) to the equipment in the car wash 19, 20.
The general functions of the controller processor module 23 and the I/ O modules 25, 29, 30 are well known to those of ordinary skill in the art. The controller processor module 23 executes a control program, sometimes also referred to as a user's application program, because the program is developed in a user program language for one of many possible industrial applications. In executing the program, the controller processor module 23 generates output status data in response to the state of input status data and according to the logic contained in the user control program.
At some predetermined interval, the controller processor module 23 executes an I/O scan in which input status data is read from those of the I/ O modules 25, 29 and 30 that are input modules, and output status data is written to those of the I/ O modules 25, 29 and 30 that are output modules.
The I/ O modules 25, 29 and 30 that are input modules convert AC and DC signals from input devices, such as sensors, limit switches and pushbuttons, to digital logic-level signals that can be stored as input data. The I/ O modules 25, 29 and 30 that are output modules convert digital logic-level signals to AC and DC signals for operating output devices such as relays and solenoids. The I/ O modules 25, 29 and 30 connect to these input and output devices on the car wash equipment 19, 20 through swing-arm connectors with screw-type terminals of a type well known in the art.
A control program or user's application program for the controller processor 23 is entered on the programming computer 10 as a high-level graphical diagram, using graphical programming software that runs on the programming computer 10. The controller program file 11 is then compiled into executable code. This file 11 is then transferred to the controller system processor 23.
In addition to the first programmable controller comprising the electronic controller equipment in chassis 21, 22a and 22b, two other programmable controllers 31 and 32 are provided to control car wash equipment at the exit location. These controllers 31 and 32 also have controller processors connected to the first network to receive program files downloaded from the programming computer 10.
Besides the operating system, the programming computer is loaded with software for graphically representing and then generating the controller program files 11. The programming software is developed using the Smalltalk/V-286 programming language and application development program available from Digitalk, Los Angeles, Calif. This development program allows for creation of runtime application programs (called image files) by entering instructions in the object-oriented Smalltalk programming language.
For background information and specifications on this program and the hardware for operating it, reference is made to the Smalltalk/V Tutorial and Programming Handbook, copyright 1988 Digitalk, Inc.
Although the Smalltalk/V development program is offered with basic windowing and bit-mapped graphics, it provides no straightforward technique for building graphical interfaces with direct manipulation (point and click with a mouse), nor does it provide for connected graphs and graphical editors in a graphical programming language.
B. The Smalltalk Programming Language
The Smalltalk programming language is one of several object-oriented programming languages. These languages are used to construct objects or data structures which can be very complex, and include such things as zoomable windows. Objects have "attributes" which give them individual characteristics. Each object has the ability to manipulate its own internal attributes. An object encapsulates its attributes such that other objects cannot manipulate these attributes directly. Objects communicate with each other by sending messages and these messages may request the second object to do something to its attributes. Many different types of objects may respond to the same message.
From a programming point of view, the object's attributes take the form of data in a data structure and each object has its own data structure. A class defines a data structure for a related group of objects. The class of an object also defines the program methods that the object uses to manipulate its data and data structure. In the Smalltalk language, methods may be thought of as sequences of instructions to carry out a certain procedure relative to such objects and their data. A method is invoked in response to a message being sent to an object. The data structure and methods of one class are inherited by a new class. The new class is referred to as the subclass of the original class (which in turn is referred to as the superclass). The new subclass has all of the attributes and methods of the superclass, but can add attributes and methods of its own, including overriding methods of the superclass.
The Smalltalk development program is provided with a set of standard classes and standard methods. Subclasses can be built upon the standard classes and new methods can be added to expand the base development program into a more specific application program.
The Smalltalk programming language is applied here to create a graphical programming application. In this programming application a number of graphs are drawn on the screen. These graphs are made up of graph elements, such as nodes, vertices, or arcs. Classes are provided to define the behavior of these graph elements or objects. The graph elements can be provided with menus of commands to carry out such functions as add, remove, cut and copy, paste, update and redraw.
C. Construction of a Graphical Editor with the Smalltalk Programming Language
FIG. 2 shows the basic building blocks or graphical elements that will be used for the graphs in this description. Graphs 38 are displayed in a graph editing window 33 and comprise regions 39 in which specific graphical elements 34, 35 will appear. These graphical elements are nodes 34, subnodes, vertices 35 (sometimes called "verts") and arcs. The arcs are lines that appear in a subclass of regions known as arc regions 39a.
A function block, something like a "black box", is an example of a node. This node may have one or more sub-nodes and one or more vertexes (also referred to as vertices). Vertices are used as connection points on nodes. Arcs are the lines which connect one vertex on one node to a second vertex on a second node and thus construct the connected graph.
The node and vert graph elements 34, 35 are associated with certain models, which are subparts or attributes of the graph element class and its node, vert and arc subclasses. A "function block" is one model of a node. An input or output (I/O) variable is one model of a vert. In the operation of this Smalltalk application program, a model of a node responds to messages from the node and passes data to the node 34.
As an example, the node model 36 may respond to a set of messages sent by its node 34 as follows.
In response to a "Graphic Model" message, the model returns data containing a graphical representation of the model. This graphical representation will be displayed in the graph editor window 33 as the graph 38 is being edited.
In response to the "Select Operation" message, which occurs when the cursor enters the graphic region 39 representing the model, the model returns a message to perform one of two operations. The first is to highlight the graphic region; the second is to invoke a text editing operation on a graphic region that is representing text.
In response to the "Left Click Operation" message, when the user clicks with the LHB of the mouse 17 on a graphic region 39 representing the model, the model returns a message to perform one of three operations. The first is to invoke a dragging operation to allow the graphic region to be dragged and repositioned by the editor; the second is to invoke a rubberbanding operation which allows graphic regions to be connected together; and the third is to dispatch a "choose" message to the model being represented by the graphic region.
In response to a "Verts" message, the node model 36 is responsible for returning a collection of vertices contained by that node. This collection is based on the state of the node model 36 and is determined by the number of connection points it should have. For example, a node model 36 for a function block would return a collection containing a vert for each one of its inputs and outputs.
In response to a "Sub-Nodes" message, the node model 36 is responsible for returning a collection of sub-node objects that the node 34 should contain. Sub-nodes are similar to verts but contain no connection behavior. Sub-nodes are used to represent information within the model that needs to be manipulated by the user. Typically, sub-nodes contain a text string to be displayed and edited. For example, a function block would be a node model 36 and would return a sub-node used to represent its name.
In response to a "Menu" message, the node model 36 provides a menu of operations that the user can choose to perform on the model 36. The model 36 also provides the methods for carrying out these menu items. These model menu selections may add to menu selections provided by the Graph Element class and a Node Subclass.
FIG. 3a illustrates base classes that have been added to the standard classes of the Smalltalk development program. The base classes include some editor classes which provide a graphical editor of the type seen in FIG. 5, where a graphical editor provides data and methods for display of a browsing window 40, which further includes a title bar 41, a selection bar 42, a tree graph window 43, a graph editing window 33 and an editing tool palette 45.
FIG. 3a illustrates the base classes that have been added to the Smalltalk standard classes to provide a graphical editor. FIG. 3b illustrates Connected Graph subclasses and Model classes and subclasses that have been added to the Smalltalk standard classes to provide the particular type of nodes, verts and arcs to carry out this application for programming of machine and process controllers.
Appendix A lists the Smalltalk code for base classes and Model classes that have been added to the standard Smalltalk classes to provide support for this example. The classes in Appendix A are all subclasses of the Smalltalk class named "Object". Pages 1-3 of Appendix A provide a Class hierarchy in which the direct subclasses of "Object" are signified by the notation (.Subclass). A subsequent subclass noted (..Subclass) would be a subclass of (.Subclass). Some of the first-tier subclasses that will be described herein are: activeEditor; palette; connectedGraph; graphElement; the Model classes under graphElementModel; region; and pane. The description herein will not necessarily follow the conventions for upper case/lower case and word spacing used in the Smalltalk listing and application program. Instead of "lowercaseUppercase", an underscore (--) will sometimes be used to associate two words in text label, such as "CAR-- DETECT-- 4". Initial capital letters will be used for Smalltalk class names.
As seen in FIG. 3a, the Editor classes include the Active Editor class 47, the Graph Editor class 48 and the Graph Browser class 49. These classes are instrumental in putting together the pieces to form what is ultimately seen on the screen of the programming computer 10 as the browsing window 40 and its contents.
In the base classes, the graph editing window 33 is referred to as a "Pane" within the browsing window 40, however, in this description, this pane will be referred as the graph editing window 33, which is tiled (side-by-side as opposed to overlapping) with other windows and elements to form the larger browsing window 40.
The Active Editor class 47 receives data from the Pane classes 46 and the Region class 52 to help put together the background information to display the browsing window 40. One function of the Pane classes 46 is to convert from whole screen coordinates to coordinates within the graph editing window or pane. The Active Editor class 47 receives mouse events and menu selections from the Pane class to control scrolling and zooming of the graph editing window 33.
The Active Editor class, represented by block 47 in FIG. 3a, adds, deletes and displays regions 39 within the graph editing window 33. The Region classes 52 work in tandem with the editor classes 47-49 by managing individual graphical regions 39 within the graph editing window 33. The active regions contain graph elements, which are generally defined by the abstract Graph Element Class 54 and more specifically defined by the subclasses 55-58 for node, sub-node, vert and arc. These subclasses in turn communicate with the Model classes 59 which define specific types of nodes, sub-nodes, verts and arcs.
There is one specialization of the Active Region class for handling the connection of arcs. Arcs are connecting links within a connected graph. Arcs are handled like lines, whereas the nodes 34 and verts 35 are handled like bit-mapped objects in regions 39.
Some particular relationships exist between the types of graph elements: node, vertex, arc and sub-node. A node is an object which may contain a number of sub-nodes or a number of vertices from which connections are made by arcs to the vertices of other nodes. A vertex can be associated with multiple arcs. The sub-nodes do not connect to one another; they may be, for example, an item of text for labeling a node.
A Graph Editor class 48, which is a subclass of the Active Editor class 47, adds the manipulation of regions 39 by dragging and connection. The Graph Editor class 48 controls the dragging of single or multiple regions 39 within the graph editing window 33, the connection of regions 39 by arcs 39a, the dispatching of tools to the region 39, and the addition of nodes 34 to the graph 38.
The editing tool palette 45 seen in FIG. 5 is the result of a group of Palette classes 51 in FIG. 3b, which are subclasses of the Active Editor class 47. An individual tool in the palette in FIG. 5 is chosen by moving the mouse-controlled cursor over it and pressing the LHB to select (clicking on) the tool, which then becomes the current active editing tool. When the mouse-controlled cursor is next clicked on an open area of the graph editing window 33, the selected type of palette item is added to the graph. The palette allows graph elements to be quickly added to a graph.
A Connected Graph class, represented by block 53 in FIG. 3a, carries out the basic functions needed to relate nodes, verts and arcs in a connected graph 38. There are subclasses of this Connected Graphs class 53 to define many types of connected graphs.
For example, the model for a node could be a "function block"; the model for a vert could be an I/O variable. The Model Classes 59 and the Graph Element classes 54 are operationally connected through the message interface as described earlier in relation to FIG. 2.
As seen in FIGS. 5 and 6, the browsing window 40 includes a tree graph 50 that illustrates a hierarchy of graphs within any particular editing task. Branches or nodes of the tree represent a particular diagram within the graph hierarchy. Selecting a tree branch or tree node will bring a corresponding graph into the graph editing window 33. This allows a complex, deeply nested graph to be quickly traversed.
The Graph Browser class, represented by block 49 in FIG. 3a, is a specialization of Graph Editor class 48. The Graph Browser class 49 displays the hierarchical tree structure in the tree graph window 43 above the graph editing window 33 in FIG. 5. It also makes changes in the tree graph 50.
In summary, the editor classes 47-49 in FIG. 3a are responsible for a) dispatching of mouse events to graphical regions 39 in FIG. 2, b) updating the contents of the graph editing window 33, c) displaying and aligning graphical regions 39 to a grid, d) printing of the connected graph 38, e) displaying palettes 45, and f) dispatching palette tool commands to the graph 38 and to graphical regions 39.
Referring next to FIG. 3b, there is a summary of the Graph Classes and Model Classes which provide the particular connected graph diagrams in the application program.
A Model Class 60 is provided for Project Documents. A "project document" is represented by the icon 82 in FIG. 4. Project document is a classification of the present application program as it relates to a desktop window seen in FIG. 4,
The graphical editor program to be described will execute three editing tasks. The editing tasks are known as the PROCESS, HARDWARE and PROGRAM editing tasks. Within each task, graphs defined by the Connected Graph class 53 will be viewed in the editing window 33. There is therefore a graph for the PROCESS editing task that is seen in FIG. 5. The collection of objects in this graph is defined by a PROCESS Graph class 61 represented in FIG. 3b. A graph for the HARDWARE editing task is defined by a HARDWARE (Location) Graph class 62 and is seen in FIG. 20. A graph for the PROGRAM editing task is defined by a PROGRAM Graph class 63 and this graph is seen in FIG. 33.
The nodes 90-93 in the PROCESS Graph in FIG. 5 are sub-parts or cycles within a car wash operation. These nodes 90-93 are defined by the PROCESS Element Model class 64 in FIG. 3b. The loop back from the the PROCESS Element Model class 64 to the PROCESS Graph class 61 in FIG. 3b shows that other graphs can be nested within nodes 90-93 in FIG. 5.
At the lowest level of the PROCESS graphical hierarchy is a single block graph known as an I/O Definition block graph and this is seen in FIGS. 11-15. This is defined by a subclass 65 of the Connected Graph class seen represented in FIG. 3b as "I/O Definition Graph". The single node in this graph is an I/O Definition block which is defined by the I/O Element Model class represented by block 66 in FIG. 3b. This node may include a number of inputs and outputs and these would be defined by the I/O Tag Model class 67 represented in FIG. 3b.
The nodes in the HARDWARE (Location) Graph in FIG. 20 are defined by the HARDWARE Location Element Model class 68 represented in FIG. 3b. HARDWARE Devices Graphs can be nested within nodes 131, 132 in FIG. 20. These HARDWARE Devices Graphs are seen in FIGS. 22-24, and are defined by a HARDWARE Devices Graph class represented by block 69 in FIG. 3b. Examples of the nodes in the Devices Graphs are seen in FIGS. 22-24. These nodes are defined by the Model classes 70 and 71 for a processor chassis and an I/O chassis, respectively. These nodes are displayed graphically to represent the processor chassis 21 and the I/O chassis 22a in FIG. 1, as well as the other programmable controllers 31, 32.
Nested within these chassis nodes is a node for which the Model class is the I/O Rack Model class 72 represented in FIG. 3b. This class 72 provides the data and methods to display a graphical image of a rack structure seen in FIGS. 25-27, which can be either a processor chassis 21 or the I/O chassis 22a, 22b seen in FIG. 1. This graphical image node can contain a collection of sub-nodes for which the model is defined by the I/O Module model class 73 represented in FIG. 3b. This class defines a graphical image for a controller I/O module that can be superimposed over the image of an I/O rack to simulate positioning of the I/O module in the physical I/O rack.
Referring to the subclass for the PROGRAM DOCUMENTS graph represented by block 63, the nodes in this graph are one or more program icons as seen in FIG. 33. The Model class for these nodes is represented by block 74. These nodes each hold a one-block function diagram graph of their respective programs as exemplified in FIG. 36. This diagram or graph is defined by the Connected Graph subclass represented by block 75 in FIG. 3b. The nodes in this graph are defined by the Model class represented by block 76. At this point in the PROGRAM editing task, the user is given the option, through a menu, of programming in sequential function chart (SFC) graphical language or in a more detailed function block diagram (FBD) language. Assuming the first option is selected, an SFC Graph class defines the diagram for this language as represented by block 77, and the SFC nodes are defined by SFC Element Model classes and represented by block 79. Not illustrated in FIG. 3b, but also included in the application program are classes for the SFC verts. Assuming the second option is selected, a FBD Graph class defines the diagram for this language as represented by block 78, and the FBD nodes are defined by FBD Element Model classes represented by block 80. Not illustrated in FIG. 3b, but also included in the application program are classes for the FBD input and output variables.
Using these classes and others, as more particularly defined in Appendix A, a graphic application program can be constructed for programming machine or process controller equipment.
D. The Graphical Programming Interface for Digital Controllers
1. The Car Wash Application
The car wash application is loaded into the hard disk memory 15 in FIG. 1 and on startup of the hardware, a desktop window appears as seen in FIG. 4. It will be noticed that each window in the application has some basic window tool icons 81 to select the functions of 1) closing the window (), 2) zooming out to enlarge the portion of a graph seen in the window (Z), 3) a title bar only selection, and 4) a resize window command. These functions are provided by the standard classes received with the Smalltalk programming language.
The graphical programming interface is started up by selecting an icon 82 seen in FIG. 4 for the "CAR WASH" application program. The application is opened by moving the mouse 17 to position a cursor on the "CAR WASH" icon 82 and by operating the right hand button (RHB) of the mouse 17 to open a menu (not shown). The menu includes the command "edit" which is selected by dragging the mouse 17 to highlight the command and then operating the LHB on the mouse 17. This opens or starts up the application.
2 Three Graphical Editing Tasks
Referring next to FIG. 5, this particular graphical programming interface includes a graphical editor with three graphical editing tasks, named PROCESS, HARDWARE and PROGRAM. These editing tasks are like applications or individual tasks and run one at a time by the graphical editor. The graphical editing tasks are selected using a selection bar 42 with selection areas 83, 84, 85 for the three specific editing tasks. Besides the graphical editing tasks described herein, other graphical editing tasks can be added for other tasks related to set up and programming of electronic controllers, such as the connection of programmable controllers in a network.
a) Common Features of the Graphical Editing Tasks
Each editing task has a browser window 40 as seen in FIG. 5 with the selection bar 42 near the top, just below the caption for the browser window 40. Below the selection bar 42 is the tree graph window 43. In this window, a tree graph 50 is partly displayed in FIG. 5. The full tree graph is displayed, as seen in FIG. 6, by executing the "zoom (out)" command. To execute this command, the cursor is positioned in the tree graph window 43 and the RHB on the mouse 17 is operated to open a menu with the "zoom" command. The command is then selected by moving the cursor to it and operating the LHB on the mouse 17. Generally, the RHB of the mouse 17 is used to open menus and LHB is used for selecting or clicking on commands and objects.
Below the tree graph window 43 in FIG. 5 is an editing window 33. The tree graph 50 defines the relationship of a group of views of connected graphs and graphical objects which can be called up one-by-one to the editing window 33. As seen in FIGS. 5 and 6, the car wash application 82 has been defined as having four process nodes or branches, labeled ENTRY, WASH, WAX and DRY, which are four cycles in the car wash operation. These are displayed in alphabetical order in FIG. 6, but another order could be used. These branches or nodes are subdivided further and each connect to a lower tier of graphical objects. For the DRY cycle seen in FIG. 5, these objects are labeled AIR-- FLOW, CAR-- DETECT-- 4, F -- 1 and FAN -- 1. Each branch of the tree graph 50 represents an object or graph which has been stored in the memory of the computer 10 and which can be displayed and edited in the graph editing window 33. To open an object for editing, a branch of the tree graph is selected by 1) moving the mouse-controlled cursor over the branch or node of the tree graph 50 and 2) clicking the LHB to select the tree node and a corresponding graph for viewing and editing in the graph editing window 33. When selected, the node in the tree graph 50 is displayed in a shaded box, which is represented by the dashed line boxes 50a, 50b, 50c and 50d in FIGS. 7-10. The tree graph 50 is drawn automatically by the program of the invention as the parts of the industrial or commercial process are added in the editing window 33.
To the left side of editor window 33 in FIG. 5 is a multi-panel graphical editing tool palette 45, in which only one panel 45a is visible at a time. There are two oppositely directed, horizontally pointing, scrolling arrows 86, 87 near the top of the palette 45. The panels of the palettes 45 are changed by moving the mouse-controlled cursor over one of the two arrows 86, 87, and pressing the LHB. (This moving of the cursor and then executing a selection action with the LHB shall be referred to as a "clicking on" operation.) Each time a scrolling arrow 86, 87 is clicked on, the palette 45 rotates in the appropriate sense or direction to the next panel.
b) Description of the PROCESS Editing task
As seen in FIGS. 5, 7 and 10, three panels of the palette 45 in the PROCESS graphical editing task are labeled PROCESS, VERTICES, and LOCATION, respectively. The PROCESS panel 45a in FIG. 5 has tool selection areas 89 for selecting a set of nodes for this particular car wash application, including CONVEYER, MOTOR, PUMP, SENSOR, TANK and VALVE. These palette tools 89 are set up through Smalltalk programming to reflect the type of equipment to be controlled in the industrial or commercial application for the electronic controller equipment. Instead of text labels, graphical icons could also be used for identifying the palette tools.
At the highest level of the PROCESS editing task, a palette tool 89 labeled "NEW" is selected to add and define new types of process function blocks in the PROCESS graph editing window 33. When a "new" node is added, a dialog box or highlighted area will prompt the user for a name for the process node. In this example, four PROCESS function blocks 90-93 were added to the graph with the names ENTRY, WASH, WAX and DRY. The PROCESS nodes are also identified by location, using a LOCATION panel 45c of the type seen in FIG. 10. Two of the tools 119 provided in this LOCATION panel 45c in FIG. 10 are "ENTRY" and "EXIT", which correspond to the areas where the equipment in the car wash is located. Selection of individual tools on all panels of the palette 45 is made by clicking on the appropriate tool. The tool 94 at the top of the palette with the diagonal arrow symbol is a tool for selecting and dragging objects in the graph editing window 33.
The process blocks 90-93 in FIG. 5 are then assigned an input vertex 96 or an output vertex 95, or both, as shown, using a VERTICES palette panel 45b of the type seen in FIG. 7. The vertices 95, 96 are then connected by arcs 97 (seen in straight lines) by using the mouse 17. The verts are connected by moving the mouse 17 to move the cursor over a vertex ("vert") and pressing the left-hand button (LHB) of the mouse 17 ("clicking on" the vert), then moving the cursor to the next vert and clicking on the second vert. When a connection is attempted by the graph editor, the vert models are first consulted to see if they agree that the connection can take place based on their type. If they agree the editor proceeds to connect the two verts with an arc. This provides a connected graph.
The PROCESS editing task uses nodes for processes, vertices (sometimes called "verts") for process connection points and arcs as the links between the vertices. The connection of arcs and verts at this level of the process is graphical--the verts are not used as input and output variables which receive changing data, as are the verts used in the PROGRAM editing task to be described below.
The palette tools 89 for SENSOR, CONVEYER, and MOTOR shown in FIG. 5 are used to create objects or nodes seen within the ENTRY node of the PROCESS in FIG. 7. These nodes or objects are represented on the screen by icons 98, 99, 100 and 101. The names CAR-- DETECT-- 1, CONVEYER, CAR-- LENGTH and CAR-- PULL are alphanumeric names which are typed in and appear over the icons 98-101 for the object on the screen. The LOCATION panel 45c from FIG. 10 is activated to assign a location "ENTRY". The term "ENTRY" below each icon 98-101 in the graph editing window 33 is not referring to the "ENTRY" part of the PROCESS displayed in the tree graph 50, but is instead referring to the "ENTRY" location of the car wash equipment.
The icons in FIG. 7 are then assigned one or more input vertices 96 or one or more output vertices 95, or both, as shown, using a VERTICES panel 45b as seen in FIG. 7. The vertices 95, 96 are then connected by arcs 97 (seen in straight lines) in the manner described earlier to provide a connected graph for the "ENTRY" portion of the PROCESS.
FIG. 8 shows the connected graph for the WASH part of the PROCESS. Here, a first sensor node, represented by icon 102, is given the name "CAR-- DETECT-- 2"; a second sensor node, represented by icon 103, is given the name "LEVEL"; a motor node, represented by icon 104, is given the name "SPRAY-- PUMP"; a tank node, represented by icon 105, is given the name "SOAP-- WATER"; a valve node, represented by icon 106, is given the name "WATER" and a pump node represented by icon 107, is given the name "SPRAY". These nodes are added with the "PROCESS" panel 45a of the palette seen in FIG. 5. The location of each node is specified below its respective icon, using the LOCATION panel 45c from FIG. 10 as described for the ENTRY portion of the PROCESS.
The icons in FIG. 8 are then assigned an input vertex 109 or an output vertex 108, or both, as shown, using a VERTICES panel 45b seen in FIG. 7. The vertices 108, 109 are then connected by arcs 110 (seen in straight lines) in the manner described earlier for connected graphs. This provides a connected graph for the WASH portion of the PROCESS.
FIG. 9 shows a connected graph for the WAX part of the PROCESS. A CAR-- DETECT-- 3 sensor, represented by icon 111, detects the presence of a car and transmits a CAR-- PRESENT signal to start the motor with the name M -- 1, represented by icon 112. The motor M -- 1 drives a pump, represented by icon 113 with the name "SPRAY", which applies one of two kinds of waxes, labeled GOOD-- WAX and CHEAP-- WAX. GOOD-- WAX and CHEAP-- WAX are alphanumeric names for two respective tanks, represented by icons 114 and 115. A WAX -- 1 valve and a WAX -- 2 valve, represented by icons 116 and 117 control the flow of wax solution to SPRAY pump 113. There is also a sensor, represented by icon 118 with the name "WAX-- SPRAY", to detect the flow of wax solution out of SPRAY pump 113. These nodes 111-118 are connected by verts and arcs to form a connected graph for the WASH cycle.
FIG. 10 shows a connected graph for the DRY part of the PROCESS. A CAR-- DETECT 4 sensor, represented by icon 120, detects the presence of a car and transmits a CAR-- PRESENT signal to start the motor with the name "F -- 1", represented by icon 121. The F -- 1 motor 121 drives an air pump with the name "FAN -- 1" and represented by icon 122, which applies warm air to the car. The "AIR" is seen as a process input to the air pump 122 labeled "FAN -- 1". There is also a sensor with the name "AIR-- FLOW" and represented by icon 123 to detect the flow of air out of the FAN -- 1 pump 122.
When a node is created with the PROCESS palette panel 45a, it is created with an encapsulated diagram seen in FIGS. 11-15 and a node is added to the tree graph 50. FIG. 11 shows such an I/O definition block element 124 for the CAR-- DETECT-- 4 sensor 120. This encapsulated diagram can be displayed in the editing window 33 by clicking on the appropriate node in the tree graph 50 or executing an "edit" command from a pop-open menu. Using this diagram, the input and output signals which must be monitored or controlled relative to the CAR-- DETECT-- 4 sensor 120 are defined from a controller viewpoint. This is illustrated with respect to the "DRY" part of the PROCESS in FIGS. 11-15, and is applicable to the other parts of the PROCESS as well.
As seen in FIG. 11, the CAR-- DETECT-- 4 sensor 120 is defined as receiving a PROCESS input signal given the name CAR-- DETECT. The palette 45 for the I/O definition blocks 124 includes panels 45d, 45e and 45f labeled VARIABLE, VAR TYPE and LOCATION, respectively, as seen in FIGS. 11-13. Tools on the VARIABLE panel 45d in FIG. 11 are selected and applied to add an input variable (*IN*) or an output variable (*OUT*). Tools on the VAR TYPE panel 45e in FIG. 12 are selected and applied to define the type of electrical signal at the process input or output. In this case, the electrical signal is selected as a discrete input signal of 5 DC volts. Tools on the LOCATION type panel 45c in FIG. 13 are selected and applied to specify the location of the I/O definition block 124 relative to the available locations for the PROCESS, in this case "EXIT".
FIG. 15 shows a second example of an I/O definition block 125 for the FAN -- 1 air pump 122 with two inputs or conditions for turning on, AUX-- CONTACT and FAN-- OVER-- TEMP, and an output signal labeled FAN-- MOTOR-- DRIVE. These have all been defined as 120-volt AC discrete signals, using the palette panel 45e labeled "VAR TYPES" for variable types.
As seen in FIG. 14, by pointing (moving the cursor) to the editing window 33, and operating the RHB on the mouse 17, a menu 126 will pop open with the command "BROWSE DATA" as seen in FIG. 14. When the "BROWSE DATA" command 126a is selected by clicking on it with the mouse 17, a list 127-130 in spreadsheet form, as seen in FIGS. 16-19, opens over the editing window 33 and presents a list of input and outputs for the applicable portion of the PROCESS. These inputs and outputs are identified in the first column with their alphanumeric tag names in the format (process node name.I/O variable name). These PROCESS I/O points are defined in the second column according to their direction (IN or OUT) and their variable type (functional electrical signal). These PROCESS I/O points are further defined in the third column of the spreadsheet according to their location in the car wash (e.g. "EXIT").
FIG. 19 shows an example list 130 of PROCESS I/O points defined from a controller viewpoint for the DRY part of the PROCESS. This list 130 includes the CAR-- DETECT-- 4.CAR DETECT input signal defined in FIG. 12. This is further defined as a 5 DC volts signal and a discrete input signal. Among the other process I/O points are the FAN-- 1.AUX-- CONTACT input signal, the FAN-- 1.FAN-- OVER-- TEMP input signal and the FAN-- 1.FAN-- MOTOR-- DRIVE output signal defined in FIG. 15. The FAN-- 1.AUX-- CONTACT input signal is further defined as a 120 AC volts signal and a discrete input signal. The FAN-- 1.FAN-- OVER-- TEMP input signal is further defined as a 120 AC volts signal and a discrete input signal. And, the FAN-- 1.FAN-- MOTOR-- DRIVE output signal is further defined as a 120 AC volts signal and a discrete output signal.
FIGS. 16-18 show the PROCESS I/O point data for the ENTRY, WASH and WAX parts of the PROCESS. The "BROWSE DATA" command 126a, as described for the DRY cycle, can be executed to call up a tag list 127 for the ENTRY cycle. In FIG. 16, tag CAR-- DETECT-- 1.CAR-- DETECT is a controller input signal of 120 AC volts from the CAR-- DETECT-- 1 sensor 98. Tag CONVEYER.AUX-- CONTACT is a 120 AC volts discrete input signal to a controller from the CONVEYER motor 99. Tag CAR-- PULL.CAR-- LENGTH is a 10-volt DC analog output signal to the CAR-- PULL conveyer 101 related to sensing a car. Tag CAR-- LENGTH.LENGTH is a 10-volt DC analog input signal from the CAR-- LENGTH sensor 100. This partial listing shows how a list of controller inputs and outputs is assembled from the graph of the ENTRY part of the PROCESS.
FIG. 17 shows a similar tag list window 128 with a list of tags for the WASH part of the PROCESS. The tag CAR-- DETECT-- 2.CAR-- DETECT identifies a 120-volt AC input signal to a controller from the CAR-- DETECT-- 2 sensor 102 in FIG. 8. The SPRAY-- PUMP motor 104 receives a 120-volt AC discrete output signal from a controller (Tag SPRAY-- PUMP. WATER-- PUMP-- MOTOR in FIG. 17). The sensor 103 labeled "LEVEL" in FIG. 8 sends a 120-volt AC discrete input signal to be sensed by a controller (Tag LEVEL.SOAP-- WATER-- LEVEL in FIG. 17). The valve 106 in FIG. 8 is opened through a controller output signal of 120 AC volts (Tag WATER.WATER-- VALVE in FIG. 17) during the WASH cycle. A signal of 120 AC volts (Tag WATER.VALVE-- OPEN) is received at an input to the controller from an output on the water valve 106 to sense when it is open.
FIG. 18 shows a similar tag list window 129 with a list of tags for the WAX part of the PROCESS seen in FIG. 9. The CAR-- DETECT-- 3 sensor 111 provides a 120-volt AC discrete input (IN) signal (CAR-- DETECT-- 3.CAR-- DETECT). The WAX -- 1-- OPEN signal and the WAX -- 2-- OPEN output signal are 120-volt AC discrete input signals for sensing the position of the valves 116, 117. The WAX -- 1-- VALVE signal is an output signal to control the opening of the WAX -- 1 valve 116. The M -- 1 motor 112 provides two input signals, an AUX-- CONTACT signal and a OVER-- TEMP signal, both of which are 120-volt AC discrete input signals. The motor 112 is operated in response to a 120-volt AC discrete output signal referred to as M-- 1.WAX-- SPRAY-- PUMP in the tag list 129. The last tag in the "WAX" cycle tag list is the name for a 120-volt discrete AC input signal WAX-- FLOW from the sensor 118 labeled WAX-- SPRAY. As with the other tag lists, this is a partial list to show how a list of controller input and output signals is assembled from the graph of a part of the process.
Once the car wash process has been graphed and its electrical inputs and outputs are defined, the user is ready to activate the HARDWARE graphical editing task by selecting that choice from the selection bar 42 using the mouse 17.
c) Description of the HARDWARE Editing task
Referring to FIG. 20, the highest level graph of the HARDWARE editing task is activated in the graph editing window 33 by selecting the HARDWARE selection area 84 in the selection bar 42 using the mouse 17. This graph includes nodes 131, 132 which are created for the ENTRY location and the EXIT location in the car wash. This is accomplished by selecting the "NEW" tool 133c from the LOCATIONS panel 133a of a palette 133 for the HARDWARE editing task and by naming the new nodes. When this graph is viewed on the screen, the hardware system node labeled "CARWASH" in the tree graph 134 appears in a shaded box represented by dashed line 234.
As seen in FIGS. 20 and 21, a tree graph 134 is formed for the HARDWARE editing task to graphically show the hierarchical relationship of graphs or diagrams of the controller hardware. FIG. 21 is viewed on the screen by clicking on the tree graph window 43 and by selecting "zoom" from the menu as discussed for the PROCESS editing task.
Within the ENTRY and EXIT nodes 131, 132 of the HARDWARE editing task are graphs of programmable controller hardware that are used to diagram a system for controlling the equipment in the car wash. As seen in FIG. 22, which is a graph for hardware at the ENTRY location, the processor chassis 21 in FIG. 1 is represented by a processor chassis node 135. This node is added using a processor tool 136 in a PROCESSOR palette panel 133b. The choice of one of the processor tools 136 defines the type of processor that is added, in this case PLC-- TYPE-- 1. The processor is given an alphanumeric processor name such as "WASH".
When the graph of the ENTRY node is displayed in the editing window 33 in FIG. 22, the ENTRY node in the tree graph 134 appears in a shaded box represented by dashed line 235. When the graph of the EXIT node is displayed in the editing window 33 in FIGS. 23 and 24, the EXIT node in the tree graph 134 appears in a shaded box represented by dashed line 236.
The processor nodes 140, 141 are added in the graph of the EXIT location in FIGS. 23 and 24 to represent the other two programmable controllers 31 and 32 seen in FIG. 1. One of these is added with the PLC-- TYPE-- 2 tool, and the other is added with the PLC-- TYPE-- 3 tool. The PLC-- TYPE-- 2 processor chassis 140 is given the name, ELECTRIC, and the PLC-- TYPE-- 3 processor chassis 141 is given the name, DRY. The three nodes 140, 141 and 142 in FIGS. 23 and 24 are also represented as nodes in the tree graph 134.
As seen in FIG. 24, the palette panel 133b also has a tool 138 for adding I/O chassis nodes 142, such as I/O chassis 22b at the EXIT location in FIG. 1. Only one type of I/O chassis is provided by the single I/O chassis tool 138, but other types of I/O units could be provided with additional tools. When the I/O chassis tool 138 is selected, a menu 143 pops open, as seen in FIG. 24, so that the user can assign the I/O rack to a processor listed in the menu 143. In this instance, an I/O rack at the EXIT location is assigned to a processor named "WASH" at the ENTRY location. The node 142 for the I/O rack then appears, as seen in FIGS. 23 and 24, with the lowest available rack identification number, such as RACK -- 2, for that processor. The I/O rack is connected to the "WASH" processor by the single available serial communication channel, which is identified on the I/O node 142 as "CHANNEL 1".
Once the controller processor chassis and I/O chassis have been selected and assigned to locations, a graph or icon can be called up for these objects to assist in determining what specific I/O modules are needed to handle the functional electrical signals previously identified for the car wash process during activation of the PROCESS editing task.
As seen in FIG. 25, the selection of the PLC-- TYPE-- 1 processor node, by clicking on a branch of the tree graph 50, as represented by dashed line box 144 in FIG. 25, calls up an image 145 of a physical processor chassis. This image 145 includes the PLC-- TYPE-- 1 processor 146 shown in a left-most slot and eight pairs of physical slots 139. Each pair of slots 139 will hold at least a pair of 8-bit, discrete I/O point modules, which are known as a module group and which are numbered "0" to "7" (octal). The maximum number of I/O modules for any processor or I/O chassis is sixteen, and chassis for four, eight and twelve I/O modules are also available.
The processor chassis image 145 is selected by moving the mouse-controlled cursor over it. This selects the object 145 as shown by the display of a heavy line 147 that encloses the module group addresses."0" to "7". By operating the RHB of the mouse, two menus 148 and 149 are presented as seen in FIG. 25 for adding I/O modules 150 both visually and in a data sense to the selected chassis.
The first command 151 on the first menu 148 adds an I/O module 150 in the first slot, which is Rack 0, Module Group 0, Module 0 (left slot) in this example. The address of the starting Rack and starting Module Group No. for the first slot can be changed with selections in the menu 148. The first I/O module to be added visually will be added to the I/O slot with lowest available slot address and furthest to the left. As the "ADD MODULE" command 151 is executed, the module 150 can be designated to handle discrete or analog inputs and outputs from the second menu 149, In this example, we shall assume the "DISCRETE INPUTS" command 152 is executed. When the module 150 has been designated input or output, the first two menus 148, 149 close and a third menu 153 appears, as seen in FIG. 26 to provide options for signal level ranging from 5 DC volts to 240 AC volts. In this example, the 120 VAC command 154 is selected by positioning the cursor on it and clicking on it with the mouse LHB.
Once an I/O module 150 is defined as to input or output and signal level, a fourth menu 155 opens as seen on FIG. 27 to provide the available types of I/O modules meeting these parameters. As seen in FIG. 27 there are four choices depending on numbers of I/O points or bits of I/O capacity and a further choice as to type of input or output, such as source or sinking or isolated. In this case, the first command 156 is selected and executed to designate an IN-- TYPE-- 1 module for the first available slot in the processor chassis 145. An image of the input module 150 is superimposed at the correct slot location to simulate insertion of an I/O module 150 into the chassis 145. FIG. 28 shows an image 158 for the RACK-- 1 I/O chassis from FIG. 22. This image 158 appears when the RACK-- 1:WASH node is selected in the tree graph 134, as represented by dashed line box 159 in FIG. 28. This image is similar to the processor chassis image 145, except that an adapter module 157 labeled "ASB" is placed in the left-most slot instead of the PLC-- TYPE-- 1 processor. I/O modules would be added to the I/O chassis image 158 in the manner described for the processor chassis image 145, using the four menus 148, 149, 153 and 155 described above. After adding I/ O modules 150, 160, 161 to a processor chassis 145 or an I/O chassis 158, as seen in FIG. 29, a module such as the input module 150 can be selected by moving a cursor over it and operating the LHB of the mouse 17. On a color monitor, if the processor chassis image 145 is white or light, the selection of an I/O module image 150 changes its color from white (light) to red (dark) as represented by a dashed line selection box 162 in FIG. 29.
When the I/O module 150 is selected, menus 163, 164 can be opened by pressing the RHB of the mouse 17. A "MOVE MODULE" command may be selected and executed to move the I/O module to a different rack or slot. The second menu 164 provides a list of other chassis to which the module 150 can be moved. In this example, the input module 150 is being moved from the processor chassis RACK -- 0 to the I/O chassis labeled RACK-- 1:WASH by executing command 165 and making selection 166 from the second menu 164 as seen in FIG. 29. When an I/O module 150 is selected, it can also be dragged from slot to slot within its I/O chassis.
As seen in FIG. 30, by clicking in an open area of the editing window 33 and outside the image of the processor chassis 145, and by clicking with the RHB of the mouse 17, a menu is opened with two choices: 1) unassigned I/O at this location and 2) I/O unassigned to any location. Assuming the first option is selected, a list 167 for the ENTRY location is displayed as seen in FIG. 30. This is a list of the process input signals and output signals that were defined in the tag lists for the ENTRY and WASH cycles shown in FIGS. 16 and 17, but were not assigned to an hardware input or output. This list is for informational purposes to help the user choose the type of I/O modules in the HARDWARE editing task that are needed to handle these functional signals developed in the PROCESS editing task.
As seen in FIG. 30, the unassigned process I/O signals have tag names in the form of [process node name.equipment node name.process I/O signal name (I/O signal type)]. The list 167 is limited to signals that have not been assigned to a hardware input or output on an I/O module 150. This is a reference list. By clicking on the OK area 168 the list is removed from display.
FIGS. 29 and 31 illustrate how the process I/O signals are related to inputs and outputs on the controller hardware which have been selected in the preceding Figures. As seen in FIG. 29, the menu 163 includes an "ASSIGN I/O" command for assigning functional process input signals and output signals from the PROCESS editing task to the I/O modules. When this command is selected, by moving the mouse-controlled cursor over it and operating the LHB on the mouse 17, an I/O assignment window 169 is opened as seen in FIG. 31.
The assignment window 169 displays a two-column list 170 under a header 171 that displays Rack 0, Group 0, Module 0. This is a list 170 of assigned and unassigned I/O for ENTRY and WASH parts of the car wash process, because the processor chassis 147 in FIG. 29 is located at the ENTRY location to handle these two parts of the process.
The identification of the Rack 0, Module Group 0, I/O Module 0 in the header 171 and individual inputs and outputs "1" to "8" in the left column provides the system I/O addresses for inputs and outputs for the controller hardware This address also identifies the I/O module selected in FIGS. 25-27. In the right column in FIG. 31 are unassigned PROCESS input and output signals in the form [process node name.equipment node name.process I/O signal name (I/O signal type)]. When one signals is assigned, its tag is followed by the note "(ASSIGNED)".
An example of assignment of a process I/O signal to a controller input and output is seen in FIG. 31, where an unassigned one-bit input location "8" in the left column is selected with the mouse and highlighted. Next, the unassigned input signal WASH.SPRAY-- PUMP.OVER-- TEMP in the right column is selected and highlighted, and it will also appear in the left column at the selected location. Once assigned, a notation "(ASSIGNED)" appears in the right column.
When input and output signals from the PROCESS editing task are assigned they become associated with the inputs and outputs on the controller hardware, which take on the signal names. The process signals also become linked to the system I/O addresses. As seen from this description the HARDWARE editing task provides a convenient graphical method to relate the process to the controller hardware needed for the control system, and particularly, the hardware inputs and outputs at which the controller is connected to the process. This not only helps the user in choosing and setting up controller equipment, but it also provides further information that is helpful in programming the processors in the controller equipment.
d) Description of the PROGRAM Editing Task
After the controller hardware has been defined for the car wash process, the user is ready to operate in the PROGRAM graphical editing task to write high-level graphical programs for the controller processors. Various types of graphical programming languages can be used in the PROGRAM editing task. Three types chosen for this application are ladder diagram programming, sequential function chart (SFC) programming, and function block diagram (FBD) programming.
To enter the PROGRAM editing task, the user clicks on selection area 85 in the selection bar 42 using the LHB of the mouse 17.
FIG. 32 shows the "PROGRAMS DOCUMENTS" graph discussed earlier in relation to block 63 in FIG. 3b. This particular example of the graph shows two icons 175, 176 in the editing window 33. These icons 175, 176 are of the type for representing sequential function chart (SFC) programs. The first program 175 is named "CARWASH" and is intended to run on the processor named "WASH" at the ENTRY location. The other program 176 is named "PROGRAM" and is intended to run on a processor named "ELECTRIC" at the EXIT location. The palette panel 177a seen in FIG. 32 has tools 178, 179 for assigning programs to these two controller processors 23, 31 in FIG. 1. Other tools would be available on the panel 177a to assign programs to various controller processors seen in FIG. 1.
FIG. 33 shows a second panel 177b in the revolving palette 177, with a "NEW" tool 182 for adding new types of programs for the processors. The "GRAVEL" tool 183 commands uploading a program from the hard disk 15 to internal RAM memory in the computer 13.
As in the other editing tasks, the creation of nodes results in a tree graph 180 showing the hierarchy of graphs in the PROGRAM editing task. FIG. 34 shows the selection of PROGRAM DOCUMENTS graph represented by the dashed line box 181 around the tree node labeled "PROGRAMS". The CARWASH program 175 is represented by the tree node labeled "CARWASH-- PROG".
FIG. 34 also illustrates the selection of one of the programs, the CARWASH program 175 and the opening of a menu 184 related to such a program using the RHB of the mouse 17. This menu 184 provides commands including "PROCESSOR" as an alternative way to assign a program to a specific controller processor. Selection of this command will open another menu (not shown) with a list of controller processors. Another command is "COMPILE" for compiling the program in the executable code file 11 seen in FIG. 1 or into a ladder instruction file in the case of a ladder diagram program. Another command is "DOWNLOAD" for downloading the executable code file 11 or ladder instruction file to a controller processor.
Regardless of the type of graphical programming language, the car wash application provides the capability of representing each program as a single function block diagram (FBD) and single function block element, discussed earlier in relation to blocks 75 and 76 in FIG. 4. This FBD graph is opened in the editing window 33 by selecting the CARWASH-- PROG tree node in the tree graph 180 as represented by dashed line box 186 in FIG. 35,
As seen in FIG. 35, the program entitled "CARWASH" is represented as one block 185. The full view of the single FBD graph is seen in FIG. 36 by selecting the zoom command for the graph editing window 33 in FIG. 35. The palette panel 177c entitled "DATA TYPES" in FIG. 35 is one of the palette panels available for this graph in the PROGRAM editing task. This palette panel 177c has an INTEGER tool 187, a real number (REAL) tool 188, and a Boolean (BOOL) tool 189 for defining the type of input or output variables used as inputs and outputs to the function block 185.
As seen in FIG. 36, the inputs for the function block 185 (e.g., ENTRY-- DETECT, ENTRY-- AUX) are displayed on the left hand side of the block 185 and the outputs (e.g. ENTRY-- CONV, CAR-- LENGTH) are displayed on the right hand side of the block 185. The items with text outside and to the left of the program function block 185 are process input signals that were previously connected to hardware inputs. Process output signals that were previously connected to hardware outputs would be shown as items with text outside and to the right of the program function block 185.
During activation of the PROGRAM editing task, the process and hardware inputs and outputs are visually connected by their tag names to input and output variables in the controller program. When the program is compiled, the program variables are linked to hardware inputs and outputs at their system I/O addresses.
When a function block is added to a graph, it is provided with a set of generic inputs and outputs labeled IN 1, IN 2, etc. These are renamed with test editing operations to specify names for program variables such as ENTRY-- DETECT and ENTRY-- AUX. These program variables are also defined as to the type of data which is received or transmitted by each input or output variable, using the palette panel 177c with tools for data types such as REAL, INTEGER or BOOLEAN.
As seen in FIG. 37, a set of three menus 190, 191 and 192 is then opened to add hardware inputs and outputs from a list of tag names received from the HARDWARE editing task. FIG. 37 illustrates the list for all of the inputs for the "WASH" processor. First, "PROCESSORS" is selected from the first menu 190 and then "INPUTS" from the second menu 191, which opens a third menu 191 with a list of tags assigned to the hardware inputs for the applicable processor. By selecting "ALL" from the third menu, all of the input tags on the third menu 191 are added as items with text to the left of the function block 185. Individual input tags could also be selected and added from the third menu 191.
Once the hardware input and output tags have been added to the graph, they can be selected and dragged to a positions opposite input and output variables on the function block 185 using the handles at the left of the text. A hardware input, for example, is visually connected to its opposite input program variable using the mouse technique described earlier for connecting two verts with an arc. The other hardware/process input and output tags are then connected to the program variables by clicking on a program variable, moving the cursor over to a hardware/process I/O point, and clicking again to form an arc, and then moving down the opposing pairs in similar fashion.
FIG. 38 shows a more detailed diagram in which the CARWASH program is broken down into several function blocks 193 and 194 corresponding to the ENTRY and WASH cycles. A palette panel 195 is provided with tools 196 for adding function blocks having arithmetic functions such as "+" and logical functions such as "AND". Using the "NEW" tool 196, the function blocks can be created for four cycles of the car wash. As seen in the tree graph 180 in FIG. 39, this more detailed diagram of the CARWASH program is selected by selecting the node labeled CARWASH as represented by dashed line box 202.
Input and output variables for these lower level function blocks 193, 194 are named, defined as to data type and then connected to the input and output variables for the higher level function blocks. Data received at the higher level program inputs and outputs can then be passed to and from inputs and outputs at the next lower level of the program.
The connection of program variables within different levels of the program is illustrated in FIG. 39, which depicts four menus 197, 198, 199 and 200. To add the inputs from the higher level function block, the command "ADD" is selected from the first menu 197 and the command "VARIABLE" is selected from the second menu, and the command "INPUT" is selected from the third menu 199, which opens the fourth menu 200. The fourth menu 200 includes a list of the program variables from the single function block 185 for the CARWASH program. Again, the command "ALL" is chosen to display all of the inputs in the fourth menu 200 in the editing window 33. These are added as items with text to the left of the function blocks 193, 194 After adding these inputs and output variables they are connected to the newly defined input and output variables for the more detailed function blocks 193, 194 for the CARWASH program 175 in the manner described above for the single function block 185.
FIG. 40 illustrates that, using the techniques described above, a set of AND and NOT logic blocks with predefined inputs IN-- 1, IN-- 2, IN-- 3 and predefined output OUT can be added and connected to program variables for the WASH function block 194 in FIG. 38. Palette tools 203 and 204 are used to add the "AND" and "NOT" function blocks 205 and 206. Input and output variables are defined as to type (BOOLEAN) for the function blocks 205, 206 and connected to the input and output variables (DETECT, AUX) for the WASH function block 194 as described above for higher levels of the program. This program is displayed by selecting the "WASH" tree node as represented by dashed line box 208.
FIG. 41 illustrates a palette panel 207 labeled "PARTS" with graphical symbol tools 222-226 for sequential function block (SFC) programming. This SFC program is encapsulated in the ENTRY function block 193 in FIG. 38, and would be executed by a controller processor at the ENTRY location. This program is displayed by selecting the "ENTRY" tree node as represented by dashed line box 209.
The full SFC program is seen by executing the zoom out command for the editing window 33 in FIG. 41. The zoom out view is seen in FIG. 42. SFC instructions include steps and transitions. Steps are represented graphically by a box with three vertices. The first block 210 in FIG. 42 is an initial step that indicates where execution begins. The initial step is signified by the double line border on the box. The start step is followed by a transition instruction 211. Transition instructions are graphically represented by a horizontal bar with vertices on top and bottom. A transition instruction is executed when the "CAR-- DETECT" logical input variable becomes logically "true". The transition instruction 211 is followed by a step instruction 212. It is connected by an arc to an action block 213. The program branches on the next transition either to a right branch or to a left branch.
The left branch has a first transition instruction 214. This branch is entered when the conditions on the transition instruction 214 become logically "true" before the conditions for transition instruction 218 become logically "true". The transition instruction 214 is followed by a step instruction 215, which is connected to an action block 216. This block is followed by another transition instruction 217.
The right branch has a first transition instruction 218. This branch is entered when the conditions on the transition instruction 218 become logically "true" before the conditions for transition instruction 214 become logically "true". The transition instruction 218 is followed by a step instruction 219, which is connected to an action block 220. This block is followed by another transition instruction 221.
The program reads as follows. On startup, represented by step 210, the processor checks the CAR-- DETECT variable, as represented by transition 211. This variable becomes true when a CAR-- DETECT signal is detected, and execution of the program moves to the next step. In the run step 212, the value of the variable "CONV" is set to "true" and stored as represented by the boxes with "S" and "CONV" in action block 213. Also, in the run step 212, a second action of checking the value of variable "ALARM -- 1" is started after a 3-second delay represented by the letter "D" for delay and "T=3 SEC" for the period of delay.
The next transition to be executed, and the next branch of the program to be executed, depends upon which transition conditions occur first. If the expression "NOT AUX & ALARM -- 1" becomes true, then the transition 214 is executed to the NO-- RUN step 215. In this step 215, the variable "CONV" is reset (R) as shown in action block 216. The next transition 217, back to the start step 210 of the program, occurs when the SPEED variable is detected to be less than "5" as shown for transition 217.
If the a temperature variable OV-- TEMP exceeds "70" before the expression "NOT AUX & ALARM -- 1" becomes true, the transition instruction 218 is executed to proceed to the TOO-- HOT step 219. In this step 219, the variable "CONV" is removed from storage as shown by the letter "N" in action block 220. The next transition 221, back to the start step 210 of the program, occurs when the OV-- TEMP variable is detected to be less than "70" as shown for transition 221.
Returning to FIG. 41, it can now be seen that the blocks for steps, action blocks and transitions are added using tools 222, 223 and 224. Also provided on the palette panel are tools 225, 226 for branching and reconverging links.
FIG. 43 illustrates a palette panel 227 with tools 228 for graphing a ladder diagram program 231 for the DRY portion of the PROCESS as represented by dashed line box 230. This program would be executed by a controller processor at the EXIT location. The graphical symbols for ladder diagram instructions are the tools 228 or "elements" in the palette panel 227.
3. Compiling the Resulting Graphical Program
As seen in FIG. 34, the "COMPILE" command 229 is selected with mouse 17 from a menu 184 in the editing window for the CARWASH program 175. This causes the program to be compiled into an executable code file 11. The file may be saved to disk or transmitted on the network 12 to the target processor 23. If a ladder diagram program is involved, it can be translated to a ladder instruction file before it is saved to disk or transmitted through the network 12 to the target processor 23.
When compiling the program, reference is made through the variables in the program to the tag names for the hardware inputs and outputs which have been visually connected to the program variables. The compiler then refers to data from the HARDWARE editing task to relate the tag names for the hardware inputs and outputs to system I/O addresses (rack number, module group number, module, I/O bit) assigned during activation of the HARDWARE editing task.
Thus, if a program is reassigned to a different controller processor, or if the I/O modules are moved or reassigned within a particular controller, the graphical program information from the PROGRAM editing task can be reused. The hardware I/O tags are reconfigured to the new system I/O addresses using the HARDWARE editing task. The executable code is then compiled from the previous graphical program.
The menu 184 provides commands including "PROCESSOR" for reassigning a program to a different controller processor. Selection of this command will open another menu (not shown) with a list of controller processors.
This concludes the detailed description of a preferred embodiment of the invention. It will be appreciated by those of ordinary skill in the pertinent technical fields that many details herein have been given by way of example and that various modifications and additions might be made, while still utilizing the concepts of the invention. Therefore, to apprise those who practice in the pertinent technical fields and interested members of the public as to the scope of the invention, reference is made to the following claims.

Claims (19)

We claim:
1. A method of operating a programming computer to construct a graphical representation of a controller program in preparation for conversion of the controller program into a form for execution by a specific controller, the method comprising:
in response to a first plurality of user inputs, constructing one or more related views for display on a screen of the programming computer, wherein the one or more related views show a graph of an industrial or commercial process to be controlled by one or more controllers, the graph including visual representations of objects associated with visual representations of input signals and output signals that are to be monitored and controlled by the specific controller;
in response to a second plurality of user inputs, constructing a second group of one or more related views for display of one or more objects representing the controller program on the screen of the programming computer, and for display of visual representations of input and output program variables associated with the objects representing the controller program; and
in response to a third plurality of user inputs, visually associating on the screen at the same time the visual representations of the input and output program variables with the visual representations of the input signals and output signals to be monitored and controlled by the specific controller.
2. The method of claim 1, wherein the visually associating step includes:
in response to a fourth plurality of user inputs, visually associating the visual representations of the input signals and output signals to be monitored and controlled with visual representations of the inputs and outputs for controller hardware; and
displaying on the screen connections between the visual representations of the input and output program variables and visual representations corresponding to the inputs and outputs for the controller hardware.
3. The method of claim 2, wherein
the inputs and outputs for the controller hardware are visually represented by respective system I/O addresses; and
further comprising the step of visually associating on the screen of the programming computer the visual representations of the input and output program variables for the controller program with the respective system I/O addresses for the inputs and outputs for the controller hardware.
4. The method of claim 2, wherein
the input signals and output signals to be monitored and controlled are visually represented with alphanumeric names; and
wherein the visual representations of the input signals and output signals to be monitored and controlled are visually associated with the inputs and outputs for the controller hardware by moving the alphanumeric names to graphic positions for inputs and outputs for the controller hardware.
5. The method of claim 4, wherein
the visual representations of the input and output program variables in the controller program are displayed within visual connections to the alphanumeric names for the inputs and outputs for the controller hardware.
6. A method of operating a programming computer to construct a graphical representation of a controller program in preparation for conversion of the controller program into a form for execution by the controller, the method comprising:
activating first, second and third graphical editing tasks for display of objects on a screen of the programming computer, wherein each graphical editing task controls display of objects in an editing window that occupies a portion of the screen;
during activation of the first graphical editing task, in response to a plurality of user inputs, constructing in the editing window a graph of an industrial or commercial process to be controlled by one or more controllers, and visually representing a plurality of input signals and output signals for the industrial or commercial process;
during activation of the second graphical editing task, making one or more user inputs for visually associating the visual representations of the input signals and output signals from the first graphical editing task with a visual representation for a specific controller processor to be programmed to control the industrial or commercial process; and
during activation of the third graphical editing task, making one or more user inputs to visually associate the visual representations of the input signals and output signals from the first graphical editing task with visual representations for input and output program variables in a program for the specific controller processor.
7. The method of claim 6, further comprising, in response to further user inputs, the step of connecting visual representations of a group of hardware inputs and outputs associated with the specific controller processor to visual representations for the input and output program variables in the program for the specific controller processor.
8. The method of claim 6, wherein each graphical editing task displays a selection bar that extends laterally across a portion of the screen and has three selection areas corresponding to the three graphical editing tasks,
wherein each of the graphical editing tasks is activated by selecting a respective one of the selection areas using a mouse input device.
9. A method of operating a programming computer to construct a graphical representation of a controller program in preparation for conversion of the controller program into a form for execution by a controller, the method comprising:
activating a graphical editing task to direct display of a tree graph window and a graph editing window concurrently on the screen of the programming computer;
wherein the graphical editing task stores in the memory of the programming computer a plurality of graphs for viewing in the graph editing window;
wherein the graphical editing task directs display of a tree graph in the tree graph window with branches of the tree graph showing a hierarchical relationship of the plurality of graphs for viewing in the graph editing window; and
operating a user input device on the programming computer to select a particular branch of the tree graph to display a selected graph in the graph editing window on the screen of the programming computer.
10. A method of operating a programming computer to construct a graphical representation of a controller program in preparation for conversion of the controller program into a form for execution by the controller, the method comprising:
activating a graphical editing task that controls the display of objects on a screen of the programming computer, wherein the graphical editing task directs display of an editing window that occupies a portion of the screen; and
wherein the graphical editing task directs display of a first palette panel which a plurality of selectable functions of the type for adding objects in the editing window and wherein the graphical editing task directs display of a second palette panel with a plurality of selectable functions of the type for adding inputs and outputs on the objects added with the first palette panel; and
with a user input device, making selections on the first and second palette panels to select and direct display of objects with inputs and outputs in the editing window; and
wherein the graphical editing task includes and displays as part of the first and second palette panels a pair of oppositely pointing scrolling arrows, and wherein the user input device is operated to select one of the scrolling arrows to display one of the first and second palette panels and hide the other one of the first and second palette panels from display.
11. The method of claim 10, wherein
the graphical editing task includes and displays a third palette panel with a plurality of selectable locations for objects selected with the first palette panel; and
with a user input device, making selections on the third palette panel to display objects with specific locations in the editing window.
12. The method of claim 10, wherein the graphical editing task includes and displays a third palette panel with a plurality of selectable electrical functions for inputs and outputs selected with the second palette panel; and
with a user input device, making selections on the third palette panel to display objects with specific electrical functions in the editing window.
13. A method for use with a computer system of the type having a display screen and a user input device, the method comprising:
in response to a first plurality of user inputs, directing display of a graphical image of an electronic controller chassis on the screen, wherein the graphical image has portions corresponding to respective positions for I/O modules; and
in response to a second plurality of user inputs, directing display of a graphical image of an I/O module on the screen and superimposing said graphical image of the I/O module on said graphical image of the electronic controller chassis to simulate positioning of an I/O module in an actual electronic controller chassis.
14. The method of claim 13, wherein the first plurality of user inputs comprises
positioning a cursor over a palette of selections to select one of a plurality of electronic controller chassis;
operating one or more buttons on the user input device to select a particular controller chassis for display on the screen;
positioning the cursor over the display of the particular controller chassis; and
operating one or more buttons on the input device to display a second image of the electronic controller chassis which includes portions identifying respective positions for I/O modules.
15. The method of claim 13, wherein the second plurality of user inputs comprises:
operating the user input device to open a menu that includes a command to add an I/O module; and
operating the user input device to select the command to add an I/O module in the location with the lowest available I/O module address in the electronic controller chassis.
16. The method of claim 13, further comprising the step, in response to further user inputs, of directing display of multiple menus, one menu having options for defining the I/O module as including inputs or outputs, another menu having options for the voltage level of such inputs or outputs, and another menu having options for selecting a specific I/O module according to the options selected from the first and second menus.
17. An object-oriented method of operating a programming computer to construct a graphical representation of a controller program in preparation for conversion of the controller program into a form for execution by the controller, the method comprising:
constructing a plurality of graphs including at least one connected graph characterized by an arc linking a first vertex on a first node with a second vertex on a second node;
adding nodes to form the graphs by selecting and executing groups of object-oriented instructions for a plurality of node models for the respective graphs, wherein the groups of object-oriented instructions for the plurality of node models are related to a common group of object-oriented instructions for a node class;
adding vertices to form the graphs by selecting and executing groups of object-oriented instructions for a plurality of vertex models for the respective graphs, wherein the groups of object-oriented instructions for the plurality of vertex models are related to a common group of object-oriented instructions for a vertex class; and
adding arcs to form the connected graph by the selecting and executing groups of object-oriented instructions for an arc class.
18. The method of claim 17, wherein
the plurality of graphs includes first and second graphs; and
further comprising the step of organizing the first and second graphs in a graph hierarchy by storing the second graph in memory and visually representing the second graph as a node in the first graph.
19. The method of claim 17, wherein the step of constructing a plurality of graphs further comprises the steps of:
selecting and executing a first group of object-oriented instructions for constructing a first graph for a process to be controlled,
selecting and executing a second group of object-oriented instructions for constructing a second graph for controller hardware to control the process,
and selecting and executing a third group of object-oriented instructions for constructing a third graph for a program for the controller hardware.
US07/531,261 1990-05-30 1990-05-30 Methods for set up and programming of machine and process controllers Expired - Lifetime US5168441A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US07/531,261 US5168441A (en) 1990-05-30 1990-05-30 Methods for set up and programming of machine and process controllers
EP91911216A EP0531435B1 (en) 1990-05-30 1991-05-23 Graphical programming interface for machine/process controllers
DE69121712T DE69121712T2 (en) 1990-05-30 1991-05-23 GRAPHIC, PROGRAMMABLE INTERFACE FOR MACHINE / PROCESS CONTROL UNITS
PCT/US1991/003628 WO1991019237A1 (en) 1990-05-30 1991-05-23 Graphical programming interface for machine/process controllers
JP3510640A JP2984369B2 (en) 1990-05-30 1991-05-23 Graphic program interface for machine controller / process controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/531,261 US5168441A (en) 1990-05-30 1990-05-30 Methods for set up and programming of machine and process controllers

Publications (1)

Publication Number Publication Date
US5168441A true US5168441A (en) 1992-12-01

Family

ID=24116923

Family Applications (1)

Application Number Title Priority Date Filing Date
US07/531,261 Expired - Lifetime US5168441A (en) 1990-05-30 1990-05-30 Methods for set up and programming of machine and process controllers

Country Status (5)

Country Link
US (1) US5168441A (en)
EP (1) EP0531435B1 (en)
JP (1) JP2984369B2 (en)
DE (1) DE69121712T2 (en)
WO (1) WO1991019237A1 (en)

Cited By (302)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5321603A (en) * 1992-12-15 1994-06-14 Allen-Bradley Company, Inc. Programming apparatus for an industrial controller using two-dimensional graphic behavior profiles
US5355062A (en) * 1991-09-13 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
US5392207A (en) * 1993-08-20 1995-02-21 Allen-Bradley Company, Inc. Programmable motion controller with graphical programming aid
US5394523A (en) * 1993-01-22 1995-02-28 Taligent, Inc. Polymorphic graphic device
US5428718A (en) * 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
US5434965A (en) * 1992-12-23 1995-07-18 Taligent, Inc. Balloon help system
US5442746A (en) * 1992-08-28 1995-08-15 Hughes Aircraft Company Procedural user interface
US5453933A (en) * 1993-09-08 1995-09-26 Hurco Companies, Inc. CNC control system
US5455903A (en) * 1991-05-31 1995-10-03 Edify Corp. Object oriented customer information exchange system and method
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5465215A (en) * 1994-07-07 1995-11-07 Cincinnati Milacron Inc. Numerical control method and apparatus
US5475851A (en) * 1986-04-14 1995-12-12 National Instruments Corporation Method and apparatus for improved local and global variable capabilities in a graphical data flow program
US5477445A (en) * 1992-01-31 1995-12-19 Prolink Ag Process and device for bi-directional data exchange between computer and/or control systems
US5479601A (en) * 1992-12-23 1995-12-26 Taligent, Inc. Method and apparatus for processing commands generated by user interface controls in an atomic manner
US5481741A (en) * 1986-04-14 1996-01-02 National Instruments Corporation Method and apparatus for providing attribute nodes in a graphical data flow environment
US5485620A (en) * 1994-02-25 1996-01-16 Automation System And Products, Inc. Integrated control system for industrial automation applications
US5493642A (en) * 1994-04-26 1996-02-20 Jocatek, Inc. Graphically constructed control and scheduling system
US5497315A (en) * 1993-02-26 1996-03-05 Toyoda Koki Kabushiki Kaisha Programming device for programmable sequence controllers
US5497500A (en) * 1986-04-14 1996-03-05 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
US5504917A (en) * 1986-04-14 1996-04-02 National Instruments Corporation Method and apparatus for providing picture generation and control features in a graphical data flow environment
US5508909A (en) * 1994-04-26 1996-04-16 Patriot Sensors And Controls Method and systems for use with an industrial controller
US5524246A (en) * 1993-08-23 1996-06-04 At&T Corp. Method and apparatus for configuring computer programs from available subprograms
US5530864A (en) * 1992-12-23 1996-06-25 Taligent Command object system for an object-oriented software platform
US5550563A (en) * 1992-12-23 1996-08-27 Taligent, Inc. Interaction framework system
US5551055A (en) * 1992-12-23 1996-08-27 Taligent, Inc. System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order
US5570281A (en) * 1995-01-31 1996-10-29 International Business Machine Corporation Method and system for facilitating visual connections between objects using handles
EP0739511A1 (en) * 1994-11-10 1996-10-30 Baxter International Inc. Interactive control systems for medical processing devices
US5576946A (en) * 1993-09-30 1996-11-19 Fluid Air, Inc. Icon based process design and control system
US5590253A (en) * 1994-07-14 1996-12-31 Fanuc Ltd. Sequence program edit system for inserting additional graphic elements and for automatically inserting vertical connector lines
US5596704A (en) * 1993-11-11 1997-01-21 Bechtel Group, Inc. Process flow diagram generator
US5608899A (en) * 1993-06-04 1997-03-04 International Business Machines Corporation Method and apparatus for searching a database by interactively modifying a database query
US5623592A (en) * 1994-10-18 1997-04-22 Molecular Dynamics Method and apparatus for constructing an iconic sequence to operate external devices
US5627747A (en) * 1994-10-13 1997-05-06 Digisonix, Inc. System for developing and operating an active sound and vibration control system
US5631825A (en) * 1993-09-29 1997-05-20 Dow Benelux N.V. Operator station for manufacturing process control system
US5640565A (en) * 1993-01-22 1997-06-17 Object Technology Licensing Corp. Business card system
US5642024A (en) * 1994-01-28 1997-06-24 Mitsubishi Denki Kabushiki Kaisha Positioning apparatus and method with virtual transmission
US5644487A (en) * 1993-10-19 1997-07-01 Moore Products Co. Monitoring and control system and method
US5648909A (en) * 1992-06-12 1997-07-15 Digital Equipment Corporation Static timing verification in the presence of logically false paths
US5664180A (en) * 1995-03-20 1997-09-02 Framework Technologies Corporation Design tool for complex objects which links object structures of a design object in multiple design domains
US5706517A (en) * 1993-01-22 1998-01-06 Object Technology Licensing Corp. Method and apparatus for retrieving distributed objects in a networked system
US5706453A (en) * 1995-02-06 1998-01-06 Cheng; Yang-Leh Intelligent real-time graphic-object to database linking-actuator for enabling intuitive on-screen changes and control of system configuration
US5717877A (en) * 1992-12-23 1998-02-10 Object Licensing Licensing Corporation Object-oriented data access framework system
US5724074A (en) * 1995-02-06 1998-03-03 Microsoft Corporation Method and system for graphically programming mobile toys
EP0827053A1 (en) * 1996-03-18 1998-03-04 Fanuc Ltd Programming system for motion controller
US5732247A (en) * 1996-03-22 1998-03-24 Sun Microsystems, Inc Interface for interfacing simulation tests written in a high-level programming language to a simulation model
US5732229A (en) * 1993-01-22 1998-03-24 Object Technology Licensing Corporation Method and apparatus for displaying business cards
US5737622A (en) * 1986-04-14 1998-04-07 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
US5796602A (en) * 1996-02-06 1998-08-18 Fisher-Rosemount Systems, Inc. Method and apparatus using a device description for a conventional device
WO1998036336A1 (en) * 1997-02-14 1998-08-20 Fisher-Rosemount Systems, Inc. System for assisting configuring a process control environment
US5802334A (en) * 1996-01-05 1998-09-01 International Business Machines Corporation Method for displaying object oriented class information and content information
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
US5832213A (en) * 1996-07-03 1998-11-03 Sun Microsystems, Inc. Flexible mounting and unmounting of user removable media
US5832264A (en) * 1995-07-19 1998-11-03 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US5835758A (en) * 1995-02-28 1998-11-10 Vidya Technologies, Inc. Method and system for respresenting and processing physical and conceptual entities
US5841654A (en) * 1995-10-16 1998-11-24 Smar Research Corporation Windows based network configuration and control method for a digital control system
US5854929A (en) * 1996-03-08 1998-12-29 Interuniversitair Micro-Elektronica Centrum (Imec Vzw) Method of generating code for programmable processors, code generator and application thereof
US5861882A (en) * 1994-11-03 1999-01-19 Motorola, Inc. Integrated test and measurement means employing a graphical user interface
US5867382A (en) * 1996-09-10 1999-02-02 Mclaughlin; Michael G. Generic control systems using a virtual rack module
US5872722A (en) * 1996-09-04 1999-02-16 Eaton Corporation Apparatus and method for adjustment and coordination of circuit breaker trip curves through graphical manipulation
US5875322A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Making a control available to a computer without installing the control
KR19990021175A (en) * 1997-08-30 1999-03-25 김징완 Implementation Method of SFC Program for Sequence Process Control
US5890158A (en) * 1997-03-31 1999-03-30 International Business Machines Corporation Method, apparatus, and program storage device for sharing objects with a network server and a database server using a common object model
EP0911863A2 (en) * 1997-10-20 1999-04-28 Eni Technologies, Inc. Plasma process control system comprising a programmable process controller and an external computer for downloading a control program to the process controller
US5909372A (en) * 1996-06-07 1999-06-01 Danfoss A/S User interface for programming a motor controller
EP0919896A1 (en) * 1997-12-01 1999-06-02 Siemens Aktiengesellschaft Method for window-assisted definition and setting of parameters of interfaces
US5911075A (en) * 1997-03-31 1999-06-08 International Business Machines Corporation Query selection for a program development environment
US5918051A (en) * 1995-07-19 1999-06-29 Ricoh Company, Ltd. Object-oriented communication system with support for multiple remote machine types
WO1999034302A1 (en) * 1997-12-31 1999-07-08 Triconex Corporation Automatic generation of evaluation order for a function block diagram and detection of any associated errors
US5930156A (en) * 1995-06-16 1999-07-27 I2 Technologies, Inc. Extensible model network representation system for process planning
US5940293A (en) * 1997-10-22 1999-08-17 Allen-Bradley Company, Llc Bar chart editor for industrial controller
US5940294A (en) * 1996-04-12 1999-08-17 Fisher-Rosemont Systems, Inc. System for assisting configuring a process control environment
US5940593A (en) * 1997-03-31 1999-08-17 International Business Machines Corporation Simulating a multi-tiered computer environment on a single development system for debugging
US5953525A (en) * 1997-03-31 1999-09-14 International Business Machines Corporation Multi-tier view project window
US5953731A (en) * 1997-03-31 1999-09-14 International Business Machines Coporation HTML integration utility for a program development environment
US5956036A (en) * 1997-03-31 1999-09-21 International Business Machines Corporation Shared modules graphical user interface
US6024539A (en) * 1992-09-09 2000-02-15 Sims Deltec, Inc. Systems and methods for communicating with ambulatory medical devices such as drug delivery devices
US6032208A (en) * 1996-04-12 2000-02-29 Fisher-Rosemount Systems, Inc. Process control system for versatile control of multiple process devices of various device types
US6058264A (en) * 1997-03-31 2000-05-02 International Business Machines Corporation Extender smart guide for creating and modifying extenders
US6069627A (en) * 1995-11-01 2000-05-30 International Business Machines Corporation Extender user interface
US6078320A (en) * 1996-04-12 2000-06-20 Fisher-Rosemount Systems, Inc. System for configuring a process control environment
FR2789781A1 (en) * 1999-02-12 2000-08-18 Alstom System for development and execution of a program to assist operation of an industrial installation
WO2000049475A2 (en) * 1999-02-17 2000-08-24 Westinghouse Savannah River Company Systems and methods for interactive virtual reality process control, simulation, and training (ivrpcst)
US6112126A (en) * 1997-02-21 2000-08-29 Baker Hughes Incorporated Adaptive object-oriented optimization software system
WO2000063751A1 (en) * 1999-04-16 2000-10-26 Siemens Aktiengesellschaft Method and arrangement for modelling a technical system
US6145119A (en) * 1997-03-31 2000-11-07 International Business Machines Corporation Programming development environment for intranet and internet applications employing unique project data structure
EP0973107A3 (en) * 1998-07-17 2000-11-29 Fujikin Incorporated Apparatus for and method of designing fluid control devices
US6188400B1 (en) 1997-03-31 2001-02-13 International Business Machines Corporation Remote scripting of local objects
EP1081568A2 (en) * 1999-09-06 2001-03-07 Kabushiki Kaisha Toshiba Mechanism control system and its developing method
US6202200B1 (en) 1997-03-31 2001-03-13 International Business Machines Corporation Multi-tier debugging
US6247168B1 (en) * 1997-04-29 2001-06-12 Rockwell Technologies, Llc Embedded non-volatile programming tool
US6260076B1 (en) 1995-07-19 2001-07-10 Ricoh Company, Ltd. Method of using an object-oriented communication system with support for multiple remote machine types
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
EP1135715A1 (en) * 1998-10-13 2001-09-26 Scientronix, Inc. System and method for generating a control program
EP1152307A1 (en) * 2000-04-28 2001-11-07 ABB Research Ltd. A method for converting information related to the hardware/software configuration of a distributed control system
WO2001097093A2 (en) * 2000-06-13 2001-12-20 Helga Weber Method for automatically preparing a working plan
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
FR2816725A1 (en) * 2000-11-14 2002-05-17 Crouzet Automatismes Synchronous, coherent and deterministic construction of real time graphs for automatic systems, uses graphics languages Grafcet and SFC - FBD defined in AFNOR C03-190 and IEC 1131-3
WO2002042858A2 (en) * 2000-10-27 2002-05-30 Siemens Aktiengesellschaft Drop-enabled tabbed dialogs
US6408429B1 (en) 1997-01-17 2002-06-18 Cognex Corporation Machine vision system for identifying and assessing features of an article
EP1217476A2 (en) * 2000-12-22 2002-06-26 Siemens Aktiengesellschaft Apparatus and method for the start-up and diagnosis of control systems
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
WO2002067101A2 (en) * 2000-10-27 2002-08-29 Siemens Aktiengesellschaft Anticipating drop acceptance indication
WO2002067065A2 (en) * 2001-02-20 2002-08-29 Pilz Gmbh & Co. Method and device for programming a safety controller
US6445966B1 (en) * 1999-03-11 2002-09-03 Eaton Corporation Data interface module for motor control system
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6480896B1 (en) 1999-10-27 2002-11-12 Roy-G-Biv Corporation Systems and methods for generating and communicating motion data through a distributed network
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6490493B1 (en) 1999-01-21 2002-12-03 Rosemount Inc. Industrial process device management software
WO2002099579A2 (en) * 2001-06-04 2002-12-12 Econocraft Worldwide Car Wash Manufacturing, Inc. Vehicle washing apparatus control, software and interface
US6501996B1 (en) * 1996-07-08 2002-12-31 Siemens Aktiengesellschaft Process automation system
US6510352B1 (en) 1999-07-29 2003-01-21 The Foxboro Company Methods and apparatus for object-based process control
US6513058B2 (en) 1995-05-30 2003-01-28 Roy-G-Biv Corporation Distribution of motion control commands over a network
US6516236B1 (en) * 1995-05-30 2003-02-04 Roy-G-Biv Corporation Motion control systems
US6522346B1 (en) * 1998-06-23 2003-02-18 Creative Lifestyles, Inc Method and apparatus for developing application software for automation systems
US6542925B2 (en) 1995-05-30 2003-04-01 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US20030066050A1 (en) * 2001-09-26 2003-04-03 Wang Douglas W. Method and system for programming devices using finite state machine descriptions
US20030067286A1 (en) * 2000-04-13 2003-04-10 Jenoe Tihanyi Voltage converter
US6571141B1 (en) 1995-05-30 2003-05-27 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
EP1326148A2 (en) * 2001-10-31 2003-07-09 Crossbee Parameter setting and automatic compilation of structures using standard representation networks
US20030127119A1 (en) * 2002-01-09 2003-07-10 Washing Equipment Technologies, Inc. Operating system for vehicle washing bay
US6600964B2 (en) 1998-11-18 2003-07-29 Siemens Aktiengesellschaft Method for controlling technical processes
US6618630B1 (en) 1999-07-08 2003-09-09 Fisher-Rosemount Systems, Inc. User interface that integrates a process control configuration system and a field device management system
EP1355208A1 (en) * 2002-04-15 2003-10-22 Peter Renner System for the automation of technical processes
EP1365297A1 (en) * 2002-05-22 2003-11-26 Siemens Aktiengesellschaft System and method for adapting application-specific function blocks for an automation device
US6671869B2 (en) 2001-12-12 2003-12-30 Scott A. Davidson Method and apparatus for graphically programming a programmable circuit
WO2004006299A2 (en) * 2002-07-03 2004-01-15 Tokyo Electron Limited Method for dynamic sensor configuration and runtime execution
US6681138B2 (en) * 1997-03-14 2004-01-20 Siemens Aktiengesellschaft Programmable device for distributing electrical control signals to technical equipment
KR100423742B1 (en) * 2000-10-31 2004-03-24 삼성중공업 주식회사 Exclusive control system by sequential function chart
US6714962B1 (en) 1997-10-28 2004-03-30 Microsoft Corporation Multi-user server application architecture with single-user object tier
US20040075689A1 (en) * 2002-10-22 2004-04-22 Duncan Schleiss Smart process modules and objects in process plants
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US6748555B1 (en) 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
US6757868B1 (en) 1998-06-22 2004-06-29 International Business Machines Corporation Programmatic switching of arbitrary HTML forms
US20040148146A1 (en) * 2001-05-14 2004-07-29 Raoul Barre De Saint Venant Tool for monitoring and controlling a develpment of complex organisms
US20040148513A1 (en) * 2003-01-28 2004-07-29 Cindy Scott Integrated security in a process plant having a process control system and a safety system
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6826632B1 (en) 1999-05-18 2004-11-30 Gateway, Inc. System for identifying the interconnection of peripheral devices
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US20040254653A1 (en) * 2001-09-25 2004-12-16 Annette Eichhorn System and method for programming an automation system, based on pulse timing diagrams
US6859671B1 (en) 1995-05-30 2005-02-22 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US6868538B1 (en) 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
EP1522910A1 (en) * 2003-10-10 2005-04-13 dSPACE GmbH Method and system for configuring a control system
US6885898B1 (en) 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US20050096872A1 (en) * 2002-10-22 2005-05-05 Fisher-Rosemount Systems, Inc. Smart process objects used in a process plant modeling system
US20050102651A1 (en) * 2001-03-29 2005-05-12 Jun Ueda Programming tool
US20050125804A1 (en) * 1999-12-15 2005-06-09 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US20050147093A1 (en) * 2002-07-22 2005-07-07 Siemens Aktiengesellschaft Computer system for configuring firmware for an automation device
US6931288B1 (en) 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US6941543B1 (en) 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US20050210445A1 (en) * 1996-05-10 2005-09-22 Apple Computer, Inc. Graphical editor for program files
US20050231521A1 (en) * 2004-04-16 2005-10-20 John Harper System for reducing the number of programs necessary to render an image
WO2005109123A1 (en) * 2004-05-04 2005-11-17 Fisher-Rosemount Systems, Inc. System for configuring graphic display elements and process modules in process plants
US20060005160A1 (en) * 1997-08-18 2006-01-05 National Instruments Corporation Image acquisition device
EP1630631A2 (en) * 2004-08-23 2006-03-01 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
WO2006032344A1 (en) * 2004-09-17 2006-03-30 Sew-Eurodrive Gmbh & Co. Kg Method graphical user interface and drive
US7024666B1 (en) 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US7031798B2 (en) 2001-02-09 2006-04-18 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US7058693B1 (en) * 1997-09-10 2006-06-06 Schneider Automation Inc. System for programming a programmable logic controller using a web browser
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US7096465B1 (en) 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US20060190106A1 (en) * 2001-07-30 2006-08-24 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US7117433B1 (en) 1998-09-29 2006-10-03 International Business Machines Corporation HTML mapping substitution graphical user interface for display of elements mapped to HTML files
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US7139843B1 (en) 1995-05-30 2006-11-21 Roy-G-Biv Corporation System and methods for generating and communicating motion data through a distributed network
US20060268967A1 (en) * 2005-04-27 2006-11-30 Pierre Drezet Supplying instruction to operational stations
US20070005266A1 (en) * 2004-05-04 2007-01-04 Fisher-Rosemount Systems, Inc. Process plant monitoring based on multivariate statistical analysis and on-line process simulation
US20070083275A1 (en) * 2003-01-28 2007-04-12 Fisher-Rosemount Systems, Inc. Method for intercontroller communications in A safety instrumented system or a process control system
EP1785787A1 (en) * 2005-11-15 2007-05-16 Dewert Antriebs- und Systemtechnik GmbH Method and device for programming and controlling an electric equipment system of a piece of furniture
EP1816532A2 (en) * 1999-08-31 2007-08-08 Digital Electronics Corporation Editing apparatus and recording medium in which editing program is recorded
US20070182977A1 (en) * 2006-02-08 2007-08-09 Xerox Corporation Printing subsystem with improved user interface
US20070183169A1 (en) * 2006-01-21 2007-08-09 Shalabh Kumar Combination i/o modules in a modular automation controller
US7272815B1 (en) 1999-05-17 2007-09-18 Invensys Systems, Inc. Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US7284664B1 (en) * 2001-10-22 2007-10-23 United Electronic Industries Methods and apparatus for performing data acquisition and control
US7313609B1 (en) * 2000-08-09 2007-12-25 Schneider Automation Inc. Method and apparatus for programming an automation device
US20080033402A1 (en) * 2006-08-03 2008-02-07 Blomquist Michael L Interface for medical infusion pump
WO2008019976A1 (en) * 2006-08-14 2008-02-21 Siemens Aktiengesellschaft Signal converter device, method of operation of a signal converter device and programming procedure for programming a signal converter device
EP1901146A1 (en) * 2006-09-15 2008-03-19 dSPACE GmbH Facility and method for configuring a control system
US7447553B1 (en) * 1999-04-06 2008-11-04 Siemens Aktiengesellschaft Software object, system and method for an automation program with function rules which has multiple uses for various programming tools
US20080301703A1 (en) * 2007-05-31 2008-12-04 Nixon Mark J Apparatus and methods to access information associated with a process control system
US20090030534A1 (en) * 2007-07-05 2009-01-29 Sick Ag Method for the programming of a safety controller
US20090030977A1 (en) * 1997-10-07 2009-01-29 Brown Stephen J Remote Generation and distribution of command programs for programmable devices
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US20090118847A1 (en) * 2004-06-18 2009-05-07 Seimens Aktiengesellschaft Method for Operating a Calculating Unit and Signal for Processing in a Calculating Unit
US7546543B2 (en) 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
EP2068214A1 (en) * 2007-12-03 2009-06-10 Phoenix Contact GmbH & Co. KG Graphical programming by derivating the process control sequence from the connection of dynamic graphical objects
US20090180431A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Load aware resource allocation in wireless networks
US20090217200A1 (en) * 2008-02-26 2009-08-27 Stephen Gerard Hammack Methods and apparatus to bind properties in a process control system
EP2098925A1 (en) * 2008-03-07 2009-09-09 Sick Ag Method and device for programming and/or configuring a safety controller
EP2098928A1 (en) * 2008-03-07 2009-09-09 Sick Ag Method and device for programming and/or configuring a safety controller
EP2098924A1 (en) * 2008-03-07 2009-09-09 Sick Ag Method and device for programming and/or configuring a safety controller
AU2005201213B2 (en) * 2004-04-02 2009-10-01 Vega Grieshaber Kg Method for automatic modeling a process control system and corresponding process control system
US20090254801A1 (en) * 2001-05-14 2009-10-08 The Mathworks, Inc. Model navigation
US20090275886A1 (en) * 2008-05-02 2009-11-05 Smiths Medical Md, Inc. Display for an insulin pump
US20100064026A1 (en) * 2003-09-25 2010-03-11 Roy-G-Biv Corporation Database event driven motion systems
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US20100131077A1 (en) * 2004-02-25 2010-05-27 Brown David W Data Collection Systems and Methods for Motion Control
US20100131080A1 (en) * 1999-10-27 2010-05-27 Roy-G-Biv Corporation Event Driven Motion Systems
US20100131079A1 (en) 2001-02-09 2010-05-27 Brown David W Event management systems and methods for motion control systems
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US20100162146A1 (en) * 2008-12-18 2010-06-24 Microsoft Corporation Visually processing instance data
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US7778717B2 (en) 2002-04-15 2010-08-17 Invensys Systems, Inc. Component object model communication method for a control system
US7860857B2 (en) 2006-03-30 2010-12-28 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US7890927B2 (en) 1999-05-17 2011-02-15 Invensys Systems, Inc. Apparatus and method for configuring and editing a control system with live data
DE102009048746A1 (en) * 2009-10-08 2011-04-21 Netstal-Maschinen Ag Method for controlling and operating a production cell and a control device
US20110099533A1 (en) * 2001-06-22 2011-04-28 Invensys Systems, Inc. Process Control Script Development And Execution Facility Supporting Multiple User-Side Programming Languages
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US20110185371A1 (en) * 1995-05-30 2011-07-28 Roy-G-Biv Corporation Systems and Methods for Communicating With Motion Control Systems and Devices
US20110202688A1 (en) * 2010-02-12 2011-08-18 Rockwell Automation Technologies, Inc. Macro function block for encapsulating device-level embedded logic
US20110202145A1 (en) * 2010-02-12 2011-08-18 Rockwell Automation Technologies, Inc. Automatic device parameter binding method and system
US20110202147A1 (en) * 2010-02-12 2011-08-18 Rockwell Automation Technologies, Inc. Multiple boolean inputs and outputs for device function blocks
US8023500B2 (en) 1996-08-20 2011-09-20 Invensys Systems, Inc. Methods for process control with change updates
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US8055358B2 (en) 2005-12-05 2011-11-08 Fisher-Rosemount Systems, Inc. Multi-objective predictive process optimization with concurrent process simulation
US8102869B2 (en) 2003-09-25 2012-01-24 Roy-G-Biv Corporation Data routing systems and methods
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US8156467B2 (en) 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8250483B2 (en) 2002-02-28 2012-08-21 Smiths Medical Asd, Inc. Programmable medical infusion pump displaying a banner
US8271105B2 (en) 1995-05-30 2012-09-18 Roy-G-Biv Corporation Motion control systems
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8435206B2 (en) 2006-08-03 2013-05-07 Smiths Medical Asd, Inc. Interface for medical infusion pump
JP2013089044A (en) * 2011-10-18 2013-05-13 Sumitomo Heavy Ind Ltd Block diagram processor and method for processing block diagram
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8504179B2 (en) 2002-02-28 2013-08-06 Smiths Medical Asd, Inc. Programmable medical infusion pump
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US8594814B2 (en) 2008-06-20 2013-11-26 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US20130325145A1 (en) * 2012-05-29 2013-12-05 Robert Bosch Gmbh Programming Template for Distributed Application Programs
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8704837B2 (en) 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
CN103970087A (en) * 2013-01-30 2014-08-06 发那科株式会社 Operating program writing system
TWI448849B (en) * 2011-01-31 2014-08-11 Mitsubishi Electric Corp Motion sfc program parts preparing device
US8825183B2 (en) 2010-03-22 2014-09-02 Fisher-Rosemount Systems, Inc. Methods for a data driven interface based on relationships between process control tags
US8836497B2 (en) 2012-07-23 2014-09-16 General Electric Company Systems and methods for configuring analog process alarms in control devices
US8858526B2 (en) 2006-08-03 2014-10-14 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US8881039B2 (en) 2009-03-13 2014-11-04 Fisher-Rosemount Systems, Inc. Scaling composite shapes for a graphical human-machine interface
TWI465868B (en) * 2012-03-26 2014-12-21 Mitsubishi Electric Corp Sequence program design support device
US8954336B2 (en) 2004-02-23 2015-02-10 Smiths Medical Asd, Inc. Server for medical device
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8965707B2 (en) 2006-08-03 2015-02-24 Smiths Medical Asd, Inc. Interface for medical infusion pump
US9046881B2 (en) 2002-10-22 2015-06-02 Fisher-Rosemount Systems, Inc. Updating and utilizing dynamic process simulation in an operating process environment
WO2014150594A3 (en) * 2013-03-15 2015-06-04 Clados Management LLC Tabular data manipulation system and method
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US20160004239A1 (en) * 2013-02-22 2016-01-07 Mitsubishi Electric Corporation System development device, system development method, and system development program
US9268607B2 (en) 2004-03-13 2016-02-23 Adaptive Computing Enterprises, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US9389602B2 (en) 2001-08-13 2016-07-12 Rockwell Automation, Inc. Industrial controller automation interface
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
CN106662855A (en) * 2014-07-04 2017-05-10 三菱电机株式会社 Method for setting synchronous control of positioning control device, program, and control setting device for positioning control device
US9684347B2 (en) 2013-01-18 2017-06-20 General Electric Company Systems and methods for automated display of permissive logic in control systems associated with a power generation unit
US9691118B2 (en) 2004-04-16 2017-06-27 Apple Inc. System for optimizing graphics operations
CN107240334A (en) * 2017-05-23 2017-10-10 梦孚(上海)教育科技有限公司 One kind programming learning system and its method
US9886322B2 (en) 2004-03-13 2018-02-06 Iii Holdings 12, Llc System and method for providing advanced reservations in a compute environment
US20180052451A1 (en) * 2016-08-19 2018-02-22 Rockwell Automation Technologies, Inc. Remote industrial automation site operation in a cloud platform
US9927788B2 (en) 2011-05-19 2018-03-27 Fisher-Rosemount Systems, Inc. Software lockout coordination between a process control system and an asset management system
US9959140B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of co-allocating a reservation spanning different compute resources types
US10313281B2 (en) 2016-01-04 2019-06-04 Rockwell Automation Technologies, Inc. Delivery of automated notifications by an industrial asset
US10318570B2 (en) 2016-08-18 2019-06-11 Rockwell Automation Technologies, Inc. Multimodal search input for an industrial search platform
US10319128B2 (en) 2016-09-26 2019-06-11 Rockwell Automation Technologies, Inc. Augmented reality presentation of an industrial environment
US10387170B1 (en) * 2004-11-15 2019-08-20 Peter Ar-Fu Lam User programmable building kit
US10388075B2 (en) 2016-11-08 2019-08-20 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10401839B2 (en) 2016-09-26 2019-09-03 Rockwell Automation Technologies, Inc. Workflow tracking and identification using an industrial monitoring system
US10445944B2 (en) 2017-11-13 2019-10-15 Rockwell Automation Technologies, Inc. Augmented reality safety automation zone system and method
US10528021B2 (en) 2015-10-30 2020-01-07 Rockwell Automation Technologies, Inc. Automated creation of industrial dashboards and widgets
US10545492B2 (en) 2016-09-26 2020-01-28 Rockwell Automation Technologies, Inc. Selective online and offline access to searchable industrial automation data
US10682460B2 (en) 2013-01-28 2020-06-16 Smiths Medical Asd, Inc. Medication safety devices and methods
US10735691B2 (en) 2016-11-08 2020-08-04 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10795649B1 (en) * 2019-01-31 2020-10-06 Splunk Inc. Custom code blocks for a visual playbook editor
US10866631B2 (en) 2016-11-09 2020-12-15 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
US10878140B2 (en) 2016-07-27 2020-12-29 Emerson Process Management Power & Water Solutions, Inc. Plant builder system with integrated simulation and control system configuration
US20210124329A1 (en) * 2016-02-10 2021-04-29 Intelligent Platforms, Llc Graphical interface for configuration of industrial automation systems
US11418969B2 (en) 2021-01-15 2022-08-16 Fisher-Rosemount Systems, Inc. Suggestive device connectivity planning
US11424865B2 (en) 2020-12-10 2022-08-23 Fisher-Rosemount Systems, Inc. Variable-level integrity checks for communications in process control environments
US11467883B2 (en) 2004-03-13 2022-10-11 Iii Holdings 12, Llc Co-allocating a reservation spanning different compute resources types
US11487513B1 (en) 2020-07-31 2022-11-01 Splunk Inc. Reusable custom functions for playbooks
US11496415B2 (en) 2005-04-07 2022-11-08 Iii Holdings 12, Llc On-demand access to compute resources
US11494235B2 (en) 2004-11-08 2022-11-08 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11522952B2 (en) 2007-09-24 2022-12-06 The Research Foundation For The State University Of New York Automatic clustering for self-organizing grids
US11526304B2 (en) 2009-10-30 2022-12-13 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11623617B2 (en) * 2017-11-27 2023-04-11 Washtec Holding Gmbh Automatic generation of emergency operation programs for a vehicle washing installation in the case of a fault
US11630704B2 (en) 2004-08-20 2023-04-18 Iii Holdings 12, Llc System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information
US11650857B2 (en) 2006-03-16 2023-05-16 Iii Holdings 12, Llc System and method for managing a hybrid computer environment
US11652706B2 (en) 2004-06-18 2023-05-16 Iii Holdings 12, Llc System and method for providing dynamic provisioning within a compute environment
US11658916B2 (en) 2005-03-16 2023-05-23 Iii Holdings 12, Llc Simple integration of an on-demand compute environment
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11768666B1 (en) 2019-01-31 2023-09-26 Splunk Inc. Executing playbooks including custom code function blocks
US11853690B1 (en) 2016-05-31 2023-12-26 The Mathworks, Inc. Systems and methods for highlighting graphical models

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696887A (en) * 1991-08-05 1997-12-09 Biotek Solutions, Incorporated Automated tissue assay using standardized chemicals and packages
US5594858A (en) * 1993-07-29 1997-01-14 Fisher-Rosemount Systems, Inc. Uniform control template generating system and method for process control programming
US5546519A (en) * 1994-02-28 1996-08-13 International Business Machines Corporation System and method for visually programming iteration
DE4427183A1 (en) * 1994-08-01 1996-02-08 Siemens Ag Programming device
US5611059A (en) * 1994-09-02 1997-03-11 Square D Company Prelinked parameter configuration, automatic graphical linking, and distributed database configuration for devices within an automated monitoring/control system
IT1271796B (en) * 1994-12-23 1997-06-09 Lomar S R L CONTROL EQUIPMENT OF AT LEAST ONE ACTUATOR OPERATIVELY CONNECTED TO A FLEXIBLE PROGRAMMING STATION
DE19513230A1 (en) * 1995-04-07 1996-10-10 Siemens Ag Programming device
US5918233A (en) * 1996-05-30 1999-06-29 The Foxboro Company Methods and systems for providing electronic documentation to users of industrial process control systems
US5880957A (en) * 1996-12-03 1999-03-09 Caterpillar Inc. Method for programming hydraulic implement control system
DE19880536B4 (en) * 1997-03-11 2004-08-05 Mitsubishi Denki K.K. Visual programming method and programming system using this method
US6006171A (en) * 1997-07-28 1999-12-21 Vines; Caroline J. Dynamic maintenance management system
AT412131B (en) * 1998-11-24 2004-09-27 Automationx Software For Ind A AUTOMATION SYSTEM FOR SOLVING A PROCESS TECHNICAL TASK AND METHOD FOR THIS
IT1304077B1 (en) * 1998-12-31 2001-03-07 Abb Research Ltd PROCEDURE FOR THE EDITING AND PRINTING OF FUNCTIONAL DIAGRAMS OF THE CONTROL LOGICS AND OF THE SYSTEM ADJUSTMENTS FOR
AUPP949599A0 (en) * 1999-03-30 1999-04-22 Griffith University Visual architecture software language
EP1087275A1 (en) * 1999-09-21 2001-03-28 ABB Research Ltd. Computerised system for industrial control system design
WO2001059532A1 (en) * 2000-02-10 2001-08-16 Daikin Industries, Ltd. Control program generating method, apparatus thereof, storage medium, and program
ATE423392T1 (en) 2000-03-10 2009-03-15 Infotech Ag METHOD AND DEVICE FOR ADJUSTING A COMPONENT ON A SUBSTRATE USING DIGITAL FEATURE SEPARATION
US6985780B2 (en) 2000-03-10 2006-01-10 Adept Technology, Inc. Smart camera
US6988008B2 (en) 2000-03-10 2006-01-17 Adept Technology, Inc. Smart camera
US20020054149A1 (en) * 2000-03-10 2002-05-09 Genise Ronald G. System configuration editor with an iconic function sequencer
US6605500B2 (en) 2000-03-10 2003-08-12 Infotech Ag Assembly process
DE10017708B4 (en) * 2000-04-04 2008-02-14 Technische Universität Dresden Method for controlling mechanisms and technical systems, equipment and control software
DE10125384B4 (en) 2000-12-22 2018-09-20 Siemens Aktiengesellschaft Device and method for commissioning and diagnosis of control systems
DE10240104A1 (en) * 2002-08-30 2004-03-11 Siemens Ag Processes for processing data
JP2007041846A (en) * 2005-08-03 2007-02-15 Fuji Electric Holdings Co Ltd Program display method and device
WO2010065511A1 (en) 2008-12-02 2010-06-10 Ab Initio Software Llc Mapping instances of a dataset within a data management system
JP5311064B2 (en) * 2010-03-15 2013-10-09 オムロン株式会社 PLC development support equipment
CN103180826B (en) * 2010-10-25 2017-04-05 起元技术有限责任公司 Object data set is managed in the data flow diagram for represent computer program
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
AU2015289442B2 (en) 2014-07-18 2019-07-11 Ab Initio Technology Llc Managing lineage information
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
EP3243607B1 (en) 2016-05-09 2021-01-27 OpiFlex Automation AB A system and a method for programming an industrial robot
CN109116790A (en) * 2018-10-31 2019-01-01 徐波 A kind of electric arc spraying electromechanical source integrated control system
US11231911B2 (en) 2020-05-12 2022-01-25 Programmable Logic Consulting, LLC System and method for using a graphical user interface to develop a virtual programmable logic controller
CN114035447B (en) * 2021-10-20 2022-05-31 华南师范大学 Hardware simulator for graphic programming software of primary and secondary school artificial intelligence education

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315315A (en) * 1971-03-09 1982-02-09 The Johns Hopkins University Graphical automatic programming
US4570217A (en) * 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
EP0184422A2 (en) * 1984-12-03 1986-06-11 Westinghouse Electric Corporation Universal process control device and method
USRE32632E (en) * 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
US4736340A (en) * 1983-07-25 1988-04-05 La Telemecanique Electrique Processor generating control programs for a programmable controller
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
US4870561A (en) * 1986-09-01 1989-09-26 Hewlett-Packard Company User interface simulation and management for program-controlled apparatus
US4885694A (en) * 1987-04-29 1989-12-05 Honeywell Inc. Automated building control design system
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US4939507A (en) * 1986-04-28 1990-07-03 Xerox Corporation Virtual and emulated objects for use in the user interface of a display screen of a display processor
DE4013960A1 (en) * 1989-05-01 1990-11-08 Honda Motor Co Ltd Control program generation selected actuators - combining actuator, logic and step programs using basic operating patterns defining actuator input-output relationships
US5005119A (en) * 1987-03-02 1991-04-02 General Electric Company User interactive control of computer programs and corresponding versions of input/output data flow
US5021976A (en) * 1988-11-14 1991-06-04 Microelectronics And Computer Technology Corporation Method and system for generating dynamic, interactive visual representations of information structures within a computer
US5079723A (en) * 1988-03-04 1992-01-07 Xerox Corporation Touch dialogue user interface for reproduction machines

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315315A (en) * 1971-03-09 1982-02-09 The Johns Hopkins University Graphical automatic programming
US4570217A (en) * 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
USRE32632E (en) * 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
US4736340A (en) * 1983-07-25 1988-04-05 La Telemecanique Electrique Processor generating control programs for a programmable controller
EP0184422A2 (en) * 1984-12-03 1986-06-11 Westinghouse Electric Corporation Universal process control device and method
US4663704A (en) * 1984-12-03 1987-05-05 Westinghouse Electric Corp. Universal process control device and method for developing a process control loop program
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US4827404A (en) * 1986-04-14 1989-05-02 Schlumberger Technology Corporation Method and system for computer programming
US4939507A (en) * 1986-04-28 1990-07-03 Xerox Corporation Virtual and emulated objects for use in the user interface of a display screen of a display processor
US4870561A (en) * 1986-09-01 1989-09-26 Hewlett-Packard Company User interface simulation and management for program-controlled apparatus
US5005119A (en) * 1987-03-02 1991-04-02 General Electric Company User interactive control of computer programs and corresponding versions of input/output data flow
US4885694A (en) * 1987-04-29 1989-12-05 Honeywell Inc. Automated building control design system
US5079723A (en) * 1988-03-04 1992-01-07 Xerox Corporation Touch dialogue user interface for reproduction machines
US5021976A (en) * 1988-11-14 1991-06-04 Microelectronics And Computer Technology Corporation Method and system for generating dynamic, interactive visual representations of information structures within a computer
DE4013960A1 (en) * 1989-05-01 1990-11-08 Honda Motor Co Ltd Control program generation selected actuators - combining actuator, logic and step programs using basic operating patterns defining actuator input-output relationships
GB2233128A (en) * 1989-05-01 1991-01-02 Honda Motor Co Ltd Method of and apparatus for generating control program

Non-Patent Citations (29)

* Cited by examiner, † Cited by third party
Title
"A Program Development Tool for the Entire Automation Staff", published by Siemens, date unknown.
"Controller Combines Computer and Programmable Control Functions", Control Engineering, Nov. 1984.
"Data PCs From Maxitron--Conceptual and Technical Perspectives" brochure published in 1985.
"Programmable Controller Functions Are Enhanced by Structural Programming", Control Engineering, Feb. 1984.
A Program Development Tool for the Entire Automation Staff , published by Siemens, date unknown. *
Ambler and Burnett, "Influence of Visual Technology on the Evolution of Language Environments", Computer, IEEE Oct., 1989, pp. 9-22.
Ambler and Burnett, Influence of Visual Technology on the Evolution of Language Environments , Computer, IEEE Oct., 1989, pp. 9 22. *
Controller Combines Computer and Programmable Control Functions , Control Engineering, Nov. 1984. *
D. Ingalls, et al., "Fabrik, A Visual Programming Environment" OOPSLA '88 Proceedings, Sep. 25-30, 1988.
D. Ingalls, et al., Fabrik, A Visual Programming Environment OOPSLA 88 Proceedings, Sep. 25 30, 1988. *
Data PCs From Maxitron Conceptual and Technical Perspectives brochure published in 1985. *
Draft of Approved French Standard, Sep. 1981. *
Flexis Product Overview, Savoir Systems Group, Oakland, Calif., Apr., 1988. *
Flexis ToolSet Brochure, Savoir Systems Group, Oakland, Calif., Oct., 1987. *
Flexis™ Product Overview, Savoir Systems Group, Oakland, Calif., Apr., 1988.
Flexis™ ToolSet™ Brochure, Savoir Systems Group, Oakland, Calif., Oct., 1987.
International Electrotechnical Commission Preparation of Function Charts for Control Systems, Jan. 1982. *
International Electrotechnical Commission Standard for Programmable Controllers Part 3: Programming Languages, Nov. 1984. *
International Electrotechnical Commission--Preparation of Function Charts for Control Systems, Jan. 1982.
International Electrotechnical Commission--Standard for Programmable Controllers--Part 3: Programming Languages, Nov. 1984.
Kramer, Magee & Ng, "Graphical Configuration Programming", Computer, IEEE Oct., 1989, pp. 53-65.
Kramer, Magee & Ng, Graphical Configuration Programming , Computer, IEEE Oct., 1989, pp. 53 65. *
Miller, R., "Savior: The Object Is Cell Control", Managing Automation, Apr. 1988, pp. 66-70.
Miller, R., Savior: The Object Is Cell Control , Managing Automation, Apr. 1988, pp. 66 70. *
P. Liu, et al., "A Layered Intelligence Architecture for Programmable Controller Configurations", ESD/SMI Expert Systems, Proceedings, Dearborn, Mich., Jun. 9-11, 1987.
P. Liu, et al., A Layered Intelligence Architecture for Programmable Controller Configurations , ESD/SMI Expert Systems, Proceedings, Dearborn, Mich., Jun. 9 11, 1987. *
Programmable Controller Functions Are Enhanced by Structural Programming , Control Engineering, Feb. 1984. *
Smalltalk V/286 Tutorial and Programming Handbook, Digitalk Inc., 1988, pp. 1 3. *
Smalltalk V/286 Tutorial and Programming Handbook, Digitalk Inc., 1988, pp. 1-3.

Cited By (524)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737622A (en) * 1986-04-14 1998-04-07 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
US5504917A (en) * 1986-04-14 1996-04-02 National Instruments Corporation Method and apparatus for providing picture generation and control features in a graphical data flow environment
US5481741A (en) * 1986-04-14 1996-01-02 National Instruments Corporation Method and apparatus for providing attribute nodes in a graphical data flow environment
US5475851A (en) * 1986-04-14 1995-12-12 National Instruments Corporation Method and apparatus for improved local and global variable capabilities in a graphical data flow program
US5497500A (en) * 1986-04-14 1996-03-05 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
US5455903A (en) * 1991-05-31 1995-10-03 Edify Corp. Object oriented customer information exchange system and method
US5565748A (en) * 1991-09-13 1996-10-15 Mitsubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5596256A (en) * 1991-09-13 1997-01-21 Mitsubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5812432A (en) * 1991-09-13 1998-09-22 Mistubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5631531A (en) * 1991-09-13 1997-05-20 Mitsubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5859515A (en) * 1991-09-13 1999-01-12 Mitsubishi Denki Kabushiki Kaisha Method of operating a virtual mechanical module which simulates a mechanical device
US5715429A (en) * 1991-09-13 1998-02-03 Mitsubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5355062A (en) * 1991-09-13 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Positioning and control apparatus that is interactively programmable using a display
US5477445A (en) * 1992-01-31 1995-12-19 Prolink Ag Process and device for bi-directional data exchange between computer and/or control systems
US5648909A (en) * 1992-06-12 1997-07-15 Digital Equipment Corporation Static timing verification in the presence of logically false paths
US5442746A (en) * 1992-08-28 1995-08-15 Hughes Aircraft Company Procedural user interface
US6024539A (en) * 1992-09-09 2000-02-15 Sims Deltec, Inc. Systems and methods for communicating with ambulatory medical devices such as drug delivery devices
US5321603A (en) * 1992-12-15 1994-06-14 Allen-Bradley Company, Inc. Programming apparatus for an industrial controller using two-dimensional graphic behavior profiles
US6424354B1 (en) 1992-12-23 2002-07-23 Object Technology Licensing Corporation Object-oriented event notification system with listener registration of both interests and methods
US5717877A (en) * 1992-12-23 1998-02-10 Object Licensing Licensing Corporation Object-oriented data access framework system
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
US5479601A (en) * 1992-12-23 1995-12-26 Taligent, Inc. Method and apparatus for processing commands generated by user interface controls in an atomic manner
US5434965A (en) * 1992-12-23 1995-07-18 Taligent, Inc. Balloon help system
US5530864A (en) * 1992-12-23 1996-06-25 Taligent Command object system for an object-oriented software platform
US5550563A (en) * 1992-12-23 1996-08-27 Taligent, Inc. Interaction framework system
US5551055A (en) * 1992-12-23 1996-08-27 Taligent, Inc. System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US6146027A (en) * 1992-12-23 2000-11-14 Object Technology Licensing Corp. Method and apparatus for providing an object-oriented application interface for a computer system
US5394523A (en) * 1993-01-22 1995-02-28 Taligent, Inc. Polymorphic graphic device
US5706517A (en) * 1993-01-22 1998-01-06 Object Technology Licensing Corp. Method and apparatus for retrieving distributed objects in a networked system
US5640565A (en) * 1993-01-22 1997-06-17 Object Technology Licensing Corp. Business card system
US5428718A (en) * 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
US5732229A (en) * 1993-01-22 1998-03-24 Object Technology Licensing Corporation Method and apparatus for displaying business cards
US5497315A (en) * 1993-02-26 1996-03-05 Toyoda Koki Kabushiki Kaisha Programming device for programmable sequence controllers
US5734888A (en) * 1993-06-04 1998-03-31 International Business Machines Corporation Apparatus and method of modifying a database query
US5608899A (en) * 1993-06-04 1997-03-04 International Business Machines Corporation Method and apparatus for searching a database by interactively modifying a database query
US5392207A (en) * 1993-08-20 1995-02-21 Allen-Bradley Company, Inc. Programmable motion controller with graphical programming aid
US5524246A (en) * 1993-08-23 1996-06-04 At&T Corp. Method and apparatus for configuring computer programs from available subprograms
US5574918A (en) * 1993-08-23 1996-11-12 Lucent Technologies Inc. Method and apparatus for configuring computer program from available subprograms
US5933637A (en) * 1993-08-23 1999-08-03 Lucent Technologies Inc. Method and apparatus for configuring computer programs from available subprograms
US5453933A (en) * 1993-09-08 1995-09-26 Hurco Companies, Inc. CNC control system
US5631825A (en) * 1993-09-29 1997-05-20 Dow Benelux N.V. Operator station for manufacturing process control system
US5576946A (en) * 1993-09-30 1996-11-19 Fluid Air, Inc. Icon based process design and control system
US5644487A (en) * 1993-10-19 1997-07-01 Moore Products Co. Monitoring and control system and method
US5596704A (en) * 1993-11-11 1997-01-21 Bechtel Group, Inc. Process flow diagram generator
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5642024A (en) * 1994-01-28 1997-06-24 Mitsubishi Denki Kabushiki Kaisha Positioning apparatus and method with virtual transmission
US5485620A (en) * 1994-02-25 1996-01-16 Automation System And Products, Inc. Integrated control system for industrial automation applications
US5493642A (en) * 1994-04-26 1996-02-20 Jocatek, Inc. Graphically constructed control and scheduling system
US5638522A (en) * 1994-04-26 1997-06-10 Jocatek, Inc. Graphically constructed control and scheduling system
US5508909A (en) * 1994-04-26 1996-04-16 Patriot Sensors And Controls Method and systems for use with an industrial controller
US5465215A (en) * 1994-07-07 1995-11-07 Cincinnati Milacron Inc. Numerical control method and apparatus
US5590253A (en) * 1994-07-14 1996-12-31 Fanuc Ltd. Sequence program edit system for inserting additional graphic elements and for automatically inserting vertical connector lines
US5627747A (en) * 1994-10-13 1997-05-06 Digisonix, Inc. System for developing and operating an active sound and vibration control system
US5623592A (en) * 1994-10-18 1997-04-22 Molecular Dynamics Method and apparatus for constructing an iconic sequence to operate external devices
US5861882A (en) * 1994-11-03 1999-01-19 Motorola, Inc. Integrated test and measurement means employing a graphical user interface
EP0739511A1 (en) * 1994-11-10 1996-10-30 Baxter International Inc. Interactive control systems for medical processing devices
EP0739511A4 (en) * 1994-11-10 1999-04-21 Baxter Int Interactive control systems for medical processing devices
US5570281A (en) * 1995-01-31 1996-10-29 International Business Machine Corporation Method and system for facilitating visual connections between objects using handles
US5724074A (en) * 1995-02-06 1998-03-03 Microsoft Corporation Method and system for graphically programming mobile toys
US5706453A (en) * 1995-02-06 1998-01-06 Cheng; Yang-Leh Intelligent real-time graphic-object to database linking-actuator for enabling intuitive on-screen changes and control of system configuration
US5835758A (en) * 1995-02-28 1998-11-10 Vidya Technologies, Inc. Method and system for respresenting and processing physical and conceptual entities
US5664180A (en) * 1995-03-20 1997-09-02 Framework Technologies Corporation Design tool for complex objects which links object structures of a design object in multiple design domains
US6571141B1 (en) 1995-05-30 2003-05-27 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US20090271007A1 (en) * 1995-05-30 2009-10-29 Roy-G-Biv Corporation Motion control systems
US8073557B2 (en) 1995-05-30 2011-12-06 Roy-G-Biv Corporation Motion control systems
US6941543B1 (en) 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US20110185371A1 (en) * 1995-05-30 2011-07-28 Roy-G-Biv Corporation Systems and Methods for Communicating With Motion Control Systems and Devices
US8271105B2 (en) 1995-05-30 2012-09-18 Roy-G-Biv Corporation Motion control systems
US6542925B2 (en) 1995-05-30 2003-04-01 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US6516236B1 (en) * 1995-05-30 2003-02-04 Roy-G-Biv Corporation Motion control systems
US6859671B1 (en) 1995-05-30 2005-02-22 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US6513058B2 (en) 1995-05-30 2003-01-28 Roy-G-Biv Corporation Distribution of motion control commands over a network
US7139843B1 (en) 1995-05-30 2006-11-21 Roy-G-Biv Corporation System and methods for generating and communicating motion data through a distributed network
US5930156A (en) * 1995-06-16 1999-07-27 I2 Technologies, Inc. Extensible model network representation system for process planning
US6430740B1 (en) 1995-07-19 2002-08-06 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US6260076B1 (en) 1995-07-19 2001-07-10 Ricoh Company, Ltd. Method of using an object-oriented communication system with support for multiple remote machine types
US5918051A (en) * 1995-07-19 1999-06-29 Ricoh Company, Ltd. Object-oriented communication system with support for multiple remote machine types
US5832264A (en) * 1995-07-19 1998-11-03 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US6438617B1 (en) 1995-07-19 2002-08-20 Ricoh Company, Ltd. Object-oriented communication system with support for multiple remote machine types
US6095674A (en) * 1995-10-16 2000-08-01 Smar Research Corporation Windows based network configuration and control method for a digital control system
US5841654A (en) * 1995-10-16 1998-11-24 Smar Research Corporation Windows based network configuration and control method for a digital control system
US6069627A (en) * 1995-11-01 2000-05-30 International Business Machines Corporation Extender user interface
US5802334A (en) * 1996-01-05 1998-09-01 International Business Machines Corporation Method for displaying object oriented class information and content information
US5796602A (en) * 1996-02-06 1998-08-18 Fisher-Rosemount Systems, Inc. Method and apparatus using a device description for a conventional device
US5903455A (en) * 1996-02-06 1999-05-11 Fisher-Rosemount Systems, Inc. Interface controls for use in a field device management system
US5960214A (en) * 1996-02-06 1999-09-28 Fisher-Rosemount Systems, Inc. Integrated communication network for use in a field device management system
US5854929A (en) * 1996-03-08 1998-12-29 Interuniversitair Micro-Elektronica Centrum (Imec Vzw) Method of generating code for programmable processors, code generator and application thereof
EP0827053A1 (en) * 1996-03-18 1998-03-04 Fanuc Ltd Programming system for motion controller
US5732247A (en) * 1996-03-22 1998-03-24 Sun Microsystems, Inc Interface for interfacing simulation tests written in a high-level programming language to a simulation model
US6032208A (en) * 1996-04-12 2000-02-29 Fisher-Rosemount Systems, Inc. Process control system for versatile control of multiple process devices of various device types
US6868538B1 (en) 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
US6266726B1 (en) 1996-04-12 2001-07-24 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control-of standard devices and non-standard devices
US5940294A (en) * 1996-04-12 1999-08-17 Fisher-Rosemont Systems, Inc. System for assisting configuring a process control environment
US20050172258A1 (en) * 1996-04-12 2005-08-04 Fisher-Rosemount Systems, Inc. System for configuring a process control environment
US6078320A (en) * 1996-04-12 2000-06-20 Fisher-Rosemount Systems, Inc. System for configuring a process control environment
US8185871B2 (en) 1996-04-12 2012-05-22 Fisher-Rosemount Systems, Inc. System for configuring a process control environment
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
US8214822B2 (en) 1996-05-10 2012-07-03 Apple Inc. Editor for program files
US7987427B1 (en) 1996-05-10 2011-07-26 Apple Inc. Graphical editor for program files
US7840956B2 (en) 1996-05-10 2010-11-23 Apple Inc. Editor for program files
US20050210445A1 (en) * 1996-05-10 2005-09-22 Apple Computer, Inc. Graphical editor for program files
US20110107321A1 (en) * 1996-05-10 2011-05-05 Apple Inc. Editor for program files
US5909372A (en) * 1996-06-07 1999-06-01 Danfoss A/S User interface for programming a motor controller
US6119232A (en) * 1996-07-03 2000-09-12 Sun Microsystems, Inc. Flexible mounting and unmounting of user removable media
US5832213A (en) * 1996-07-03 1998-11-03 Sun Microsystems, Inc. Flexible mounting and unmounting of user removable media
US6501996B1 (en) * 1996-07-08 2002-12-31 Siemens Aktiengesellschaft Process automation system
US8023500B2 (en) 1996-08-20 2011-09-20 Invensys Systems, Inc. Methods for process control with change updates
US5872722A (en) * 1996-09-04 1999-02-16 Eaton Corporation Apparatus and method for adjustment and coordination of circuit breaker trip curves through graphical manipulation
US5867382A (en) * 1996-09-10 1999-02-02 Mclaughlin; Michael G. Generic control systems using a virtual rack module
US6408429B1 (en) 1997-01-17 2002-06-18 Cognex Corporation Machine vision system for identifying and assessing features of an article
GB2336923B (en) * 1997-02-14 2002-06-19 Fisher Rosemount Systems Inc System for assisting configuring a process control environment
WO1998036336A1 (en) * 1997-02-14 1998-08-20 Fisher-Rosemount Systems, Inc. System for assisting configuring a process control environment
GB2336923A (en) * 1997-02-14 1999-11-03 Fisher Rosemount Systems Inc System for assisting configuring a process control environment
US6112126A (en) * 1997-02-21 2000-08-29 Baker Hughes Incorporated Adaptive object-oriented optimization software system
US6681138B2 (en) * 1997-03-14 2004-01-20 Siemens Aktiengesellschaft Programmable device for distributing electrical control signals to technical equipment
US5953731A (en) * 1997-03-31 1999-09-14 International Business Machines Coporation HTML integration utility for a program development environment
US5911075A (en) * 1997-03-31 1999-06-08 International Business Machines Corporation Query selection for a program development environment
US5940593A (en) * 1997-03-31 1999-08-17 International Business Machines Corporation Simulating a multi-tiered computer environment on a single development system for debugging
US5956036A (en) * 1997-03-31 1999-09-21 International Business Machines Corporation Shared modules graphical user interface
US5875322A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Making a control available to a computer without installing the control
US6202200B1 (en) 1997-03-31 2001-03-13 International Business Machines Corporation Multi-tier debugging
US5953525A (en) * 1997-03-31 1999-09-14 International Business Machines Corporation Multi-tier view project window
US6446097B1 (en) 1997-03-31 2002-09-03 International Business Machines Corporation HTML integration utility for a program development environment
US5890158A (en) * 1997-03-31 1999-03-30 International Business Machines Corporation Method, apparatus, and program storage device for sharing objects with a network server and a database server using a common object model
US6058264A (en) * 1997-03-31 2000-05-02 International Business Machines Corporation Extender smart guide for creating and modifying extenders
US6188400B1 (en) 1997-03-31 2001-02-13 International Business Machines Corporation Remote scripting of local objects
US6145119A (en) * 1997-03-31 2000-11-07 International Business Machines Corporation Programming development environment for intranet and internet applications employing unique project data structure
US6247168B1 (en) * 1997-04-29 2001-06-12 Rockwell Technologies, Llc Embedded non-volatile programming tool
US20060005160A1 (en) * 1997-08-18 2006-01-05 National Instruments Corporation Image acquisition device
KR19990021175A (en) * 1997-08-30 1999-03-25 김징완 Implementation Method of SFC Program for Sequence Process Control
US7058693B1 (en) * 1997-09-10 2006-06-06 Schneider Automation Inc. System for programming a programmable logic controller using a web browser
US7853645B2 (en) 1997-10-07 2010-12-14 Roy-G-Biv Corporation Remote generation and distribution of command programs for programmable devices
US20090030977A1 (en) * 1997-10-07 2009-01-29 Brown Stephen J Remote Generation and distribution of command programs for programmable devices
EP0911863A2 (en) * 1997-10-20 1999-04-28 Eni Technologies, Inc. Plasma process control system comprising a programmable process controller and an external computer for downloading a control program to the process controller
EP0911863A3 (en) * 1997-10-20 2001-09-12 Eni Technologies, Inc. Plasma process control system comprising a programmable process controller and an external computer for downloading a control program to the process controller
US5940293A (en) * 1997-10-22 1999-08-17 Allen-Bradley Company, Llc Bar chart editor for industrial controller
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US7389514B2 (en) 1997-10-28 2008-06-17 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US6714962B1 (en) 1997-10-28 2004-03-30 Microsoft Corporation Multi-user server application architecture with single-user object tier
US7017121B1 (en) * 1997-12-01 2006-03-21 Siemens Aktiengesellschaft Method for visual display unit-based definition and parametrization of interfaces
EP0919896A1 (en) * 1997-12-01 1999-06-02 Siemens Aktiengesellschaft Method for window-assisted definition and setting of parameters of interfaces
WO1999028799A1 (en) * 1997-12-01 1999-06-10 Siemens Aktiengesellschaft Method for screen-supported definition and parametering of interfaces
WO1999034302A1 (en) * 1997-12-31 1999-07-08 Triconex Corporation Automatic generation of evaluation order for a function block diagram and detection of any associated errors
US6233703B1 (en) 1997-12-31 2001-05-15 Triconex Corporation Automatic generation of evaluation order for a function block diagram and detection of any associated errors
US6757868B1 (en) 1998-06-22 2004-06-29 International Business Machines Corporation Programmatic switching of arbitrary HTML forms
US6522346B1 (en) * 1998-06-23 2003-02-18 Creative Lifestyles, Inc Method and apparatus for developing application software for automation systems
SG95601A1 (en) * 1998-07-17 2003-04-23 Fujikin Kk Apparatus for and method of designing fluid control devices
US6704696B1 (en) 1998-07-17 2004-03-09 Fujikin Incorporated Apparatus for and method of designing fluid control devices
EP0973107A3 (en) * 1998-07-17 2000-11-29 Fujikin Incorporated Apparatus for and method of designing fluid control devices
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US7117433B1 (en) 1998-09-29 2006-10-03 International Business Machines Corporation HTML mapping substitution graphical user interface for display of elements mapped to HTML files
EP1135715A1 (en) * 1998-10-13 2001-09-26 Scientronix, Inc. System and method for generating a control program
EP1135715A4 (en) * 1998-10-13 2002-01-16 Scientronix Inc System and method for generating a control program
US6600964B2 (en) 1998-11-18 2003-07-29 Siemens Aktiengesellschaft Method for controlling technical processes
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6604198B1 (en) 1998-11-30 2003-08-05 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6606711B2 (en) 1998-11-30 2003-08-12 Microsoft Corporation Object security boundaries
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6490493B1 (en) 1999-01-21 2002-12-03 Rosemount Inc. Industrial process device management software
FR2789781A1 (en) * 1999-02-12 2000-08-18 Alstom System for development and execution of a program to assist operation of an industrial installation
WO2000049475A3 (en) * 1999-02-17 2000-12-21 Westinghouse Savannah River Co Systems and methods for interactive virtual reality process control, simulation, and training (ivrpcst)
WO2000049475A2 (en) * 1999-02-17 2000-08-24 Westinghouse Savannah River Company Systems and methods for interactive virtual reality process control, simulation, and training (ivrpcst)
US20020010571A1 (en) * 1999-02-17 2002-01-24 Daniel William E. Systems and methods for interactive virtual reality process control and simulation (IVRPCS)
US6289299B1 (en) 1999-02-17 2001-09-11 Westinghouse Savannah River Company Systems and methods for interactive virtual reality process control and simulation
US7478405B2 (en) 1999-02-23 2009-01-13 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US7237245B2 (en) 1999-02-23 2007-06-26 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6445966B1 (en) * 1999-03-11 2002-09-03 Eaton Corporation Data interface module for motor control system
US7447553B1 (en) * 1999-04-06 2008-11-04 Siemens Aktiengesellschaft Software object, system and method for an automation program with function rules which has multiple uses for various programming tools
WO2000063751A1 (en) * 1999-04-16 2000-10-26 Siemens Aktiengesellschaft Method and arrangement for modelling a technical system
US8060222B2 (en) 1999-05-17 2011-11-15 Invensys Systems, Inc. Control system configurator and methods with object characteristic swapping
US7890927B2 (en) 1999-05-17 2011-02-15 Invensys Systems, Inc. Apparatus and method for configuring and editing a control system with live data
US7096465B1 (en) 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
US8368640B2 (en) 1999-05-17 2013-02-05 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US8028272B2 (en) 1999-05-17 2011-09-27 Invensys Systems, Inc. Control system configurator and methods with edit selection
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
US7984420B2 (en) 1999-05-17 2011-07-19 Invensys Systems, Inc. Control systems and methods with composite blocks
US8028275B2 (en) 1999-05-17 2011-09-27 Invensys Systems, Inc. Control systems and methods with smart blocks
US8225271B2 (en) 1999-05-17 2012-07-17 Invensys Systems, Inc. Apparatus for control systems with objects that are associated with live data
US8229579B2 (en) 1999-05-17 2012-07-24 Invensys Systems, Inc. Control systems and methods with versioning
US7272815B1 (en) 1999-05-17 2007-09-18 Invensys Systems, Inc. Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US6826632B1 (en) 1999-05-18 2004-11-30 Gateway, Inc. System for identifying the interconnection of peripheral devices
US8090452B2 (en) 1999-06-11 2012-01-03 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US7020532B2 (en) 1999-06-11 2006-03-28 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6618630B1 (en) 1999-07-08 2003-09-09 Fisher-Rosemount Systems, Inc. User interface that integrates a process control configuration system and a field device management system
US6510352B1 (en) 1999-07-29 2003-01-21 The Foxboro Company Methods and apparatus for object-based process control
EP1816531A2 (en) * 1999-08-31 2007-08-08 Digital Electronics Corporation Editing apparatus and recording medium in which editing program is recorded
EP1816532A2 (en) * 1999-08-31 2007-08-08 Digital Electronics Corporation Editing apparatus and recording medium in which editing program is recorded
EP1081568A2 (en) * 1999-09-06 2001-03-07 Kabushiki Kaisha Toshiba Mechanism control system and its developing method
EP1081568A3 (en) * 1999-09-06 2003-01-08 Kabushiki Kaisha Toshiba Mechanism control system and its developing method
US20040225668A1 (en) * 1999-09-09 2004-11-11 Microsoft Corporation Object-based software management
US6748555B1 (en) 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US7243271B2 (en) 1999-09-09 2007-07-10 Microsoft Corporation Wrapped object for observing object events
US20040225923A1 (en) * 1999-09-09 2004-11-11 Microsoft Corporation Object-based software management
US20040226001A1 (en) * 1999-09-09 2004-11-11 Microsoft Corporation Object-based software management
US7240244B2 (en) 1999-09-09 2007-07-03 Microsoft Corporation Object-based software management
US20100131080A1 (en) * 1999-10-27 2010-05-27 Roy-G-Biv Corporation Event Driven Motion Systems
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US6480896B1 (en) 1999-10-27 2002-11-12 Roy-G-Biv Corporation Systems and methods for generating and communicating motion data through a distributed network
US7634777B2 (en) 1999-12-15 2009-12-15 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US20050125804A1 (en) * 1999-12-15 2005-06-09 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US20030067286A1 (en) * 2000-04-13 2003-04-10 Jenoe Tihanyi Voltage converter
WO2001084255A1 (en) * 2000-04-28 2001-11-08 Abb Research Ltd. A method for converting information related to the hardware/software configuration of a distributed control system
EP1152307A1 (en) * 2000-04-28 2001-11-07 ABB Research Ltd. A method for converting information related to the hardware/software configuration of a distributed control system
WO2001097093A2 (en) * 2000-06-13 2001-12-20 Helga Weber Method for automatically preparing a working plan
WO2001097093A3 (en) * 2000-06-13 2002-07-18 Helga Weber Method for automatically preparing a working plan
US7013189B2 (en) 2000-06-13 2006-03-14 Helga Weber Method for automatically preparing a working plan
US7313609B1 (en) * 2000-08-09 2007-12-25 Schneider Automation Inc. Method and apparatus for programming an automation device
US7010753B2 (en) 2000-10-27 2006-03-07 Siemens Aktiengesellschaft Anticipating drop acceptance indication
WO2002042858A3 (en) * 2000-10-27 2003-11-20 Siemens Ag Drop-enabled tabbed dialogs
WO2002067101A2 (en) * 2000-10-27 2002-08-29 Siemens Aktiengesellschaft Anticipating drop acceptance indication
WO2002042858A2 (en) * 2000-10-27 2002-05-30 Siemens Aktiengesellschaft Drop-enabled tabbed dialogs
WO2002067101A3 (en) * 2000-10-27 2003-12-24 Siemens Ag Anticipating drop acceptance indication
US20020113822A1 (en) * 2000-10-27 2002-08-22 Helmut Windl Drop-enabled tabbed dialogs
US7055105B2 (en) 2000-10-27 2006-05-30 Siemens Aktiengesellschaft Drop-enabled tabbed dialogs
KR100423742B1 (en) * 2000-10-31 2004-03-24 삼성중공업 주식회사 Exclusive control system by sequential function chart
FR2816725A1 (en) * 2000-11-14 2002-05-17 Crouzet Automatismes Synchronous, coherent and deterministic construction of real time graphs for automatic systems, uses graphics languages Grafcet and SFC - FBD defined in AFNOR C03-190 and IEC 1131-3
EP1217476A2 (en) * 2000-12-22 2002-06-26 Siemens Aktiengesellschaft Apparatus and method for the start-up and diagnosis of control systems
EP1217476A3 (en) * 2000-12-22 2007-05-23 Siemens Aktiengesellschaft Apparatus and method for the start-up and diagnosis of control systems
US7031798B2 (en) 2001-02-09 2006-04-18 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US20100131079A1 (en) 2001-02-09 2010-05-27 Brown David W Event management systems and methods for motion control systems
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
WO2002067065A3 (en) * 2001-02-20 2003-04-17 Pilz Gmbh & Co Method and device for programming a safety controller
US7139622B2 (en) * 2001-02-20 2006-11-21 Pilz Gmbh & Co. Method and device for programming a failsafe control system
WO2002067065A2 (en) * 2001-02-20 2002-08-29 Pilz Gmbh & Co. Method and device for programming a safety controller
US20040064205A1 (en) * 2001-02-20 2004-04-01 Johannes Kloper Method and device for programming a failsafe control system
US7340683B2 (en) * 2001-03-29 2008-03-04 Mitsubishi Denki Kabushiki Kaisha Programming tool
US20050102651A1 (en) * 2001-03-29 2005-05-12 Jun Ueda Programming tool
US6931288B1 (en) 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US20040148146A1 (en) * 2001-05-14 2004-07-29 Raoul Barre De Saint Venant Tool for monitoring and controlling a develpment of complex organisms
US20090254801A1 (en) * 2001-05-14 2009-10-08 The Mathworks, Inc. Model navigation
US6885898B1 (en) 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US7024255B1 (en) 2001-05-18 2006-04-04 Roy-G-Biv Corporation Event driven motion systems
WO2002099579A3 (en) * 2001-06-04 2003-12-04 Econocraft Worldwide Car Wash Vehicle washing apparatus control, software and interface
WO2002099579A2 (en) * 2001-06-04 2002-12-12 Econocraft Worldwide Car Wash Manufacturing, Inc. Vehicle washing apparatus control, software and interface
US8464227B2 (en) * 2001-06-22 2013-06-11 Invensys Systems, Inc. Process control script development and execution facility supporting multiple user-side programming languages
US20110099533A1 (en) * 2001-06-22 2011-04-28 Invensys Systems, Inc. Process Control Script Development And Execution Facility Supporting Multiple User-Side Programming Languages
US20110225216A1 (en) * 2001-07-30 2011-09-15 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US9852152B2 (en) 2001-07-30 2017-12-26 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US9183207B2 (en) 2001-07-30 2015-11-10 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US20060190106A1 (en) * 2001-07-30 2006-08-24 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US9495368B2 (en) 2001-07-30 2016-11-15 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US9389602B2 (en) 2001-08-13 2016-07-12 Rockwell Automation, Inc. Industrial controller automation interface
US9690279B2 (en) 2001-08-13 2017-06-27 Rockwell Automation, Inc. Industrial controller automation interface
US9766611B2 (en) 2001-08-13 2017-09-19 Rockwell Automation, Inc. Industrial controller automation interface
US10203679B2 (en) 2001-08-13 2019-02-12 Rockwell Automation, Inc. Industrial controller automation interface
US10310479B2 (en) 2001-08-13 2019-06-04 Rockwell Automation, Inc. Industrial controller automation interface
US20040254653A1 (en) * 2001-09-25 2004-12-16 Annette Eichhorn System and method for programming an automation system, based on pulse timing diagrams
US7133738B2 (en) * 2001-09-25 2006-11-07 Siemens Aktiengesellschaft System and method for programming an automation system, based on pulse timing diagrams
US20030066050A1 (en) * 2001-09-26 2003-04-03 Wang Douglas W. Method and system for programming devices using finite state machine descriptions
US7284664B1 (en) * 2001-10-22 2007-10-23 United Electronic Industries Methods and apparatus for performing data acquisition and control
EP1326148A2 (en) * 2001-10-31 2003-07-09 Crossbee Parameter setting and automatic compilation of structures using standard representation networks
EP1326148A3 (en) * 2001-10-31 2004-10-20 Crossbee Parameter setting and automatic compilation of structures using standard representation networks
US6671869B2 (en) 2001-12-12 2003-12-30 Scott A. Davidson Method and apparatus for graphically programming a programmable circuit
US20030127119A1 (en) * 2002-01-09 2003-07-10 Washing Equipment Technologies, Inc. Operating system for vehicle washing bay
US7024666B1 (en) 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US8504179B2 (en) 2002-02-28 2013-08-06 Smiths Medical Asd, Inc. Programmable medical infusion pump
US8250483B2 (en) 2002-02-28 2012-08-21 Smiths Medical Asd, Inc. Programmable medical infusion pump displaying a banner
EP1355208A1 (en) * 2002-04-15 2003-10-22 Peter Renner System for the automation of technical processes
US7778717B2 (en) 2002-04-15 2010-08-17 Invensys Systems, Inc. Component object model communication method for a control system
US6973357B2 (en) 2002-05-22 2005-12-06 Siemens Aktiengesellschaft Method and configuration system for producing an application-specific functional module for a programmable controller
EP1365297A1 (en) * 2002-05-22 2003-11-26 Siemens Aktiengesellschaft System and method for adapting application-specific function blocks for an automation device
US20030220703A1 (en) * 2002-05-22 2003-11-27 Hans-Dieter Humpert Method and configuration system for producing an application-specific functional module for a programmable controller
CN100375086C (en) * 2002-07-03 2008-03-12 东京电子株式会社 Method and device for dynamic sensor configuration and runtime execution
US20050177269A1 (en) * 2002-07-03 2005-08-11 Tokyo Electron Limited Method for dynamic sensor configuration and runtime execution
WO2004006299A3 (en) * 2002-07-03 2004-03-04 Tokyo Electron Ltd Method for dynamic sensor configuration and runtime execution
WO2004006299A2 (en) * 2002-07-03 2004-01-15 Tokyo Electron Limited Method for dynamic sensor configuration and runtime execution
US7636608B2 (en) 2002-07-03 2009-12-22 Tokyo Electron Limited Method for dynamic sensor configuration and runtime execution
US20050147093A1 (en) * 2002-07-22 2005-07-07 Siemens Aktiengesellschaft Computer system for configuring firmware for an automation device
US9069344B2 (en) 2002-10-22 2015-06-30 Fisher-Rosemount Systems, Inc. Smart process modules and objects in process plants
US9904268B2 (en) 2002-10-22 2018-02-27 Fisher-Rosemount Systems, Inc. Updating and utilizing dynamic process simulation in an operating process environment
GB2395801B (en) * 2002-10-22 2007-08-08 Fisher Rosemount Systems Inc Smart process modules and objects in process plants
US9904263B2 (en) 2002-10-22 2018-02-27 Fisher-Rosemount Systems, Inc. Smart process objects used in a process plant modeling system
US7110835B2 (en) 2002-10-22 2006-09-19 Fisher-Rosemount Systems, Inc. Integration of graphic display elements, process modules and control modules in process plants
US20050096872A1 (en) * 2002-10-22 2005-05-05 Fisher-Rosemount Systems, Inc. Smart process objects used in a process plant modeling system
US7146231B2 (en) 2002-10-22 2006-12-05 Fisher-Rosemount Systems, Inc.. Smart process modules and objects in process plants
US9983559B2 (en) 2002-10-22 2018-05-29 Fisher-Rosemount Systems, Inc. Updating and utilizing dynamic process simulation in an operating process environment
US20040075689A1 (en) * 2002-10-22 2004-04-22 Duncan Schleiss Smart process modules and objects in process plants
US9046881B2 (en) 2002-10-22 2015-06-02 Fisher-Rosemount Systems, Inc. Updating and utilizing dynamic process simulation in an operating process environment
GB2395801A (en) * 2002-10-22 2004-06-02 Fisher Rosemount Systems Inc Objects and Process Modules in a Process Plant
US20040153804A1 (en) * 2002-10-22 2004-08-05 Terrence Blevins Integration of graphic display elements, process modules and control modules in process plants
US7237109B2 (en) 2003-01-28 2007-06-26 Fisher- Rosemount Systems, Inc. Integrated security in a process plant having a process control system and a safety system
US7865251B2 (en) 2003-01-28 2011-01-04 Fisher-Rosemount Systems, Inc. Method for intercontroller communications in a safety instrumented system or a process control system
US20070083275A1 (en) * 2003-01-28 2007-04-12 Fisher-Rosemount Systems, Inc. Method for intercontroller communications in A safety instrumented system or a process control system
US20040148513A1 (en) * 2003-01-28 2004-07-29 Cindy Scott Integrated security in a process plant having a process control system and a safety system
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US8102869B2 (en) 2003-09-25 2012-01-24 Roy-G-Biv Corporation Data routing systems and methods
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20100064026A1 (en) * 2003-09-25 2010-03-11 Roy-G-Biv Corporation Database event driven motion systems
EP1522910A1 (en) * 2003-10-10 2005-04-13 dSPACE GmbH Method and system for configuring a control system
US8954336B2 (en) 2004-02-23 2015-02-10 Smiths Medical Asd, Inc. Server for medical device
US20100131077A1 (en) * 2004-02-25 2010-05-27 Brown David W Data Collection Systems and Methods for Motion Control
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US9959141B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of providing a self-optimizing reservation in space of compute resources
US10871999B2 (en) 2004-03-13 2020-12-22 Iii Holdings 12, Llc System and method for a self-optimizing reservation in time of compute resources
US11467883B2 (en) 2004-03-13 2022-10-11 Iii Holdings 12, Llc Co-allocating a reservation spanning different compute resources types
US9959140B2 (en) 2004-03-13 2018-05-01 Iii Holdings 12, Llc System and method of co-allocating a reservation spanning different compute resources types
US9886322B2 (en) 2004-03-13 2018-02-06 Iii Holdings 12, Llc System and method for providing advanced reservations in a compute environment
US9268607B2 (en) 2004-03-13 2016-02-23 Adaptive Computing Enterprises, Inc. System and method of providing a self-optimizing reservation in space of compute resources
AU2005201213B2 (en) * 2004-04-02 2009-10-01 Vega Grieshaber Kg Method for automatic modeling a process control system and corresponding process control system
US10402934B2 (en) 2004-04-16 2019-09-03 Apple Inc. System for optimizing graphics operations
US7231632B2 (en) * 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US20050231521A1 (en) * 2004-04-16 2005-10-20 John Harper System for reducing the number of programs necessary to render an image
US8704837B2 (en) 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US9691118B2 (en) 2004-04-16 2017-06-27 Apple Inc. System for optimizing graphics operations
US8135481B2 (en) 2004-05-04 2012-03-13 Fisher-Rosemount Systems, Inc. Process plant monitoring based on multivariate statistical analysis and on-line process simulation
US7680546B2 (en) 2004-05-04 2010-03-16 Fisher-Rosemount Systems, Inc. Graphic element with multiple visualizations in a process environment
US20070061786A1 (en) * 2004-05-04 2007-03-15 Ling Zhou Methods and apparatus for modifying process control data
US8775967B2 (en) 2004-05-04 2014-07-08 Fisher-Rosemount Systems Integrated graphical runtime interface for process control systems
US7783370B2 (en) 2004-05-04 2010-08-24 Fisher-Rosemount Systems, Inc. System for configuring graphic display elements and process modules in process plants
CN102323767B (en) * 2004-05-04 2015-04-29 费舍-柔斯芒特系统股份有限公司 System for configuring graphic display elements and process modules
US20070211079A1 (en) * 2004-05-04 2007-09-13 Fisher-Rosemount Systems, Inc. Graphic Display Configuration Framework For Unified Process Control System Interface
GB2427939A (en) * 2004-05-04 2007-01-10 Fisher Rosemount Systems Inc System for configuring graphic display elements and process modules in process plants
US20070005266A1 (en) * 2004-05-04 2007-01-04 Fisher-Rosemount Systems, Inc. Process plant monitoring based on multivariate statistical analysis and on-line process simulation
US20070179641A1 (en) * 2004-05-04 2007-08-02 Fisher-Rosemount Systems, Inc. Associated graphic displays in a process environment
US20070168065A1 (en) * 2004-05-04 2007-07-19 Fisher-Rosemount Systems, Inc. System for configuring graphic display elements and process modules in process plants
US7729789B2 (en) 2004-05-04 2010-06-01 Fisher-Rosemount Systems, Inc. Process plant monitoring based on multivariate statistical analysis and on-line process simulation
US20070106761A1 (en) * 2004-05-04 2007-05-10 Beoughter Ken J Service-oriented architecture for process control systems
US8086955B2 (en) 2004-05-04 2011-12-27 Fisher-Rosemount Systems, Inc. Methods and apparatus for modifying process control data
US7971151B2 (en) 2004-05-04 2011-06-28 Fisher-Rosemount Systems, Inc. Graphic display configuration framework for unified process control system interface
US20070165031A1 (en) * 2004-05-04 2007-07-19 Fisher-Rosemount Systems, Inc. Scripted graphics in a process environment
US7984096B2 (en) 2004-05-04 2011-07-19 Fisher-Rosemount Systems, Inc. Service-oriented architecture for process control systems
US7702409B2 (en) 2004-05-04 2010-04-20 Fisher-Rosemount Systems, Inc. Graphics integration into a process configuration and control environment
US9285795B2 (en) 2004-05-04 2016-03-15 Fisher-Rosemount Systems, Inc. Graphic display configuration framework for unified control system interface
US8127241B2 (en) 2004-05-04 2012-02-28 Fisher-Rosemount Systems, Inc. Process plant user interface system having customized process graphic display layers in an integrated environment
CN1950765B (en) * 2004-05-04 2011-07-27 费舍-柔斯芒特系统股份有限公司 Associated graphic display in process environment
US8312060B2 (en) 2004-05-04 2012-11-13 Fisher-Rosemount Systems, Inc. Methods and apparatus for accessing process control data
CN1950764B (en) * 2004-05-04 2011-08-10 费舍-柔斯芒特系统股份有限公司 System for graphic display element and procedure module in allocation processing plant
US8000814B2 (en) 2004-05-04 2011-08-16 Fisher-Rosemount Systems, Inc. User configurable alarms and alarm trending for process control system
US7647126B2 (en) 2004-05-04 2010-01-12 Fisher-Rosemount Systems, Inc. Integration of process modules and expert systems in process plants
US20070168060A1 (en) * 2004-05-04 2007-07-19 Fisher-Rosemount Systems, Inc. Markup language-based, dynamic process graphics in a process plant user interface
US9880540B2 (en) * 2004-05-04 2018-01-30 Fisher-Rosemount Systems, Inc. Markup language-based, dynamic process graphics in a process plant user interface
US20070139441A1 (en) * 2004-05-04 2007-06-21 Fisher-Rosemount Systems, Inc. Graphics integration into a process configuration and control environment
US20070132779A1 (en) * 2004-05-04 2007-06-14 Stephen Gilbert Graphic element with multiple visualizations in a process environment
US8185219B2 (en) 2004-05-04 2012-05-22 Fisher-Rosemount Systems, Inc. Graphic element with multiple visualizations in a process environment
US8185892B2 (en) 2004-05-04 2012-05-22 Fisher-Rosemount Systems, Inc. Associated graphic displays in a process environment
GB2427939B (en) * 2004-05-04 2009-02-18 Fisher Rosemount Systems Inc System for configuring graphic display elements and process modules in process plants
WO2005109123A1 (en) * 2004-05-04 2005-11-17 Fisher-Rosemount Systems, Inc. System for configuring graphic display elements and process modules in process plants
US8144150B2 (en) 2004-05-04 2012-03-27 Fisher-Rosemount Systems, Inc. Scripted graphics in a process environment
US8060834B2 (en) 2004-05-04 2011-11-15 Fisher-Rosemount Systems, Inc. Graphics integration into a process configuration and control environment
US20090118847A1 (en) * 2004-06-18 2009-05-07 Seimens Aktiengesellschaft Method for Operating a Calculating Unit and Signal for Processing in a Calculating Unit
US11652706B2 (en) 2004-06-18 2023-05-16 Iii Holdings 12, Llc System and method for providing dynamic provisioning within a compute environment
US7966082B2 (en) * 2004-06-18 2011-06-21 Siemens Aktiengesellschaft Method for operating a calculating unit and signal for processing in a calculating unit
US7546543B2 (en) 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US7793232B2 (en) 2004-06-25 2010-09-07 Apple Inc. Unified interest layer for user interface
US9753627B2 (en) 2004-06-25 2017-09-05 Apple Inc. Visual characteristics of user interface elements in a unified interest layer
US10387549B2 (en) 2004-06-25 2019-08-20 Apple Inc. Procedurally expressing graphic objects for web pages
US7873910B2 (en) 2004-06-25 2011-01-18 Apple Inc. Configuration bar for lauching layer for accessing user interface elements
US7530026B2 (en) 2004-06-25 2009-05-05 Apple Inc. User interface element with auxiliary function
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US10489040B2 (en) 2004-06-25 2019-11-26 Apple Inc. Visual characteristics of user interface elements in a unified interest layer
US7503010B2 (en) 2004-06-25 2009-03-10 Apple Inc. Remote access to layer and user interface elements
US9507503B2 (en) 2004-06-25 2016-11-29 Apple Inc. Remote access to layer and user interface elements
US7984384B2 (en) 2004-06-25 2011-07-19 Apple Inc. Web view layer for accessing user interface elements
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US9477646B2 (en) 2004-06-25 2016-10-25 Apple Inc. Procedurally expressing graphic objects for web pages
US7793222B2 (en) 2004-06-25 2010-09-07 Apple Inc. User interface element with auxiliary function
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8291332B2 (en) 2004-06-25 2012-10-16 Apple Inc. Layer for accessing user interface elements
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US8266538B2 (en) 2004-06-25 2012-09-11 Apple Inc. Remote access to layer and user interface elements
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US11630704B2 (en) 2004-08-20 2023-04-18 Iii Holdings 12, Llc System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information
EP1630631A3 (en) * 2004-08-23 2006-05-03 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
EP1630631A2 (en) * 2004-08-23 2006-03-01 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
WO2006032344A1 (en) * 2004-09-17 2006-03-30 Sew-Eurodrive Gmbh & Co. Kg Method graphical user interface and drive
US11537435B2 (en) 2004-11-08 2022-12-27 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11494235B2 (en) 2004-11-08 2022-11-08 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11762694B2 (en) 2004-11-08 2023-09-19 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11656907B2 (en) 2004-11-08 2023-05-23 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11537434B2 (en) 2004-11-08 2022-12-27 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11709709B2 (en) 2004-11-08 2023-07-25 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11861404B2 (en) 2004-11-08 2024-01-02 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US11886915B2 (en) 2004-11-08 2024-01-30 Iii Holdings 12, Llc System and method of providing system jobs within a compute environment
US10387170B1 (en) * 2004-11-15 2019-08-20 Peter Ar-Fu Lam User programmable building kit
US9384470B2 (en) 2005-01-07 2016-07-05 Apple Inc. Slide show navigation
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US11658916B2 (en) 2005-03-16 2023-05-23 Iii Holdings 12, Llc Simple integration of an on-demand compute environment
US11533274B2 (en) 2005-04-07 2022-12-20 Iii Holdings 12, Llc On-demand access to compute resources
US11831564B2 (en) 2005-04-07 2023-11-28 Iii Holdings 12, Llc On-demand access to compute resources
US11765101B2 (en) 2005-04-07 2023-09-19 Iii Holdings 12, Llc On-demand access to compute resources
US11496415B2 (en) 2005-04-07 2022-11-08 Iii Holdings 12, Llc On-demand access to compute resources
US11522811B2 (en) 2005-04-07 2022-12-06 Iii Holdings 12, Llc On-demand access to compute resources
US20060268967A1 (en) * 2005-04-27 2006-11-30 Pierre Drezet Supplying instruction to operational stations
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US11150781B2 (en) 2005-10-27 2021-10-19 Apple Inc. Workflow widgets
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US9513930B2 (en) 2005-10-27 2016-12-06 Apple Inc. Workflow widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US9032318B2 (en) 2005-10-27 2015-05-12 Apple Inc. Widget security
EP1785789A1 (en) * 2005-11-15 2007-05-16 Dewert Antriebs- und Systemtechnik GmbH Method and device for programming and controlling an electric equipment system of a piece of furniture
EP1785787A1 (en) * 2005-11-15 2007-05-16 Dewert Antriebs- und Systemtechnik GmbH Method and device for programming and controlling an electric equipment system of a piece of furniture
EP1785788A1 (en) * 2005-11-15 2007-05-16 Dewert Antriebs- und Systemtechnik GmbH Method and device for controlling an electric equipment system of a piece of furniture
US9417888B2 (en) 2005-11-18 2016-08-16 Apple Inc. Management of user interface elements in a display environment
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US8055358B2 (en) 2005-12-05 2011-11-08 Fisher-Rosemount Systems, Inc. Multi-objective predictive process optimization with concurrent process simulation
US20070183169A1 (en) * 2006-01-21 2007-08-09 Shalabh Kumar Combination i/o modules in a modular automation controller
US7565459B2 (en) * 2006-01-21 2009-07-21 Shalabh Kumar Combination I/O modules in a modular automation controller
US20070182977A1 (en) * 2006-02-08 2007-08-09 Xerox Corporation Printing subsystem with improved user interface
US11650857B2 (en) 2006-03-16 2023-05-16 Iii Holdings 12, Llc System and method for managing a hybrid computer environment
US7860857B2 (en) 2006-03-30 2010-12-28 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US20080033402A1 (en) * 2006-08-03 2008-02-07 Blomquist Michael L Interface for medical infusion pump
US10437963B2 (en) 2006-08-03 2019-10-08 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8858526B2 (en) 2006-08-03 2014-10-14 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8965707B2 (en) 2006-08-03 2015-02-24 Smiths Medical Asd, Inc. Interface for medical infusion pump
US9740829B2 (en) 2006-08-03 2017-08-22 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8149131B2 (en) 2006-08-03 2012-04-03 Smiths Medical Asd, Inc. Interface for medical infusion pump
US10255408B2 (en) 2006-08-03 2019-04-09 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8435206B2 (en) 2006-08-03 2013-05-07 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8952794B2 (en) 2006-08-03 2015-02-10 Smiths Medical Asd, Inc. Interface for medical infusion pump
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US20110161906A1 (en) * 2006-08-14 2011-06-30 Ulrich Hahn Signal conversion facility and method for creating programming for a signal conversion facility
WO2008019976A1 (en) * 2006-08-14 2008-02-21 Siemens Aktiengesellschaft Signal converter device, method of operation of a signal converter device and programming procedure for programming a signal converter device
US8185857B2 (en) 2006-08-14 2012-05-22 Siemens Aktiengesellschaft Signal conversion facility and method for creating programming for a signal conversion facility
EP2420904A1 (en) * 2006-09-15 2012-02-22 dspace digital signal processing and control engineering GmbH Facility and method for configuring a control system
US7877153B2 (en) * 2006-09-15 2011-01-25 Dspace Digital Signal Processing And Control Engineering Gmbh Installation and method for a configuration of a control system
EP1901146A1 (en) * 2006-09-15 2008-03-19 dSPACE GmbH Facility and method for configuring a control system
US20080091279A1 (en) * 2006-09-15 2008-04-17 Dspace Digital Signal Processing And Control Engineering Gmbh Installation and method for a configuration of a control system
US20080301703A1 (en) * 2007-05-31 2008-12-04 Nixon Mark J Apparatus and methods to access information associated with a process control system
US8407716B2 (en) 2007-05-31 2013-03-26 Fisher-Rosemount Systems, Inc. Apparatus and methods to access information associated with a process control system
US9581990B2 (en) * 2007-07-05 2017-02-28 Sick Ag Method for the programming of a safety controller
US20090030534A1 (en) * 2007-07-05 2009-01-29 Sick Ag Method for the programming of a safety controller
US9483164B2 (en) 2007-07-18 2016-11-01 Apple Inc. User-centric widgets and dashboards
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US11522952B2 (en) 2007-09-24 2022-12-06 The Research Foundation For The State University Of New York Automatic clustering for self-organizing grids
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
EP2068214B1 (en) 2007-12-03 2015-10-28 Phoenix Contact GmbH & Co. KG Graphical programming by derivating the process control sequence from the connection of dynamic graphical objects
EP2068214A1 (en) * 2007-12-03 2009-06-10 Phoenix Contact GmbH & Co. KG Graphical programming by derivating the process control sequence from the connection of dynamic graphical objects
US9072098B2 (en) 2008-01-15 2015-06-30 Microsoft Technology Licensing, Llc Load aware resource allocation in wireless networks
US20090180431A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Load aware resource allocation in wireless networks
US8509099B2 (en) * 2008-01-15 2013-08-13 Microsoft Corporation Load aware resource allocation in wireless networks
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US8896603B2 (en) 2008-02-26 2014-11-25 Fisher-Rosemount Systems, Inc. Methods and apparatus to bind properties in a process control system
US20090217200A1 (en) * 2008-02-26 2009-08-27 Stephen Gerard Hammack Methods and apparatus to bind properties in a process control system
EP2098924A1 (en) * 2008-03-07 2009-09-09 Sick Ag Method and device for programming and/or configuring a safety controller
EP2098925A1 (en) * 2008-03-07 2009-09-09 Sick Ag Method and device for programming and/or configuring a safety controller
EP2098928A1 (en) * 2008-03-07 2009-09-09 Sick Ag Method and device for programming and/or configuring a safety controller
US11488549B2 (en) 2008-05-02 2022-11-01 Tandem Diabetes Care, Inc. Display for pump
US20090275886A1 (en) * 2008-05-02 2009-11-05 Smiths Medical Md, Inc. Display for an insulin pump
US10726100B2 (en) 2008-05-02 2020-07-28 Tandem Diabetes Care, Inc. Display for pump
US11580918B2 (en) 2008-05-02 2023-02-14 Tandem Diabetes Care, Inc. Display for pump
US8133197B2 (en) 2008-05-02 2012-03-13 Smiths Medical Asd, Inc. Display for pump
US8594814B2 (en) 2008-06-20 2013-11-26 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US20100162146A1 (en) * 2008-12-18 2010-06-24 Microsoft Corporation Visually processing instance data
US8230357B2 (en) * 2008-12-18 2012-07-24 Microsoft Corporation Visually processing instance data
US8881039B2 (en) 2009-03-13 2014-11-04 Fisher-Rosemount Systems, Inc. Scaling composite shapes for a graphical human-machine interface
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
DE102009048746A1 (en) * 2009-10-08 2011-04-21 Netstal-Maschinen Ag Method for controlling and operating a production cell and a control device
DE102009048746B4 (en) * 2009-10-08 2013-10-24 Netstal-Maschinen Ag Method for controlling and operating a production cell and a control device
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11526304B2 (en) 2009-10-30 2022-12-13 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9134720B2 (en) * 2010-02-12 2015-09-15 Rockwell Automation Technologies, Inc. Macro function block for encapsulating device-level embedded logic
US9348329B2 (en) 2010-02-12 2016-05-24 Rockwell Automation Technologies, Inc. Multiple Boolean inputs and outputs for device function blocks
US20110202147A1 (en) * 2010-02-12 2011-08-18 Rockwell Automation Technologies, Inc. Multiple boolean inputs and outputs for device function blocks
US20110202145A1 (en) * 2010-02-12 2011-08-18 Rockwell Automation Technologies, Inc. Automatic device parameter binding method and system
US20110202688A1 (en) * 2010-02-12 2011-08-18 Rockwell Automation Technologies, Inc. Macro function block for encapsulating device-level embedded logic
US9535413B2 (en) 2010-02-12 2017-01-03 Rockwell Automation Technologies, Inc. Automatic device parameter binding method and system
US8892218B2 (en) * 2010-02-12 2014-11-18 Rockwell Automation Technologies, Inc. Multiple boolean inputs and outputs for device function blocks
US8825183B2 (en) 2010-03-22 2014-09-02 Fisher-Rosemount Systems, Inc. Methods for a data driven interface based on relationships between process control tags
TWI448849B (en) * 2011-01-31 2014-08-11 Mitsubishi Electric Corp Motion sfc program parts preparing device
US9927788B2 (en) 2011-05-19 2018-03-27 Fisher-Rosemount Systems, Inc. Software lockout coordination between a process control system and an asset management system
JP2013089044A (en) * 2011-10-18 2013-05-13 Sumitomo Heavy Ind Ltd Block diagram processor and method for processing block diagram
US9846420B2 (en) 2012-03-26 2017-12-19 Mitsubishi Electric Corporation Sequence-program design support device
TWI465868B (en) * 2012-03-26 2014-12-21 Mitsubishi Electric Corp Sequence program design support device
US20130325145A1 (en) * 2012-05-29 2013-12-05 Robert Bosch Gmbh Programming Template for Distributed Application Programs
US9507334B2 (en) * 2012-05-29 2016-11-29 Robert Bosch Gmbh Programming template for distributed application programs
US8836497B2 (en) 2012-07-23 2014-09-16 General Electric Company Systems and methods for configuring analog process alarms in control devices
US9684347B2 (en) 2013-01-18 2017-06-20 General Electric Company Systems and methods for automated display of permissive logic in control systems associated with a power generation unit
US10682460B2 (en) 2013-01-28 2020-06-16 Smiths Medical Asd, Inc. Medication safety devices and methods
US10881784B2 (en) 2013-01-28 2021-01-05 Smiths Medical Asd, Inc. Medication safety devices and methods
US9676101B2 (en) 2013-01-30 2017-06-13 Fanuc Corporation Operating program writing system
CN103970087B (en) * 2013-01-30 2016-03-02 发那科株式会社 Operation program generating apparatus
CN103970087A (en) * 2013-01-30 2014-08-06 发那科株式会社 Operating program writing system
US10295976B2 (en) * 2013-02-22 2019-05-21 Mitsubishi Electric Corporation System development device, system development method, and system development program
US20160004239A1 (en) * 2013-02-22 2016-01-07 Mitsubishi Electric Corporation System development device, system development method, and system development program
WO2014150594A3 (en) * 2013-03-15 2015-06-04 Clados Management LLC Tabular data manipulation system and method
US10068031B2 (en) 2013-03-15 2018-09-04 Bullet Point Network, L.P. Tabular data manipulation system and method
CN106662855B (en) * 2014-07-04 2018-06-22 三菱电机株式会社 The Synchronization Control setting method of position control device and the control setting device of position control device
CN106662855A (en) * 2014-07-04 2017-05-10 三菱电机株式会社 Method for setting synchronous control of positioning control device, program, and control setting device for positioning control device
US10528021B2 (en) 2015-10-30 2020-01-07 Rockwell Automation Technologies, Inc. Automated creation of industrial dashboards and widgets
US10313281B2 (en) 2016-01-04 2019-06-04 Rockwell Automation Technologies, Inc. Delivery of automated notifications by an industrial asset
US20210124329A1 (en) * 2016-02-10 2021-04-29 Intelligent Platforms, Llc Graphical interface for configuration of industrial automation systems
US11822305B2 (en) * 2016-02-10 2023-11-21 Intelligent Platforms, Llc Graphical interface for configuration of industrial automation systems
US11853690B1 (en) 2016-05-31 2023-12-26 The Mathworks, Inc. Systems and methods for highlighting graphical models
US10878140B2 (en) 2016-07-27 2020-12-29 Emerson Process Management Power & Water Solutions, Inc. Plant builder system with integrated simulation and control system configuration
US10318570B2 (en) 2016-08-18 2019-06-11 Rockwell Automation Technologies, Inc. Multimodal search input for an industrial search platform
US20180052451A1 (en) * 2016-08-19 2018-02-22 Rockwell Automation Technologies, Inc. Remote industrial automation site operation in a cloud platform
US10545492B2 (en) 2016-09-26 2020-01-28 Rockwell Automation Technologies, Inc. Selective online and offline access to searchable industrial automation data
US10319128B2 (en) 2016-09-26 2019-06-11 Rockwell Automation Technologies, Inc. Augmented reality presentation of an industrial environment
US10401839B2 (en) 2016-09-26 2019-09-03 Rockwell Automation Technologies, Inc. Workflow tracking and identification using an industrial monitoring system
US10388075B2 (en) 2016-11-08 2019-08-20 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US11265513B2 (en) 2016-11-08 2022-03-01 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US11159771B2 (en) 2016-11-08 2021-10-26 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10535202B2 (en) 2016-11-08 2020-01-14 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10735691B2 (en) 2016-11-08 2020-08-04 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US11347304B2 (en) 2016-11-09 2022-05-31 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
US11669156B2 (en) 2016-11-09 2023-06-06 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
US10866631B2 (en) 2016-11-09 2020-12-15 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
CN107240334A (en) * 2017-05-23 2017-10-10 梦孚(上海)教育科技有限公司 One kind programming learning system and its method
US10445944B2 (en) 2017-11-13 2019-10-15 Rockwell Automation Technologies, Inc. Augmented reality safety automation zone system and method
US11623617B2 (en) * 2017-11-27 2023-04-11 Washtec Holding Gmbh Automatic generation of emergency operation programs for a vehicle washing installation in the case of a fault
US11768666B1 (en) 2019-01-31 2023-09-26 Splunk Inc. Executing playbooks including custom code function blocks
US10795649B1 (en) * 2019-01-31 2020-10-06 Splunk Inc. Custom code blocks for a visual playbook editor
US11487513B1 (en) 2020-07-31 2022-11-01 Splunk Inc. Reusable custom functions for playbooks
US11886844B1 (en) 2020-07-31 2024-01-30 Splunk Inc. Updating reusable custom functions across playbooks
US11424865B2 (en) 2020-12-10 2022-08-23 Fisher-Rosemount Systems, Inc. Variable-level integrity checks for communications in process control environments
US11418969B2 (en) 2021-01-15 2022-08-16 Fisher-Rosemount Systems, Inc. Suggestive device connectivity planning

Also Published As

Publication number Publication date
DE69121712D1 (en) 1996-10-02
DE69121712T2 (en) 1997-03-20
EP0531435B1 (en) 1996-08-28
JPH05507376A (en) 1993-10-21
WO1991019237A1 (en) 1991-12-12
EP0531435A1 (en) 1993-03-17
JP2984369B2 (en) 1999-11-29

Similar Documents

Publication Publication Date Title
US5168441A (en) Methods for set up and programming of machine and process controllers
US5576946A (en) Icon based process design and control system
US7134086B2 (en) System and method for associating a block diagram with a user interface element
US6369836B1 (en) Cause effect diagram program
US9158508B2 (en) Strategy editor for process control supporting drag and drop connections to declarations
US5041992A (en) Interactive method of developing software interfaces
US7468731B2 (en) Automatic resizing of moved attribute elements on a graphical representation of a control object
US6690981B1 (en) System and method for encapsulating user interface code for a graphical program
US5432903A (en) Object browsing and a filter interface using a displayed dip switch in an object-oriented development sytem
US7010753B2 (en) Anticipating drop acceptance indication
US6854111B1 (en) Library manager for automated programming of industrial controls
US20140196006A1 (en) Appearance objects for configuring and graphically displaying programmed/configured process control
EP0597316A2 (en) Computer simulation system and method for specifying the behavior of graphical operator interfaces
US7055105B2 (en) Drop-enabled tabbed dialogs
US8850335B2 (en) Strategy editor supporting automatic designation of displayed line style based upon a connection data type
US20070240070A1 (en) Strategy editor supporting designating execution order via control object graphical representations
US20140222181A1 (en) Automatically updating graphical symbols in a control loop strategy diagram
WO2001001207A1 (en) Method and apparatus for hierarchical control of continuously operating systems
Lee et al. User-interface development tools
EP2397940A1 (en) Strategy editor human-machine interface
Van Zee et al. Multi‐sensor system for flexible assembly
Eisenstein et al. TIMM: Exploring Task-Interface Links in MOBI-D
Appelquist et al. A multifunction editor for programming control sequences for a robot based radiopharmaceutical synthesis system
Velderman et al. An approach to interactive graphic programming
Vekariya et al. EDPEPPS/11 Deliverable 2.35

Legal Events

Date Code Title Description
AS Assignment

Owner name: ALLEN-BRADLEY COMPANY, INC., A CORP OF WI, WISCONS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:MORLEY, DAVID J.;REEL/FRAME:005402/0387

Effective date: 19900627

Owner name: ALLEN-BRADLEY COMPANY, INC., A CORP OF WI, WISCONS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:ONARHEIM, WILLIAM G.;DUDLEY, HORACE;MEYER, BARBARA E.;AND OTHERS;REEL/FRAME:005402/0384

Effective date: 19900711

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12