Cargando…
Continuous Integration for PLC-based Control System Development
Continuous Integration and Continuous Deployment (CI/CD) is a software engineering methodology which emphasises frequent, small changes committed to a version control system, which are verified by a suite of automatic tests, and which may be deployed to different environments. While CI/CD is well es...
Autores principales: | , , |
---|---|
Lenguaje: | eng |
Publicado: |
2022
|
Materias: | |
Acceso en línea: | https://dx.doi.org/10.18429/JACoW-ICALEPCS2021-TUPV035 http://cds.cern.ch/record/2812270 |
_version_ | 1780973329309499392 |
---|---|
author | Schofield, Brad Blanco Viñuela, Enrique Borrego, João |
author_facet | Schofield, Brad Blanco Viñuela, Enrique Borrego, João |
author_sort | Schofield, Brad |
collection | CERN |
description | Continuous Integration and Continuous Deployment (CI/CD) is a software engineering methodology which emphasises frequent, small changes committed to a version control system, which are verified by a suite of automatic tests, and which may be deployed to different environments. While CI/CD is well established in software engineering, it is not yet widely used in the development of industrial controls systems. However, the advantages of using CI/CD for such systems are clear. In this paper we describe a complete CI/CD pipeline able to automatically build Siemens PLC projects from sources, download the program to a PLC, and run a sequence of tests which interact with the PLC via both a Simulation Unit Profibus simulator and an OPC UA interface provided by Simatic NET. To achieve this, a gRPC service wrapping the Simatic API was used to provide an interface to the PLC project from the pipeline. In addition, a Python wrapper was created for the Simulation Unit API, as well as for the OPC UA interface, which allowed the test suite to be implemented in Python. A particle accelerator interlock system based on Siemens S7-300 PLCs has been taken as a use case to demonstrate the concept. |
id | cern-2812270 |
institution | Organización Europea para la Investigación Nuclear |
language | eng |
publishDate | 2022 |
record_format | invenio |
spelling | cern-28122702022-08-10T13:11:14Zdoi:10.18429/JACoW-ICALEPCS2021-TUPV035http://cds.cern.ch/record/2812270engSchofield, BradBlanco Viñuela, EnriqueBorrego, JoãoContinuous Integration for PLC-based Control System DevelopmentAccelerators and Storage RingsContinuous Integration and Continuous Deployment (CI/CD) is a software engineering methodology which emphasises frequent, small changes committed to a version control system, which are verified by a suite of automatic tests, and which may be deployed to different environments. While CI/CD is well established in software engineering, it is not yet widely used in the development of industrial controls systems. However, the advantages of using CI/CD for such systems are clear. In this paper we describe a complete CI/CD pipeline able to automatically build Siemens PLC projects from sources, download the program to a PLC, and run a sequence of tests which interact with the PLC via both a Simulation Unit Profibus simulator and an OPC UA interface provided by Simatic NET. To achieve this, a gRPC service wrapping the Simatic API was used to provide an interface to the PLC project from the pipeline. In addition, a Python wrapper was created for the Simulation Unit API, as well as for the OPC UA interface, which allowed the test suite to be implemented in Python. A particle accelerator interlock system based on Siemens S7-300 PLCs has been taken as a use case to demonstrate the concept.oai:cds.cern.ch:28122702022 |
spellingShingle | Accelerators and Storage Rings Schofield, Brad Blanco Viñuela, Enrique Borrego, João Continuous Integration for PLC-based Control System Development |
title | Continuous Integration for PLC-based Control System Development |
title_full | Continuous Integration for PLC-based Control System Development |
title_fullStr | Continuous Integration for PLC-based Control System Development |
title_full_unstemmed | Continuous Integration for PLC-based Control System Development |
title_short | Continuous Integration for PLC-based Control System Development |
title_sort | continuous integration for plc-based control system development |
topic | Accelerators and Storage Rings |
url | https://dx.doi.org/10.18429/JACoW-ICALEPCS2021-TUPV035 http://cds.cern.ch/record/2812270 |
work_keys_str_mv | AT schofieldbrad continuousintegrationforplcbasedcontrolsystemdevelopment AT blancovinuelaenrique continuousintegrationforplcbasedcontrolsystemdevelopment AT borregojoao continuousintegrationforplcbasedcontrolsystemdevelopment |