fec...- apache maven - java 1.7, python 2.6 - oracle instant client 11 - 8 virtual machines with 2...

1
The solution allowed to produce and to successfully deploy control software in all sectors of the cryogenics systems of the LHC tunnel and also to implement all requested last-minute changes. Until now two sectors are being cooled down while others are operational, in recommissioning phase. Continuous Integration practice, including automated builds and tests, is used successfully in software engineering since many years. Discussed developments, experiences and results of applying this approach to improve process of producing control system software for cryogenics in the LHC tunnel proved that the methodology can be equally useful in the field of industrial automation. It allows significantly optimize development process and (with help of hardware simulation devices) raise quality of the software produced for large-scale control systems. Conclusions Improved software production for the LHC tunnel cryogenics control system Czeslaw Fluder 1 , Tomasz Wolak 2 , Adam Drozd 2 , Michal Dudek 1 , Francesco Frassinelli 3 , Marco Pezzetti 1 , Antonio Tovar-Gonzalez 1 , Marcin Zapolski 2 1. CERN, CH-1211 Geneva 23, Switzerland 2. AGH UST, 30 Mickiewicza Av, 30-059 Krakow, Poland 3. Politecnico di Milano, Piazza Leonardo da Vinci 32, 20133 Milan, Italy Presented at the 25 th International Cryogenic Engineering Conference & International Cryogenic Materials Conference 2014 Technology Department, CERN, 1211 Genève 23, Switzerland The software development for the control system of the cryogenics in the LHC is partially automatized. However, every single modification requires a sequence of consecutive and interdependent tasks to be executed manually by software developers. A large number of control system consolidations and evolution of used IT technologies lead to reviewing the software production methodology. As a result, an open-source continuous integration server has been employed integrating all development tasks, tools and technologies in a predefined time and event triggers. This paper describes the main improvements that have been made to fully automate the process of software production and achieved results Abstract Software development process Development process with Continuous Integration service The architecture of Continuous Integration system for control system software development. Superconducting magnets at 1.9 K Cryogenics in the LHC tunnel Superconducting cavities at 4.5 K Electrical Distribution Feed Boxes at 4 K The control system The architecture of one sector [3.3 km] Generate control system configuration Control system object specification The LHC Layout DB PLC Hardware configuration Data validation Data validation rules Source code generation Control system object specification verified Code templates Database for SCADA Source code for PLC Database import Build PLC project SCADA Project PLC Project Deployment Control system deployed in testing environment Testing Release and deployment in production environment 15 min 40 min 10 min 20 min 30 min Static components (UCPC and CRG) 1h many h Execute job Results and build artifacts The LHC Layout DB Build servers SLC6 (Linux) Continuous Integration service CRG (Jenkins) Version control Update Commit Execute job Pull Hardware configuration data Control system configuration data Pull Get results or artifacts Build servers Microsoft Windows Pull Issue tracking, code reviews Check system response Set conditions, (Deploy) Test system Deploy - Generate hardware conf. - Check data consistency - Generate source code - Generate object specification - Build PLC project - (Deploy) - Test - UNICOS CPC6 UAB 1.6.0 - Apache Maven - Java 1.7, Python 2.6 - Oracle Instant Client 11 - 8 virtual machines with 2 or 4 job slots (24 in total) - Siemens SIMATIC Step7 V5.5 - s7cli (cmd-line for SIMATIC) - Oracle Instant client 11 - UNICOS simulation and testing framework - Cygwin, Python 2.6 - 8 virtual machines with 1 job slot (SIMATIC limitations) Continuous integration service Jenkins Result and artifact Data consistency check Result and artifact Execute Source code generation Execute Result and artifact Build PLC project Execute Result and artifact Testing Execute Result Result Version control (GIT) The LHC Layout DB Correct / update Exec job, Get report Pull Commit Control system configuration generation Execute SCADA database importation and deployment Execute FEC WCC OA WCC OA PLC SCADA CIET PLC FEC

Upload: others

Post on 25-Sep-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FEC...- Apache Maven - Java 1.7, Python 2.6 - Oracle Instant Client 11 - 8 virtual machines with 2 or 4 job slots (24 in total) - Siemens SIMATIC Step7 V5.5 - s7cli (cmd-line for SIMATIC)

