The present invention relates to a plant control system, and, more particularly to an apparatus that performs creation, display, and diagnosis of a plant control program.
In general, in a plant control system, a system programmer provides a plant operator with a program for automatically operating a plant after creating the program as a control program for a plant control apparatus and tests and adjusts the program.
In order to safely control a plant, the system programmer has to install an interlock condition for startup and operation of plant equipment such as a rotary machine (a condition for permission of equipment operation) in the control program. Naturally, it is a matter of interest for the plant operator whether the interlock condition is satisfied. Therefore, it is demanded that the interlock condition is plainly presented to the plant operator.
As a plant control system in the past, a plant control system that displays an interlock state diagram when plant equipment abnormally stops is proposed (see Japanese Patent Laid-Open No. 11-242507).
However, the plant control apparatus system disclosed in Japanese Patent Laid-Open No. 11-242507 has drawbacks described below.
(a) An interlock diagram same as an interlock program created by a system programmer is used for interlock diagnosis and display. Therefore, when there are a large number of input signals in an interlock circuit, it is difficult to learn at a glance a contact that causes dissatisfaction of an interlock condition. In the case of a so-called multistage interlock circuit in which a contact of an interlock circuit is an output coil of another interlock circuit, it is impossible to track back the circuit to learn a contact as a factor of dissatisfaction.
(b) The plant control apparatus system stores a status of only one cycle in which the interlock condition is dissatisfied. Therefore, when there are plural contacts as factors of the dissatisfaction of the interlock condition and the contacts are OR logical elements, it is impossible to learn a factor signal of which of the contacts that is a trigger and causes interlock dissatisfaction, i.e., a first cause of the interlock dissatisfaction.
(c) It cannot be said that a uniform programming method for diagnosing present factors, latest factors in the past, and a first factor in the latest factors in the past of the interlock dissatisfaction is presented to the system programmer. Therefore, it is difficult both technically and economically for the system program to realize an interlock diagnostic function.
The present invention has been devised in view of the points described above and it is an object of the present invention to provide a plant control system that has:
1) a function of creating and executing a uniform control program for diagnosing an interlock condition;
2) a function of displaying a ladder circuit including only plural factor signals when plant equipment cannot be started; and
3) a function of displaying a ladder circuit including only plural factor signals and a trigger signal of the factor signals when the plant equipment is abnormally stopped.
In order to attain the object, the present invention provides a plant control system including program editing means for creating a control program including an interlock condition and diagnosis of interlock, plant control means for executing a program object in the control program, and interlock diagnosing means for updating and displaying satisfaction/dissatisfaction at a predetermined point before a present point of the interlock condition or latest time when the interlock condition was dissatisfied in the past, further specifying only a source factor variable of the dissatisfaction even if plural stages of interlock circuits are formed, and automatically displaying the source factor variable in a graphic language, the interlock diagnosing means having a logical operation unit and a display unit.
The present invention can, on the one hand, provide a system programmer with a uniform and simple programming method for inserting an interlock diagnostic function block DIAG shown in
Embodiments of the present invention will be hereinafter explained in detail with reference to the accompanying drawings.
First, a first embodiment is explained using
The controller CONT roughly includes two sections: an object memory 40 for storing control program objects and a standard processing unit 50 that performs writing, readout, and execution of the control program objects. Moreover, the object memory 40 includes a data memory 41 and a code memory 42.
The data memory 41 includes internal data of an interlock diagnosis function block DIAG described later besides normal variables. The code memory 42 includes internal codes of the interlock diagnosis function block besides normal program codes.
The standard processing unit 50 includes a program-load server unit 51 for arranging object programs of control programs transmitted through the LAN in the data memory 41 and the code memory 42, a program-execution processing unit 52 for executing a control program in the controller CON, i.e., a code memory, a process-input/output processing unit 53 for giving a process signal from a plant to the control program, and an interlock-state-readout server unit 54 for reading out an interlock circuit state during execution of the control program.
On the other hand, the computer COMP roughly includes three sections: control-program editing means 10 with which a system programmer creates a control program, a database unit 30 that stores the control program and a logical expression for interlock, and interlock diagnosing means 20 with which a plant operator learns a cause of dissatisfaction of interlock.
The control-program editing means 10 includes a program compiler 11 for converting a source file of the control program into an object file as internal processing, a ladder (LD) to logical expression converting unit 12 for converting an interlock circuit designated in the control program into a logical expression, and a program-load client unit 13 for transmitting the object file of the control program to the controller.
The database unit 30 includes a source file unit 31 for storing the source file of the control program, an object file unit 32 for storing the object file of the control program, and a logical-expression file unit 33 for storing the logical expression of the designated interlock circuit.
The source file unit 31 includes a source of the interlock diagnosis function block described later. The object file unit 32 includes internal data and codes of the interlock diagnosis function block described later.
The interlock diagnosing means 20 includes a logical operation unit and a display unit. The logical operation unit includes a logical-expression readout unit 21 for reading out a logical expression of a designated interlock from a file, an interlock-state readout client unit 22 for reading out contact states in the past and present contact states of the designated interlock circuit from the controller, a factor-specified logical-expression converting unit 23 for specifying a factor of dissatisfaction of interlock from the logical expression and the contact states of the interlock-state readout client unit 22, a logical-expression combining unit 24 for combining logical expressions in multiple stages into one logical expression, and a logical expression to ladder (LD) converting unit 25 for rendering a ladder from the logical expression. The display unit displays a result of operation by the logical operation unit.
The system programmer creates a control program including an interlock logic of plant equipment using the control-program editing means 10.
In order from above in
The interlock circuit at the top includes contacts B1 to B5, an interlock diagnosis function block DIAG, and a coil C5. A contact C5 of this coil C5 is inserted into the M30 operation interlock circuit in the second from the top. This M30 operation interlock circuit in the second from the top includes contacts Cl to C7, an interlock diagnosis function block DIAG, and a coil RUN_PRM. A contact RUN_PRM of this coil RUN_PRM is inserted in the M30 operation command circuit in the third from the top. The M30 operation circuit includes contacts START_PB, START_PRM, STOP_PB, M300_RUN, and RUN_PRN, and a coil M30_RUN.
The interlock circuit has a characteristic for connecting the interlock diagnosis function block DIAG before a coil output thereof. When a system programmer saves a control program, the control program is stored in the source file unit 31 of the database unit 30. As a source file, a result generated by the program compiler 11 is saved as the object file 32 of the database unit 30.
At this point, when the ladder-to-logical-expression converting unit 12 finds the interlock diagnosis function block, the ladder-to-logical-expression converting unit 12 searches through a ladder circuit connected to an input of the interlock diagnosis function block, creates a logical expression of interlock, and saves the logical expression as a logical expression file of the database unit 30.
This ladder-to-logical-expression converting unit 12 includes contacts C1 to C7, an interlock diagnosis function block DIAG, and a coil RUN_PRM. The logical expression is a logical sum of five paths as described below.
Values of the respective paths are indicated by logical products of contact states in the paths. Therefore, eventually, a logical expression of the interlock circuit can be calculated in a sum of products form.
A data structure, in which names of contact variables are arranged as a one-dimensional character string array, for saving the logical expression as data is as shown below.
A two-dimensional array of the logical expression is as shown below.
It is sufficient that indexes of the one-dimensional array of the contact variables are associated with column indexes of the two-dimensional array of the logical expression to form a two-dimensional array having a BOOL type as an element in which respective logical product terms are associated with the indexes, and 1 is set in contact variables included in the respective logical product terms and 0 is set in spaces of contact variables not included in the logical product terms.
Moreover, a variable name of an interlock diagnosis function block that diagnoses this interlock circuit and outputs of the logical expression, i.e., a variable name of a coil to be an inter lock signal are added and stored in the logical-expression file unit 33 of the database unit 30 for each interlock circuit.
Here, the FB variable name for diagnosis is as shown below.
The coil variable name is as shown below.
The system programmer performs, after creating and saving the control program as described above, writing of the control program in the controller CONT and causes the controller CONT to execute the control program. In writing the control program in the controller CONT, internally, the program-load client unit 13 extracts the object file 32 of the database unit 30 and transfers the object file 32 to the program-load server unit 51 of the controller CONT through the LAN. The program-load server unit 51 receives the object file 32 and arranges the object file 32 on the data memory 41 and the code memory 42 of the object memory 40. Moreover, the program-execution processing unit 52 executes the object file 32 and the control program is executed.
Signals of the contacts and the coil of the interlock circuit are process signals that should be inputted and outputted between the interlock circuit and the controller outside CONT. The process signals are given from the process-input/output processing unit 53 to the program-execution processing unit 52 and operate.
It is explained with reference to
Among these internal data, ContactNum indicating the number of contacts n of the interlock circuit and ContactAddress(1)-ContactAddress(n) indicating memory addresses of contact variables (1 to n) are given as values of an object file at the time of compilation of the control program shown in
Moreover, when the input BI changes from ON to OFF (i.e., from satisfaction to dissatisfaction of interlock), the interlock diagnosis function block
It is explained with reference to
Actually, the interlock diagnosing means 20 learns an address in the controller of the interlock diagnosis function block from a relevant interlock signal name using the logical-expression readout unit 21 and passes the address to the interlock-state readout client unit 22. The interlock-state readout client unit 22 transfers the address to the interlock-state read out server unit 54 of the controller CONT through the LAN. In this way, the interlock diagnosing means 20 acquires an internal variable Permissive (a present interlock state) and TimeStamp (latest interlock dissatisfaction occurrence time in the past) of the interlock diagnosis function block under execution and displays the internal variable Permissive and TimeStamp in the fields Live and Faulted, respectively. Consequently, display of the interlock list can be realized. This interlock list is updated and displayed at intervals of about 1 to 2 seconds. When one interlock condition is selected from this interlock list, a relevant interlock diagnosis screen is displayed.
In a space of [present] in this interlock diagnosis screen, when a relevant interlock condition is dissatisfied at the present point, an interlock diagram of only a contact as a factor of the dissatisfaction is displayed in ladder. This is explained in the next step.
The interlock diagnosing means 20 gives a coil variable name of an interlock condition to the logical-expression readout unit 21, searches for data of a logical expression, and acquires data of a logical expression stored in the logical-expression file unit 23.
The interlock diagnosing means 20 gives an address of the coil variable of the interlock condition to the interlock-state readout client unit 22 and acquires an internal data CurrentBits (a bit string in a connection state of a present interlock circuit) held by the interlock diagnosis function block on the controller.
Specifying of a factor is performed as internal processing of the factor-specified logical-expression converting unit 23. The interlock diagnosing means 20 gives the acquired data of the logical expression and internal data CurrentBits to the factor-specified logical-expression converting unit 23 and calculates a logical expression including only a factor contact. In this specifying of a factor, the interlock diagnosing means 20 applies an absorption law 1·A=A·1=A of the Boolean algebra to the logical expression of the interlock circuit paying attention to a logical product term, a value of a contact of which is 1, and further applies an absorption law 1+A=A+1=1 of the Boolean algebra to the logical expression paying attention to a logical sum term to simplify the logical expression of the interlock circuit.
As a result, all contacts that do not affect a result of the logical expression are deleted and a logical expression including only factor contacts that affect a result of the logical expression can be obtained.
The logical expression of the interlock circuit shown in
If a contact state obtained from the internal data CurrentBits is BI=0, C1=0, C2=1, C3=1, C4=1, C5=0, C6=0, and C7=0, (1) when the absorption law A·1=A·1 is applied to the logical expression, the logical expression is changed as follows:
Moreover, (2) when the absorption law A+1=1+A=1 is applied to the logical expression, the logical expression is changed as follows:
The data structure can be represented as follows:
When variables of the factor contents calculated in 3) are variables of coils of another interlock circuit, if the interlock circuit has been diagnosed by the interlock diagnosis function block, the interlock diagnosing means 20 carries out 1), 2), and 3) and calculates a logical expression with factors specified. The interlock diagnosing means 20 gives plural factor specified logical expressions selected in this way to the logical-expression combining unit 24. Consequently, it is possible to calculate a final factor specified logical expression.
For example, combination of a logical expression 1: BI=C1·C2·C4·C5+C1·C2·C6+C7 and a logical expression 2: C1=B1+B2·B3 is performed by combining:
data of the logical expression 1
and
and the following data is obtained:
A combined logical expression is as follows:
The interlock diagnosing means 20 subjects the logical expression obtained in this way to rendering processing as internal processing of the logical-expression-to-ladder converting unit 25. If attention is paid to the fact that data of the logical expression given here is always in a sum of products form, it is seen that a ladder only has to be rendered in association with a ladder circuit in which a logical product is a linear path and an overall logical sum merges only at one point.
For example, when the following data is given as the data of the logical expression,
the interlock diagnosing means 20 deletes columns of contacts that appear in no path or paths in which no contact appears and obtains the following data:
From this data of the logical expression, the interlock diagnosing means 20 calculates the number of path MaxRow(=3) and the number of contacts MaxCol(=4).
Considering that a rendering area is a set of cells (Row, Col) indicated by a row Row and a column Col, the interlock diagnosing means 20
scans the rendering area from Row=1 to MaxRow,
scans the rendering area from Col=1 to MaxCol,
renders a left bus in the cell (Row, Col) if Col is 1,
renders a contact command and a contact variable if the cell (Row, Col) is 1,
renders a horizontal connection line if the cell (Row, Col) is 0,
when the scan of Row and Col is finished, renders a vertical connection line from a cell (1, MaxCol+1) to a cell (MaxRow, MaxCol+1), and
finally, renders a coil command and a coil variable in the cell (1, MaxCol+1).
Referring back to
The same explanation as 1) to 5) above can be applied to this. However, it should be noted that what should be acquired in 2) is a value of the internal data AfterBits (a contact state at the time of a change in dissatisfaction of the interlock circuit) held by the interlock diagnosis function block on the controller. In this way, a ladder circuit with dissatisfaction factors specified is obtained in the space of [latest in the past]. Moreover, it is possible to indicate a contact that is a trigger (a first cause) of the interlock dissatisfaction among the dissatisfaction factors.
When the internal data BeforeBits (the bit string in the contact state immediately before interlock dissatisfaction) and the internal data Afterbits (the bit string of the contact state at the time of interlock dissatisfaction) of the interlock diagnosis function block are compared, a contact that changes from 1 to 0 is a trigger signal. Therefore, the contact only has to be shown on the ladder circuit in “latest in the past”.
As described above, the first embodiment can provide the system programmer with the uniform and simple programming method of inserting the interlock diagnosis function block shown in
In particular, the presentation of present interlock dissatisfaction factors realizes a plant operation support function that plainly answers a question of the plant operator “I have just pressed the start button of the plant equipment. Why cannot the plant equipment be started?”.
The presentation of latest interlock dissatisfaction factors in the past realizes a plant operation support function that plainly answers a question of the plant operator “The plant equipment has automatically stopped. When has the plant equipment stopped?”. Presentation of a latest interlock dissatisfaction trigger factor in the past realizes a plant operation support function that plainly answers a question of the plant operator “The plant equipment has automatically stopped. What is a first cause?”.
In the interlock diagnosis screen, the example of the ladder circuit is shown in the first embodiment. In the second embodiment, an example of another representation form is explained according to background knowledge of a plant operator. As logical circuit representation known in general, examples of an FBD sign, an MIL sign, and an ISA sign are shown in
Although an overall diagram and explanation of the embodiment are omitted,
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2006/301034 | 1/24/2006 | WO | 00 | 7/17/2008 |