A discreteevent dynamic system (DEDS), or simply controller is difficult to modify. The first PLC’s worked with
discreteevent system, is a system with a discrete state specialized processors able to carry out logic operations. Then,
space and a state evolution which is determined by events. generalpurpose microprocessors were used in PLC’s when
For example, the state of a buffer in a manufacturing system microprocessors became cheaper and more powerful. PLC’s
is the number of parts in this buffer. This state changes when remain different from generalpurpose computers, however,
the event “a part is put into the buffer” or “a part is taken since their hardware is designed for the industrial environment.
out of the buffer” occurs. A dynamic physical system may be PLC’s are used extensively in many kinds of industries: man
seen either as a continuous variable dynamic system or as a ufacturing, metallurgy, chemical, paper, food, transportation,
discreteevent system, depending on the aim of the model. For handling industries, etc. Today, a PLC can handle several
example, if the state of a tank is the liquid level in this tank, hundreds of inputsoutputs, several PLC’s can be linked by
the corresponding model is a continuous variable system. This a communication network, and some PLC’s can carry out
tank may be modeled as a discreteevent system, however, if additional functions such as calculation and regulation. Many
we consider it may have only three states: empty, between of them are integrated in the production machines themselves,
empty and full, and full. in such a way that they are transparent to the machines’ users.
Basically, a logic controller is a discrete event system whose As long as the logic controllers were small systems, the
purpose is to control the behavior of a process which is itself classical models were sufficient to specify the logic control
(seen as) a discreteevent system, taking into account the state rules. There were two kinds of models. The first kind corre
of this process and other information coming from an operator sponds to the usual models of asynchronous sequential circuits,
or from other systems. This is illustrated in Fig. 1 where 2, y, state diagrams, or state tables [25], which represent automata,
2, and W are Boolean variables or vectors. i.e., hardware and software independent specifications. Note
Logic control is relevant to processes whose measurements that the automata are asynchronous because continuoustime
and actions are of a logic type. That means that these measure discreteevent systems are considered. The second kind cor
ments and actions can only take two values (for example, a responds to the representation as a possible implementation.
contact can be open or closed, a temperature has reached some The most famous is relay ladder logic (RLL) which is a
threshold or not). The measurement is input, and the action is graphical representation based on an analogy to physical
Manuscript received August 7, 1994. Recommended by Associate. Editor, relay systems [19]. In the early 1970’s, the need to describe
E. 0. King. increasingly complex logic controllers, the implementation of
The author is with the Laboratoired’Automatique de Grenoble (Associated which would be simplified by recent and future development
with CNRS), Institut National Polytechnique de Grenoble, B.P. 46, 38402
SaintMartind’HBres, France. of microprocessors, was becoming evident. Roughly speaking,
IEEE Log Number 9413134. it was required to represent large logic controllers with many
10636536/95$04.00 0 1995 IEEE
254 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY,VOL. 3, NO. 3, SEPTEMBER 1995
model which only describes the function to be performed, i.e., Level (continuous)
a sequential machine in the mathematical sense, free from all
hardware and software. The present article is an introductory
paper intended for academics and control engineers who want
to use formal models for specification of logic controllers.
The international standard Sequential Function Chart (SFC)
introduces a few modifications and is presented in a way
stressing the practical side. This point will be commented on
in Section VII.
The paper is organized as follows. Section IT presents the
concept of condition and the concept of event. The basic
notions used in the Grafcet and the interpretation algorithm
are presented in Section III and Section IV, respectively. The
macrosteps and macroactions, which are abbreviations of the
basic Grafcet, are presented in Section V. Section VI compares
the Grafcet with other models, and Section VI1 concludes the
paper.
f XI Time
11. CONDITIONS AND EVENTS fl 12
Fig. 4. Illustration of (a) Continuous state. (b) Discrete state. (c) Boolean
A. General Presentation encoding of discrete states. (d) Occurrences of an event.
than or equal to 10,” i.e., 2 3 = 1 if this predicate is true. If From now on, a,b . . . will denote either a Boolean variable
we assume that the number of parts in the buffer is encoded or a Boolean function.
as a fourdigit binary number y3 yz y1 yo (maximum number Notation 1: The symbol t takes precedence over the logic
+
of parts = 15), then 2 3 = y3(y1 yz). symbols and +. That is to say that Tu . b = (la). b and
The second kind of information relates to a change in the +
t u b = (tu) b. +
state of the environment. Such a change is called an event. Definitions 2a), b), and c) are illustrated in Fig. 5(b), (c),
An event has no duration, whereas the value of a Boolean and (d), respectively.
DAVID: GRAFCET A POWERFUL TOOL FOR SPECIFICATIONOF LOGIC CONTROLLERS 251
Inactive
El
Active
El
Fig. 6. Representation of a step.
3) f a . f a = f a , f a fa’ = 0, f a . e = fa.
1
a and b are not independent, as we shall specify). Properties 1l), 12), and 13) are obvious from Definitions
+
c) f a f b is an event which occurs each time that either 1 and 2. The proofs of Properties 14) and 13, based on
f a or t b occurs. Hypothesis 1, can be found in [7]. Property 15) shows that
d) Let S be a system whose behavior depends on the set the events t(a .b) and T ( a c ) can occur simultaneously since
of events E. Let E ( t ) the event signal associated with they are not independent.
S at time t: E ( t ) E E U { E } where E is the absence of
an event in E at time t.
III. BASICNOTIONS
Notation 2:
a) Let El and E2 be two events. We write El = E2, if A grafcet is a graph having two types of nodes, i.e., steps
E1 and E2 are equivalent, i.e., if they always occur at and transitions (a grafcet contains at least one step and one
the same time. transition). Directed arcs either connect a step to a transition
b) We write El = 0, if El is an event which never occurs. or a transition to a step. The original graphical representation
+
c) We denote e = C E t EE;E E. We call e the “always was similar to the representation of a Petri net [l]: a step was
represented by a circle as a place in a Petri net, and a transition
occurrent” event (it will be used in Section IIIB3).
was represented by a bar as in a Petri net. Then a standardized
Dejinition 3: Two events El and E2 are independent if
representation was introduced [113. We shall present only the
there is no event E; such that El = X+A.Ei, E2 = Y+B.Ei,
standardized representation.
where X and Y are events, A and B are Boolean functions
+ +
or events such that X Y A . B . Ei > X Y . +
For example El = f f and E2 = fg may not be independent A. Steps and Transitions
if both depend on the same Boolean variable a, e.g., f = a b a Steps: A step is represented by a square as shown in Fig. 6.
and g = a. In this example, the reader may verify (using A step may have two states: it may either be active (this is
Property 14) below) that E; = f a , X = f b a’, A = b’, Y = represented by a token in the step) as is the case of step 2
0 and B = 1. in Fig. 6, or inactive as is the case of step 1 in Fig. 6. The
Hypothesis 1: Two independent events never occur simul steps which should be active when the system is started and
taneously. That is to say that f a f b = 0, if a and b are two
e represented by a double square. These are known as initial
independent variables. steps (step 3 in Fig. 6). Actions are associated with the steps,
Hypothesis 1 is based on the fact that an event has no and these are the outputs of the grafcet (this will be specified
duration and that continuoustime models are considered. Then in Section 111C).
258 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 3, NO. 3. SEPTEMBER 1995
Junction AND
R2
Distribution AND
Fig. 7. Representation of a transition. a source transition and a transition without output steps as a
sink transition.
On the other hand, a directed link must always have a
departure node (transition or step) and an arrival node (step
Simple or transition).
I ab
I 00 01 I1 10
ab
w 01 I1 10
(a) (b)
(a) (b) (C) (4 Fig. 12. The receptivity R8 = t u . b is the product of an event,fa and a
Fig. 10. The receptivity is a condition: R3 = a (a) and (b) The value of a condition b.
is unique when step 6 becomes active (c) and (d) The variable a may have
any Boolean value when step 6 becomes active.
situation { 6) is stable. If a = 0 when situation { 6) is reached
(state 6 2 in the state table), firing of transition (3) will occur
a6 as soon as a takes the value 1. If a = 1 when situation (63
w 01 II 10
is reached (state 61 in the state table), the event Tu can occur
only after a change of a to 0 (leading from 61 to 62).
Remark 3: It appears on the example of Fig. 1l(c) and (d)
that a step (even if it is the only active one) does not always
correspond to a single internal state.
(a) (b) (C) (d) 3) The Receptivity is the Product of an Event and a Condi
Fig. 11. The receptivity is an event: R3 = Tu (a) and (b) The value of a is tion: This is illustrated in Fig. 12. The receptivity of transition
unique when step 6 becomes active (c) and (d) The variable a may have any (8) is R8 = Tu. b. When step 3 is active the internal state is
Boolean value when step 6 becomes active.
either 31 or 3 2 [Fig. 12(b)]. Assume that step 3 is active. The
firing of transition (8) will occur if b = 1 when l a occurs. Then
becomes active. Step 6 remains active as long as a = 0, and the input state must be ab = 01 just before the firing (state
the firing occurs as soon as the value of a = changes to 1. 32). When the state 3 2 is reached, two events can occur: either
In Fig. 1O(c) and (d), the value of a may be either 0 or t u which leads to situation {4), or l b leading back to state 31.
1 when step 6 becomes active. Step 5 corresponds to two Note that from the stable state (32, 01) the column ab = 10
total states since a may have any Boolean value. These total cannot be reached since two independent events cannot occur
states are noted (5, 00) and (5, 10) since they are stable in simultaneously (Hypothesis 1).
the columns where ab = 00 and 10, respectively. When the Generalization: This third case is the most general, whereas
receptivity R2 = b takes the value 1, then transition (2) is the first two are particular cases. Indeed, a receptivity R; may
fired and the situation (6) is reached. If a = 0 at this time, always be written as R, = E; . Ci using:
then situation (6) is stable. But if a = 1, transition (3) is 1) The “always true” condition, written as Ci = 1, which
immediately fired and situation (7) is reached that means is associated with receptivities Ri which only depend on
that situation (6) is unstable. an external event Ei. For example, R2 = E2 means that
This behavior is illustrated in Fig. 10(d). If the total state C2 = 1, thus R2 = E2 e R2 = E 2 . 1 .
is (5, 00) when b changes to 1, the unstable state (5, 01) 2) The “always occurrent” event, written as e (see Notation
then the stable state (6, 01) are reached. Now, if the total 2), which is associated with receptivities Ri which only
state is (5, 10) when b changes to 1, the unstable state (5, depend on a condition Ci.For example, R3 = C3 means
1l), the unstable state (6, 11) and the stable state (7, 11) are
successively reached. If the stable state is (6, Ol), b may change
that E3 = e, thus R3 = C3 R3 = e C3. 
any number of times; the system state is either (6, 01) or (6, Remark 4: According to Definition 2a) and Remark 13),
the product of an event and a condition is an event. Then,
00). From both cases, if a changes to 1, the state 7 is reached
from the above generalization, a receptivity can always be
(either (7, 11) or (7, 10)).
considered as an event. It follows that a receptivity which
2) The Receptivity is an Event: This is illustrated in
Fig. 11. The transition under consideration is (3) with a would be the sum of an event Ei and a condition Rj may be
receptivity R3 = Tu. The firing of (3) occurs if step 6 is considered as the sum of both events E; and e . Rj, i.e., an
active, and as soon as the event t u occurs. Fig. ll(a) and (b) event by extension.
illustrate a case where a = 0 when the step becomes active. 4) Firing Rules:
Step 6 remains active until t u occurs, i.e., until a changes Rule 1 ) All firable transitions are immediately fired.
to 1. The behaviors of Fig. 1O(a) and ll(a) are quite similar. Rule 2) Several simultaneously firable transitions are si
This is consistent with Definition 1. multaneously fired.
In Fig. ll(c) and (d), the value of a may be either 0 or 1 Rule 3) When a step must be simultaneously activated and
when step 6 becomes active. When the receptivity R2 = b deactivated, it remains active.
takes the value 1, then transition (2) is fired, and the situation These rules are essential for understanding and interpreting
(6) is reached. If a = 0 at this time, then situation (6) Grafcet. The first and third are easy to understand and require
corresponds to state 6 2 in Fig. 1l(d). But if a = 1, situation no particular commentary. The second is extremely important,
(6) corresponds to state 61 in Fig. ll(d). In both cases, the first because its application results in an interpretation different
260 IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, VOL. 3, NO. 3, SEF'TEMBER 1995
Before ( 6 7 9b
fir,",
673
(a) (b)
Fig. 13. Illustration of simultaneous firings.
Rs = a . b. Since the receptivities are mutually exclusive, at
the most one of them may be true at any time.
from that of a Petri net (this point will be commented in C. Actions and Outputs
Section VIB), and second because it may be the origin of There are two major categories of actions, namely level and
specification errors. impulse actions.
Fig. 13 presents two examples of simultaneous firing. In 1) Level Action: A level action is modeled by a Boolean
Fig. 13(a), transitions (1) and (2), belonging to the same variable. It may be unconditional or conditional.
grafcet, are enabled. When the Boolean variable a assumes The action A in Fig. 14(a) is unconditional. This means
the value 1, both these transitions are simultaneously firable that A assumes the value 1 when step 7 becomes active up
and are thus simultaneously fired according to Rule 2. This to the moment when this step becomes inactive, without any
evolution from situation { 1,2} to situation {3,4} presents no other condition. This is illustrated by the Moore asynchronous
problems since the enabling conditions for transitions (1) and state table in Fig. 14(b) (in a Moore machine the value of an
(2) are independent. In fact, if RI # Rz and transition (1) output depends only on the internal state), and an example of
were fired before transition (2), transition (2) would remain behavior is presented in Fig. 14(c).
enabled, and vice versa. The action A in Fig. 15(a) is conditional. Action A assumes
Fig. 13(b) presents a considerably different case. Although the value 1 when step 7 is active if b = 1. This is illustrated by
transitions (6) and (7) are also simultaneously fired when the Mealy asynchronous state table in Fig. 15(b) (in a Mealy
variable b assumes value 1, we observe that there is no machine the value of an output depends on the total state), and
independence between the enablings of these two transitions. an example of behavior is presented in Fig. 15(c).
In fact, if R6 # R7 and transition (6) were fired before 2) Impulse Action: An impulse action is responsible for
transition (7), step 8 alone would be active and transition changing the value of a discrete variable. The latter may be
(7) would no longer be enabled. This cannot occur since a Boolean variable or any other discrete variable (e.g., the
R6 = R7 = b. We may encounter, however, cases where value of a counter). An impulse action associated with a step
R6 # R7. The final result may then depend on the order in is carried out as soon as this step changes from the inactive
which the following 3 events take place: 1) step 7 becomes to the active state, regardless of the time during which this
active, 2) receptivity R6 becomes true, and 3) receptivity R7 step remains active (even infinitely short). An impulse action
becomes true. may be said to be an order (do this...), whereas a level action
Remark5: Note that Fig. 13(b) may be replaced by indicates a state.
Fig. 13(c) which has an identical evolution (as far as In Fig. 16(a), action B* is an impulse action. The asterisk
the successive situations are concerned) but is without was recommended at the origin of Grafcet to indicate the
simultaneous firing. Assume that there are several transitions impulse character of an action. It does not always, however,
following some step i. It is always possible to modify the serve a purpose. For example, incrementing a counter C can
grafcet to not have more than one of these transitions which be written as (C t C + 1)*or simply (C t C 1) since +
can be fired (this is recommended). Example: assume Rs = a there is no ambiguity concerning the impulse character of this
and R7 = b in Fig. 13(b). We modify the receptivities as action. An example of this behavior is presented in Fig. 16(c):
R6 = a . b' and R7 = a'. b, and we add a transition (8) with an if the situation is { 6}, as soon as a assumes the value 1, the
input step 7, with output steps 8 and 9 and with a receptivity situation (7) is reached and action B* is executed.
DAVID: GFUFCET: A POWERFUL TOOL FOR SPECIFICATION OF LOGIC CONTROLLERS 26 1
ab
Control Section
(logic controller)
Processing Section
Control Section
(calculation, timing ...)
Unstable
B* and C* denote
I61
impulse acrions
ob
151 171
00 01 II 10
Fig. 17. Actions associated with an unstable step. 111 ~ (21 ~ 131 1141
b !
We have illustrated this example with the state table in I , ,
 
011 101

111

110
used in a receptivity (but it is recommended to be very careful
with an event T ( X i ) [16]).
0

2,3 2.3 2.3
A. Interpretation Algorithm
E. Taking into Account Internal State and Time
We shall now introduce the variable written as Xi. Algorithm: Interpretation of the Grafcet
Definition 5: The variable X i is a Boolean variable which Step 1 ) Initialization: activation of the initial steps and
is equal to 1 when step i is active. execution of the associated impulse actions. Go to
In Fig. 21(a) we have x5 = 1, and x6 = 0. Step 5.
In the original Grafcet, a variable TF is introduced. The Step 2) When a new external event occurs, determine the
same variable is written as t / i / A in the French standard, and set T1 of the transitions firable on occurrence of
this is the notation that we shall use here. In the international this event. If T1 is not empty, go to Step 3.
standard, other possibilities have been considered. Otherwise, modify if necessary the state of the
Definition 6: The variable t / i / A is a Boolean variable conditional actions associated with the active steps
which equals 1 if a time at least equal to A has elapsed since (in fact, certain actions may depend on conditions
the last time that step i moved from the inactive to the active the values of which may have changed). Wait for a
state. new extemal event at Step 2.
This is illustrated in Fig. 21. Step 5 is active, i.e., X5 = 1. Step 3) Fire all the firable transitions. If the situation re
When variable a assumes the value 1, step 6 becomes active, mains unchanged after this simultaneous firing, go
i.e., x6 assumes the value 1. The Boolean variable t/6/10 sec to Step 6.
assumes the value 1 ten seconds later. It will keep this value Step 4) Carry out all the impulse actions associated with
until the variable X, next changes from state 0 to state 1. Note the steps having become active at Step 3 (including
that the moment when step 6 becomes inactive again has no initialization of the time delays).
influence. Step 5 ) Determine the set T2 of the transitions firable on
A Boolean variable X i or t / i / A can be used in a receptivity occurrence of event e (always occurrent). If T2 is
or as a condition for a level action. An event t ( t / i / A )can be not empty, go to Step 3.
~
B. Example
Tank Filling Modijed: The controlled system is the same
as in Fig. 2. The control specifications are modified as follows:
1) The filling process is no longer allowed if the button m
is pressed (i.e., if m = 1) but it is triggered by pressing
push button m (i.e., by tm).
2) A counter is added: the value C in the counter represents
the number of cycles (emptying and filling of Tank 2).
From this specification, the grafcet in Fig. 22(a) can be ob
tained. (This grafcet is not the unique solution to the problem
of constructing a grafcet representing this specification.) The
receptivity R1 = 1 means that it is always true. The operations
on the counter are impulse actions.
Example: Let us apply the interpretation algorithm from the
initial situation (1, 7) for the timing diagram in Fig. 22(b).
This diagram corresponds to the string of external events
"tbl t b 2 t hl . . .
Step I ) Initialization: we have the initial situation { 1,7}.
The impulse action (C t l)*,associated with step 7, is
executed (then C = 1).
Step 5 ) Only transition (6) is enabled. It is firable
on occurrence of e since the receptivity is always Fig. 22.
. .
true. Thus T 2 = ((6)). example (partial) with a single initial state.
Step 3) Firing of the transition (6). Situation { 1,
4) is reached.
Step 4 ) The impulse action (C t C +l)*,
Step 6) Stable situation (2, 5 ) . A0 is empty
associated with step 4, is executed (then C = 0).
Step 5 ) T 2 is found to be empty, i.e., T 2 = 0. and AI = {VI, Vz}. Then VI and V2 assume the
Step 6 ) Stable situation { 1 , 4). A. and AI are value 1.
empty. Step 2 ) When event l m occurs, we have T1 = 0.
Step 2) When event Tm occurs, we have T1 = {(I)}. Step 2) When event fbl occurs, we have T1 = 0.
Step 2) When event Tb2 occurs, we have T1 = 0.
Step 3) Firing of the transition (1). Situation { 2, Step 2 ) When event Thl occurs, we have TI = ((2)).
5 ) is reached.
Step 4 ) No impulse action associated with steps Step 3 ) Firing of the transition (2). Situation
2 and 5. { 3 , 5 } is reached.
Step 5 ) The enabled transitions are (2) and (4). Step 4 ) No impulse action associated with step
We have hl = h2 = 0. Thus T2 is empty. 3.
264
I‘
‘\
G2
b &c’
another logic controller (described by another grafcet), this Petri nets (with a Grafcet type inputloutput interpretation) Grafcets
ab
M) 01 11 IO I s I
(a)
Fig. 26. Grafcet corresponding to a synchronous machine.
Implementation: When some input of a logic controller For specification of large realtime systems, a Petri net or
changes, this controller must react “immediately” by modi a grafcet may become very large, and using synchronous lan
fying its output state which controls the process. Hence, any guages may be another way to specify the controllers [4], [141.
logic controller model is an asynchronous, continuoustime Systems of reasonable size, however, may be described by
model. This is true for the four models in Fig. 3. Each model Grafcet, and it appears that this model is extensively used in
is a specification, i.e., a mathematical model where time is not French industry because it is very easy to understand; hence,
involved. Once a logic controller has been specified, it must debugging and maintenance of programs based on Grafcet are
be implemented [15], [22]. easy. Grafcet has been successfully used in the implementation
The implementation is different from the specification since of supervisors designed on controlledautomata based concepts
the necessary time for any operation must be taken into ac [3]. Some companies, particularly in the USA, have already
count in practice. The important feature is that the inputoutput developed many PLC programs based on a RLL specification.
behavior of the implementation must be the same as the Since these programs must be maintained, it is difficult for
inputoutput behavior of the specification (even if the time to them to switch to a Grafcet specification. This is why some
reach a new output state is not null). Races between variables research has been done on automatic translation of RLL
is a problem which is well known in hardwired logic. Similar programs into Grafcet [lo].
problems occur in programmed logic, even if their cause is
not the same. Usually, a PLC scans the logic controller inputs ACKNOWLEDGMENT
and computes the next internal and output state before a new The author would like to thank B. H. Krogh for helpful
scanning of inputs (this is different from the continuoustime discussions and for suggesting the presentation of Grafcet with
model). Let us call a cycle the period between two successive the help of the classical state table model.
input scans. In an RLL program, all the rungs are scanned and
updated in order in a cycle. Obviously, the order is important REFERENCES
since the value of an internal variable P depending on another,
Q, which changes during the cycle, may depend on the order [I] AFCET, “Normalisationde la representation du cahier des charges d u n
automatisme logique,” Final Report of AFCET Commission, Aug. 1977,
of P and Q in the program. For a Grafcet program, two points published in the J. Automatique et Znfomtique Zndustrielles (6162),
must be carefully considered: 1) Be sure that a stable state has Nov.Dec. 1977.
been reached before modifying the level outputs and scanning [2] M. Blanchard, “Comprendre,maitriser et appliquer le Grafcet,” Editions
Cepadues, Toulouse, 1979.
inputs again: this is ensured if the interpretation algorithm [3] B. Brandin and F. Charbonnier, “The supervisory control of the au
(Section IVA) is implemented. 2) If two independent input tomated manufacturing system of the AIP,” in Proc. 4th Znt. Con$
Computer Integrated Manufacturing Automation Technol., Troy, NY,
variables have changed during the same cycle and if behavior Oct. 1994, pp. 319324.
depends on the order of their changes, choose (even arbitrarily) [4] P. Caspi, D. Pilaud, N. Halbwachs, and J. Plaice, “LUSTRE, a declar
one of the orders. For example, assume a section of railway ative language for realtime programming,” in Proc. Con$ Principles
Programming Languages, Munich, 1987.
track, T , on which two tracks T, and T b converge. When a [5] R. David and H. Deneux, “Deterministic safe interpreted Petri
vehicle approaches T on track T,, the event ti occurs (i = a NetsRelation with the Grafcet model,” in Proc. 4th European Workshop
or b). Since the simultaneous arrival of a vehicle on each of Theory Applications Petri Nets, Toulouse, Sep. 1983.
[6] R. David and H. Alla, Du Grafcet aux rheaux de Petri. Paris: Hemes,
tracks T, and Tb is considered to be impossible, the designer 1989.
could have drawn up a grafcet such that two transitions, whose [7] R. David and H. Alla, Petri Nets and Grafcet: Tools f o r Modelling
receptivities are f a and f b , are enabled by the same step. If DiscreteEvent Systems. London: PrenticeHall, 1992.
[8] R. David, “Petri nets and Grafcet for specification of logic controllers,”
there is no technological means to distinguish which event ZFAC Congress, Sydney, vol. 3, pp. 335340, July 1993.
took place first when they occur almost simultaneously, the [9] R. David and H. Alla, “Petri nets for modeling of dynamic systemsA
survey,” Automatica, vol. 30, no. 2, pp. 175202, Feb. 1994.
receptivity Tu, for example, can be replaced by the redundant [IO] A. Falcione and B. H. Krogh, “Design recovery for relay ladder logic,”
receptivity Tu . b’. This is coherent with the algebra of events in Proc. IEEE Con$ Contr. Appl., Dayton, OH, Sep. 1992.
since Ta . b’ is an event, and the events f a . b’ and f b [I I] IEC, Intemational Electrotechnic Commission, Preparation of Function
Charts for Control Systems, publication 848, 1988.
cannot occur simultaneously. The priority of one transition [ 121 IEC, International Electrotechnic Commission, Programmable Con
over another one may be specified by the designer [7], then trollers, Part 3: Programming Languages, publication 11311, 1992.
[I31 H. Lecocq, “Programmable logic controllers,” in Handbook of Man
all implementations are similar. If the priority is chosen by the ufacturing Auromation and Integration, Stark, Ed. Boston: Auerbach
implementer, there are two possible implementations whose Publishers, Ch. VII.ll, pp. 805821, 1989.
behaviors are different only in a case whose probability is [ 141 P. Le Guemic, A. Benveniste, P. Boumai, and T. Gauthier, “SIGNAL: A
data flow oriented language for signal processing,” IEEE Trans. Acousr.,
close to zero. Speech, Signal Processing, vol. ASSP34 no. 2, pp. 362374, Apr. 1986.
A grafcet can be implemented by various literal or graphic [I51 J. Martinez and M. Silva, “A package for computer design of concurrent
language [121. Some Grafcetbased PLC’s have a graphic logic control systems,” in Symp. IFAC Software Computer Contr.,
SOCOCO, Madrid, Sep. 1982, pp. 221226.
editor. The structure of the SFC is introduced in the form of a [I61 M. Moalla and R. David, “Extension du Grafcet pour la reprksentation
drawing: the user draws the grafcet directly on the screen and de systtmes temps rkel complexes,” J. RAIRO, Automat. Contr. Series,
adds actions and receptivities in the language he has chosen vol. 15, no. 2, pp. 159192, 1981.
[I71 M. Moalla, “Rtseaux de Petri interprktts et Grafcet,” Technique Sci.
(literal or RLL) [24]. It is easier to understand behavior and Znformariques, vol. 14, no. 1, 1985.
to debug; for example, if a blocking in some situation is [I81 T. Murata, ‘‘Petri nets: Properties, analysis and applications,” Proc.
IEEE, vol. 77, no. 4, pp. 541580, 1989.
observed, the receptivities of the enabled transitions should [ 191 J. D. Otter, Programmable Logic Controllers: Operation, Zntrefacing,
be examined. and Programming. New York PrenticeHall, 1988.
J. L. Peterson, Petri Net Theory and the Modelling of Systems. Engle RenC David was bom in SaintNazaire,France, in
wood Cliffs, NJ: Prentice Hall, 1981. 1939. He received the Engineering Degree from
C. A. Petri, Kommunikation mit Automaten, Schriften des Rheinisch, the &ole Nationale Suphiewe # A r t s et Mbtiers,
Westfalischen Institutes fur Intrumentelle Mathematik and Der Univer the Automatic Control Engineering degree, and the
sitat Bonn, 1962, translation by C. F. Greene, Applied Data Research Doctorat d‘Etat &Sciences degree, both from the
Inc., Suppl.1 to Tech. Report RADCTR65337, N.Y., 1965. University of Grenoble, in 1962, 1965, and 1969,
M. Silva and S. Velilla, “Programmable logic controllersand Petri nets,” respectively.
Symp., IFAC Software Computer Contr., Madrid, Sep. 1982, pp. 2934. He is now Directeur de Recherche at the Centre
R. S . Sreenivas and B. H. Krogh, “On conditiodevent systems with National de la Recherche Scientifique, working at
discrete state realizations,” Discrete Event Dynamic Syst., vol. 1, no. 2, the Laboratoire d‘Automatique de Grenoble (in In
pp. 209236, 1991. stitut National Polytechnique de Grenoble). He was
Telemecanique, Terminal TSX Y607, Programmation PL73, Language Deputy Director of this laboratory from 1987 to 1990. His research interests
Grafcet, Tblbmbcanique,50/64 av. Arago, €92022 Nanterre cbdex, 1986. include design of logic controllers, testing of digital circuits, and modeling
S. H. Unger, Asynchronous Sequential Switching Circuits. New York and performance evaluation of manufacturing systems. He is the coauthor of
Wiley, 1969. Du Grafcet a m rheaux de Petri (Hermks, 1989) and Petri Nets & Grafcet:
R. Valette, “Analysis of Petri nets by stepwise refinements,” J. Computer Toolsfor Modelling DiscreteEvent System5 (PrenticeHall, 1992).
Syst. Sci., no. 18, pp. 3546, 1979.