The solution allowed to produce and to successfully deploy control software in all sectors of the cryogenics systems of the LHC tunnel and also to implement all requested last-minute changes.

Until now two sectors are being cooled down while others are operational, in recommissioning phase.

Continuous Integration practice, including automated builds and tests, is used successfully in software engineering since many years. Discussed developments, experiences and results of applying this approach to improve process of producing control system software for cryogenics in the LHC tunnel proved that the methodology can be equally useful in the field of industrial automation. It allows significantly optimize development process and (with help of hardware simulation devices) raise quality of the software produced for large-scale control systems.

Conclusions

Improved software production for the LHC tunnel cryogenics control system Czeslaw Fluder1, Tomasz Wolak2, Adam Drozd2, Michal Dudek1, Francesco Frassinelli 3, Marco Pezzetti1, Antonio Tovar-Gonzalez1, Marcin Zapolski2 1. CERN, CH-1211 Geneva 23, Switzerland 2. AGH UST, 30 Mickiewicza Av, 30-059 Krakow, Poland 3. Politecnico di Milano, Piazza Leonardo da Vinci 32, 20133 Milan, Italy

Presented at the 25th International Cryogenic Engineering Conference & International Cryogenic Materials Conference 2014 Technology Department, CERN, 1211 Genève 23, Switzerland

The software development for the control system of the cryogenics in the LHC is partially automatized. However, every single modification requires a sequence of consecutive and interdependent tasks to be executed manually by software developers. A large number of control system consolidations and evolution of used IT technologies lead to reviewing the software production methodology. As a result, an open-source continuous integration server has been employed integrating all development tasks, tools and technologies in a predefined time and event triggers. This paper describes the main improvements that have been made to fully automate the process of software production and achieved results

Abstract

Soft

war

e d

eve

lop

me

nt

pro

cess

Dev

elo

pm

en

t p

roce

ss w

ith

C

on

tin

uo

us

Inte

grat

ion

se

rvic

e

The architecture of Continuous Integration system for control system software development.

Superconducting magnets at 1.9 K

Cryogenics in the LHC tunnel

Superconducting cavities at 4.5 K Electrical Distribution Feed Boxes at 4 K

The control system

The architecture of one sector [3.3 km]

Generate control system

configuration

Control system object specification

The LHC Layout DB

PLC Hardware configuration

Data validation Data validation rules

Source code generation

Control system object specification verified

Code templates

Database for SCADA

Source code for PLC

Database import Build PLC project

SCADA Project PLC Project

Deployment

Control system deployed in testing environment

Testing

Release and deployment in production environment

15 min

40 min

10 min

20 min

30 min

Static components (UCPC and CRG)

1h

many h

Execute job

Results andbuild artifacts

The LHC Layout DB

Build servers SLC6 (Linux)

Continuous Integration service CRG (Jenkins)

Version control

Update

Commit

Execute job

Pull

Hardware configuration dataControl system

configuration data

Pull

Get results or artifacts

Build servers Microsoft Windows

Pull

Issue tracking, code reviews

Check systemresponse

Set conditions,(Deploy)

Test system

Deploy

- Generate hardware conf. - Check data consistency - Generate source code

- Generate object specification - Build PLC project - (Deploy) - Test

- UNICOS CPC6 UAB 1.6.0 - Apache Maven - Java 1.7, Python 2.6 - Oracle Instant Client 11 - 8 virtual machines with 2 or 4 job slots (24 in total)

- Siemens SIMATIC Step7 V5.5 - s7cli (cmd-line for SIMATIC) - Oracle Instant client 11 - UNICOS simulation and testing framework - Cygwin, Python 2.6 - 8 virtual machines with 1 job slot (SIMATIC limitations)

Continuous integration service

Jenkins

Result and artifact

Data consistency check

Result andartifact

Execute

Source code generation

ExecuteResult and

artifact Build PLC project

Execute

Result andartifact

Testing

ExecuteResult

Result

Version control (GIT)

The LHC Layout DB

Correct / update

Exec job,Get report

Pull

Commit

Control system configuration

generation

Execute

SCADA database importation and

deployment

Execute

FEC

WCC OA

WCC OA

PLC

SCADA

CIET

PLC

FEC