|
|
|
| United States Patent | 5485620 |
| Link to this page | http://www.wikipatents.com/5485620.html |
| Inventor(s) | Sadre; Ahmad (Solon, OH), Baechtel; Donald F. (Lyndhurst, OH), Graber; Mark S. (Streetsboro, OH) |
| Abstract | A system for generating, editing, executing, monitoring and debugging an
application program for controlling an industrial automation mechanism
comprising components of logic, motion and/or process control. The
programming and operating environments contain a single Man Machine
Interface (MMI) with close and intuitive linkages between sequential
programs and continuous programs that aid in the programming, operation
and troubleshooting of application programs. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5485620 |
|
|
Integrated control system for industrial automation applications |
|
|
|
|
|
| Publication Date |
January 16, 1996 |
|
|
|
|
|
| Filing Date |
February 25, 1994 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5392207 Wilson 700/64 Feb,1995 |      Your vote accepted [0 after 0 votes] | | 5265004 Schultz 700/22 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5265005 Schmidt 700/18 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5253186 Lipner 702/182 Oct,1993 |      Your vote accepted [0 after 0 votes] | | 5247693 Bristol 717/139 Sep,1993 |      Your vote accepted [0 after 0 votes] | | 5225974 Mathews 700/11 Jul,1993 |      Your vote accepted [0 after 0 votes] | | 5212631 Schmidt 700/7 May,1993 |      Your vote accepted [0 after 0 votes] | | 5177420 Wada 318/568.11 Jan,1993 |      Your vote accepted [0 after 0 votes] | | 5168441 Onarheim 700/17 Dec,1992 |      Your vote accepted [0 after 0 votes] | | 5097405 Sato 700/19 Mar,1992 |      Your vote accepted [0 after 0 votes] | | 5072356 Watt
Dec,1991 |      Your vote accepted [0 after 0 votes] | | 4910691 Skeirik 706/45 Mar,1990 |      Your vote accepted [0 after 0 votes] | | 4852047 Lavallee 700/86 Jul,1989 |      Your vote accepted [0 after 0 votes] | | 4823255 Tanaka 700/86 Apr,1989 |      Your vote accepted [0 after 0 votes] | | 4803634 Ohno 700/213 Feb,1989 |      Your vote accepted [0 after 0 votes] | | 4742443 Rohn 700/7 May,1988 |      Your vote accepted [0 after 0 votes] | | 4736320 Bristol 717/109 Apr,1988 |      Your vote accepted [0 after 0 votes] | | 4663704 Jones 700/83 May,1987 |      Your vote accepted [0 after 0 votes] | | 4636938 Broome 700/86 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4500950 Putman 700/9 Feb,1985 |      Your vote accepted [0 after 0 votes] | | 4215396 Henry 700/7 Jul,1980 |      Your vote accepted [0 after 0 votes] | | 4215398 Burkett 700/7 Jul,1980 |      Your vote accepted [0 after 0 votes] | | 4204253 van den Hanenberg 714/32 May,1980 |      Your vote accepted [0 after 0 votes] | | 4122519 Bielawski 707/200 Oct,1978 |      Your vote accepted [0 after 0 votes] | | 3974484 Struger 700/24 Aug,1976 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
| Add a new Other reference: |
| Post related web sites and other references in this section |
| | Reference | Relevancy | Comments | Beander, "VAX DEBUG: An Interactive, Symbolic, Multilingual Debugger", ACM, 1983, pp. 173-179.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Halpert, "Object Oriented Programming for Motion Control", RAPCON Conference, 1991, pp. 58-68.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Basnet et al., "Experiences in Developing an Object Oriented Modeling Environment for Manufacturing Systems", IEEE, 1990, pp. 477-481.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Barker et al., "User Interface Standards for Control System Design Applications", CACSD Workshop, 1989, pp. 86-93.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Rudolf et al., "Completing the Job of Interface Design", IEEE Software, vol. 9, No. 6, Nov. 1992, pp. 11-22.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Eldeib et al., "Applications of Symbolic Manipulation in Control System Analysis and Design", IEEE, 1989, pp. 269-274.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Stephan et al., "The COSY Control System, a Distributed Realtime Operating System", IEEE, 1991, pp. 1362-1364.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | International Electrotechnical Commission (IEC), Draft International Standard (DIS) 1131-3, Feb. 14, 1992.
. Oct,2006 |      Your vote accepted [0 after 0 votes] | | Electronic Industries Assocation (EIA), Standard RS-274D, Feb. 1979.. Oct,2006 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
Having thus described the invention, the following is claimed:
1. An apparatus for the development and execution of an application program having at least one sequential program for controlling
at least one sequential machine function and having at least one continuous program for controlling at least one continuous machine function, said apparatus comprising:
means for producing the application program in the form of a diagram, said means for producing including:
means for producing at least one step box having therein a sequential program including one or more sequential program statements, each sequential program statement including a sequential program statement label, and
means for producing at least one action box having therein at least one continuous program identifier for identifying a continuous program, each continuous program identifier associated with at least one sequential program statement label, each
said action box associated with one of said at least one step boxes;
execution means for executing said application program; and
means for linking said at least one step box and said at least one action box for producing said application program.
2. The apparatus of claim 1, wherein said execution means determines when to execute each continuous program identified in said action box, before executing said sequential program statements in the step box associated therewith.
3. The apparatus of claim 1, wherein said at least one sequential machine function is motion control.
4. The apparatus of claim 1, wherein said at least one sequential machine function is process control.
5. The apparatus of claim 1, wherein said sequential program statements are in at least one of the following formats: RS-274D syntax, application icon, BASIC, Fortran, and C.
6. The apparatus of claim 5, wherein said RS-274D syntax includes at least one of the following: embedded Structured Text, embedded BASIC, embedded Fortran, and embedded C.
7. The apparatus of claim 1, wherein said continuous program identified by the continuous program identifier is in at least one of the following formats: Relay Ladder Logic Networks and Function Blocks.
8. The apparatus of claim 1, wherein said execution means includes means for evaluating Relay Ladder Logic Networks having output elements and function blocks anywhere in the Relay Ladder Logic Networks.
9. The apparatus of claim 1, wherein said sequential program statements and said continuous programs identified by said continuous program identifier include program statements which cause the execution means to temporarily suspend execution of
the currently executing application program and begin execution of a second application program.
10. The apparatus of claim 1, wherein said apparatus further comprises:
means for producing the application program in the form of a top level diagram, said top level diagram including application program steps, each step representing at least one sequential or continuous program; and
means for associating an operator button with each said application program step, said operator button activated by an operator, wherein said operator button associated with each application program step must be activated before said at least one
program associated with the application program step is executed by said execution means.
11. The apparatus of claim 10, wherein said top level diagram includes transition statements, each transition statement associated with an application program step, said transition statements preventing execution of subsequent application
program steps until an operator button associated with the subsequent application program step is activated by an operator.
12. The apparatus of claim 1, wherein said execution means begins executing said continuous program identified by said continuous program identifier in the action box, before executing the sequential program statements in the associated step
box.
13. The apparatus of claim 1, wherein said continuous program identifier in said action box further identifies a sequential program statement in said associated step box, said execution means executing said continuous program identified by the
continuous program identifier in response to the execution of the sequential program statement identified by the continuous program identifier.
14. The apparatus of claim 1, wherein said continuous program identifier in said action box further identifies a sequential program statement in said associated step box and a synchronization event associated with said identified sequential
program statement, said execution means executing said continuous program identified by the continuous program identifier in response to the execution of said identified sequential program statement and the occurrence of said identified synchronization
event associated with the identified sequential program statement.
15. The apparatus of claim 1, wherein said continuous program identifier in said action box further identifies an action qualifier associated with said identified continuous program, said execution means executing said identified continuous
program in accordance with the identified action qualifier.
16. The apparatus of claim 1, wherein said apparatus further comprises means for displaying said identified continuous program.
17. The apparatus of claim 16, wherein said apparatus further comprises means for inserting a function block into said identified continuous program.
18. An apparatus for the development and execution of an application program having at least one sequential program for controlling at least one sequential machine function and having at least one continuous program for controlling at least one
continuous machine function, said apparatus comprising:
means for producing the application program in the form of a diagram, said means for producing including:
means for producing at least one step box having therein a sequential program including one or more sequential program statements, each sequential program statement including a sequential program statement label, and
means for producing at least one action box having therein at least one continuous program, each continuous program associated with at least one sequential program statement label, each said action box associated with one of said at least one
step boxes;
execution means for executing said application program; and
means for linking said at least one step box and said at least one action box for producing said application program. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates generally to a system for generating, editing, executing, monitoring and debugging an application program which provides integrated control of sequential and continuous machine processes.
More particularly, the present invention relates to a system for generating, editing, executing, monitoring and debugging an application program which provides simultaneous control of all the logic, motion and process control components of an
industrial automation application.
The present invention finds advantageous application to an automated transfer line and will be described with particular reference thereto, it being appreciated that the present invention has broader applications and may be used with other
industrial automation applications, including material handling, metal forming, and robotics.
BACKGROUND OF THE INVENTION
A typical automated transfer line, as shown in FIG. 1, consists of a number of work stations where the work piece undergoes various operations, for example metal cutting and forming, in a specific, predetermined order. The flow of the work
piece, such as an automotive engine block, from the point of entry into the line, its guidance and navigation through the work stations, and its final exit from the line after successful completion of all automated operations, must be controlled with
high order of accuracy to result in the proper synchronization and coordination of the automated transfer line.
It is critical that the operation of the automated transfer line be error free and reliable as the smallest inaccuracy in any part of the control system, such as the communication link between various controls at each work station, can have
disastrous results. It is also extremely important that the application program for the automated transfer line be relatively straightforward and reliable for both setup and integration, as well as continuous operation and troubleshooting by the factory
floor personnel.
Today, automated transfer line applications generally require logic control (e.g., control of IF . . . THEN conditional actions) and motion control (e.g., control of a servo) and at times process control (e.g., control of the electrical current
flow to a welder). It should be noted that motion control can be regarded as a specialized type of process control. Application engineers choose several industrial controllers, each specializing in one of the control technologies (i.e., logic, motion
and process control), and each with its own specialized hardware and software implementations. The application engineers then program each of these individual devices, typically using different programming languages and development environments, to
control a specific subset of the total industrial automation application. Additional hardware and software interconnections and communications must be added to get the individual devices to work together in a coordinated and synchronized manner. The
difficulty and cost of programming, integrating, operating and supporting such a complex system is substantial. Key disadvantages of existing automated transfer line control arrangements include the following:
1. Hardware duplication; each controller usually has its own chassis, computer, I/O and power supply.
2. Multiple operator interfaces and program development support systems; this makes the system more difficult to program, debug and operate resulting in increased system support cost.
3. Error prone inter-connecting logic; the control device interconnections require extra integration time and often represent a major source of the system problems thereby reducing the overall reliability of the total system.
4. Sub-optimized usage of controller performance; generally, one or more of the controllers has much more performance than is required for its assigned portion of the application, and since there is no ability to share workload among different
controllers, this excess performance is wasted while the total system cost is increased.
In the typical automated transfer line application shown in FIG. 1, control units 2, 4, 6, 8 and 10 require logic, motion, and/or process control. Accordingly, each of these control units requires multiple industrial controllers. In general,
one controller for each control technology will be required at each control unit. The typical implementation process for one of these control units is shown in FIG. 2. The system Integrator or the original equipment manufacturer (OEM) carries the
overall responsibility for implementing process plan 20 for an individual control unit. Process plan 20 is developed by a process engineer and the implementation of that plan requires the following tasks to be completed:
A. Separating process plan 20 into individual logic control program steps 22, motion control program steps 24 and process control program steps 26.
B. Selecting, purchasing and integrating individual logic controller(s) 28, motion controller(s) 30 and process controller(s) 32, each having its own hardware, operating system and program development environment.
C. Generating separate programs for each individual controller. In this respect, logic control program steps 22 are typically programmed in graphical ladder language (e.g., Relay Ladder Logic Network); the motion control program steps 24 are
typically programmed in RS-274D or a proprietary motion language; and the process control program steps 26 are typically specified in Function Block Networks.
D. Adding inter-controller synchronization interconnections and program logic.
E. Debugging this complex architecture. It is noted that the integrated view of the entire system control, specified via these separate programs, is extremely difficult to observe as the interdependence, coordination and synchronization between
the various control components is buried deep within the inter-control communication links and the program for each of the controls. Also, the man-machine interfaces 34a, 34b, and 34c are of a general purpose nature which makes the operation of the
entire system very difficult for the factory floor personnel.
F. Documenting, maintaining and supporting the integrated system.
While logic, motion and process control have both sequential and continuous functions, a programmer is concerned primarily with sequential functions with respect to motion control, continuous functions with respect to logic control, and both
sequential and continuous functions with respect to process control. Sequential functions are actions which are sequential in nature, while continuous functions are actions which are continuous in nature. Both types of functions will be described in
greater detail below.
It has been standard practice to program "sequential" motion control functions using RS-274D or a proprietary motion control language on a computerized numerical control (CNC) or some other type of motion controller, to program "continuous" logic
control functions using ladder logic and function blocks on a programmable logic controller (PLC), to program "sequential" process control functions using standard Sequential Function Charts, flow charts, or batch recipes, and to program "continuous"
process control functions using Function Block Networks.
Each of these controllers and programs serve a specific need in a portion of the application program and present their own specialized programming environment and unique window into the application domain. Unfortunately, none of these
programming techniques can adequately address the entire application requirements alone. When used together, these diverse programming techniques implemented on separate controllers are inefficient, do not integrate or interconnect well, are difficult
to operate and troubleshoot, and can be prohibitively expensive. A new, simpler, more integrated solution is needed that does not deviate too far from the methods already used to program and troubleshoot on the factory floor to minimize training time.
Many industrial automation applications require the integration of sequential and continuous programs into a single application program, which controls the sequential and continuous machine processes of an industrial automation application.
Sequential programs are used to control the major sequencing of an application program. Accordingly, sequential program steps are executed only once, one step after the other, like a procedure, waiting for the previous step to complete before
the next step is executed. Continuous programs are used to monitor and control environmental conditions either during the entire application program or during specific portions of the application program. Accordingly, continuous programs are scanned
repeatedly and executed whenever the qualifying conditions are appropriate.
As noted above, sequential functions are actions which are sequential in nature, and accordingly are most easily and intuitively programmed using sequential programs. Likewise, continuous functions are actions which are continuous in nature, and
accordingly are most easily and intuitively programmed using continuous programs.
Examples of sequential functions include:
1. machine operation or sequencing, for example: (a) turn the machine on and wait for all functions to report ready, (b) position the workpiece to be processed, (c) begin processing and wait for the | | |