You are on page 1of 14

Control Engineering Practice 9 (2001) 743756

Extensions of Grafcet to structure behavioural specications


Herv!e Gu!eguena,*, No.el Bouteilleb
a
!
Supelec, !
Campus de Rennes, Avenue de la Boulaie, BP 28, F35511 Cesson-Sevign e! Cedex, France
b
Schneider Electric, Division Scientique et Technique, 33 bis Avenue du Ml Jore, 92002 Nanterre Cedex, France
Received 9 July 1999; accepted 8 September 2000

Abstract

Grafcet is a powerful tool to specify sequential behaviours. However some limits of this formalism may be reached when dealing
with complex systems. The aim of this paper is to present new mechanisms that have been proposed in order to extend specication
capabilities of Grafcet and that have been taken up by the revision process of the IEC 61848 standard: enclosed step and stored
actions. The consistency of these extensions with basic formalism is shown and their usefulness is illustrated by an example.
Theoretical denitions of Grafcet and its extensions are given in Appendix A. # 2001 Elsevier Science Ltd. All rights reserved.

Keywords: Grafcet; Formal specication; Sequential control; Boolean logic

1. Introduction decomposition mechanism of Statecharts. Another


important point, for which Grafcet was reproached,
Grafcet was specied in 1977 by a French working was the denition of its semantic by ve operating rules.
group in order to provide a graphic tool for the These rules have been validated by their use but also by
specication of sequential behaviours and especially theoretical works that used them to derive formal
logic controllers. As the complexity of logic controllers models from Grafcet specications especially for check-
was increasing, their specication by means of state ing purpose (Frachet, Lamp!eri"ere, & Faure, 1997;
diagrams or state tables became more and more dicult Roussel & Lesage, 1996; Zaytoon, DeLoor, & Viller-
and as the technology was changing, a formalism that main-Lecolier, 1995; Frensel & Bruijn, 1998; Le Parc,
was not linked with a particular technology (unlike LHer, Scharbarg, & Marc!e, 1999). However the
Relay Ladder Logic for example) and that makes the consistency of extensions to the basic formalisms was
specication easier, was needed (David, 1995). Grafcet dicult to assure.
was proposed to full this need and since then it has This paper aims at proposing two extensions to
proven to succeed in doing so. Grafcet to make easier the specication of the sequential
However with the development of integration of part of the control of complex systems which are
control, the logic behaviours to be specied became consistent with basic Grafcet and whose semantic is
more and more complex. This led to the consideration clearly dened. This last consideration was very
that Grafcet lacked mechanisms to structure specica- important and directed the denition of the extensions.
tions and to reactively interact with non-logical parts of In the following, Section 2 is a presentation of the
control (Feldman, Colombo, Schnur, & Stockel,. 1999). problem of specication of logic controllers and of
Actual forcing of Grafcet (Grepa, 1985; Lesage & Grafcet and its principles. It does not aim at giving a
Roussel, 1993) had been proposed to structure specica- comprehensive presentation of this formalism and of its
tions but it was often considered that this mechanism use for specication, for which readers are referred e.g.
was not as powerful, readable and useful as the to David (1995) or Bouteille, Brard, Colombari,
Cotaina, and Richet, (1992), but at introducing it as a
*Corresponding author. Tel.: +33-2-99-84-45-04; fax: +33-2-99-84- model for sequential systems, in order to show how the
45-99. following proposals of extensions are consistent with it.
E-mail address: herve.gueguen@supelec.fr (H. Gueguen). The rst extension, enclosing steps, has been introduced

0967-0661/01/$ - see front matter # 2001 Elsevier Science Ltd. All rights reserved.
PII: S 0 9 6 7 - 0 6 6 1 ( 0 1 ) 0 0 0 3 3 - 8
744 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

in order to take into account the complexity of


specication and to structure it; it is presented in
Section 3. Section 4 is concerned with the second
extension of Grafcet that is stored actions. These actions Fig. 1. External view of sequential systems.
can be used in logical specications not only to make
them simpler but also to interact with non-logical parts
of the specication. Section 5 presents an example where cations of controllers that are expressed in these
these extensions are used in order to specify a structured languages can be checked and used to automatically
and unambiguous model of the control of a pallet generate software. However when using Esterel, all
manipulator. Finally, Appendix A gives a general idea reactions have to be explicitly specied which is not
of the theoretical background which is consistent with always useful especially for combinatorial equations and
the operational semantic of Grafcet that was previously when using data ow language (Signal and Lustre), state
dened and leads to the proposed semantic of these is not explicitly described. However synchronous
extensions. More details on this theoretical aspect can be languages may be complementary to Grafcet as they
found in Guillaume (1995) and Guillemaud (1998). can be used to get safe software from a Grafcet
specication as shown in Le Parc et al. (1999).
Statecharts (Harel, 1987) are a graphic formalism
2. Grafcet and logic control specication designed to overcome the same drawbacks of state
diagrams as Grafcet. They are a powerful formalism for
2.1. Logic control specication specication of reactive systems but as their semantic
(and especially the meaning of synchronism) diers
Grafcet is dened as a graphic language for the according to the tool in which they are used, the same
behavioural specication of the sequential part of a specication has various possible behaviours and they
system, that is the one in which the interactions with its may be ambiguous (Gu!eguen, 1996). A general draw-
environment can be considered as Boolean continuous back of reactive formalisms is that they consider discrete
time signals (Fig. 1) and for which the value of outputs time specications, so their event inputs and outputs
at time t is linked to the value of inputs before t. Its have to be linked with the continuous time inputs and
purpose is then to make explicit the function which links outputs. But these sampling units are not in the scope
outputs to inputs. Systems that are to be specied with of the specication so they cannot be checked; moreover
Grafcet, are systems whose outputs can change only as a the implicit choices which are made at this level have
reaction to a variation of at least one input. This change major eects on the specication.
of the value of at least one input denes an input event Continuous time formalisms specify continuous inter-
and distinguishes a point in time. If the outputs are to actions among inputs and outputs as Boolean combi-
change in reaction to an input event, they do so natorial equations or asynchronous sequential models.
simultaneously. This leads to three classes of formalisms As will be shown in the following, Grafcet is based on
to specify logic controllers: continuous time formalisms, this principle. Other formalisms of this class are
reactive formalisms and pseudo-continuous time extensions of Petri nets (Feldman et al., 1999; Barros,
formalisms. Gomes, & Steiger-Garc*ao, 1997). These formalisms are
Pseudo-continuous time formalisms are formalisms actually very close to Grafcet, which was inspired by
that seem to consider continuous time inputs and Petri nets, but they lack the industrial support that was
outputs but whose behaviour cannot be dened without given to Grafcet by its standardisation by the Interna-
taking into account the fact that they will be executed at tional Electrotechnical Commission (IEC) in 1988.
specic instants. Examples of such formalisms are Furthermore as they are interpreted extensions of Petri
programming languages for programmable logic con- nets they lose most of analysis capabilities of basic
trollers such as sequential function charts (SFC), ladder autonomous nets. Message Sequence Charts or Timing
diagrams (LD) or functional block diagrams (FBD) as Diagrams can also be used to specify the relationship
they are dened in IEC 61131-3 standard (IEC, 1992). that links outputs to inputs by showing examples of
The main drawbacks of these formalisms are that they sequences. But it is not feasible to describe all possible
are linked with a specic technology and that they input sequences and so it is dicult or impossible to
require to include in the model considerations that are assure that the specication is complete and consistent.
not linked with specication but with implementation.
In reactive formalisms it is considered that, as the
system reacts at specic instants, it is only necessary to 2.2. Overall presentation of Grafcet
describe its behaviour at these instants. Synchronous
languages (Benveniste & Berry, 1991) are examples of As stated above the aim of Grafcet is to make explicit
such formalisms. As they are formal languages, speci- the function that links continuous time inputs to outputs
H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756 745

