1482 IEEE TRANSACTIONS ON NUCLEAR SCIENCE, VOL. 58, NO. 4, AUGUST 2011
A Survey of Recent MARTe Based Systems
André C. Neto, Diogo Alves, Luca Boncagni, Pedro J. Carvalho, Daniel F. Valcárcel, Antonio Barbalace,
Gianmaria De Tommasi, Horácio Fernandes, Filippo Sartori, Enzo Vitale, Riccardo Vitelli, Luca Zabeo, and
JET EFDA CONTRIBUTORS
Abstract—The Multithreaded Application Real-Time executor
(MARTe) is a data driven framework environment for the devel-
opment and deployment of real-time control algorithms. The main
ideas which led to the present version of the framework were to
standardize the development of real-time control systems, while
providing a set of strictly bounded standard interfaces to the out-
side world and also accommodating a collection of facilities which
promote the speed and ease of development, commissioning and
deployment of such systems. At the core of every MARTe based
application, is a set of independent inter-communicating software
blocks, named Generic Application Modules (GAM), orchestrated
by a real-time scheduler. The platform independence of its core
library provides MARTe the necessary robustness and flexibility
for conveniently testing applications in different environments
including non-real-time operating systems. MARTe is already
being used in several machines, each with its own peculiarities
regarding hardware interfacing, supervisory control configura-
tion, operating system and target control application. This paper
presents and compares the most recent results of systems using
MARTe: the JET Vertical Stabilization system, which uses the
Real Time Application Interface (RTAI) operating system on Intel
multi-core processors; the COMPASS plasma control system,
driven by Linux RT also on Intel multi-core processors; ISTTOK
real-time tomography equilibrium reconstruction which shares
the same support configuration of COMPASS; JET error field
correction coils based on VME, PowerPC and VxWorks; FTU LH
reflected power system running on VME, Intel with RTAI.
Index Terms—Multithreaded Application Real-Time executor
(MARTe), nuclear fusion control, real-time, tokamak.
Manuscript received June 14, 2010; revised November 17, 2010; accepted
February 17, 2011. Date of publication April 05, 2011; date of current version
August 17, 2011. This work was supported by the European Communities under
the Contract of Association between EURATOM/IST and was carried out within
the framework of the European Fusion Development Agreement. Portions of
this work were presented at the IAEA 22nd Fusion Energy Conference (FEC),
Geneva, Oct. 13-18, 2008.
A. C. Neto, D. Alves, P. J. Carvalho, D. F. Valcárcel, and H. Fernandes are
with Associação EURATOM/IST, Instituto de Plasmas e Fusão Nuclear-Lab-
oratório Associado, 1049-001 Lisboa, Portugal (e-mail: andre.neto@ipfn.
ist.utl.pt; dalves@ipfn.ist.utl.pt; pedro.carvalho@ipfn.ist.utl.pt; daniel.val-
carcel@ipfn.ist.utl.pt; hf@ipfn.ist.utl.pt).
L. Boncagni and E. Vitale are with Associazione EURATOM/ENEA, 00040
Frascati, Italy (e-mail: luca.boncagni@enea.it).
A. Barbalace is with the Associazione EURATOM/ENEA, Consorzio RFX,
35127 Padova, Italy (e-mail: barbalace@igi.cnr.it).
G. DeTommasi is with Associazione EURATOM/ENEA/CREATE, Univer-
sità di Napoli Federico II, 80138 Napoli, Italy (e-mail: detommas@unina.it).
F. Sartori is with Fusion for Energy, 08019 Barcelona, Spain (e-mail: Filippo.
Sartori@f4e.europa.eu).
R. Vitelli is with the Dipartimento di Informatica, Sistemi e Pro-
duzione, Università di Roma “Tor Vergata,” 00133 Rome, Italy (e-mail:
ricardo.vitelli@uniroma2.it).
L. Zabeo is with ITER-IO, St. Paul-Lez-Durance 13108, France (e-mail:
Luca.Zabeo@iter.org).
Color versions of one or more of the figures in this paper are available online
at http://ieeexplore.ieee.org.
Digital Object Identifier 10.1109/TNS.2011.2120622
I. INTRODUCTION
M
ultithreaded Application Real-Time executor (MARTe)
is a C++ multi-platform framework for the development
and execution of real-time control systems [1]. Its main goals
are to provide a clear boundary between algorithms, hardware
interaction and system configuration, leveraging reusability and
maintainability. This functional division also enables control
systems simulation [2] and phased commissioning, by replacing
some of its components by models and synthetic data producers.
Being multi-platform it minimizes the constraints with the
operational environments, so that the target application can be
easily run on a different operating system. A feature which al-
lows the development and execution of code in non real-time
environments and to proceed to the final deployment on the
real-time target, only when the overall functionality of the con-
trol system is asserted. MARTe was already ported and tested in
the following operating systems: Wind River VxWorks, Linux,
Linux/RTAI, Solaris, and MS Windows.
MARTe and its components are data driven using a textual
language with a specific format and syntax, validated during the
configuration phase. The framework does not impose a way on
how the configuration data should be produced, but it does pro-
vide a mechanism for updating its components configuration,
allowing its integration in different experiments and human ma-
chine interfaces. This interface is provided by a framework com-
ponent which acts as a proxy, so that when a new component
configuration is requested, it automatically forwards the config-
uration data to the selected framework objects.
The core component of a MARTe is the Generic Application
Module (GAM). A MARTe application is built by connecting
a collection of specialized GAMs, using a memory data bus
named Dynamic Data Buffer (DDB). Each GAM can produce
and receive data using DDB named channels. These are re-
quested by the GAM upon configuration and the framework
guarantees that all the required sources are present on the
system. Usually each GAM is associated with a functional re-
quirement of the control system (e.g., PID or data conversion),
enabling the reusage of the component itself, or the replacement
of part of the control system, particularly useful for simulation
purposes.
The interface with the hardware and synchronization is
performed using a special module named IOGAM. It provides
a standard hardware interface to MARTe, which expects the
real hardware interaction to be implemented at the driver level
(e.g., configuration and data transferring). MARTe supports two
types of synchronization mechanisms, one based on continuous
polling of a resource and the other as a response to an external
interrupt. The framework can also have asynchronously, event
0018-9499/$26.00 © 2011 IEEE