Control State Definition

Slides:



Advertisements
Similar presentations
Debugging ACL Scripts.
Advertisements

Managed by UT-Battelle for the Department of Energy Best Ever Archive Utility, Yet (BEAUtY) Kay Kasemir April 2013.
VTS INNOVATOR SERIES Real Problems, Real solutions.
Simulink/Front Model & MEDM Screen Mods from ECR E (For SUS’ in BSC Chambers) J. Kissel for the SUS and ISC Team G v3 1.
P5, M1, D1.
Chapter Chapter 4. Think back to any very difficult quantitative problem that you had to solve in some science class How long did it take? How many times.
Programming Types of Testing.
Homework 1 Hints. Homework Tips (General) Go through and do the ENTIRE homework in the same time period – You will use all of the material from chap 1.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
Code Generation CS 480. Can be complex To do a good job of teaching about code generation I could easily spend ten weeks But, don’t have ten weeks, so.
Backup and Recovery Part 1.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS April 2013 Control System Studio Training - Alarm System Use.
I/O Systems ◦ Operating Systems ◦ CS550. Note:  Based on Operating Systems Concepts by Silberschatz, Galvin, and Gagne  Strongly recommended to read.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 4: Addressing in an Enterprise Network Introducing Routing and Switching in the.
Global Update with Confidence Mary M. Strouse Innovative Users Group May 19, 2009.
INFO 344 Web Tools And Development CK Wang University of Washington Spring 2014.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
DAY 20: ACCESS CHAPTER 5 Tazin Afrin October 29,
1 Functions 1 Parameter, 1 Return-Value 1. The problem 2. Recall the layout 3. Create the definition 4. "Flow" of data 5. Testing 6. Projects 1 and 2.
Gauge Operation and Software by Scott A. Ager. Computer Recommendations 750 MHz Pentium III 64 Meg SRAM 40 Gig Hard Drive 1024 x 768 graphics CD Writer.
Microsoft ® Business Solutions–Navision ® 4.0 Development II - C/SIDE Solution Development Day 2.
Addressing Concerns from Patients General rule of thumb: If a person does not want to answer these questions, move on. Do not force the issue. Simply record.
Chapter 8 – Main Memory (Pgs ). Overview  Everything to do with memory is complicated by the fact that more than 1 program can be in memory.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition1  Wiley and the.
ESA UNCLASSIFIED – For Official Use Workshop #23 Pasadena, USA 25 rd March 2015 Sam Cooper Common services update (part 2)
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
Review while loops Control variables Example Infinite loop
Business Rules for MeF By Greg Martinez & Donna Mucilli.
This material is based upon work supported by the U.S. Department of Energy Office of Science under Cooperative Agreement DE-SC Michigan State.
IPS Infrastructure Technological Overview of Work Done.
Using Workflow With Dataforms Tim Borntreger, Director of Client Services.
CSCI1600: Embedded and Real Time Software Lecture 15: Advanced Programming Concepts Steven Reiss, Fall 2015.
HWC Review – Sequencer Vito Baggiolini AB/CO, with the team: Carlos Castillo, Daniele Raffo, Roman Gorbonosov.
What problems are we trying to solve? Hannes Tschofenig.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
© 2015 Ex Libris | Confidential & Proprietary Yoel Kortick Senior Librarian Cataloging introductory flow.
SNS Integrated Control System ORACLE –JERI DB Generation April 27, 2004 Coles Sibley Jeff Patton.
CS161 – Design and Architecture of Computer
Core LIMS Training: Project Management
Processes and threads.
Chapter 14: System Protection
Boots Cassel Villanova University
Requirements Analysis Scenes
Memory Caches & TLB Virtual Memory
Software testing
More important details More fun Part 3
GFA Controls IT Alain Bertrand
Addressing Pushback from Patients
Computer Programming I
Chapter 9 – Real Memory Organization and Management
Maintaining software solutions
Lecture 5: GPU Compute Architecture
CSE 341: Programming Languages Section 1
A Balanced Introduction to Computer Science David Reed, Creighton University ©2005 Pearson Prentice Hall ISBN X Chapter 13 (Reed) - Conditional.
CSE 341: Programming Langs
Page Replacement.
The Scientific Method.
Therac-25.
Conceptual Architecture of PostgreSQL
Conceptual Architecture of PostgreSQL
CST8177 Scripting 2: What?.
Banafsheh Hajinasab Based on presentation by K. Strnisa, Cosylab
A Balanced Introduction to Computer Science David Reed, Creighton University ©2005 Pearson Prentice Hall ISBN X Chapter 13 (Reed) - Conditional.
CSCI1600: Embedded and Real Time Software
CSCI1600: Embedded and Real Time Software
CHAPTER 6 Testing and Debugging.
Module 4 Loops and Repetition 9/19/2019 CSE 1321 Module 4.
Presentation transcript:

