B. Franek, poster presented at Computing in High Energy and Nuclear Physics, Praha – Czech Republic, 21 – 27 March 2009 This framework provides: -A method.

Slides:



Advertisements
Similar presentations
Clara Gaspar, April 2012 The LHCb Experiment Control System: Automation concepts & tools.
Advertisements

Database System Concepts and Architecture
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
March 24-28, 2003Computing for High-Energy Physics Configuration Database for BaBar On-line Rainer Bartoldus, Gregory Dubois-Felsmann, Yury Kolomensky,
Object-Oriented Analysis and Design
Chapter 6 Database Design
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
Programming Languages Structure
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Clara Gaspar, May 2010 The LHCb Run Control System An Integrated and Homogeneous Control System.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
An Introduction to Rational Rose Real-Time
Applying Distributed Systems concepts to SCADA By Padmanabha Kamath.
Introduction To System Analysis and design
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Concurrency Programming Chapter 2. The Role of Abstraction Scientific descriptions of the world are based on abstractions. A living animal is a system.
Designing a HEP Experiment Control System, Lessons to be Learned From 10 Years Evolution and Operation of the DELPHI Experiment. André Augustinus 8 February.
Week 4 Lecture Part 3 of 3 Database Design Samuel ConnSamuel Conn, Faculty Suggestions for using the Lecture Slides.
Clara Gaspar, October 2011 The LHCb Experiment Control System: On the path to full automation.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
Controls EN-ICE Finite States Machines An introduction Marco Boccioli FSM model(s) of detector control 26 th April 2011.
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
Bruno Belbute, October 2006 Presentation Rehearsal for the Follow-up meeting of the Protocol between AdI and CERN.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Controls EN-ICE FSM for dummies (…w/ all my respects) 15 th Jan 09.
COOL: Control Oriented Ontology Language Component Option State Service Channel Process Rule Conclusions The control oriented ontology language has been.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
SMI 7 May 2008B. Franek SMI++ Framework Knowledge Exchange seminar 1 SMI++ Object-Oriented Framework for Designing and Implementing Distributed Control.
IST 210 Database Design Process IST 210, Section 1 Todd S. Bacastow January 2004.
M. Caprini IFIN-HH Bucharest DAQ Control and Monitoring - A Software Component Model.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Clara Gaspar, May 2010 SMI++ A Tool for the Automation of large distributed control systems.
Programming paradigms
Software Architecture
UML Diagrams By Daniel Damaris Novarianto S..
High and low level languages
Object-Oriented Analysis and Design
Architecture Concept Documents
The Finite State Machine toolkit of the JCOP Framework
CMS – The Detector Control System
Controlling a large CPU farm using industrial tools
Chapter 6 Database Design
UML Diagrams Jung Woo.
Software Design Methodology
Chapter 4 Computer Software.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Unit# 8: Introduction to Computer Programming
Data, Databases, and DBMSs
The LHCb Run Control System
An Introduction to Software Architecture
Database System Concepts and Architecture
The only thing worse than an experiment you can’t control is an experiment you can. May 6, 2019 V. Gyurjyan CHEP2007.
Tools for the Automation of large distributed control systems
B. Franek SMI++ Framework Knowledge Exchange seminar
Software Re-engineering and Reverse Engineering
Presentation transcript:

