EPICS Application Developer's Guide

Total Page:16

File Type:pdf, Size:1020Kb

EPICS Application Developer's Guide 1 EPICS Application Developer’s Guide EPICS Base Release 3.15.0.2 17 October 2014 Andrew N. Johnson, Janet B. Anderson, Martin R. Kraimer (Argonne National Laboratory) W. Eric Norum (Lawrence Berkeley National Laboratory) Jeffrey O. Hill (Los Alamos National Laboratory) Ralph Lange, Benjamin Franksen (Helmholtz-Zentrum Berlin) Peter Denison (Diamond Light Source) 2 Contents EPICS Applications Developer’s Guide1 Table of Contents 7 1 Introduction 9 1.1 Overview.................................................9 1.2 Acknowledgments............................................ 11 2 Getting Started 13 2.1 Introduction................................................ 13 2.2 Example IOC Application........................................ 13 2.3 Channel Access Host Example...................................... 15 2.4 iocsh.................................................... 16 2.5 Building IOC components........................................ 16 2.6 makeBaseApp.pl............................................. 19 2.7 vxWorks boot parameters......................................... 22 2.8 RTEMS boot procedure.......................................... 23 3 EPICS Overview 25 3.1 What is EPICS?.............................................. 25 3.2 Basic Attributes.............................................. 26 3.3 IOC Software Components........................................ 26 3.4 Channel Access.............................................. 28 3.5 OPI Tools................................................. 30 3.6 EPICS Core Software........................................... 30 4 Build Facility 33 4.1 Overview................................................. 33 4.2 Build Requirements............................................ 35 4.3 Configuration Definitions......................................... 36 4.4 Makefiles................................................. 41 4.5 Make................................................... 42 4.6 Makefile definitions............................................ 43 4.7 Table of Makefile definitions....................................... 71 4.8 Configuration Files............................................ 78 4.9 Build Documentation Files........................................ 81 4.10 Startup Files................................................ 82 5 Database Locking, Scanning, And Processing 83 5.1 Overview................................................. 83 5.2 Record Links............................................... 83 5.3 Database Links.............................................. 84 5.4 Database Locking............................................. 85 3 4 CONTENTS 5.5 Database Scanning............................................ 85 5.6 Record Processing............................................ 86 5.7 Guidelines for Creating Database Links................................. 86 5.8 Guidelines for Synchronous Records................................... 89 5.9 Guidelines for Asynchronous Records.................................. 89 5.10 Cached Puts................................................ 91 5.11 processNotify............................................... 91 5.12 Channel Access Links........................................... 91 6 Database Definition 95 6.1 Overview................................................. 95 6.2 Summary of Database Syntax....................................... 95 6.3 General Rules for Database Definition.................................. 96 6.4 path addpath – Path Definition................................... 98 6.5 include – Include File......................................... 99 6.6 menu – Menu Declaration........................................ 99 6.7 recordtype – Record Type Declaration................................ 100 6.8 device – Device Support Declaration................................. 103 6.9 driver – Driver Declaration...................................... 104 6.10 registrar – Registrar Declaration.................................. 104 6.11 variable – Variable Declaration.................................... 105 6.12 function – Function Declaration................................... 106 6.13 breaktable – Breakpoint Table.................................... 106 6.14 record – Record Instance........................................ 107 6.15 Record Information Item......................................... 110 6.16 Record Attributes............................................. 111 6.17 Breakpoint Tables – Discussion...................................... 111 6.18 Menu and Record Type Include File Generation.............................. 112 6.19 dbdExpand.pl............................................... 116 6.20 dbLoadDatabase............................................. 116 6.21 dbLoadRecords.............................................. 117 6.22 dbLoadTemplate............................................. 117 7 IOC Initialization 121 7.1 Overview - Environments requiring a main program........................... 121 7.2 Overview - vxWorks........................................... 122 7.3 Overview - RTEMS............................................ 122 7.4 IOC Initialization............................................. 123 7.5 Pausing an IOC.............................................. 125 7.6 Changing iocCore fixed limits...................................... 126 7.7 initHooks................................................. 126 7.8 Environment Variables.......................................... 128 7.9 Initialize Logging............................................. 128 8 Access Security 129 8.1 Overview................................................. 129 8.2 Quick Start................................................ 129 8.3 User’s Guide............................................... 130 8.4 Design Summary............................................. 135 8.5 Access Security Application Programmer’s Interface.......................... 138 8.6 Database Access Security......................................... 143 8.7 Channel Access Security......................................... 145 8.8 Trapping Channel Access Writes..................................... 147 8.9 Access Control: Implementation Overview............................... 147 CONTENTS 5 8.10 Structures................................................. 149 9 IOC Test Facilities 151 9.1 Overview................................................. 151 9.2 Database List, Get, Put.......................................... 151 9.3 Breakpoints................................................ 154 9.4 Trace Processing............................................. 155 9.5 Error Logging............................................... 155 9.6 Hardware Reports............................................. 156 9.7 Scan Reports............................................... 157 9.8 General Time............................................... 157 9.9 Access Security Commands....................................... 158 9.10 Channel Access Reports......................................... 160 9.11 Interrupt Vectors............................................. 161 9.12 Miscellaneous............................................... 161 9.13 Database System Test Routines...................................... 162 9.14 Record Link Reports........................................... 163 9.15 Old Database Access Testing....................................... 163 9.16 Routines to dump database information................................. 164 10 IOC Error Logging 167 10.1 Overview................................................. 167 10.2 Error Message Routines.......................................... 168 10.3 errlog Listeners.............................................. 169 10.4 errlogThread............................................... 170 10.5 console output and message queue size.................................. 170 10.6 Status Codes................................................ 170 10.7 iocLog................................................... 171 11 Record Support 175 11.1 Overview................................................. 175 11.2 Overview of Record Processing..................................... 175 11.3 Record Support and Device Support Entry Tables............................ 176 11.4 Example Record Support Module.................................... 177 11.5 Record Support Routines......................................... 183 11.6 Global Record Support Routines..................................... 187 12 Device Support 191 12.1 Overview................................................. 191 12.2 Example Synchronous Device Support Module............................. 192 12.3 Example Asynchronous Device Support Module............................. 193 12.4 Device Support Routines......................................... 195 12.5 Extended Device Support......................................... 196 13 Driver Support 199 13.1 Overview................................................. 199 13.2 Device Drivers.............................................. 199 14 Static Database Access 203 14.1 Overview................................................. 203 14.2 Definitions................................................. 203 14.3 Allocating and Freeing DBBASE..................................... 205 14.4 DBENTRY Routines........................................... 205 14.5 Read and Write Database......................................... 206 14.6 Manipulating Record Types........................................ 207 6 CONTENTS 14.7 Manipulating Field Descriptions..................................... 208 14.8 Manipulating Record Attributes....................................
Recommended publications
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [Show full text]
  • Atmospheric Modelling and HPC
    Atmospheric Modelling and HPC Graziano Giuliani ICTP – ESP Trieste, 1 October 2015 NWP and Climate Codes ● Legacy code from the '60 : FORTRAN language ● Path and Dynamic Libraries ● Communication Libraries ● I/O format Libraries ● Data analysis tools and the data deluge http://clima-dods.ictp.it/Workshops/smr2761 Materials ● This presentation: – atmospheric_models_and_hpc.pdf ● Codes: – codes.tar.gz ● Download both, uncompress codes: – cp codes.tar.gz /scratch – cd /scratch – tar zxvf codes.tar.gz Legacy code ● Numerical Weather Prediction uses mathematical models of the atmosphere and oceans to predict the weather based on current weather conditions. ● MOST of the NWP and climate codes can push their roots back in the 1960-1970 ● The NWP problem was one of the target problem which led to the Computer Era: the ENIAC was used to create the first weather forecasts via computer in 1950. ● Code grows by ACCRETION FORTRAN and FortranXX ● Fortran Programming Language is a general-purpose, imperative programming language that is especially suited to numeric computation and scientific computing. ● Originally developed by IBM in the 1950s for scientific and engineering applications ● Its standard is controlled by an ISO comitee: the most recent standard, ISO/IEC 1539-1:2010, informally known as Fortran 2008, was approved in September 2010. ● Needs a compiler to translate code into executable Fortran Compilers ● http://fortranwiki.org ● Most of the High Performance Compilers are Commercial, and “SuperComputer” vendors usually provide their HIGH OPTIMIZED version of Fortran Compiler. ● Some part of the Standard are left “COMPILER SPECIFIC”, opening for incompatibility among the binary formats produced by different compilers. The Fortran .mod files ● Fortran 90 introduced into the language the modules: module my_mod contains subroutine mysub(a,b) real , intent(in) :: a real , intent(out) :: b end subroutine mysub end module my_mod ● The compiler creates the object file and a .mod file compiling the above code.
    [Show full text]
  • CCPP Technical Documentation Release V3.0.0
    CCPP Technical Documentation Release v3.0.0 J. Schramm, L. Bernardet, L. Carson, G. Firl, D. Heinzeller, L. Pan, and M. Zhang Jun 17, 2019 For referencing this document please use: Schramm, J., L. Bernardet, L. Carson, G. Firl, D. Heinzeller, L. Pan, and M. Zhang, 2019. CCPP Technical Documentation Release v3.0.0. 91pp. Available at https://dtcenter.org/GMTB/v3.0/ccpp_tech_guide.pdf. CONTENTS 1 CCPP Overview 1 1.1 How to Use this Document........................................4 2 CCPP-Compliant Physics Parameterizations7 2.1 General Rules..............................................8 2.2 Input/output Variable (argument) Rules.................................9 2.3 Coding Rules............................................... 10 2.4 Parallel Programming Rules....................................... 11 2.5 Scientific Documentation Rules..................................... 12 2.5.1 Doxygen Comments and Commands.............................. 12 2.5.2 Doxygen Documentation Style................................. 13 2.5.3 Doxygen Configuration..................................... 18 2.5.4 Using Doxygen......................................... 20 3 CCPP Configuration and Build Options 23 4 Constructing Suites 27 4.1 Suite Definition File........................................... 27 4.1.1 Groups............................................. 27 4.1.2 Subcycling........................................... 27 4.1.3 Order of Schemes........................................ 28 4.2 Interstitial Schemes........................................... 28 4.3 SDF Examples.............................................
    [Show full text]
  • Development of the Software Tools Using Python for Epics-Based Control System T
    TPPA16 Proceedings of ICALEPCS07, Knoxville, Tennessee, USA DEVELOPMENT OF THE SOFTWARE TOOLS USING PYTHON FOR EPICS-BASED CONTROL SYSTEM T. T. Nakamura, K. Furukawa, J-I. Odagiri, N. Yamamoto, KEK, Tsukuba, Ibaraki, Japan Abstract Basic functions of CA are get, put, and monitor In the commissioning phase of accelerators, many operations. List 1 shows an example of get operation of application programs are built and modified frequently by Python-CA. Module name of Python-CA is “ca”, which nonexpert programmers. Scripting language such as appears in import statement. Python is suitable for such quick development. Since List 1: Example of Python-CA (get operation) EPICS Channel Access interface library in Python was import ca developed in KEKB accelerator control system, many programs has been written in Python. We have been chan = ca.channel("channel_name") developing, providing some tools and libraries for Python chan.wait_conn() programming. Some of the recent developments in KEK chan.get() are reported, and possible applications are also discussed. ca.pend_event(1.0) value = chan.val INTRODUCTION KEKB is an asymmetric electron-positron collider at 8 Simple-CA library × 3.5 GeV/c, which is dedicated to B-meson physics. Its While Python-CA provides powerful functions of CA operation was started in December 1998. The KEKB client library, most people still feels complexity for CA accelerators control system has been constructed based on programming. List 1 show that even for single get EPICS (Experimental Physics and Industrial Control operation it needs 4 function (or method) calls. System) tool kit [1]. EPICS provides core mechanism for We have also developed Simple-CA library, which is a the distributed control system.
    [Show full text]
  • Pure Labview Implementation of EPICS Communication Protocol
    Pure LabVIEW Implementation of EPICS Communication Protocol Alexander Zhukov Spallation Neutron Source, ORNL NIWeek 2012 Managed by UT-Battelle for the Department of Energy What is EPICS Experimental Physics and Industrial Control System (EPICS) is a set of Open Source software tools, libraries and applications developed collaboratively and used worldwide to create distributed soft real-time control systems for scientific instruments such as a particle accelerators, telescopes and other large scientific experiments. Major collaborators – ANL – LANL – ORNL (SNS) – SLAC (SSRL, LCLS) – JLAB (CEBAF) – DESY – BESSY – PSI (SLS) – KEK Runs on variety of hardware/OS (Linux, VxWorks, Windows, Mac, RTEMS…) 2 Managed by UT-Battelle for the Department of Energy How EPICS works A network based fully distributed client/server model Client and server use Channel Access (CA) protocol to communicate Everything spins around process variables (PV) – an entity similar to LabVIEW network shared variable – A server (Input Output Controller – IOC) publishes data by updating PVs – PV corresponds to some value (measurement, setting, status etc) – Every PV has unique name – Client has ways to read PVs and update them over network – Client can subscribe to particular PV and monitor its value or state without polling it Standard EPICS server also has records processing mechanism – Control logic is programmed in records definition file – Allows perform routine tasks without explicitly programming in C – In addition to value every record has also status (OK,
    [Show full text]
  • EPICS at Fermilab: Not Just D0 Anymore - Cavities, Cavities, Cavities
    EPICS at Fermilab: Not just D0 anymore - Cavities, Cavities, Cavities Geoff Savage for the Dzero and ILCTA controls groups Wed June 14, 2006 EPICS Collaboration Meeting Current EPICS Projects Run II Experiments D0 Controls. ILC Test Accelerator (ILCTA) @ FNAL Cavity testing in three facilities, maybe a fourth Horizontal Test Facility/Coupler conditioning (MDB) Run tests in August 2006 Vertical Test Facility (IB1) Getting started Beam test (NML) using photoinjector currently at A0 Preparing facility - cryo installed at the end of 2007 Other Proton Driver – EPICS only control system Nova – Seriously evaluating EPICS as control system for DAQ. Maybe also for controls itself? 6/14/2006 EPICS Collaboration Mtg 2 D0 Detector Increased luminosity in Run IIb Just finished detector upgrade Silicon layer 0 Enhanced triggering systems Goals for controls Support new field busses Remove 68k processors from system Move to EPICS 3.14.8.2 Controls - all EPICS all the time DAQ controls are independent 6/14/2006 EPICS Collaboration Mtg 3 D0 Controls Two new field buses CANbus driver wrapped in ASYN TPMC816 - dual channel PMC CANbus module Implements limited CANbus feature set Raw ethernet driver in ASYN Linux IOC connected via fiber to remote crate Trying to get to 3.14.8.2 Tested but not deployed Currently using 3.14.6 and 3.13.4 MVME5500 processors Remove remaining 68k processors ~ 25 Some problems - similar experiences? 6/14/2006 EPICS Collaboration Mtg 4 ILCTA Controls Systems ACNET (FNAL) Accelerator Division Drivers/interfaces for FNAL devices already written and in use at Fermilab in ILCTA (HRM) EPICS (ANL) Cryogenics interface for MDB and NML.
    [Show full text]
  • Studying the Evolution of Build Systems
    Studying the Evolution of Build Systems by Shane McIntosh A thesis submitted to the School of Computing in conformity with the requirements for the degree of Master of Science Queen's University Kingston, Ontario, Canada January 2011 Copyright c Shane McIntosh, 2011 Abstract As a software project ages, its source code is improved by refining existing features, adding new ones, and fixing bugs. Software developers can attest that such changes often require accompanying changes to the infrastructure that converts source code into executable software packages, i.e., the build system. Intuition suggests that these build system changes slow down development progress by diverting developer focus away from making improvements to the source code. While source code evolution and maintenance is studied extensively, there is little work that focuses on the build system. In this thesis, we empirically study the static and dynamic evolution of build system complexity in proprietary and open source projects. To help counter potential bias of the study, 13 projects with different sizes, domains, build technologies, and release strategies were selected for examination, including Eclipse, Linux, Mozilla, and JBoss. We find that: (1) similar to Lehman's first law of software evolution, Java build system specifications tend to grow unless explicit effort is invested into restructuring them, (2) the build system accounts for up to 31% of the code files in a project, and (3) up to 27% of source code related development tasks require build maintenance. Project managers should include build maintenance effort of this magnitude in their project planning and budgeting estimations. i Co-authorship Earlier versions of the work in this thesis were published as listed below: 1) The Evolution of ANT Build Systems (Chapter 4) Shane McIntosh, Bram Adams, and Ahmed E.
    [Show full text]
  • REALIZATION of LINUX PLATFORM in DISTRIBUTED CONTROL SYSTEM by EPICS at BEPCII Zhuo Zhao, C.H.Wang, Ge Lei, J.J.Zhao, K.J.Yue, Jia Liu, IHEP, Beijing, China
    Proceedings of ICALEPCS2003, Gyeongju, Korea REALIZATION OF LINUX PLATFORM IN DISTRIBUTED CONTROL SYSTEM BY EPICS AT BEPCII Zhuo Zhao, C.H.Wang, Ge Lei, J.J.Zhao, K.J.Yue, Jia Liu, IHEP, Beijing, China Abstract also has friendly operating interface and it supports IHEP will begin the BEPCII project that has been software transplanting. funded by the Chinese Government in order to further At present, Red Hat Linux has developed release 9. So I upgrade the BEPC (Beijing Electron Positron Collider) select the latest release-Red Hat Linux 9 as the operating which has operated since 1989 [1]. As a part of this system that is installed on PC [4]. updating project, control system is decided to use EPICS The installing of ftp server and downloading of [2]. EPICS IOCs can run on many kinds of operating systems [3], for example VxWorks, Unix, Linux, VxWorks kernel Windows, RTEMS and so on. Based on the idea of After the Red Hat Linux 9 has been installed on one creating EPICS OPI on Linux and downloading real-time PC, ftp server should be also installed and started. The ftp database to VME IOC target board, this article is mainly server that I select is vsftpd whose “.rpm” instalation file about how to setup EPICS base and EPICS extension on is included in the Red Hat Linux 9’s installation Linux operating system and furthermore how to finish CDROM. communication between server and Linux control The VxWorks boot file should be in the special platform. In order to come into being a friendly directory in order to download VxWorks kernel.
    [Show full text]
  • Impact of Different Compilers and Build Types on Geant4 Simulation Execution Time
    EPJ Web of Conferences 245, 05037 (2020) https://doi.org/10.1051/epjconf/202024505037 CHEP 2019 Impact of different compilers and build types on Geant4 simulation execution time Caterina Marcon1;∗, Oxana Smirnova1, and Servesh Muralidharan2 1Lunds Universitet, Fysiska Institutionen, Box 118, SE - 221 00 Lund, Sweden 2CERN, CH-1211 Geneva 23, Switzerland Abstract. Experimental observations and advanced computer simulations in High Energy Physics (HEP) paved the way for the recent discoveries at the Large Hadron Collider (LHC) at CERN. Currently, Monte Carlo simulations account for a very significant amount of computational resources of the World- wide LHC Computing Grid (WLCG). The current growth in available com- puting performance will not be enough to fulfill the expected demand for the forthcoming High Luminosity run (HL-LHC). More efficient simulation codes are therefore required. This study focuses on evaluating the impact of different build methods on the simulation execution time. The Geant4 toolkit, the standard simulation code for the LHC experiments, consists of a set of libraries which can be either dynam- ically or statically linked to the simulation executable. Dynamic libraries are currently the preferred build method. In this work, three versions of the GCC compiler, namely 4.8.5, 6.2.0 and 8.2.0 have been used. In addition, a comparison between four optimization levels (Os, O1, O2 and O3) has also been performed. Static builds for all the GCC versions considered, exhibit a reduction in ex- ecution times of about 10%. Switching to newer GCC version results in an average of 30% improvement in the execution time regardless of the build type.
    [Show full text]
  • Building EPICS Software
    Building EPICS Software Andrew Johnson and Tim Mooney AES/SSG Outline ■ Build Base 3.14.12.5 ● Architectures: Linux, VxWorks ● Test by creating the makeBaseApp example ■ Build Extensions ● Build msi, MEDM, StripTool ■ Build Support Modules ● Sequencer, Asyn ■ Build synapps 5.8 ■ Build xxx as separate top 03/16/15 Base 3.14.12.5 ■ Actually Base 3.14.12.5-rc1 since the final release is not yet out ■ Website: http://www.aps.anl.gov/epics/base/R3-14/12.php ■ Download: http://www.aps.anl.gov/epics/download/base/baseR3.14.12.5-rc1.tar.gz ■ Prerequisites: GNU Make, Perl, C and C++ compilers (GCC) ● Many Linux distributions install these by default or as a single ● Optional: GNU readline developer package, recommended □ RPM: readline-devel DEB: libreadline-dev 03/16/15 Extensions ■ Extensions Configure files (R3.14) ● Website: http://www.aps.anl.gov/epics/extensions/configure/index.php ● Download: http://www.aps.anl.gov/epics/download/extensions/extensionsTop_20120904.tar.gz ● Prerequisites: EPICS Base ■ MSI – Macro Substitution and Include ● Website: http://www.aps.anl.gov/epics/extensions/msi/index.php ● Download: http://www.aps.anl.gov/epics/download/extensions/msi1-6.tar.gz ● Prerequisites: Extensions Configure 03/16/15 Extensions: Motif Clients ■ MEDM ● Website: http://www.aps.anl.gov/epics/extensions/medm/index.php ● Download: http://www.aps.anl.gov/epics/download/extensions/medm3_1_9.tar.gz ● Prerequisites: Developer packages for OpenMotif, libXmu, libXp, libXpm, libXext, libX11 □ DEB: libmotif-dev, x11proto-print-dev, libxmu-dev, libxp-dev,
    [Show full text]
  • CCPP Technical Documentation Release V4.0.0
    CCPP Technical Documentation Release v4.0.0 J. Schramm, L. Bernardet, L. Carson, G. Firl, D. Heinzeller, L. Pan, and M. Zhang Mar 26, 2020 For referencing this document please use: Schramm, J., L. Bernardet, L. Carson, G. Firl, D. Heinzeller, L. Pan, and M. Zhang, 2020. CCPP Technical Documentation Release v4.0.0. Available at https://dtcenter.org/GMTB/v4.0/ccpp_tech_guidev4.0.pdf. CONTENTS 1 CCPP Overview 1 1.1 How to Use this Document........................................4 2 CCPP-Compliant Physics Parameterizations7 2.1 General Rules..............................................8 2.2 Metadata Rules..............................................9 2.3 Input/output Variable (argument) Rules................................. 11 2.4 Coding Rules............................................... 12 2.5 Parallel Programming Rules....................................... 12 2.6 Scientific Documentation Rules..................................... 13 2.6.1 Doxygen Comments and Commands.............................. 14 2.6.2 Doxygen Documentation Style................................. 14 2.6.3 Doxygen Configuration..................................... 19 2.6.4 Including metadata information................................ 21 2.6.5 Using Doxygen......................................... 22 3 CCPP Configuration and Build Options 23 4 Constructing Suites 27 4.1 Suite Definition File........................................... 27 4.1.1 Groups............................................. 27 4.1.2 Subcycling........................................... 27 4.1.3 Order
    [Show full text]
  • Matlab Objects for Epics Channel Access
    Proceedings of ICALEPCS2013, San Francisco, CA, USA MOPPC146 MATLAB OBJECTS FOR EPICS CHANNEL ACCESS J. Chrin, Paul Scherrer Institut, 5232 Villigen PSI, Switzerland Abstract • Improved CA reconnection management to ensure With the substantial dependence on MATLAB for appli- stability and robustness in every eventuality. cation development at the SwissFEL Injector Test Facility • Compilation on 64-bit Linux architectures. (SITF), the requirement for a robust and more extensive EPICS (Experimental Physics and Industrial Controls Sys- In the meantime and per contra, a new C++ CA inter- tem) Channel Access (CA) interface became increasingly face library, CAFE [9], has recently been developed in- imperative. To this effect, a new MATLAB Executable house that provided the required underlying functionality. (MEX) file has been developed around an in-house C++ Since CAFE further sought to act as a CA host library to CA interface library (CAFE), which serves to expose com- scripting and domain-specific languages, the development prehensive control system functionality to within the MAT- of bindings to MATLAB presented itself as a natural exten- LAB framework. Immediate benefits include support for sion. To achieve this necessitated gaining knowledge and all MATLAB data types, a richer set of synchronous and experience in the use of the MATLAB C Application Pro- asynchronous methods, a further physics oriented abstrac- gramming Interface (API). A dynamically loadable MAT- tion layer that uses CA synchronous groups, and compila- LAB Executable (MEX) file could then be constructed that tion on 64-bit architectures. An account of the MOCHA would allow CAFE routines to be called from within the (MATLAB Objects for CHannel Access) interface is pre- MATLAB framework, in the same manner as MATLAB sented.
    [Show full text]