and more precisely changes of outputs when the values


of inputs vary dening an input event.1 The very basic
formalism to specify the function which links the
outputs to the inputs is a state machine where the value Fig. 2. Example of basic specication of sequential behaviour.
of the outputs are dened by the active state (called
situation) and the changes of situation are linked to
input events. Fig. 2 is an example of a model of the
behaviour of a system that has one input (a) and one
output (B) whose value changes at each time when the
input changes from 0 to 1. As the input is a continuous
time signal and the model describes the reactions of the
systems to input changes, each transition has to be
associated with a label where the values of the inputs
before and after the change have to be specied.2
Obviously if this formalism is very close to the essence of
the behaviours to specify, it is not very useful for the
specication of real behaviours because it leads to very
complicated models. Grafcet can then be dened as a
means to describe such behaviours in a more ecient
manner.
The main diculties to specify a sequential behaviour
with this above formalism are linked, rstly, to the Fig. 3. Example of Grafcet specication.
explosion of the number of states or transitions which is
classical with nite state machine but also to the need to
explicitly enumerate the set of input changes which are several steps. Each transition is then associated with
associated with these transitions. In order to overcome two sets of steps and a transition-condition. The rst set
these diculties two main mechanisms are introduced in is the set of its preceding steps, which are steps that must
Grafcet. The rst one is the concept of step, which be active in order that the transition could be cleared
allows parallelism in the specication and the second and that which will be deactivated by its clearing. The
one is the notion of transition-condition, and transient second one is the set of its succeeding steps, which will
evolution which allows to specify sets of events without be activated by its clearing. The transition-condition is
enumerating them. the means oered for dening the set of events that can
Basic elements of Grafcet are steps and transitions. lead to the evolution described by the transition.
Steps are used to describe the situation of sequential Actually there are two ways of describing these
systems and are represented by squares (see Fig. 3). events. The rst one is an explicit description and the
Each step can either be active or inactive and the second one is more implicit. The rst is based on the
situation is described by the set of active steps. Some denition of two operators on Boolean variables, the
steps can be particularised as initial steps (represented rising edge (denoted " ) and the falling edge (denoted
by a double square), which means that they are # ). The rising edge species changes where the value of
potentially active at the initialisation of the model. the variable is false before the change and true after,
Parallelism is introduced by explicit AND divergences whereas the falling edge species changes where the
(represented by two parallel horizontal lines) which are value of the variable is true before and false after. These
the beginning of parallel sequences, but also by the fact operators dene Boolean variable that can be used in
that, as in Petri nets, several steps in the same sequence logical expressions. For example, in Fig. 3 where a
can be active at the same instant, as for example there system with three inputs (a; b; c) is considered, the
can be several initial steps. Transitions are the elements expression " a:b3 describes the set of events where the
indicating a possible evolution of activity between input a is false before and true after the change, input b
is true after it, whatever its value is before and whatever
1
It has to be noted that there is no restriction on the number of
the value of input c is before and after, such as (a 0;
inputs whose value changes in an input event unlike classical literature b 0; c 0=a0 1; b0 1; c0 0) or (a 0; b 1; c
on Grafcet (see e.g. David, 1995). The hypothesis that only one value 1=a0 1; b0 1; c0 0), whereas the expression # a
can change has been discarded because it is not fundamental or really c::b describes the set of events where the OR operation
useful at the specication level and causes articial diculties at the
implementation level.
2 3
On the graph a is the value before the change and a0 after it, then In logical expressions the dot . is the symbol for the AND
a 0=a0 1 describes the input event which corresponds to the operation, the sign + is the symbol for the OR operation and the sign
change from 0 to 1 of the value of a. : is the symbol of negation.
746 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

on a and c is true before and false after the change and


input b is false after it, such as (a 0; b 0; c 1=
a0 0; b0 0; c0 0) or (a 1; b 1; c 0=a0 0; b0
0; c0 0). However the use of these edges operators is
not mandatory and the transition-condition can be
expressed with classical logical operators (and, or,
negation), in order to express constraints on the value
of inputs after the change only. Actually transition-
conditions can be considered as the OR operation on
two expressions the rst one, the dynamic part, is related
to explicit specication of changes with edges operators
and the static one with references to the value of inputs
after the change only. This will lead to transient
evolution as can be seen below. Fig. 4. Possible trajectory of Grafcet of Fig. 3.
The formal semantic of evolution of the active
situation of the model according to input changes can
be specied by logical equations (see Appendix A) but Fig. 4 shows an example of an inputs/outputs
fortunately it can also be expressed in an intuitive way relationship that is consistent with the Grafcet of
by ve evolution rules which are classical in the Fig. 3. Initially as step 0 and 1 are active output D is
literature on Grafcet. assigned to true. When input b rises to true (time 1) the
Evolution rule 1: the initial situation, chosen by the transition from step 1 to steps 2 and 3 is cleared output
designer, is the active situation at the initial time. E is then assigned to the value of input c. The next time
Evolution rule 2: a transition is cleared when all its input b rises to true (time 2) the transition from step 2 to
immediately preceding steps are active and its transition- step 4 is cleared and output E is assigned to false
condition is true. whereas output F is assigned to true. At time 3 input a
Evolution rule 3: the clearing of a transition provokes rises to true and step 1 is activated and output D is
simultaneously the deactivation of all its immediately assigned to true until the rising of input b at time 4. The
preceding steps and the activation of all its immediately active steps are then steps 2, 3 and 4 and outputs are
succeeding steps. assigned according to their actions. At time 5 input a
Evolution rule 4: all transitions, which can be cleared rises whereas input b is true, the transition from step 3 to
simultaneously, are simultaneously cleared. step 5 is then cleared, step 5 is activated and output E is
Evolution rule 5: if as a consequence of clearing of equal to c :a. At time 6 the value of input a
transitions, a step is deactivated and activated it remains changes, no transition can be red and the value of
active. output E rises to true according to this logical
Steps and transitions have been introduced to specify expression.
the evolution of the state of the model according to However, the previous evolution rules are not
changes of inputs. In order to complete the specication sucient to entirely dene the behaviour of a model
of the inputoutput relationship, actions have been expressed with Grafcet. The cases where the behaviour is
dened in order to link the value of outputs to the not completely specied (by these rules) are linked to
situation and the present value of inputs. The classical transition-conditions and activation of steps. The
actions are continuous actions. Each action is associated question is in fact to specify the behaviour of a Grafcet
with a step, an output variable and an assignation where a step is activated whereas the transition-
condition. An action is graphically represented by a condition of one of its succeeding transitions is true.
rectangle on the right side of the step; the name of the This can be illustrated by the following cases in the
assigned variable is shown inside the rectangle and the example of Fig. 3. When step 1 is active when input b
condition above it. This condition may be left out if it rises to true, step 2 is activated and the transition-
is always true. The value of an output variable is condition of the transition from step 2 to step 4 is true,
determined by local and global considerations. Locally should this transition be cleared or not? What is the new
at the level of each active step, actions dene a set of situation when step 0 is active and input a rises to true
logical equations where the assigned variable is equal to whereas input b is true?
the assignation condition, and variables that are not The answers to these questions are given by the notion
explicitly assigned by actions are equal to false. From of transient evolution that takes part in Grafcets
the global point of view, the output value is determined descriptive power. This means that behaviours can be
unambiguously through the OR operation on these sets expressed more simply with Grafcet because all transi-
of equations that are dened by actions associated with tions from one situation to another do not need to be
active steps. explicitly drawn. In order to determine what the
H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756 747

situation is after an input event, the transition-condi-


tions have to be analysed.
As it has been previously mentioned these conditions
can be considered as the result of the OR operation on
two parts, the dynamic one and the static one. The
reaction of the model to an input event can then be
determined by considering that it is described by a
causal chain of atomic reactions specied by transition
clearings according to the evolution rules. The model Fig. 5. Transient evolution.
behaves as if a rst set of transitions, enabled by the
situation before the input event, was cleared leading to a
pseudo-situation enabling another set of transitions that
can be cleared if their transition-conditions are true. The
reaction stops when no more transitions can be cleared.
In this chain it is considered that the dynamic part of
transition-conditions can be true only in the rst atomic
reaction. If Fig. 5a is considered it can be seen that if
step 20 is active and input a rises from false to true
transition 1 can be cleared leading to the activation of Fig. 6. Use of step variables.
step 21 and the enabling of transition 2 which can be
cleared if b is true. This progressive way of analysing the
reaction of the Grafcet is useful, as it is simple and
intuitive. It can also be used to interpret the specica-
tion, as it is easy to nd a player algorithm to implement
it (Bierel, Douchin, & Lhoste, 1997). In fact the
behaviour which is specied by the Grafcet of Fig. 5a
is equivalent to the state machine of Fig. 5b,4 step 21 is
Fig. 7. Fundamental aspects of use of step variables and transient
not really activated in the reaction to the rising of a evolution.
when b is true, but it is used, associated with transitions
1 and 2, as a means to specify the transition from
situation 20 to situation 22. Appendix A) and the basic state machine which species
Another important possibility of making the speci- the behaviour of the Grafcet of Fig. 6 is the one in
cation in Grafcet simpler is the use of the activity of Fig. 7b where transitions can be cleared if and only if at
steps in transition-conditions. A step variable is least one input changes.
associated with each step; it represents the activity of As can be seen Grafcet is a powerful specication
the step and is true when the step is active. For example language as it allows the description of behaviours in a
in Fig. 6 the transition-condition associated to the synthetic way. This is due to parallelism, which can be
transition from step 4 to step 5 is true when the input widely used, and also due to the use of dynamic and
variable b is true and step 1 is active. The global static parts in transition-conditions (including step
behaviour of the specication is intuitively determined variables) which allows the description of implicit
by building the reaction by a chain of atomic reactions. transitions which do not require to be drawn. The
More formally the behaviour is determined by rstly following extensions to Grafcet have the same aim,
building the state machine structurally described by the namely providing means to describe complex relation-
Grafcet and then considering the problem of stability of ships between Boolean inputs and outputs of a system
situations. If the example of Fig. 6 is considered, the rst by a synthetic and clear graphic.
phase leads to the state machine of Fig. 7a. As can be
seen there is no more reference to the step variables in
transition-conditions because steps have been put 3. Enclosing steps
together into situations. If the variable b is true when
the transition from situation (0,3) to situation (1,4) is The rst extension meant to make the specication
cleared, the transition from situation (1,4) to situation easier is the enclosing step. It is inspired by Statecharts
(2,5) can be cleared without any input changes. So (Harel, 1987) and fulls the need for hierarchical
transitions and transition-conditions are modied (see structuring and pre-emption, which has been expressed
(
and has generated proposals of solutions (see e.g. Arzen
4
In the gures the notation x=- is used to denote the fact that the (1994) or Gu!eguen, Lefebvre, and Bouteille (1999)). An
value of the variable is not signicant. enclosing step is a step of a Grafcet to which at least one
748 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

Fig. 8. Graphical representation of enclosing step.


Fig. 9. Activation and deactivation of enclosed steps.

partial Grafcet, named enclosure, is associated. The can be the case in Fig. 9, when steps 0 and 1 are active
semantic of enclosing is that when the enclosing step is and input a becomes true, is step 1/2 activated whereas
active all its enclosures are active, that is, at least one of step 1/3 is already active?
their steps is active. Symmetrically an enclosed step Another problematic case is the one where an
cannot be active if its enclosing step is not. An enclosing enclosing step must be activated and deactivated in the
step is a step and it must be considered as other steps in same atomic reaction. According to the evolution rules
order to determine enabled transitions, the activity of of Grafcet, this step remains active after the reaction.
the enclosing step alone is considered without taking But what is the evolution of the activity of enclosed
into account the activity of enclosed steps. The enclosure steps? This is the case in Fig. 9 when steps 0, 1 and 1/3
is graphically symbolised by marks in the corner of the are active when inputs a and b change from false to true:
square of the enclosing step (see e.g. step 1 in Fig. 8) and which is then the active enclosed step 1/3 (no evolution)
by including the drawing of the enclosed graph in a or 1/2 (deactivation of the enclosure and use of the
rectangle with the name of the enclosing step on the activation link)? This is also the case when steps 0, 1 and
upper side and, if needed, on the lower side the name of 1/3 are active when inputs a, b and d change from false
the graph. The complete designation of an enclosed step to true: can then the transition from 1/3 to 1/1 be
is determined by making up the designation of the cleared?
enclosing step, the partial graph name and the label of The answers to these questions cannot be arbitrarily
the enclosed step, in accordance with the following chosen as they have to be consistent with each other and
syntax nG
=s where n is the designation of the enclosing with the behaviour of Grafcet without enclosing. The
step, G the name of the graph and s the label of the step. denition of enclosing which is proposed (see Appendix
The symbol * on the left side of some steps of enclosure A) leads to three operational rules to specify the
is the activation link. It indicates the enclosed steps that behaviour of enclosing and enclosed steps.
are active when the enclosing step becomes active. The Enclosing rule 1: if a transition just preceding an
general rule is that, if an enclosing step is active at least enclosing step is cleared in a reaction, activation links of
one enclosed step must be active and this is also true for enclosure are used if and only if the enclosing step is not
the initial situation. That is the reason why if an active before the reaction.
enclosing step is an initial step, there must be at least one Enclosing rule 2: if a transition just succeeding an
initial step in each enclosure, but nothing imposes that enclosing step is cleared in a reaction, enclosed steps
this initial step should belong to the set of steps active before the reaction are inactive after it, if and only
indicated by the activation link. if the enclosing step is inactive after the reaction.
In Fig. 8, when enclosing step 1 is active one step of Enclosing rule 3: if a transition just succeeding an
each partial Grafcet G1 and G2 is also active. If it is enclosing step is cleared in a reaction no enclosed
considered that step 0 is active and input a becomes true transition can be cleared in this reaction.
as input b remains false, step 1 becomes active and also Rule 1 expresses that the activation links of enclosure
step 2 of G1 1G1
=2 and step 1 of G2 1G2
=1. These are used only in the reactions when the enclosing step is
two graphs evolve according to their transition-condi- activated and are not equivalent with the clearing of
tions as long as step 1 is active. As soon as b becomes preceding transitions. This is consistent with Grafcet
true step 1 is deactivated and so are all active steps of G1 where steps can be active or inactive but not active
and G2. several times. Rules 1 and 2 are consistent with the rule
This mechanism is very powerful and simple to of Grafcet, which say that when a step is activated and
understand. However its semantic has to be specied deactivated it remains active, so if the enclosing step is
in special cases. The rst problem concerns the deactivated and activated it remains active and nothing
behaviour of the specication when an enclosing step happens in the enclosure. Rule 3 is consistent with rule
is already active and one of its preceding transitions is 2, as if a transition could be cleared, steps would be
cleared: should the activation link be used or not? This deactivated. It is also consistent with the constraint
H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756 749

that if an enclosed transition was cleared, its succeeding 4. Stored actions and events
steps should be active after the reaction, which is
impossible if the transition succeeding the enclosing step As explained in Section 2, standard actions in Grafcet
deactivated it. are continuous actions that dene the value of output
These rules give the solutions to the problems variables by means of sets of equations that depend on
that were previously presented in the example in the active steps. For example the sequence of Fig. 11b is
Fig. 9. In the rst case rule 1 gives the solution and consistent with the model of Fig. 11a, if step 3 is active,
as step 1 is already active before the reaction, the the output S is true even if step 2 is active and input a is
activation link is not used and after the reaction step 1/3 true. However it is sometimes useful to be able to specify
remains the only active step of the enclosure. The sequences, as the one in Fig. 11c, where a value is
answer to the second question is given by rules 1 and 2. assigned to a variable at specic instants and where the
As step 1 is still active after the reaction, no step of the variable retains its value between two subsequent
enclosure is deactivated in the reaction and as the assignments. The actions of this type are then impulses
enclosing step is active before the reaction the activation and their results are stored in the variable. They are
link is not used, after the reaction step 1/3 remains associated with events that dene the instants when they
active. Finally the answer to the third question is given take place and not with state as continuous actions.
by rule 3. As the transition succeeding step 1 is cleared in This type of actions have been introduced at the
the reaction, the transition from step 1/3 to 1/1 cannot origin of Grafcet (see e.g. David, 1995) and was
be cleared. The Grafcet reacts as if the negation of associated with activation of steps. However it was not
transition-conditions of transition succeeding the en- always clear whether these actions were included in the
closing step was added by conjunction to all transition- model or not (see e.g. Bouteille et al., 1992), what was
conditions of the enclosure. the relationship with continuous actions and what was
The use of enclosing steps causes no particular their behaviour according to the evolution of activities
problem with transient evolutions as from users point of steps. Moreover it appeared that the constraint to
of view the global reaction is a chain of reactions where express event by activation of steps only, may lead to the
each atomic reaction is determined by evolution and introduction of specic steps that makes the specica-
enclosing rules and from a formal point of view tion more complex. In order to remedy these drawbacks,
transient evolution is taken into account at the level of Guillemaud, Grave, and Gu!eguen (1998) introduced a
the state machine which is at without a notion of new representation of stored actions with an unambig-
enclosing. uous semantic. This concept is based on two main
Nevertheless the use of transient evolution can be very considerations. Firstly, output variables are split into
useful when using enclosing steps, as it allows choosing two sets, assigned variables, which are used in contin-
of the situation when activating the enclosing step uous action and allocated variables, which are used in
according to the value of a predicate. Fig. 10 is an stored actions. Secondly, stored actions are associated
example of this use of transient evolution, as step 1/1 with internal events which are the conjunction of a
that is indicated by the activation link is never active. It specic situation and an input event. Four representa-
is just used in order to dierentiate two activated steps tions of internal events are dened and four symbols are
according to the value of input e. It can also be seen in introduced in order to specify actions associated with
this example that the deactivation of the enclosing step them. These symbols are shown in Fig. 12. Symbol (a)
can be limited by the activity of enclosed step by using
step variables. In this example the transition succeeding
step 1 is enabled as soon as it is active but its transition-
condition is true when b rises from false to true or c is
true when enclosed step 1/4 is active.

Fig. 10. Advance activation and deactivation. Fig. 11. Continuous and stored actions.
750 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

Fig. 13. Simultaneity of events.

Fig. 12. Events and triggering of stored actions.

species that the action is associated with events


resulting in the activation of the step, whereas symbol
(b) associates the action with the deactivation of the step
and symbol (c) with the clearing of the transition. As for
symbol (d), it associates the action with each occurrence Fig. 14. Semantic of Boolean allocation.
of the event when the step is active. Stored action is then
an allocation of the result of a logical operation in the
output variable at the instants dened by events. Literal relation among them and no action takes place before
notations are also dened to make the use of events the others.
corresponding to the activation of a step (notation As several stored actions can take place at the same
Acts), the deactivation of a step Dacs or the clearing instant it may occur that the same variable may be
of a transition Clrt easier. These notations can be synchronously allocated to two opposite values. As the
used in transition-conditions or as an event when specication has to remain deterministic its behaviour in
symbol (d) is used. such cases has to be dened. Moreover the initial value
The formal denition, which can be given to these of allocated variables has to be specied. The formal
events (see Appendix A), can be interpreted at the semantic that is proposed for stored action gives
specication level by the following rules: answers to these questions. It is illustrated by Fig. 14.
The specication behaves as if all stored actions are
* a transition is cleared when its immediately preceding
removed and a Grafcet as the one of Fig. 14b is
steps are active, its transition-condition is true and no
associated to each allocated variable and composed
succeeding transition of its enclosing step is cleared,
with the specication. This Grafcet has two steps one
* a step is activated when it is not active and one of its
that continuously assigns the value true to the variable
immediately preceding transitions is cleared or, if it is
and the other one that continuously assigns the value
associated with an activation link, when its enclosing
false to it (as the variable cannot be used in continuous
step is activated,
actions of the original specication the value of the
* a step is deactivated when it is active and, one of its
output variable is really false when this step is active).
immediately succeeding transitions is cleared and
The transition conditions of the two transitions are the
none of its immediately preceding ones is, or, its
result of the OR operation on terms that take into
enclosing step is deactivated.
account the events that trigger the stored action in the
These interpretations are rather intuitive and simple original specication and the values that are allocated to
to understand, however some cases may require further the variable in these actions, the transition to the step
analysis in order to determine relationships among where the variable is true is cleared when the event
events. The example in Fig. 13 is such a case. It may be occurs and the expression, which is assigned to the
considered that Dac0, Act1 and Clr1 are similar and variable by the associated stored action, is true and the
that they describe the same events. For example, other transition is cleared when the event occurs and this
Act1 is true then Clr1 is also true because step 1 expression is false. For example, in Fig. 14, if transition
cannot be activated if the transition is not cleared, but if 1(in part a) is cleared the active step (in part b) after the
transition 1 is red while step 1 is already active Clr1 transition is A0 if (b :c) is false and A1 if it is true, the
is true but not Act1. It is so necessary to analyse the value of output A is then the value of this expression at
possible situations of the global specication before to the instant when the event occurs and it remains the
conclude whether these events are really equivalent or same until a new event occurs. If two events, that
not. However in a sequence as the one in Fig. 13 if Dac, allocated opposite values to the variable, occurs at the
Act and Clr are true as a consequence of an input event, same instant, for example the clearing of transition 1
they are true at the very same instant. There is no order when (b :c) is true and the activation of step 2 when
H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756 751

(c:d) is false, only one transition of the Grafcet of in the system in the following section, the presence of
Fig. 14b is cleared and so the value of the output pallets has to be memorised and queued at the instant
variable is changed. It can also be noticed that according when the line requests it and the belt is free. If Grafcet is
to this semantic the initial value of all allocated variables used to specify the sequential part of control it is
is false. possible to extend stored actions to specify triggering of
The relationship between allocation and transient these actions on non-Boolean variables because the
evolutions is taken into account very easily. This is notion of event that they introduce in Grafcet is
based on the denition of the clearing of a transition, consistent with the need to distinguish specic instants
which is, that a transition is cleared when its preceding at which these take place.
steps are active and its transition-condition is true. So Even if the action is simple and specied inside the
the expression ClrT can be expressed as the logical action rectangle (as on Fig. 15) it is considered as
AND of its transition-condition and the step variables external to the Grafcet specication and so asynchro-
of its preceding steps (e.g. in Fig. 14 Clr1 X0 :E). As nous with Grafcet evolution. This has two main
activation and deactivation of steps are linked to consequences. Firstly if an action is triggered at an
clearing of transition they can also be expressed by instant its result is not taken into account at this instant,
conjunction of steps variables and transition-conditions especially for transient evolution analysis, but later; if
(e.g. in Fig. 14 Act1 :X1 :X0 :E). The behaviour of the the completion of the action must be awaited in order to
specication that use stored actions is then given by determine the correct behaviour of the sequential part it
rstly substituting Grafcets as the one in Fig. 14b for all has to be explicitly reported by an event (Guillemaud,
stored actions and then replacing events (Clr, Act, and 1998). Secondly, if several actions are triggered at the
Dac) by these expressions. Transient evolution is then same instant, even if this is the result of transient
studied on this new version of the specication that is a evolution, they are synchronously triggered. Moreover,
classical one with assigned variables and transition no interpretation is associated to these action, it means
condition dened by input and step variables. The that the output of the formal model is the fact that the
practical result is that actions associated with activation triggering event of the action has occurred but the result
or deactivation of a step are performed even if this step of this action is not taken into account. This may be
belongs to a path of transient evolution and is not really crucial when conicting allocations are made especially
activated. in transient evolution. For example Fig. 15, what can be
The stored actions, which have been considered here, assured is that if step 0 is active and input E and D are
are actions on Boolean variables that are entirely in the true, the two actions will be triggered simultaneously but
scope of Grafcet. As the semantic of stored actions is neither the fact that this is a mistake nor the nal value
given by a Grafcet with continuous actions this of A are in the scope of the model, this is left to the user.
mechanism does not enlarge the capabilities of the basic
formalism, but it provides a means to make specica-
tions simpler because Grafcets as the one in Fig. 14b 5. Example
need not be explicitly specied as they are included in
the formalism. However, from a practical point of view, In order to illustrate the use of these extensions of
control applications not only have Boolean inputs and Grafcet, the system in Fig. 16 will be considered. In this
outputs and are not purely sequential. In these applica- handling system a shuttle is used in order to take pallets
tions the sequential part interacts with other parts by at the end of three production lines and put them on an
triggering actions on non Boolean variables, such as output belt. When a line sends a request, if the
incrementation of counters, allocation of the result of corresponding input belt is free, its motor is switched
calculus to numeric registers or closing of the loop of
PID controllers, . . . . These actions have to be triggered
at specic instants according to changes of input
variables and the situation of the system. For example

Fig. 15. Triggering of external actions. Fig. 16. Handling systems.


752 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

Table 1
Inputs and outputs of the handling system

ES Operator command for emergency stop Pi Pallet sensor at end of belt i


Ref Operator command for reference mode Si Shuttle sensor at end of belt i
Man Operator command for manual mode RLi Request from line i
Auto Operator command for automatic mode Mi Motor command of belt i
PS Pallet sensor on shuttle MS Motor command of the shuttle belt
OB Output belt sensor on shuttle Backward Backward command of the shuttle
IB Input belt sensor on shuttle Forward Forward command of the shuttle

on. It is stopped when the pallet reaches the end of the


belt where it waits for the shuttle. When the shuttle is
stopped in front of the belt, the motor of this belt and
the one of the belt of the shuttle are switched on until the
pallet is on the shuttle. Then the shuttle moves
backward to the output belt where the pallet is put by
switching on the motors. If several lines ask for the
shuttle the requests are satised in order of reception by
the system. This describes the normal operating mode
but other modes such as the start, the stopping or the
emergency stopping of the system have to be taken into Fig. 17. Structure of the control of the handling system.
account.
The inputs of the control of this system are the sensors
which are at the end of input belts or on the shuttle in
order to detect the pallet and the position of the shuttle,
the request of the production lines and the operators
commands. The outputs of the control are the switching
on or o of the motor of the ve belts and the moving
backward or forward of the shuttle. They are summed
up in Table 1.
In order to deal with the queuing of request of lines, a
FIFO is used. It is external to the sequential specica-
tion as it can be seen on the global architecture of the
control specication in Fig. 17. The FIFO has three
inputs the store command, the shift one and the empty
one and two outputs the F O which is the value output Fig. 18. Specication of the method of operations.
and the valid Boolean which is false when the value of
the variable F O is not signicant e.g. when the FIFO is
empty or shifting its output value. Man, and Auto are operator commands and only one
The rst level of specication (in Fig. 18) deals with can be true at each time.
the methods of operation of the system. If step 0 is active Once this level has been specied it is possible to
the system is stopped and if step 1 is active it may work. consider the enclosure of the various steps. In Fig. 19
The transitions from one step to the other one are linked three enclosures of step 1/1 according to plant parts are
to the value of the operator command ES, which is used given (the enclosures for input belts 2 and 3 can easily be
to request for an emergency stopping of the system. inferred from the one of input belt 1). From the system
When step 1 is active the system is in one of four modes. point of view when step 1/1 is activated the FIFO is
In step 1/0 the system is stopped, in step 1/1 it is emptied and nothing else is done. From the input belt
reaching a special state in order that the control knows point of view the control aims at knowing if there is a
exactly the state of the plant, when this state is reached pallet on the belt and if there is one to put it at its end.
the variable Rea becomes true. When step 1/2 is active So when step 1/1 is activated if there is a pallet at the end
the system is in automatic mode and when step 1/3 is (P1) and the shuttle is in front of the belt (S1) the motor
active the system is in manual mode which means that (M1) is switched on until the pallet is no more on the
the operator is free to control each actuator. This is why belt ( # P1). If not, the motor is switched on until a pallet
it is compulsory to activate step 1/1 before the system is seen at the end of the belt or enough time has elapsed
can be turned back in automatic mode. The inputs Ref , to be sure that the belt is empty. From the shuttle point
H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756 753

Fig. 19. Enclosure of step 1/1.

of view, when step 1/1 is activated the motor of the belt


is switched on until a pallet is seen on the shuttle (PS) or Fig. 20. Control of the shuttle in normal mode.
enough time has elapsed to be sure that there is no pallet
on the shuttle. Then it is moved back to the output belt
(OB) and if there is one, the pallet is moved to the
output belt. Rea is a symbolic notation for the AND
operation on step variables of nal steps of each
enclosure, so it is sure that, when it is true, if there is
a pallet on a belt, it is at its end, and the shuttle is empty
near the output belt, and this at whatever the initial state
was in.
Once this initialisation of the system has been made it
is possible to switch to the automatic mode. In Fig. 20,
the enclosure of step 1/2 according to the point of view
of the shuttle is given. If there is a pending request the
corresponding step is activated and the FIFO is shifted.
The step remains active until the pallet is on the shuttle,
then step 1=2shuttle
=4 is activated until the shuttle is Fig. 21. Control of Input belt in normal mode.
empty. Enclosed steps are used in order to structure the
specication. At the rst level the sequence of aims is
shown and the enclosure of each step (for example 1=2 in order to take into account changes such as new
shuttle
=1 or 1=2shuttle
=4) is used to specify the way sensors or addition of a new line.
the plant is controlled to reach this goal.
Fig. 21 shows the control of input belt 2 in automatic
mode. When there is a request from the line (RL2) it is 6. Conclusion
stored in the FIFO and the motor of the belt is switched
on until the pallet reaches its end. When the shuttle is in In this paper, two extensions to Grafcet have been
front of the belt and its aim is to get the pallet of this presented. Enclosing steps introduce abstraction and
conveyor, the motor is switched on until the pallet is no hierarchical structuring, which are considered as a
more on the belt. powerful solution to complexity. Stored actions are
As there is no action associated with step 0 and 1/0 useful as they allow the summarisation of actions on
and actions associated with step 1/3 are just a some logical variables and also because, as they are
translation of operator commands the specication of formally dened, they unambiguously specify the
the control of the handling system is complete. As it is behaviour of events such as activation and deactivation
structured it is easily readable and as it is formal it is of steps or clearing of transition that can be used to
non-ambiguous. Simulation or verication can validate synchronise Grafcet specications to other specications
it, as it is possible to calculate the state machine that it dealing with other types of variables such as, for
describes. From this validated specication it is possible example, transformational algorithms on data. Another
to design the program of a PLC. It can be seen that, as extension of Grafcet for which these stored actions have
the specication is well structured, it is easy to modify it been mandatory is a hybrid Grafcet where dierential
754 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

equations are associated with steps and initialisation is always possible to determine the active situation
with events (Guillemaud & Gu!eguen, 1999). from the list of active steps.
These extensions are useful to full the needs of * M : Q I I ! PS associates with each internal
specication of complex systems as it has been noticed in event the set of steps which are left when the event
various examples and they have been proposed for occurs with the constraints
industrial standardisation (IEC, 2000). Moreover as s 2 Mq; i 1 ; i 2 ) q 2 s;
they are formally dened, it is possible to automatically
q 2 s ^ Eq; i 1 ; i 2 2= s ) s 2 Mq; i 1 ; i 2 : A:3
calculate the underlying state machine from a given
specication as shown by a demonstration tool that has
been developed. Of course this state machine is not
* V : Q I I ! PS associates with each internal
intended to be shown to the nal user but only as an event the set of steps which are entered when the
example, to be checked out in order to assure the quality event occurs with the constraints
of the specication. These formal denitions are mainly s 2 Vq; i 1 ; i 2 ) Eq; i 1 ; i 2 2 s;
given in Appendix A. From them it is possible to Eq; i 1 ; i 2 2 s ^ q 2= s ) s 2 Vq; i 1 ; i 2 : A:4
determine the evolution and enclosing rules that have
been presented in this paper and that express the
practical semantic of Grafcet and its extensions that Denition A.3. A transition t is a directed link from the
are useful to users. set of steps Ut to the set of steps Dt , the set of transitions
Future works are focused on the use of the is denoted by T
hierarchical structuring of the specication in order to
improve the eciency of checking algorithms and on the Denition A.4. A partial graph is (S 0 ,T 0 ) where S 0  S
transition from specication to safe control software. is a set of steps T 0  T is a set of transitions such as
8t 2 T 0 Ut [ Dt  S0

Appendix A. Denition and theoretical building of the Denition A.5. A step se is an enclosing step if and only
semantic if there exists a partial graph (S0 ,T 0 ) such as
[
se s;
A.1. Denitions
s2S 0

Denition A.1. A sequential machine is a t-upple Q; I; 9A  S0 s:a: A 6 1 and 8s 2 A; 8q; i 1 ; i 2 2 Q I I;


O; E; Init; Val where Q is a nite set of states (named q 2= se ^ se 2 Vq; i 1 ; i 2 , q 2= se ^ s 2 Vq; i 1 ; i 2 ;
situation according to Grafcet customs), I is the set of A:5
input vectors whose entries are Boolean variables, O is
the set of output vectors whose entries are Boolean 8q; i 1 ; i 2 2 Q I I 8s  se ;
variables, E : Q I I ! Q is the evolution function se 2 Mq; i 1 ; i 2 \ Vq; i 1 ; i 2
which species the new situation according to the old
situation and two succeeding values of the input vector ) s 2= Mq; i 1 ; i 2 [ Vq; i 1 ; i 2 : A:6
with the constraint The steps which belong to the set A in (A.5) are specied
8i 2 I 8q 2 Q Eq; i; i q A:1 by activation link.

which expresses that if there is no change in the input Denition A.6. The transition-condition of a transition t
vector the situation cannot change, Init : I ! Q is the is the characteristic predicate of the set of events
initialisation function which species the initial situation specied by (A.7), simplied by the context of the
according to the initial value of input vector, Val : transition
Q I ! O is the output function. fq; i 1 ; i 2 =Ut  Mq; i 1 ; i 2 and Dt  Vq; i 1 ; i 2 g: A:7
Denition A.2. An abstract specication of a sequential As the activity of the situation can be expressed by
machine is S; M; V where activities of steps, the characteristic predicate can be
expressed with characteristic variables of steps and input
* S  PQ is a set of sets of situations, named steps, variables. It is simplied by the context of the transition
such as because some pieces of information, such as the value of
8q1 ; q2 2 Q Q 9s 2 S such as characteristic variables of steps in Ut or consequences of
enclosing (A.6) may be implicit.
q1 2 s and q2 2= s or q1 2= s and q2 2 s A:2
a step is said to be active if the active situation is one Denition A.7. Clrt is the characteristic predicate
of its components. The constraint A.2 ensures that it of the set (A.7). Acts is the characteristic predicate
H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756 755

of the set with


fq; i 1 ; i 2 =q 2= s and Eq; i 1 ; i 2 2 sg: A:8 E 0 q; i 1 ; i 2 Eq; i 1 ; i 2 ;
Dcts is the characteristic predicate of the set E n q; i 1 ; i 2 EE n1 q; i 1 ; i 2 ; i 2 ; i 2 :

fq; i 1 ; i 2 =q 2 s and Eq; i 1 ; i 2 2= sg A:9 Q^ Q=UE^ where UE^ is the set of situations of Q which
are not reachable by E. ^
from these denitions it is possible to express these Of course the problem is the calculus of E * q; i 1 ; i 2
predicates with characteristic variables of steps and but if it exists, its calculus is nite as the number of
input variables iterations is lower than the number of situations in Q. If
0 0 11
Y X X there exists some q; i 1 ; i 2 such that this calculus does
Clrt tct: Xsi ::@ @ Clrd AA; A:10 not nish there is a loop of transient evolution and the
si 2Ut s2Art d=s2Ud specication is not correct.

where tct is the transition-condition of t and Art is


the set of steps in which the transition is enclosed
X References
Acts :Xs: Clrt A:11
t=s2Dt
(
Arzen, K.-E. (1994). Grafcet for intelligent supervisory control
applications. Automatica, 30(10), 15131526.
if s is not a step with an activation link and the following Barros, J. P., Gomes, L., & Steiger-Garc*ao, A. (1997). Implementation
- model for reactive real-time
of non-autonomous high-level Petri net
if s is one the activated steps of enclosing step se :
0 1 systems. Prep. of AARTC97 IFAC workshop on algorithms and
X architectures for real-time control Vilamoura, Portugal (pp. 439
Acts :Xs:@ Clrt Actse A; A:12 444).
t=s2Dt
Benveniste, A., & Berry, G. (1991). The synchronuous approach to
reactive and real-time systems. Proceedings of the IEEE, 79(9),
00 1 0 1 12701282.
X X Bierel, E., Douchin, O., & Lhoste, P. (1997). Grafcet: From theory to
Dcts Xs:@@ ClrtA::@ ClrtA implementation. JESA European Journal of Automated Systems,
t=s2Ut t=s2Dt 31/3, 543559.
Bouteille, N., Brard, P., Colombari, G., Cotaina, N., & Richet, D.
Dctse A:13 (1992). Le Grafcet (Cepadues Editions). France: Toulouse.
David, R. (1995). Grafcet: A powerful tool for specication of logic
where se is the possible step in which s is enclosed. controllers. IEEE Transactions on Control Systems Technology,
3(3), 253268.
Feldmann, K., Colombo, W., Schnur, C., & Stockel, . T. (1999).
Specication, design, and implementation of logic controllers based
A.2. Semantic on Coloured Petri nets models and the standard IEC 1131 part I:
Specication and design. IEEE Transactions on Control Systems
The semantic of Grafcet is given by these denitions Technology, 7(6), 657665.
above. Starting with a model built using steps, enclosing Frachet, J. P., Lamp!eri"ere, S., & Faure, J. M. (1997). Modelling
discrete event systems behaviour using the hypernite signal. JESA
steps, transitions with transition-condition and events
European Journal of Automated Systems, 31/3, 453470.
the denitions of these elements are used in order to Frensel, G., & Bruijn, P. M., (1998). From Grafcet to hybrid
determine the sequential machine underlying the model automata. Proceedings of 9th IFAC symposium on information
for example steps are used to determine the set of control in manufacturing, INCOM98, NancyMetz, France.
situations. However in most cases the result is not a Advances in Industrial Engineering, II, 4752.
GREPA (1985). Le Grafcet de nouveaux concepts. Toulouse, France:
sequential machine according to denition 1 because the
Cepadues Editions.
constraint (A.1) is not respected. It is not possible to Gu!eguen, H. (1996). Synchronisme dans l!evolution des Statecharts.
consider such specications with transient evolutions as !
Proceedings of Modelisation "
des Systemes !
Reactifs MSR96, Brest,
bad specications. Their semantic is then given by France (pp. 367372).
considering the problem of transient evolution on the Gu!eguen, H., Lefebvre, M. A., & Bouteille, N. (1999). Une m!ethode
danalyse par objectifs pour la conception de la commande.
state machine by transforming it according to the
!
Proceedings of Modelisation "
des Systemes !
Reactifs MSR99,
following. Cachan, France (pp. 173182).
Starting from Q; I; O; E; Init; Val the goal is to Guillaume, M. (1995). Dune th!eorie des syst"emes s!equentiels a" la
calculate a sequential machine Q;^ I; O; E;
^ Init; Val by notion de codeur: Validation globale du Grafcet. Th"ese de
lUniversit!e de Rennes 1, Sup!elec.
^ i 1 ; i 2 E * q; i 1 ; i 2 ;
Eq; Guillemaud, L. (1998). Elaboration dun langage de sp!ecication
comportementale de syst"emes automatis!es. Th"ese de lUniversit!e de
where Rennes 1, Sup!elec
Guillemaud, L., Grave, J. M., & Gu!eguen, H. (1998). Requirements
E * q; i 1 ; i 2 lim E n q; i 1 ; i 2 for extending Grafcet to hybrid specications. Proceedings of third
756 H. Gueguen, N. Bouteille / Control Engineering Practice 9 (2001) 743756

internationnal conference on Automation of Mixed Processes tions on System Man and Cybernetics, Part A: System and Human,
ADPM98, Reims, France (pp. 209215),. 29(3).
Guillemaud, L., & Gu!eguen, H. (1999). Extending Grafcet for the Lesage, J. J., & Roussel, J. M. (1993). Hierarchical approach to
specication of control of hybrid systems. Proceedings of IEEE Grafcet using forcing order. APII, 27, 2538.
SMC 99. Tokyo, Japan. Roussel, J. M. & Lesage, J. J. (1996). Validation and verication of
Harel, D. (1987). Statecharts a visual formalism for complex systems. Grafcets using nite state machine. Proceedings of IMACSIEEE
Science of Computer Programming, 8(3), 231274. conference on computational engineering in systems applications
IEC (1992). CEI 601131-3: Programmable controllers, part 3: CESA96, Lille, France.
Programming languages. Zaytoon, J., De Loor, P., & Villermain-Lecolier, G. (1995). Giving
IEC (2000). Document 3B/304/CDV: Specication language GRAF- semantics to the extended Grafcet by means of timed transition
CET for sequential function charts, proposed for revision of IEC model. Seventh IFAC/IFORS/IMACS symposium on large scale
60848 Edition 2. systems, London, UK (pp. 913918).
Le Parc, P., LHer, D., Scharbarg, J. L., & Marc!e, L. (1999). Grafcet
revisited with a synchronous Data-Flow Language. IEEE Transac-

You might also like