JACoW logo

Journals of Accelerator Conferences Website (JACoW)

JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.


BiBTeX citation export for TUPV035: Continuous Integration for PLC-based Control System Development

@inproceedings{schofield:icalepcs2021-tupv035,
  author       = {B. Schofield and E. Blanco Viñuela and J.H.P.D.C. Borrego},
  title        = {{Continuous Integration for PLC-based Control System Development}},
  booktitle    = {Proc. ICALEPCS'21},
  pages        = {478--483},
  eid          = {TUPV035},
  language     = {english},
  keywords     = {PLC, controls, interface, SCADA, hardware},
  venue        = {Shanghai, China},
  series       = {International Conference on Accelerator and Large Experimental Physics Control Systems},
  number       = {18},
  publisher    = {JACoW Publishing, Geneva, Switzerland},
  month        = {03},
  year         = {2022},
  issn         = {2226-0358},
  isbn         = {978-3-95450-221-9},
  doi          = {10.18429/JACoW-ICALEPCS2021-TUPV035},
  url          = {https://jacow.org/icalepcs2021/papers/tupv035.pdf},
  abstract     = {{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.}},
}