Keyword: factory
Paper Title Other Keywords Page
TUPHA046 PLC Factory: Automating Routine Tasks in Large-Scale PLC Software Development ion, PLC, controls, EPICS 495
 
  • G. Ulm, F. Bellorini, D.P. Brodrick, R.N. Fernandes, N. Levchenko, D.P. Piso
    ESS, Lund, Sweden
 
  The European Spallation Source ERIC (ESS) in Lund, Sweden, is building large-scale infrastructure that is projected to include hundreds of programmable logic controllers (PLCs). Given the future large-scale deployment of PLCs at ESS, we therefore explored ways of automating some of the tasks associated with PLC programming. We designed and implemented PLC Factory, which is an application written in Python that facilitates large-scale PLC development. With PLC Factory, we managed to automate repetitive tasks associated with PLC programming and interfacing PLCs with an EPICS database. A key part of PLC Factory is its embedded domain-specific programming language PLCF#, which makes it possible to define dynamic substitutions. Using a database for configuration management, PLC Factory is able to generate both EPICS database records as well as code blocks in Structured Control Language (SCL) for the Siemens product TIA Portal. Hierarchies of devices of arbitrary depth are taken into account, which means that dependencies of devices are correctly resolved. PLC Factory is in active use at ESS.  
poster icon Poster TUPHA046 [0.185 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-TUPHA046  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
TUPHA163 CBNG - The New Build Tool Used to Build Millions of Lines of Java Code at CERN ion, controls, MMI, software 789
 
  • L. Cseppento, V. Baggiolini, E. Fejes, Zs. Kovari, N. Stapley
    CERN, Geneva, Switzerland
 
  A large part of the CERN Accelerator Control System is written in Java by around 180 developers (software engineers, operators, physicists and hardware specialists). The codebase contains more than 10 million lines of code, which are packaged as 1000+ JARs and are deployed as 600+ different client/server applications. All this software are produced using CommonBuild Next Generation (CBNG), an enterprise build tool implemented on top of industry standards, which simplifies and standardizes the way our applications are built. CBNG not only includes general build tool features (such as dependency management, code compilation, test execution and artifact uploading), but also provides traceability throughout the software life cycle and makes releases ready for deployment. The interface is kept as simple as possible: the users declare the dependencies and the deployment units of their projects in one file. This article describes the build process, as well as the design goals, the features, and the technology behind CBNG.  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-TUPHA163  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
TUPHA174 Cumbia: A New Library for Multi-Threaded Application Design and Implementation ion, TANGO, controls, EPICS 830
 
  • G. Strangolino
    Elettra-Sincrotrone Trieste S.C.p.A., Basovizza, Italy
 
  Cumbia is a new library that offers a carefree approach to multi-threaded application design and implementation. Written from scratch, it can be seen as the evolution of the QTango library, because it offers a more flexible and object oriented multi-threaded programming style. Less concern about locking techniques and synchronization, and well defined design patterns stand for more focus on the work to be performed inside Cumbia Activities and reliable and reusable software as a result. The user writes Activities and decides when their instances are started and to which thread they belong. A token is used to register an Activity, and activities with the same token are run in the same thread. Computed results can be forwarded to the main execution thread, where a GUI can be updated. In conjunction with the Cumbia-Tango module, this framework serves the developer willing to connect an application to the Tango control system. The integration is possible both on the client and the server side. An example of a TANGO device using Cumbia to do work in background has already been developed, as well as simple Qt graphical clients relying on the framework.  
poster icon Poster TUPHA174 [0.567 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-TUPHA174  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
THAPL02 Best Practices for Efficient Development of JavaFX Applications ion, controls, GUI, framework 1078
 
  • G. Kruk, O. Da Silva Alves, L. Molinari, E. Roux
    CERN, Geneva, Switzerland
 
  JavaFX, the GUI toolkit included in the standard JDK, has reached a level of maturity enabling its usage for Control Systems applications. Property bindings, built-in separation between logic (Controller) and visual part (FXML) that can be designed with Scene Builder, combined with the leverage of Java 8 features such as λ expressions or method references, make this toolkit a very compelling choice for the creation of clean and testable GUI applications. This article describes best practices and tools that improve developer's efficiency even further. Structuring applications for productivity, simplified FXML loading, the application of Dependency Injection and Presentation Model patterns, testability are discussed among other topics, along with support of IDE tooling.  
video icon Talk as video stream: https://youtu.be/18aAg4PNeis  
slides icon Slides THAPL02 [7.691 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-THAPL02  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
THCPL03 A Success-History Based Learning Procedure to Optimize Server Throughput in Large Distributed Control Systems ion, controls, simulation, MMI 1182
 
  • Y. Gao, T.G. Robertazzi
    Stony Brook University, Stony Brook, New York, USA
  • K.A. Brown
    BNL, Upton, Long Island, New York, USA
  • J. Chen
    Stony Brook University, Computer Science Department, Stony Brook, New York, USA
 
  Funding: Work supported by Brookhaven Science Associates, LLC under Contract No. DE-SC0012704 with the U.S. Department of Energy.
Large distributed control systems typically can be modeled by a hierarchical structure with two physical layers: Console Level Computers (CLCs) and Front End Computers (FECs). The controls system of the Relativistic Heavy Ion Collider (RHIC) consists of more than 500 FECs, each acting as a server providing services to a potentially unlimited number of clients. This can lead to a bottleneck in the system. Heavy traffic can slow down or even crash a system, making it momentarily unresponsive. One mechanism to circumvent this is to transfer the heavy communications traffic to more robust higher performance servers, keeping the load on the FEC low. In this work, we study this client-server problem from a different perspective. We introduce a novel game theory model for the problem, and formulate it into an integer programming problem. We point out its difficulty and propose a heuristic algorithms to solve it. Simulation results show that our proposed schemes efficiently manage the client-server activities, and result in a high server throughput and a low crash probability.
 
video icon Talk as video stream: https://youtu.be/veLaGGNTs8w  
slides icon Slides THCPL03 [1.321 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-THCPL03  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
THMPL10 New VME-Based Hardware for Automation in BINP ion, controls, hardware, TANGO 1294
 
  • G.A. Fatkin, A.O. Baluev, A.M. Batrakov, E.S. Kotov, Ya.M. Macheret, V.R. Mamkin, A. Panov, A.V. Pavlenko, A.N. Selivanov, M.Yu. Vasilyev
    BINP SB RAS, Novosibirsk, Russia
  • G.A. Fatkin, E.S. Kotov, A.V. Pavlenko, M.Yu. Vasilyev
    NSU, Novosibirsk, Russia
 
  A new VME-based crate and modules are presented in this work. This hardware is primarily intended for LIA-20 control system, but we also plane to use it for the upgrade of the controls of existing complexes such as: VEPP-2000, VEPP-4, VEPP-5 Preinjector. Modules were designed with an ability to be used planned projects such as Super c-tau factory. A crate is 6U VME64x compatible crate with additional synchronization, daisy-chain lines and 6U RIO-modules. Each crate has a built-in status monitoring over CAN-BUS with independent power supply. A family of VME modules is based on the same design sample and include: digitizers, timing modules, CAN-interface module, interlock module. All modules are cost effective and have TANGO device servers developed for them.  
slides icon Slides THMPL10 [7.378 MB]  
poster icon Poster THMPL10 [5.851 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-THMPL10  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
THPHA176 Streaming Pool - Managing Long-Living Reactive Streams for Java ion, controls, coupling, GUI 1837
 
  • A. Calia, K. Fuchsberger, M. Gabriel, M.A. Galilée, J.C. Garnier, G.H. Hemelsoet, M. Hostettler, M. Hruska, D. Jacquet, J. Makai, T. Martins Ribeiro, A. Stanisz
    CERN, Geneva, Switzerland
 
  A common use case in accelerator control systems is subscribing to many properties and multiple devices and combine data from this. A new technology which got standardized during recent years in software industry are so-called reactive streams. Libraries implementing this standard provide a rich set of operators to manipulate, combine and subscribe to streams of data. However, the usual focus of such streaming libraries are applications in which those streams complete within a limited amount of time or collapse due to errors. On the other hand, in the case of a control systems we want to have those streams live for a very long time (ideally infinitely) and handle errors gracefully. In this paper we describe an approach which allows two reactive stream styles: ephemeral and long-living. This allows the developers to profit from both, the extensive features of reactive stream libraries and keeping the streams alive continuously. Further plans and ideas are also discussed.  
poster icon Poster THPHA176 [1.232 MB]  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-THPHA176  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
THPHA177 Tensorics - A Java Library for Manipulating Multi-Dimensional Data ion, operation, controls, luminosity 1842
 
  • K. Fuchsberger, A. Calia, J.C. Garnier, A.A. Gorzawski, M. Hostettler, K.H. Krol
    CERN, Geneva, Switzerland
 
  Accelerator control software often has to handle multi-dimensional data of physical quantities when aggregating readings from multiple devices (e.g. the reading of an orbit in the LHC). When storing such data as nested hashtables or lists, the ability to do structural operations or calculations along an arbitrary dimensions is hampered. Tensorics is a Java library to provide a solution for these problems. A Tensor is a n-dimensional data structure, and both structural (e.g. extraction) and mathematical operations are possible along any dimension. Any Java class or interface can serve as a dimension, with coordinates being instances of a dimension class. This contribution will elaborate on the design and the functionality of the Tensorics library and highlight existing use cases in operational LHC control software, e.g. the LHC luminosity server or the LHC chromaticity correction application.  
DOI • reference for this paper ※ https://doi.org/10.18429/JACoW-ICALEPCS2017-THPHA177  
Export • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)