the B method to dynamically and automatically re-
configure distributed industrial control systems.
The rest of the paper is organized as follows: in
the second Section, we present the background in
which we introduce B method. In the third Section,
we describe the two benchmark production systems
FESTO and EnAS to be followed in the paper as run-
ning examples to explain our contribution. We define,
in the next Section, the Distributed Reconfigurable
B “DR-B” formalism that we apply to our system.
The distributed multi-agent architecture is proposed,
in the fifth Section. In the sixth Section, we present
the “Check R-B” tool for DRCS. We finish by a con-
clusion and the exposition of our future works.
2 BACKGROUND KNOWLEDGE
We present in this section, the well-known B method.
2.1 Presentation of B
B is a formal method developed by Abrial to support
the software development life cycle from specifica-
tion to implementation (Abrial, 1996). It is based on
Zermelo-Fraenkel set theory and on generalized sub-
stitution. Sets are used for data modeling, General-
ized Substitutions are used to describe state modifi-
cation, and the refinement calculus is used to relate
models at varying abstraction levels. A machine B is
composed of header part allowing the identification
of the abstract machine, static part defining observa-
tions (sets, variables, constants, etc) of the system and
their invariant properties and dynamic part describing
operations changing the state of the system.
2.2 Composition in B
Abstract machines can be combined, through the
clauses INCLUDES, SEES, IMPORTS and USES to
build new specifications (Abrial, 1996). We are inter-
ested to the clause INCLUDES which allows a ma-
chine to be included in another one with read/write
access to the variables of the included machine. A
machine M includes a machine M1 means that M has
a full access to the constants, sets, variables and oper-
ations of M1 and operations of M can be defined by
using any M1 operations. It is worth mentioning that
at most one operation of the included machine can be
called from within an operation of the including ma-
chine. In order to avoid an obvious clash, we have
the possibility to rename a machine while including
it. This is done simply by prefixing, in the clause IN-
CLUDES, the name of the machine we want to re-
name with a certain identifier by a dot (x.M1, y.M1)
as explained in Figure 1.
Machine M(x,n)
............................
INCLUDES
x.M1, y.M1
OPERATIONS
C= PRE condition THEN x.A|| y.B END
END
Machine M1
............................
............................
............................
OPERATIONS
A= PRE ................THEN .........END
B= PRE ................THEN .........END
END
Figure 1: Clause INCLUDES.
3 CASES STUDIES: FESTO AND
EnAS
Two benchmark production systems FESTO and
EnAS (ref, ) are used as intact running examples in
this paper, in order to highlight the contributions of
our work. They are well documented laboratory sys-
tems used by many universities for research and edu-
cation purposes.
3.1 FESTO System
It consists of three units: Distribution Unit, Test Unit,
Processing Unit. The Distribution Unit is formed
of a pneumatic feeder and a converter which trans-
mits cylindrical workpieces from a stock to the Test
Unit. The Test Unit is composed of a detector, a tester
and an elevator. It performs tests on workpieces for
height, type of material and color. Workpieces that
satisfy these tests are transmitted to the Processing
Unit which is composed of a rotating disk, a drill
machine and a control machine. The rotating disk is
composed of locations to contain and transport work-
pieces from the input position, to the drilling position,
to the control position and finally to the output posi-
tion. Four production modes are assumed in this pa-
per to be applied in FESTO, depending on the number
of workpieces NP, as follows:
• Light1: If NP < C1, Then only Drill1 is used for
drilling workpieces.
• Light2: If NP < C1, Then only Drill2 is used for
drilling workpieces.
• Medium: If C1 ≤ NP < C2, Then Drill1 or Drill2
are used for drilling workpieces.
• High: If NP ≥ C2, Then the two drilling machines
are used simultaneously to drill two pieces at the
same time.
If both Drill1 and Drill2 are broken, the system is
completely stopped. We should make FESTO able
to switch production modes automatically at run-time
ModelingandVerificationofB-basedDistributedReconfigurableControlSystems
125