Automation of Control System Configuration TAC 18

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
T-FLEX DOCs PLM, Document and Workflow Management.
Programming Creating programs that run on your PC
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Interpret Application Specifications
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Agenda Adaptation of existing open-source control systems from compact accelerators to large scale facilities.
This chapter is extracted from Sommerville’s slides. Text book chapter
Configuration Management Process and Environment MACS Review 1 February 5th, 2010 Roland Moser PR a-RMO, February 5 th, 2010 R. Moser 1 R. Gutleber.
Topics Covered: Data preparation Data preparation Data capturing Data capturing Data verification and validation Data verification and validation Data.
Automatic Generation Tools UNICOS Application Builder Overview 11/02/2014 Ivan Prieto Barreiro - EN-ICE1.
CHAPTER TEN AUTHORING.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
A.Abhari CPS1251 Topic 1: Introduction to Computers Computer Hardware Computer components Connecting Computers Computer Software Operating System (OS)
IT System Administration Lesson 3 Dr Jeffrey A Robinson.
Chapter 14 Programming and Languages McGraw-Hill/Irwin Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
MANAGEMENT INFORMATION SYSTEM
Siemens TIA Portal Openness Feature Functionality and Possible Use European Spallation Source – Integrated Control System Division Nick Levchenko CERN.
Controls Software Developer - Summer workers The Machine Directorate at the European Spallation Source (ESS) in Lund, Sweden, invites applications for.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Chapter 10 Application Development
Building ARM IaaS Application Environment
Java Programming: From the Ground Up
 2001 Prentice Hall, Inc. All rights reserved.
Software Configuration Management
Process Control System Requirements
Collaboration with Existing Controllers
PLM, Document and Workflow Management
The Development Process of Web Applications
Introduction to Computer Science
CSCI-235 Micro-Computer Applications
Extending Model-Driven Engineering in Tango
Introduction to Visual Basic 2008 Programming
DDC 1023 – Programming Technique
Service presentation Problem: Modifying systems in production is risky
Chapter 2: System Structures
System Design.
Database Systems: Design, Implementation, and Management Tenth Edition
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Algorithm and Ambiguity
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
CIS16 Application Development – Programming with Visual Basic
Computer Fundamentals
Introduction CSC 111.
Module 01 ETICS Overview ETICS Online Tutorials
Chapter 1 Introduction(1.1)
Analysis models and design models
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Introduction to Computer Programming
Principles of Programming Languages
PLCs integration into the ICS
European Spallation Source Archiving Service
T-FLEX DOCs PLM, Document and Workflow Management.
Software Re-engineering and Reverse Engineering
Programming Logic and Design Eighth Edition
Presentation transcript:

Automation of Control System Configuration TAC 18 Karl Vestin ESS/ICS Date: 2018-10-18

Topics Automatic code and configuration generation Risks and benefits of automatic code generation Overview of ESS tool chain for automated code generation for control systems Control System (CS) Entry Controls Configuration Database (CCDB) Input Output Controller (IOC) Factory Programmable Logic Controller (PLC) Factory Background and technical solution Step-by-step PLC code generation Change management

Automatic code and configuration generation Definition In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level. There has been little agreement on the precise definition of automatic programming, mostly because its meaning has changed over time. David Parnas, tracing the history of "automatic programming" in published research, noted that in the 1940s it described automation of the manual process of punching paper tape. Later it referred to translation of high-level programming languages like Fortran and ALGOL. In fact, one of the earliest programs identifiable as a compiler was called Autocode. Parnas concluded that "automatic programming has always been a euphemism for programming in a higher-level language than was then available to the programmer.“ Source: Wikipedia Within the domain of control systems engineering the use of automatic code generation is uncontroversial as many control system topologies (most notably PLC system) makes heavy use of code generation from visual models.

Risks and benefits of using automatic tools for generating code and configuration files Avoid duplicated information Reduce manual writing Reduce manual errors Harmonize code standard Improve development speed Risk Tools can introduce systematic errors Tools must be maintained Adds complexity to configuration management Tool chain dependencies can cause downtime More tools require extra training Introduction of automatic tools for code generation and generation for configuration files is a risk-benefit analysis. A typical conclusion of this analysis is that code generation is used to generate skeleton code and adding commonly reused “standard code”. But is some disciplines code generation is used in a more comprehensive fashion (e.g. safety controllers in automotive industry).

Overview of tool chain for automatic code and configuration at ESS CCDB (Configuration database) IOC Factory (Java application) E3 (ESS EPICS Environment) CS Entry (Inventory management) Database for inventory management of the technical network equipment at ESS. Provides the MAC and IP address for CCDB. PLC Factory (Python script) PLC Code (TIA Portal)

Overview of tool chain for automatic code and configuration at ESS CCDB (Configuration database) IOC Factory (Java application) E3 (ESS EPICS Environment) CS Entry (Inventory management) Database for management of control system configurations at ESS. Provides one commons source for the configuration data. PLC Factory (Python script) PLC Code (TIA Portal)

Overview of tool chain for automatic code and configuration at ESS CCDB (Configuration database) IOC Factory (Java application) E3 (ESS EPICS Environment) CS Entry (Inventory management) The IOC Factory application generates EPICS IOCs based on configuration data pulled from the configuration database. The generated code for the IOC is ready to deploy into the EPIC environment PLC Factory (Python script) PLC Code (TIA Portal)