Control State Definition March 25, 2014 Daniel Sigg, Chris Wipf, Stefan Ballmer

Save/Restore Relying on save/restore yields inconsistent results Problem 1: “Everyone needs to keep up the snap file” Problem 2: What to restore to? Restore to a “good configuration” is a recipe for disaster Problem 3: Restore sometimes skips channels Problem 4: Anyone can make a change without save/restore Problem 5: No good way to tell how actual differs from snap Problem 6: No easy way to make an incremental change Problem 7: It scales badly Problem 8: No easy way to keep subsystems in sync (EX vs. EY) Problem 9: No good way to keep multiple configurations for the same system (e.g. LSC for PRX vs. PRY vs. PRMI, or ASC for PRMI vs. FL) Relies on everyone doing the right thing all the time Broken work flow!

Filter files This is a work flow which functions well Reason 1: All changes are going through a configuration file Reason 2: This is the only way to make a change Reason 3: There is a GUI to make the changes Reason 4: Changes are done incrementally Reason 5: You always know what’s running Reason 6: We have a record of old filter files The only way to fix a problem is to actually fix it

“New” Approach to Save/Restore Divide slow controls channels into 4 groups Readbacks (ignore for now) Most of our controls never change Some change states in a trivial matter E.g., boost on when lock bit is set, input matrix for PRX, PRY etc. Some need to change all the time Control State Definition is meant for 2 & 3 (some) Group 4 requires code, i.e., guardian CSDef tries to mimic the work flow for filter files

Scaling is Important Slow channels: Good bookkeeping matters! ~300,000 slow channels per ifo ~100,000 can be set ~20,000 do change Maybe 10,000 left once you have lookup tables Good bookkeeping matters! Configuration needs to be duplicated between identical sub-systems GUI tool is vitally important to get operators involved Commissioning team cannot handle ~100,000 variables

Control State Definition Configuration file: All slow controls channels must be listed Even, if they are under outside control All unlisted channels are held at zero constant Most channels will be set to a constant value (as opposite to manual) Includes safe and default values Includes lookup tables Most lookup table will have 2 states: “Off” and “Init” Replacement rules for channel names Conditions and Includes for site/location specific configurations XML GUI editors are available (schema available) Validating parser exists (C++ code)

Control State Definition (2) State machine Usual: Init, PreOp, SafeOp and Op modes Will set all values to safe in SafeOp Will set all values to their default when switching to Op Will set values to their configuration when in Op Loads a new configuration file upon request Implemented as a guardian script or as part of the EPICS ioc Will initialize all values upon a restart Checks constantly while in Op mode A value cannot be changed, if it is set constant All changes need to go through configuration file Of course, many channels will just be set to manual mode SM watches configuration file and indicates, if it has changed

How to support commissioning Changing the configuration file is as easy as changing a filter Lookup tables have an “Off” state Section a large front-end model into different domains Allows to “talk” in states rather than values, e.g., run/acquisition Allows to gang filter banks Allows for fine grade control The state machine can be set into PreOp (no writes) Less time wasted to find out “has this changed?” Broader user base for keeping up the configuration

Why not… Hardcode it all in the front-end ECR to change values? Front-end models become very cluttered Write an incredibly large guardian script How can you tell what’s going on w/o reverse engineering the code? How can you tell that you didn’t forget a channel? Use hash values in the front end How do you tell what’s wrong? Use the EPICS access controls This is not a security issue! Resurrect the iLIGO Stat system Creates too many secondary channels, CALC records too limited Just stay with safe/restore and snap files Proven to be problematic

Next on the list Alarm and error handling Problem 1: Alarms are global, should be reserved for real problems Problem 2: No clear text messages, why does the IMC not lock? Problem 3: Serious problems go unnoticed Problem 4: Rediscovering the same issues again and again is a major source of wasted time Solution with better track record: Condition code pioneered for the squeezer/OAT auto-lockers Hierarchical error structures (error bit, multi-bit code and msg) Each guardian/auto-locker/etc. has a set of conditions which need to be fulfilled to proceed (can be bypassed) Clear text messages of what’s wrong Required additional sensors in OAT!