US 6529781 B1
A method and apparatus for identifying and displaying process interactions. Process data points are identified and inputted into a computer along with a logic network relating to these points. A computer program operates through the logic network to analyze the interactions of the points. A tabulation of the interactions found is created in the program and stored as a database. Upon query regarding a particular data point, the tabulation is presented in a readable format on a screen of said computer.
1. A method for identifying process interactions comprising the steps of:
identifying and inputting process data points into a computer;
preparing and inputting a logic network relating said points into said computer;
analyzing the interactions of said points through said logic network by means of a computer program operating on said computer to determine a first set of said process data points having an influence upon a second set of said process data points;
tabulating within said program only those interactions which affect selected process data points; and
presenting said tabulations in a readable format on a screen of said computer as a chain of influences upon said selected process data points.
2. The method of
3. An apparatus for identifying process interactions within a system comprising:
a means for identifying process data points within said system and inputting said identified data points into said computer;
a logic network interactively connected to said identifying means;
a means for analyzing interactions between said data points connected to said network to determine a first set of said process data points having an influence upon second set of said process data points;
a tabulator connected to said analyzing means, said tabulator tabulating only those interactions which affect selected process data points; and
a display member for presenting said tabulations in a readable format on a screen of said computer as a chain of influences upon said selected process data points.
4. The method of
5. The apparatus of
This application claims priority to provisional application Ser. No. 60/078,646, filed Mar. 19, 1998.
Control systems have input signals (input points or input objects), output signals (output points or output objects), internal values (internal points), and logic. Typically, the inputs are read, logic is performed, internal values (which may be intermediate results—results that are not of value themselves, but are used in subsequent logic—or final results—results that are the end produce of the logic) are updated, and outputs are generated.
For safe operation and maintenance of the control systems, the user must at times determine what effect or interactions there would be from changes to a point or object (i.e., determine what can be influenced by changes to some parameter of a particular point). Similarly, the user must at times determine what could be influencing a parameter of a particular point. An example of “a parameter of a particular point” would be the current value in gallons per minute of the inlet flow to tank number 1.
When a measurement instrument is to be serviced, its signal will change (often dramatically). This change may cause the control system to take unexpected actions based upon either straightforward or convoluted linkages within the control logic. The potential effect must be determined prior to working on the instrument, so that preparations can be made to avoid any problems with the process. If the value of an internal or output point is not as expected, the cause must be determined in order to evaluate whether this is an error or correct.
Determining how these various points or objects (input, output and internal) are related is traditionally done by hand, with the use of simple cross-references and listings of the logic. An example would be the cross-references provided by the documentation packages provided with most PLC's (programmable logic controllers) and their ladder logic listings.
When looking for what can influence a particular point, the engineer first looks it up in the cross-reference to see where the point is used. Then, looking at that particular referenced portion of logic, he determines what other points could affect this point. Next, these points must in turn be looked up to see what could affect them, and so on until all points that could affect this point are found.
Similarly, to determine what a particular point can influence, the engineer first looks it up in the cross-reference to see where the point is used. Then, looking at that particular referenced portion of logic, he determines what other points could be affected by this point. Next, these points must in turn be looked up to see what they could affect, and so on until all points that could be affected are found. This is a time consuming and tedious method. Further, it is easy to make a mistake and miss an affected point. The present invention provides a rapid, accurate method to visualize and represent these process insertions.
The present invention is a method and apparatus for identifying and displaying process interactions. Process data points are identified and inputted into a computer along with a logic network relating to these points. A computer program operates through the logic network to analyze the interactions of the points. A tabulation of the interactions found is created in the program and stored as a database. Upon query regarding a particular data point, the tabulation is presented in a readable format on a screen of said computer.
FIG. 1 illustrates a prior art listing of variable declarations, including service descriptions and nicknames.
FIGS. 2A-2E illustrate a prior art ladder logic diagram.
FIG. 3 shows a cross-reference table of the prior art.
FIG. 4 illustrates an interactions table generated by the method and apparatus of the present invention.
FIG. 5 is a block diagram illustrating the method of the present invention.
FIG. 6 illustrates an interactions selection display of the present invention.
FIG. 7 illustrates a computer screen display of the present invention.
FIG. 8 illustrates a second computer screen display of the present invention.
A sample PLC program documentation package is shown (FIGS. 1, 2A-2E, and 3). Such documentation is typical of what is currently generated by existing technology. The PLC example is a short program, but will suffice to illustrate the concepts involved. Following is a description of what this documentation covers:
FIG. 1 defines nicknames and service descriptions for specific entities (points or objects) used within the system. These points may represent physical signals going to or from the PLC to the system being controlled (in this case some pumps, valves, and indicator lights).
FIGS. 2A-2E show the program logic (represented in a form called “ladder logic” (since it looks a bit like rungs of a ladder).
FIG. 3 lists each point and its “cross reference” (i.e., where it is used). Using this cross reference and the program logic (ladder) the user presently has to manually determine interactions each time the need arises. Note: these are the interactions the present invention automatically determines for the user, and will be discussed further below.
When the user needs to do maintenance work on the chemical tank low level switch, this switch is connected to the PLC. This point is identified within the PLC as % I0012 (the twelfth digital input) and has the description “CHEM TANK LOW LEVEL” with a nickname of “CHTLL” (FIG. 1).
The existing manual procedure that may be used to determine what might happen to the manufacturing process while maintenance on the chemical tank low level switch is going on (i.e., what could % I0012 affect?) would take the following steps:
1. Look up % I0012 on the cross-reference chart of FIG. 3 (100) and note that % I0012 is used in rungs 22 and 43.
2. Turn to rung 22 (102) on the ladder logic FIG. 2B and see that it can affect the state of coil % M0003 (103).
3. Turn back to the cross-reference chart of FIG. 3 and find % M0003 (104) and see that it is used in rungs 22, 35 and 12 (106).
4. Go back to the ladder logic FIG. 2B , look at rung 22 (102) and see that % M0003 only affects itself in this case.
5. Next, turn to FIG. 2D to find rung 35 (108) and see that % M0003 further affects coil % Q0009 which is identified as the LO LEV CHEM TANK LAMP (110).
6. Turn back to FIG. 3 to find % Q0009 (112) and see that it is only in rung 35 (116), and is not used elsewhere.
7. Next, look at rung 12 (116) on FIG. 2A and see that % M0003 also affects % Q0005 which is identified as the CHEM PUMP OUTPUT (118).
8. Finally, the user must look up % Q0005 (120) on cross-reference chart FIG. 3 and see that it is only in rung 12 (122), and is not used elsewhere.
From this rather tedious and time-consuming method of moving back and forth between the charts, the user now knows (if he has accurately recorded the information) that when he goes to work on the CHEM TANK LOW LEVEL switch that the LO LEV CHEM TANK LAMP might go on/off and the CHEM PUMP OUTPUT might turn the pump on/off. If turning the pump on/off might disrupt the manufacturing process, the user may take steps to force the pump to remain on (or off) while this maintenance is going on.
With the method and apparatus of the present invention by analyzing the points or objects and logic, a complete reference of interactions can be generated. This reference can be printed or incorporated in a table. FIG. 4 illustrates a portion of such a table. Even on a short PLC, the table could include thousands of interactions. A computer database is the practical formal for this information, and the analyzing is done by a computer program.
This database for the table (FIG. 4) may be generated by reading in the ASCII text files generated by existing control system documentation packages, and interpreting this data with a computer program. Interactions that are not expressed within the logic of the program (e.g., interactions which take place outside the controller—such as a flow which changes when a valve closes) may be determined and included manually, or via other automated techniques. However, the method of the present invention is considerably less time-consuming and is far more accurate.
Once the reference table is created, and is data within the computer, a query of this table determines the chain of influences. For example, Point A is to be worked on and will be changing in value. The engineer needs to know what will be affected by this point value changing. A query is done to determine what A can affect. The table contains records that indicate A directly affects B, B directly affects C, C directly affects H, and H directly affects M, N and P. Therefore, the result of the query shows that A affects (directly and indirectly) B, C, H, M, N and P (and only those points). The details of the linkages from A to B, B to C, C to H, and H to M, N and P, are also provided. This information is presented in either table or graphical form FIG. 4. Additional information regarding the points may be included to aid the engineer. Block diagram FIG. 5 illustrates the method of the present invention.
Returning to the specific example above relating to “what could % I0012 affect?”, with the present invention the user would simply click a button on the computer (SYSTEMS OVERVIEW) which causes a menu of inputs, outputs, internal points to be displayed on the computer screen (FIG. 6). Under “Inputs” he clicks on the % I0012 CHTLL CHEM TANK LOW LEVEL reference point (150) from this list of all the points. On the mouse, he then right clicks and a small menu pops up (152). He clicks “Show What This Affects” (154). The software program of the present invention will then present a window on the computer screen (FIG. 7) that will show that % I0012 affects % M0003 LCHTL LOW CHEM TANK LATCH, which in turn affects the % Q0005 CPOUT CHEM PUMP OUTPUT and the % Q0009 LCHT_L LO LEV CHEM TANK LAMP. The arrow in FIG. 7 illustrates the direction of influence.
In a somewhat similar manner, the user could select from the screen of FIG. 6 “Outputs” (156). An outputs screen similar to the inputs screen of FIG. 6 would display various outputs. The user could select Q0009. A right click would pull up the manu and the user could click on “Show What Affects This” (158). Thus, the user would be asking “what could affect %Q0009?” The software program of the present invention will then present a window on the computer screen (FIG. 8) that will show what could affect %Q0009; i.e., %M0006 FB FLASH BIT; %M0007; %R0007 TMR; 0.10s TIMEBASE; 0.0050 PV; %R0004 TMR; 0.10s TIMEBASE; 0.0050 PV; %M0005 LCHTL; %I0012 CHTLL; and %I008 LT LAMP TEST.
Thus, the present invention interprets the PLC documentation into information that is then loaded into the database and stores this information in another table of the database. This interaction information is then available for a number of uses, the simplest of which is simply for presentation to the user upon request.
Another use of the present invention determines all linkages for a particular input card of the PLC (a card generally has multiple points residing on it—from 4 to 64 different points). This allows the user to determine what would happen if the card were pulled out for repair. This was impractical to do with the prior art systems.
The above example is for a particular system (a programmable logic controller—PLC), but the invention is applicable to a number of different types of control systems. The invention is novel in its application to industrial control systems.
Although the invention has been described with reference to a specific embodiment, this description is not meant to be construed in a limiting sense. On the contrary, various modifications of the disclosed embodiments will become apparent to those skilled in the art upon reference to the description of the invention. It is therefore contemplated that the appended claims will cover such modifications, alternatives, and equivalents that fall within the true spirit and scope of the invention.