B. Franek, poster presented at Computing in High Energy and Nuclear Physics, Praha – Czech Republic, 21 – 27 March 2009 This framework provides: -A method for decomposing a complex system into smaller manageable entities where each entity is modelled as a Finite State Machine. The control system is constructed as a hierarchical collection of intelligent and autonomous FSMs operating concurrently. -A formal language for describing each entity and it’s behaviour. This allows the sequencing and synchronization of operations, rule-based automation and error-recovery. -Tools for the deployment of the complete system across heterogeneous distributed platforms. Introduction To implement the abstraction is the task of Proxy process Proxy is a piece of software forming a bridge between the concrete entity and the associated object in the SMI++ world. SMI++ control world Associated object Proxy Concrete entity Real world C, C++, Fortran Proxy monitors the concrete entity and makes it look like a simple object existing in discrete states It also translates and delivers commands sent from SMI++ world to the concrete entity. Basic Concepts Objects The real world to be controlled is a collection of concrete entities E.g. HV Power supply, gas system, radiation monitor, a software task etc The abstraction of each concrete entity is associated object They exist in discrete states e.g. ‘ON’ In each state they accept commands that invoke actions which can bring about a change of state e.g. ‘POWER-OFF’ In analogy, the control system to be designed is conceived as a set of abstract objects. An abstract object is an abstraction representing an identifiable logical entity with well defined role in the control system. E.g. Overall HV control Associated objects representing the individual power supplies Abstract objects exist in the SMI++ world in discrete states in each state they can respond to commands by executing so called actions An action consists of a sequence of instructions. Objects can execute their actions concurrently with other objects During execution of an action: object can send commands to other objects it can interrogate states of other objects it can respond asynchronously to state changes of other objects The task of designing the control system is equivalent to that of giving a good description of the real world in terms of domains of objects being controlled and the procedures (embedded in abstract objects) that operate on them Basic Concepts Domains To reduce complexity of large systems, objects are organized in modules called Domains Domain is named group of logically related objects Only few objects in each domain are made visible to the rest of the control system ( modularity & information hiding) Domain is also the atomic processing unit of control software Domain becomes Process E.g. Control HV systemGas system Control Advantages : -Encourages modularity and information hiding - individual domains can be simple enough so that they can be easily understood - Domains can be designed, revised and tested independently (even by different teams ) - it is possible to change the design of a domain without affecting the rest of the control system - encourages hierarchical structure - facilitates distribution of the control software. Different domains can run on different machines State Manager Language SML Formal language for description of objects, their states and their actions (sequence of instructions) Idea of a domain File containing SML code State : READY_FOR_RUN when ( OPER in_state REA Action : START_NEW_RU do CONF_RO OPER if ( OPER not_in_state RE do OPER ERROR terminate_action / state endif do GE SML file is a full description of the domain SML file Associated objects. SML code is just a declaration of states and actions Object : HV /associated State : OFF action : SWITCH-ON State : ON action : SWITCH-OFF State : NOT-THERE / dead_state E.g. Abstract objects In addition to the state and action declarations, for every action there is a sequence of instructions that has to be executed in the course of that action. The language allows object : - to send commands to other objects do instruction do SWITCH-ON HV-A do SWITCH-ON HV-B e.g. will send command SWITCH-ON to object HV-A and HV-B -to interrogate states of other objects if instruction if ( HV-A in_state OFF ) then do SWITCH-ON HV-A endif - to respond asynchronously to state changes of other objects when clause Object : ALARM state : READY when ( ( HV-A not_in_state ON) or ( HV-B not_in_state ON ) ) do RISE-ALARM e.g. - etc e.g. Conclusion SMI++ Framework provides : Special language (SML) to describe the real world to be controlled and to ‘code’ the control logic Set of tools to implement, test and to use the designed control system It encourages use of OO concepts such as abstraction, encapsulation, modularity,hierarchy In the past, it has been successfully used by DELPHI experiment at CERN in Geneva and by BaBar experiment at SLAC in Menlo Park for the design and implementation of their Run Control. Currently, all four LHC experiments at CERN decided to use it either fully or partially for their experiment control. The complexity of the designed systems runs into thousands of State Managers State Manager process SM 1 / SMI++ domain The key tool of SMI++ framework. It is a logic Engine that reads the SML file and ‘drives’ the model described in the file State : READY_FOR_RUN when ( OPER in_state REA Action : START_NEW_RU do CONF_RO OPER if ( OPER not_in_state RE do OPER ERROR terminate_action / state endif do GE Initial input - responds to external commands - responds to asynchronous changes in its environment - sends out ‘properly’ sequenced commands to other domains and proxy processes Designed using OOD tool Rational Rose/C++ and coded in C++ SML fileState Manager All four LHC experiments at CERN ( ATLAS, ALICE, CMS and LHCb ) have adopted SMI++ framework integrated with SCADA (PVSSII) system Use of SMI++ in LHC External commands Concrete entities Proxies The commands come either from GUI or another domain Real world Control world Single domain Associated objects Abstract objects Hardware components and software tasks PVSS00smi Ctrl API EVt D D D UIMUIMUIM DM DB fwFsmSrvr PVSS II SMI++ Control hierarchy of the experiment Example - LHCb Run Control User Interface Recently, SML was upgraded with advanced features such as Object Sets - Group of similar objects can be assigned to named Object Set : e.g.. - Objects can be dynamically inserted or removed from a Set: e.g. - it is possible to send commands to all the objects of a given Set with one do instruction e.g. - it is also possible to have constructs such as if ( all_in HV_SUPPLIES in_state ON ) move_to READY or when ( any_in HV_SUPPLIES not_in_state ON ) do RISE-ALARM do SWITCH-ON all_in HV_SUPPLIES insert HV-2345 in HV_SUPPLIES or remove HV_M from HV_SUPPLIES ObjectSet : HV_SUPPLIES {HV-A, …., HV-Z}

SMI++ Object Oriented Framework used for Automation and Error Recovery in the LHC Experiments B. Franek – Rutherford Appleton Laboratory, UK C. Gaspar – CERN, Geneva, Switzerland SMI