Overview of tool chain for automatic code and configuration at ESS Consistent configuration CCDB (Configuration database) IOC Factory (Java application) E3 (ESS EPICS Environment) CS Entry (Inventory management) The factory script for stub code generation for Siemens TIA Portal as well as corresponding interface declarations for the EPICS IOC. PLC Factory (Python script) PLC Code (TIA Portal)

CS Entry CS Entry is a web based inventory management system for all network equipment on the ESS technical network Used for creating and booting virtual machines and IOC’s on the technical network Used to get MAC and IP address for specific devices for use in CCDB

Controls Configuration Database (CCDB) Contains configuration data for hardware and EPICS IOC’s for the entire ESS Integrated Control System. Conceptual ideas for database structure inherited from community User interface, REST interfaces and data structures are developed by ESS Allows definition of properties Allows definition of relations between control system components (e.g. connects, powers, controls etc).

IOC Factory Reads configuration data, dependencies and relations from CCDB Generates startup scripts to start an EPICS IOC for the corresponding devices Includes tools for previewing, browsing and inspecting IOCs deployed on the technical network Includes version management of IOC configurations Developed internally at ESS

IOC Factory

PLC Factory - Overview Problem description: The ESS Integrated Control System (ICS) Division will make extensive use of Programmable Logic Controllers (PLCs) to implement the ESS controls. To ensure a consistent approach to PLC development, one proposed strategy is to store engineering information in the ESS Controls Configuration Database (CCDB), from where a client application could extract information to generate template files for use by the Siemens PLC development software. Archiver config Autosave config Added support for Beckhoff TwinCat3 2018 Automation of CCDB template file generation Generates templates files for the Siemens 1500 PLC family 2017 Read from CCDB Manual generation of CCDB template files 2016 Autosave: Saves user editable parameters for the IOC to non-volatile storage. Makes parameters persist through power cycle.

PLC Factory - Workflow Planning Project plan P&ID I/O List Devices Define DEVICE TYPES Create DEVICE LIST CCDB Create ESS names Create CCDB types Build project tree PLC Factory Run python script Data pulled from CCDB using REST TIA Portal Import files generated by PLC Factory Compile and test EPICS Deploy in EPICS environment Verify connection using EasyTester Verify functionality

PLC Factory - Workflow Planning Project plan P&ID I/O List Devices Define DEVICE TYPES Create DEVICE LIST CCDB Create ESS names Create CCDB types Build project tree PLC Factory Run python script Data pulled from CCDB using REST TIA Portal Import files generated by PLC Factory Compile and test EPICS Deploy in EPICS environment Verify connection using EasyTester Verify functionality Define device types: Create a set of “classes” for the different devices in you P&ID, based on common set if I/O’s. For each device type create a text file and attach to your device in CCDB. Create device list: The list of specific devices of defined device types. Excel file.

PLC Factory - Workflow Planning Project plan P&ID I/O List Devices Define DEVICE TYPES Create DEVICE LIST CCDB Create ESS names Create CCDB types Build project tree PLC Factory Run python script Data pulled from CCDB using REST TIA Portal Import files generated by PLC Factory Compile and test EPICS Deploy in EPICS environment Verify connection using EasyTester Verify functionality

PLC Factory - Workflow --plc-interface=14 indicates TIA portal version Planning Project plan P&ID I/O List Devices Define DEVICE TYPES Create DEVICE LIST CCDB Create ESS names Create CCDB types Build project tree PLC Factory Run python script Data pulled from CCDB using REST TIA Portal Import files generated by PLC Factory Compile and test EPICS Deploy in EPICS environment Verify connection using EasyTester Verify functionality --plc-interface=14 indicates TIA portal version --eee indicates to generate IOC code

PLC Factory - Workflow Planning Project plan P&ID I/O List Devices Define DEVICE TYPES Create DEVICE LIST CCDB Create ESS names Create CCDB types Build project tree PLC Factory Run python script Data pulled from CCDB using REST TIA Portal Import files generated by PLC Factory Compile and test EPICS Deploy in EPICS environment Verify connection using EasyTester Verify functionality Siemens TIA portal generates Pascal code from the imported PLC factory code

PLC Factory - Workflow Planning Project plan P&ID I/O List Devices Define DEVICE TYPES Create DEVICE LIST CCDB Create ESS names Create CCDB types Build project tree PLC Factory Run python script Data pulled from CCDB using REST TIA Portal Import files generated by PLC Factory Compile and test EPICS Deploy in EPICS environment Verify connection using EasyTester Verify functionality EasyTester, 3rd party tool that checks communication between PLC and IOC

PLC Factory – Change management Procedure for making an update in generated configuration: Update the definition file .def file for the device types Update information in CCDB Execute PLCFactory script Update the generated external source file for the PLC project. This will overwrite changed PLC blocks. Limitation: Generated PLC code cannot be changed manually. Any manual changes will be overwritten by the procedure above. Revision management: The PLC Factory script is version managed along with source code in GIT. Configuration management: No configuration management to ensure internal consistency between CCDB version <-> IOC Factory version <-> PLC factory version <-> Version of PLC source code. At present time not deemed necessary, but could be an area for future improvement.

Summary ESS has been working with tools for automating the configuration of control systems since 2016. The plan going forward is to increase the integration between different parts of the tool chain to entirely remove manual steps in the process. The automation has contributed positively to capability to deliver control systems Problem areas identified in the areas of maintenance, change management and configuration management