Modeling programmable logic controllers for logic verification

advertisement
Modeling Programmable Logic
Controllers for Logic Verification
I1 Moon
verification method has been developed for determining the
afety and operability of programmable logic controller
(PLC) based systems. The method automatically checks sequential logic embedded in PLCs and provides counterexamples if it
finds errors. The method consists of a system model, assertions,
and a model checker. The model is a Boolean-based representation of a PLC’s behavior. Assertions are questions about the
behavior of the system, expressed in temporal logic. The model
checker generates a state space based on the above two inputs,
searches the space efficiently, determines the consistency of the
model and assertions, and supplies counterexamples. Amodeling
technique has been developed to verify relay ladder logic (RLL),
a PLC programming language. The performance of the model
checker is studied in a series of alarm designs.
As
scribes a RLL program being verified, 2) assertions that express
questions about the RLL behavior with respect to safety and
operability, and 3) a model checker that searches a model to
determine the validity of assertions and supplies counterexamples. The assertions are expressed using temporal logic operators
for reasoning about event occurrence over time. We applied the
method to alarm systems to understand the performance of the
method.
RLL Models
PLC programs can be developed in a number of different
forms. Relay ladder logic (RLL) is a common representation used
to document PLC programs. Grafcet, Function Chart, Boolean
and other high level programming languages are also available
for PLC program development [3], [6].These representations of
a PLC program can be converted into equivalent logical expresAutomatic Verifification Method
The safety and reliability of control systems are becoming sions, for example, Petri nets or Finite State Machines [5].We
more important as they are used in crucial systems such as toxic select a popular language, RLL, and apply the automatic model
chemical plants, nuclear power plants and space shuttles. As checking method to verify PLC software. This section illustrates
control systems become increasingly complex to satisfy diverse the modeling of RLL as an input to the model checker. Relative
demands, complete testing of their safety becomes more difficult. issues are PLC scanning cycles, basic elements of RLL and the
Lack of any formal and efficient verification method has pre- conversion rules from a RLL to an equivalent model expression.
A PLC is a dedicated microprocessor that continuously reads
vented the creation of practical design aids. We have developed
inputs and in real-time determines new outputs. The outputs are
an automatic verification method to test PLC-based systems.
based on inputs and the previous outputs, according to its proPLCs are used in a wide variety of control applications. Relay grammed logic. Fig. 1 presents the data flow of a PLC and a
ladder logic (RLL) is a popular programming language for PLCs.
process system. When controlling a system, a PLC repeatedly
While much literature is available about designing RLL [SI-[lo],
executes a scanning cycle. One scanning cycle consists of three
there is little in the literature about automatic testing of RLL.
steps:
Errors in RLL can be included at any time over the software
1. reading input values from sensors and storing them in an
development cycles. The more PLCs are used, the more imporintemal bit table,
tant verification of RLL becomes. Traditionally, the verification
2. executing the programmed logic and altering the intemal
process of RLL depends on manual tests based on the designer’s
bit table, and
experience. Altematively, simulators might be used to test a
3. writing new outputs to actuators based on the values in the
limited number of scenarios. As the number of input variables
bit table.
increases, in which the variables can be changed at any time
For the PLC to be an effective controller, the scanning time
randomly, the number of scenarios to be tested increases very
must be less than the shortest duration time of an input or an
quickly. The state explosion is the primary limitation of testing
output signal. Scanning times commonly range from millisecall possible scenarios using traditional approaches. The model
onds to tenths of seconds, depending on the processor speed, the
checking verification method provides a reasonable solution to
program length, and the number of input and output devices [4].
this problem.
RLL is a Boolean-based programming language used in PLC.
Clarke et a/. [ 2 ] developed the model checking verification The values of all the variables for the control program are stored
method and applied it to testing communications protocols and in the PLC’s intemal bit table. Two input contacts and one output
VLSI circuit designs. We have extended this method to verify coil are used to access these values. Fig. 2 shows their symbols
PLC-based systems. The method includes: 1 ) a model that de- in RLL. The first input symbol of the figure is a normally open
contact. A PLC examines the specified bit corresponding to this
The author is with the Department of Chemical Engineering, Yonser symbol and it retums logic 0 if that bit is a zero or logic 1 if that
University, Seodaemun-Ku, Shinchon-Dong 134, Seoul 120-749, bit is a one. The second input symbol is a normally closed contact.
Republic of Korea. Email: ilmoon@buhble.~onsei.ad.kr
This symbol represents the logical negation by retuming logic 1
Agrill994
0272- 1708/94/$04.000 1994IEEE
-
~~
53
PLC
Relay Ladder Logic
if the specified bit is a zero or logic 0 if that bit is a one. The
output coil assigns the logic value of the given function to the bit
indicated.
The conversion from a RLL to a model description is almost
an one-to-one correspondence. The value of the output coil, in
the right-most end of each rung, depends on the structure and the
values on the left hand side of the rung. Each rung can be
converted into the corresponding model description using the
operators: (NOT), & (AND), I (OR), next (one scanning time
later) and := (define).
Fig. 3 shows a RLL (left diagram) and the equivalent model
description (right text). The vertical rails of the RLL indicate the
power source and sink, while the horizontal lines, called rungs,
indicate the possible current flow. A PLC scans rungs from top
left to bottom right of the RLL. Depending on PLC makers, PLCs
scan rung-by-rung or column-by-column. In many cases, the two
scanning orders make no difference in the PLC’s behavior. To
avoid exceptional cases [SI, we choose the popular rung-by-rung
scanning order and model RLL under the given scanning order.
The column-by-column scanning order can be modeled in a
similar way.
Rung 1 of the diagram consists of a normally open contact
and an output coil. The current value of the output coil (R2) is
the same as the value of the contact (Rl) in the previous scanning
time. This means that if input R1 is TRUE then R2 is TRUE in
the next scanning cycle; otherwise R2 is FALSE in the next
scanning cycle. Though the bit table is updated immediately as
the related inputs are changed, the output signal occurs after one
scanning time. To include the notion of the time difference
between the input and the output, the operator “next” is used in
the model description as shown on the right hand side text of the
figure. Rung 2 represents the Boolean logic “NOT” and the
equivalent model description is shown in the text using the
operator
Series and parallel arrangements of input variables represent
Boolean logic “AND” and “OR,” respectively, as shown in rung
3 and 4. For example, R7 in rung 3 is TRUE in the next scanning
time only if both R5 and R6 are TRUE currently. Rung 5 shows
a latch which is a fundamental component of all storage elements.
The value of R12 becomes TRUE (latched) if the value of R11
becomes TRUE and the value remains TRUE until the value of
R13 becomes TRUE (unlatched). The equivalent model description is shown in the text of the figure. Notice that R12 is shown
on both the right and the left hand side of the text, but their timing
is different by the operator “next”. Because R7 in rung 6 is also
shown in rung 3 as an output, the value of R7 has been already
changed when the PLC starts scanning rung 6 (only in the
rung-by-rung scanning order). So the value of R7 in rung 6 is the
same as the next value of R7 changed in rung 3. R7 in rung 6 is
represented in the model description as next(R7) instead of R7
even though R7 is shown on the left hand side of the rung. The
conversion rule here is that if the input variable is already shown
as an output variable above the current rung, the operator “next”
should be added to represent the variable in the model description. We can translate a RLL into a corresponding system model
for its verification using the conversion rules shown in Fig. 3.
The models of other advanced PLC features such as timers are
needed to verify RLLs more completely.
i ~ T d *
Bit Table
-
Sensors
I
I
I
Processes
I
Actuators
1 “;_.-.-..-.-~.-.--.-__.._~
Process System
I
._I_“.I__-_
-=
I
-
_-.llll-
*
ri
Fig. I Dataflow between a PLC and a process yystem
bit I
Normally Open Contact
=0
{ 0,1, ifif bitl
bitl = 1
k
“w.”
bit2
(
Normally Closed Contact
Output Coil
&
~
0, if bit2 = 1
1, if bit2 = 0
bit3 = 0, i f f = 0
bit3 = 1, i f f = 1
Fig. 2. RLL input and output symbols as adaptedfrom 141.
Rung 1
-+
next(R2) := R1
Rung 2
next(R4) := -R3
R6
R5
Rung 4
next(R10) := R B I
R9
Rung 6
~~7HR~y~l
next(R15) := next(R7) & R14
R15
Fig. 3. RLL and equivalent model description
54
. -
IEEE Control Systems
CTL Assertions
Assertions are questions about the behavior of the system with
respect to safety and operability. We use computation tree logic
(CTL) [2] to describe assertions formally. CTL is a variant of
propositional logic with additional operators for expressing temporal relationships. Propositional logic operators are (NOT),
& (AND), I (OR) and -> (imply). The time associated operators
include state quantifies and path quantifiers. The state quantifiers
are G (globally), F (future),X (next time), and U (until). The path
quantifiers are A (all) and E (some). For example, if g is a formula,
then Fg is TRUE if and only if g holds at some state in the future.
The path quantified formula AFg holds if g holds at some state
in all possible future. Also, EGg is TRUE if g is always TRUE
in some possible future. CTL is a branching time logic where the
temporal operators quantify over the paths that are possible from
a given state. The following abbreviations are used in writing
CTL formulas:
-
A F O = A[TRUE U,fl
EFO
E[TRUE U f l
A G O E -EF-f
EGO
-AFyf
Detailed explanation for the usage of CTL operators is in [ 7 ] .
for every state s E S do
for every f
if
sub(f0) of length i do
f = A[fl U f2] and f2 E set(s) or
f = E[fl U f2] and f2 E set(s) or
f = EXfl and $x[(s,x)E R and f l E set (x)] or
f = f l & f2 and f l E set(s) and f2 E set(s)
then add f to set(s) end if
end for
end for
E
A: for j = 1 to card (s) do
for every state s E S do
for every f E sub(f0) of length i do
i f f = A[fl U f2] and f l E set(s) and
Vx[(s,x) E R - Z f E set (x)] or
f = E[fl U f2] and f l E set(s) and
3x[(s,x)E R & f E set (x)]
then add f to set(s) end if
end for
B:end for
end for
for every state s E S do
for every f E sub(f0) of length i do
i f f @ set(s) then add -f to set(s) end if
end for
C:end for
Fig. 4. Model checking algorithm of pass i as adapted from 121.
Model Checker
lengthvo). On pass i, every state s E S is labeled withfor -ffor
The model checker is a program which determines whether
each
formula f E sub(f0) of length i. The information, gathered
the assertion is satisfied in the model being verified. The model
checker constructs a complete state transition graph of the sys- in earlier passes about formulas of length less than i, is used to
thenf should
tern. Then, using an efficient graph algorithm, it labels the perform the labeling. For example, iff =fl &p,
vertices in the graph which satisfy each subformula of the asser- be placed in the set for s precisely whenfl a n d p are already
tion, following the parse tree of the formula from inner to outer present in the set for s. Information from the successor states of
subformulas. For each CTL operator, there is an algorithm for s is used for modalities such as A V Up].Since A W Up]=f2
&l
AXAlfl U f l ] ) ,ALfl U f L ] should be placed in the set for
determining the truth of a formula constructed with the operator, I (f
given that the truth of the subformulas has already been deter- s whenfl is already in the set for s or whenfl is in the set for s
mined. The model checker is the combination of these algo- and ALfl U,f2] is in the set of each immediate successor state of
rithms. For the detailed algorithms, see [2].
S.
Fig. 5 illustrates the model checking algorithm. A state tranThe model checker may also be used to provide a counterexample to a FALSE assertion. The trace of a counterexample is a sition graph to be verified, coming from a system model, is shown
sequence of states that demonstrates why the formula being in FigS(a). The next graphs show snapshots of the algorithm in
tested is FALSE. When the model checker determines that an operation for the formula AF h & EG a (which abbreviates AF b
assertion is FALSE, it tries to find a path which demonstrates that & -AF-a). The given formula is broken into the following
the negation of the assertion is TRUE. This feature is quite useful subformulas:
for locating the cause of errors in the system being verified.
{ h, -a, AF-a, AFb, -AF-a, AFh & -AF-a}
A part of the model checking algorithm is given in Fig. 4 [2].
Assume that we determine whether formulaf is TRUE in a finite
structure M = (S, R, P). S is a finite set of states, R is a binary The first two subformulas are used to determine the labeling of
relation on S which gives the possible transitions between states each state. Then if b is labeled TRUE, the state is labeled again
and P(s) is the set of TRUE atomic propositions in state s, where as AFh is TRUE. Similarly, if -a is TRUE, AF-a is TRUE.
an atomic proposition is the state variable which denotes the Consequently AFh is labeled in state 1 and 3, and AF-a is labeled
property of interest and has either TRUE or FALSE value. in state 1 as shown in Fig. 5(b). The next step is to propagate AFb
StatementM, s I= f means that formulafholds at states in structure to its previous states. Since AFh is TRUE in state 3, it is true in
M . Let sub(fo) denote the set of subformulas offo. We label each state 2 as shown in Fig. 5(c). Similarly it is also TRUE in state 0
state s E S with the set of positive/negative formulas f in sub(fo) as shown in Fig. 5(d). The last two subformulas are labeled in
so that f E label(s) if and only if M , s I=fand - f ~label(s) if and Fig. 5(e) and 30. In this case, the answer of the model checker
only if M , s I= -f The algorithm makes I I + I passes where 17 = to the assertion is TRUE since the assertion is TRUE in state 0
April 1994
55
danger signal (dl)
push button (APB)
horn (horn)
warning light (lig)
Fig. 6. A single-alarm system as adapted from [9].
~ i5 ,A~ ,
process with assertion AFh & E C ;as
~ adapted
from 121. ( a )A system model to he verified. (b) First time at label A
in pass 1 . (c) First time at label B in pass 1 . ( d )Second time at label
B in pass 1. ( e ) First time at label C in pass 1. (fi At termination.
s(f). A thorough description of the model checking
algorithm is given in [2],
So far, the three components of the modcl checking verification method (model, assertion, modcl checker) have been explained. The following examples illustrate the verification
method by testing alarm systems.
of Fig.
allowable limit: for example, a reactor is in a high temperature
or in a low pressure state.
Informal design specifications for the RLL of this alarm
system are the following. If the danger signal is detected ( d l =
I), the alarm system sounds the hom (hom = 1). The operator
may press the push button (APB = 1) to shut off the hom. At the
same time, the operator’s acknowledge signal (APB = 1) tums
on the warning light (lig = 1). The light stays on as long as the
danger signal remains (dl = 1). In the meantime, the operator
(hopefully) corrects the cause of the problem. As soon as the
danger signal ceases (dl = 0), the light tums off (lig = 0) and the
system retums to its initial normal state. Suppose that an engineer
designs a RLL for the alarm system as shown in Fig. 7 based on
the above specifications. Now we can use the verification method
to make sure that the RLL follows all the given specifications.
As the first step of the verification, we need to model the RLL.
Fig. 8 shows a part of the representation of the RLL in the
model checking language. Each line of the figure corresponds to
each rung shown in Fig. 7. At every time step (scanning time of
a PLC), thc dependent variables, R1,hom and lig, change according to the right hand side rules of each line. At the same time
the independent variables, dl and APB, vary freely: that is, each
independent variable can be either 0 or 1 in every time step. Since
the number of the independent variables is two in this example,
the number of possible situations is four (2*) in every time step.
The model checker verifies all those possible cases efficiently as
time goes by.
With the system description, we are ready to ask questions
about the behavior of the RLL. Fig. 9 shows assertions and
executions of the automatic model checker applied to the system
description. The lines in bold face represent inputs (assertions)
from the user. The first three assertions shown in lines 1,4, and
Case Studies
This example illustrates the modeling of RLL and the use of
the verification method. First, we will test a single alarm system
to demonstrate the usefulness of counterexamples. Then, we
multiply the single alarms and verify the multiple alarm systems
to compare the size of the memory used in verifying different
structures of RLL.
Single-Alarm System
Consider a typical alarm system shown in Fig. 6 [9]. The
system has two binary inputs: the danger signal (dl) and the
operator’s acknowledge push button signal (APB) and two bin a y outputs: the hum (hom) and the warning light (lig). Each
binary variable has a value of either 1 (TRUE) or 0 (FALSE).
1 1 4 1
I
next(R1) := ((-dl & (APB I -horn)) I R1) &((-horn & -APB) I -dl);
next(horn) := ((next(R1) & d l ) 1 horn) & -APB;
next(lig) := ((dl & APB) I lig) & (next(R1) I d l ) ;
-i
Fig. 8. System description for the RLL shown in Fig. 7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
I= AG(APB -5 AF -horn)
The assertion is TRUE.
is equivalent to A[horn Unless APB], which means that the horn
remains TRUE unless APB is TRUE. The assertion examines the
case where once the horn turns on, then the horn keeps on unless
the push button is pressed. The push button may not be pressed
forever. The answer is TRUE as shown in line 8. The results of
the above three tests indicate that the horn behaves correctly as
the user requires.
Now we test the behavior of the warning light. The CTL
expression, shown in line 10,
AG (-dl -> A F -1ig)
I= AG(-dl & -APB -Z AX(d1 & -APB -> AF horn))
The assertion is TRUE.
I= AG(horn -> -E[-APB U (-horn & -Ape)])
The assertion is TRUE.
I= AG(-dl -5 AF-lis)
The assertion is FALSE.
State 0: R1 = 1, horn = 0, lig = 0, d l = 0, APB = 0
State 1: d l = 1
State 2: horn = 1
State 3: R1 = 0, APB = 1
State 4: horn = 0, lig = 1, d l = 0, APB = 0
AF (-lig) is FALSE:
State 5: R1 = 1, d l = 1
State 6: horn = 1
State 7: R1 = 0, APB = 1
State 8: horn = 0, d l = 0, APB = 0
Fig. 9. Model checker execution for the RLL.
means that the light does not turn on without the danger input.
The answer is FALSE. This means that there is a state that the
light turns on (lig = 1) when there has been no danger signal (dl
= 0). Let us trace the counterexample to locate the error. The
initial condition shown in line 13 is that all variables except R1
are zero (FALSE). The danger signal (dl) is detected in state 1.
The horn sounds in state 2. The acknowledge push button (APB)
is pressed in state 3. The hom goes off and the light turns on in
state 4. In the following states as shown in line 19, the light does
not always turn off again even though the danger signal disappeared. One example is the loop, states 5, 6, 7, 8, 5 , ... . This
behavior confuses the operator because the warning light is still
on even though heishe already removed the cause of the problem.
This counterexample might suggest a modification to the design,
particularly the logic part related to the light. Current methods
do not automatically correct the system design.
For the light to work properly for this situation, the RLL
should be revised. Fig. 10 illustrates a possible solution by
removing R1 in the third rung of the RLL.
I
7 are questions about the behavior of the hom, and the last
assertion is about the light. The first assertion
AG (APB -> AF -hom)
makes the model checker search all possible states in the system
and answer the question, “If the push button is pressed, does the
hom eventually shut off?” This assertion tests the tuming off
behavior of the horn. The model checker’s answer to this question
is TRUE as shown in line 2 of Fig. 9, which means that pressing
the push button always makes the horn shut off eventually. Now
we want to check the sequence of tuming on the hom. The second
assertion
Fig. IO. Revised third rung.
The same assertions are used to check the revised RLL as
shown in lines 1 through 11 of Fig. 11. Two more assertions are
added to test the behavior of the warning light as shown in lines
13 to 17. The TRUE answers mean that the light behaves as the
designer requires. The assertion in line 19,
AG (-dl & -APB ->AX(dl & -APB -> A F hom))
AG -(hom & lig)
means if the push button is not pressed and, in the next time
instant, the danger signal comes in (dl changes from 0 to l), then
the horn sounds eventually. The model checker answers that this
test is TRUE as shown in line 5. The third assertion
asks whether there is any situation that the horn sounds and the
light is on simultaneously.The answer TRUE means that the hom
and the light are never on simultaneously, which is implied in the
original specifications. All the tests shown in Fig. 11 assure the
user that the alarm system follows the given specifications. This
method does not guarantee anything about the system behavior
which is not asked.
AG(horn -> -E[-APB U (-hom & -APB)])
tests the time period when the hom sounds. The second part of
the CTL expression
-E[-APB U (-horn & -APB)]
April 1994
Multiple-Alarm Systems
The following examples illustrate the performance of the
model checker in multiple-alarm designs. Two different multi-
57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
I=AG(APB -> AF -horn)
The assertion is TRUE.
I= AG(-dl & -APB -> AX(d1 & -APB -> AF horn))
The assertion is TRUE.
I= AG(horn -> -E[-APB U (-horn 81-Ape)])
The assertion is TRUE.
I=AG(-dl
-> AF(-lig))
The assertion is TRUE.
I
. .
R1
I= AG(d1 & -APB -> AX(d1 & APB -> AF lig))
The assertion is TRUE.
17
I= AG(lig -> -E[dl U (-lig & dl)])
The assertion is TRUE.
18
19
20
I= AG-(horn & lig)
The assertion is TRUE.
Fig. 11. Model checker e.wecution for the revised RLL.
ple-alarm systems are tested: 1) modular system and 2) merged
input variable system. These alarm systems are based on the
previous single alarm system. We will describe the two systems
and compare the size of the computer memory used for their
verification. We use the same assertions applied to the single
alarm system as shown in Fig. 1 1 to test all the multiple-alarm
systems.
q
;:7GP
j
APBi
horni APBi
horni
Ri
Modular System. This system consists of many modules of
the single alarm system as shown in Fig. 12. There is no interaction among the modules. Each variable is connected to its own
hom (or voice) and light. The upper line of Fig. 14 shows that
the computer memory used for the verification grows fast as the
number of alarms increases.
Merged Input Variable System. Fig. 13 shows a different
design of the multiple-alarm system. As shown in the first rung
of the figure, all input variables are connected in parallel and
merged into one variable, det. Other rungs are the same as the
single-alarm system. If any of those inputs become TRUE, the
coil det becomes activated and the hom sounds. This system
requires a smaller state space than the modular multiple-alarm
system. The memory size required to verify this system grows
slowly and linearly as the number of alarms increases as shown
in Fig. 14.
This example demonstrates that the memory size heavily
depends on the RLL structure. The number of states needed to
be checked for the modular system grows almost exponentially
as the number of alarms grows, while the number of states for
the merged system grows linearly.
The CPU time needed to solve these multiple-alarm examples
follows the same trend as the memory size. None of the runs
required more than 30 s with the automatic model checker
running on a DEC 3 100.
Summary of the Method
The integrity of PLC-based control systems depends in part
on the correctness of their software. In the traditional approach
58
-
Fig. 12. RLL for the modular alarm system
to test the software, a series of manual tests is used to find errors.
Simulators are frequently used to test the software formally, but
there is a limit in the number of test cases. We have developed
an automatic verification method to identify errors in RLL, a
popular programming language used in PLCs. The method is:
complete in the sense that it checks all possible cases for the
system being verified,
efficient because it searches the state space symbolically,and
automatic in its determination of the error existence.
This method consists of three components: a model of RLL,
assertions which represent questions about the system, and a
model checker which automatically determines whether the system operates as specified by assertions. The single-alarm example demonstrates that the method is able to express RLL and
assertions and it can find errors. The performance of the model
checker has been tested in a series of multiple-alarm designs. The
IEEE Control Systems
system integrity depends on the user’s interpretation of the
system and has not been automated in this research. Applications
to industrially relevant problems will require
an interface converting RLL in PLCs into a model description
that the model checker can read,
model templates for timers, counters, arithmetic computation,
file handling, and other high level functions, and
a high level language for a user to describe assertions easily.
Acknowledgment
The author wishes to thank Gary Powers and Scott Probst in
Chemical Engineering, Edmund Clarke in Computer Science,
and Bruce Krogh in Electrical and Computer Engineering at
Camegie Mellon University for numerous beneficial discussions.
References
[ l ] J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill and J. Hwang,
“Symbolic model checking: lo2’ states and beyond,” Info. Cornput., vol. 98,
no. 2, pp. 142-170, June 1992.
[2] E.M. Clarke, E.A. Emerson and A.P. Sistla, “Automatic verification of
finite-state concurrent systems using temporal logic specifications,” ACM
Trans. frog. Lung. Sysr., vol. 8, no. 2, pp. 244-263, Apr. 1986.
~
e
~
lig
[3] A.J. Crispin, Programmable Logic Controllers and their Engineering
~
~
Applicurions. New York: McGraw
Hill, 1990.
[4] A. Falcione and B.H. Krogh, “Design recovery for relay ladder logic,”
lig
IEEE Control Syst. Mug., vol. 13, no. 2, pp. 90-98, Apr. 1993.
Fig. 13. RLL for the merged input variable alarm system
[5] Y. Ho, “Dynamics of discrete event systems,” in Proc. IEEE, vol. 77, no.
1, pp. 3, Jan. 1989.
[6] A.J. Laduzinsky, “PLCs develop new hardware and software personalities.” Control Eng.. vol. 37, no. 2, pp. 53, Feb. 1990.
[7] I. Moon, G.J. Powers, J.R. Burch, and E.M. Clarke, “Automatic verification of sequential control systems using temporal logic,” Amer. Insr. Chem.
Eng. J . , vol. 38, no. 1, pp. 67-75, 1992.
10-
8-
[8] J.D. Otter, Programmable Logic Controllers;Operarion, Interfacing and
Programming. Englewood Cliffs, NJ: Prentice-Hall, pp. 75-77, 1988.
6-
[9] D.W. Pessen, “Using programmable controllers for sequential systems
with random inputs,”Proc. Insr. Mech. Eng., vol. 201, no. C4, pp. 245, 1987.
4-
[ 101 L.A. Ready, “Programming PLCs with sequential logic,” Control Eng.,
vol. 38, no. 15, pp. 101-107, Nov. 1991.
2merged system
0-
0
I
10
20
-
I
30
-
I
40
.
I
*
50
,
60
.
I
70
.
,
80
.
90
Number of alarms
Fig. 14. Relationship between the size of state spaces and the number
of alarms.
method currently is limited to the verification of discrete event
systems and depends on the development of process models. In
addition, the generation of appropriate CTL assertions to assure
April 1994
II Moon received the B.S. degree from Yonsei University, Korea in 1983, the M.S. degree from
KAIST, Korea, in 1985, and the Ph.D. degree from
Carnegie Mellon University, Pittsburgh, PA, in
1992, all in Chemical Engineering. From 1985 to
1988 he undertook research at KIST, Korea, in the
development of diverse chemical processes. He did
post-doctoral work at Camegie Mellon in 1992 and
worked at the Centre for Process Systems Engineering, Imperial College, London, in 1993 as a Consultant. His research focuses on developing a methodology for the synthesis and
analysis of chemical process control systems. He recently joined the Chemical Engineering Department at Yonsei University as a Faculty Member.
59
I
Download