Please cite this article in press as: S. Yun, et al., A shared memory based interface of MARTe with EPICS for real-time applications, Fusion
Eng. Des. (2014), http://dx.doi.org/10.1016/j.fusengdes.2014.04.038
ARTICLE IN PRESS
G Model
FUSION-7472; No. of Pages 4
Fusion Engineering and Design xxx (2014) xxx–xxx
Contents lists available at ScienceDirect
Fusion Engineering and Design
jo ur nal home p age: www.elsevier.com/locate/fusengdes
A shared memory based interface of MARTe with EPICS for real-time
applications
Sangwon Yun
a,∗
, André C. Neto
b
, Mikyung Park
a
, Sangil Lee
a
, Kaprai Park
a
a
National Fusion Research Institute (NFRI), Gwahangno 169-148, Yuseong-Gu, Daejeon 305-806, Republic of Korea
b
Associac¸ ão EURATOM/IST, Instituto de Plasmas e Fusão Nuclear, Instituto Superior Técnico, Universidade Técnica de Lisboa, P-1049-001 Lisboa, Portugal
h i g h l i g h t s
•
We implemented a shared memory based interface of MARTe with EPICS.
•
We implemented an EPICS module supporting device and driver support.
•
We implemented an example EPICS IOC and CSS OPI for evaluation.
a r t i c l e i n f o
Article history:
Received 16 May 2013
Received in revised form 7 April 2014
Accepted 9 April 2014
Available online xxx
Keywords:
MARTe
EPICS
Real-time
Framework
KSTAR
Fusion
a b s t r a c t
The Multithreaded Application Real-Time executor (MARTe) is a multi-platform C++ middleware
designed for the implementation of real-time control systems. It currently supports the Linux,
Linux + RTAI, VxWorks, Solaris and MS Windows platforms. In the fusion community MARTe is being
used at JET, COMPASS, ISTTOK, FTU and RFX in fusion [1].
The Experimental Physics and Industrial Control System (EPICS), a standard framework for the con-
trol systems in KSTAR and ITER, is a set of software tools and applications which provide a software
infrastructure for use in building distributed control systems to operate devices.
For a MARTe based application to cooperate with an EPICS based application, an interface layer between
MARTe and EPICS is required. To solve this issue, a number of interfacing solutions have been proposed
and some of them have been implemented. Nevertheless, a new approach is required to mitigate the
functional limitations of existing solutions and to improve their performance for real-time applications.
This paper describes the design and implementation of a shared memory based interface between
MARTe and EPICS.
© 2014 Elsevier B.V. All rights reserved.
1. Introduction
The Korea Superconducting Tokamak Advanced Research
(KSTAR) [2] has performed the task of “Evaluation and Demonstra-
tion of ITER CODAC Technologies at KSTAR”. As part of this task, the
MARTe [3] had been evaluated as a candidate real-time framework
[4] and the plasma density feedback control system as a pilot sys-
tem had been implemented on KSTAR control system environment
by using MARTe and ITER (International Thermonuclear Experi-
mental Reactor) CODAC (COntrol, Data Access and Communication)
standard technologies [5].
The KSTAR control systems have been developed using EPICS, a
standard framework for the control systems in KSTAR and ITER. For
∗
Corresponding author. Tel.: +82 42 879 5235.
E-mail address: yunsw@nfri.re.kr (S. Yun).
example, the KSTAR SCS (Supervisory Control System) performing
centralized control of control systems uses EPICS Channel Access
(CA) as the interfacing method. Therefore the MARTe applications
developed for demonstration of the plasma density feedback con-
trol system also needed an interface with EPICS. As part of that, the
interface of MARTe with EPICS had been implemented using EPICS
supported pCAS (Portable Channel Access Server) [6]. During the
2012 campaign at KSTAR, the MARTe based applications were suc-
cessfully operated according to the experimental sequence through
the pCAS interface [5].
Nevertheless, the pCAS based interface method provides
limited functionality compared to the traditional EPICS IOC
(Input/Output Controller) and is less optimized in terms of per-
formance for real-time applications. Accordingly, a new approach
is required to mitigate the functional limitations of existing
solutions and to improve their performance for real-time appli-
cations.
http://dx.doi.org/10.1016/j.fusengdes.2014.04.038
0920-3796/© 2014 Elsevier B.V. All rights reserved.