330 likes | 533 Views
Software Interlock System for < PS>. Jakub Wozniak BE-CO - DA 02/02/2012. Agenda. What is SIS (with examples)? General overview of the architecture Basic configuration & s cripting features GUI & Diagnostics PS presence and plans for this year Questions. Software Interlock System?.
E N D
Software Interlock Systemfor <PS> Jakub Wozniak BE-CO-DA02/02/2012
Agenda • What is SIS (with examples)? • General overview of the architecture • Basic configuration & scripting features • GUI & Diagnostics • PS presence and plans for this year • Questions
Software Interlock System? • Helps protecting our machines • Takes part in overall Machine Protection • Surveys the state of key equipment / other systems • Acts on a beam (timings, BIS, etc) if abnormal situation is discovered • Protects against repetitive faulty conditions in the following cycles (limits radiation, etc) • Remembers complex logic that humans tend to forget
What SIS is NOT! • Not a hard RT system • Not an immediate hardware protection • Not a nanosecond reaction time • Not there for human safety • Not aSafety Integrity Level 4 (SIL-4) • So as any software it might fail… • …although it was rarely the case!
Key Features • (Relatively) easy to configure (in XML) • Reliable core with a versatile extension system • Flexibility to cover various needs • Comes with generic tools and based on a common JAPC-MON framework (FDF, Logging, Concentrators, InCA) • Experience from various installations (SPS, LHC, Linac2)
SIS Examples Start-cycle 400 ms 200 ms SIS evaluation 100 ms BCT • SPS-SIS (2300 subscriptions, ~5000 checks) • Covers transfer lines, ring, North Area, CNGS • SPS Economy -> over300,000 CHF saved everyyear on energy • CESAR-SIS • Automatic eLogBook entries for beam availibility • LHC-SIS (2500 subs, 5500 checks) • All major systems checked (BI, BIC, Coll, Magnets, QPS, RF...) • LHC-BIGSISTER • Announcesvariousconditions & warnings • LINAC2-WATCHDOG-SIS • Stateoriented, destinationbasedsurvey, knob-controllable Switch to economy via timing event
sis-core (cs-ccr-pssis2) sis-core (cs-ccr-pssis1) Front-end A Front-end A Front-end A Front-end A General Architecture Overview sis-gui sis-gui sis-gui sis-gui DB backup primary XML Controls middleware
Tail-clipper Timing event Timing Logbook Java Alarms Logs Data buffer japc-monitoring japc Flow of Control Export Action sis-core Boolean expression over channels: Permit =(A or B) and (D or (not C)) Data Processing External Systems Processing Data Acquisition Acquisition Subscription channels Controls middleware Middleware Front-end A Front-end B Front-end C Front-end D Any Fesa Device + Any Japc DataSource
Alarm Ignore (Mask) Permit Tree Evaluation Good or bad pulse for a given USER Permit channel G AND Logical channels All BCTs are ok E F OR AND Elementary channels A B B C C D DEST(LBS,LBE,PSB) BCT06 - BCT60 Simple: Status != OFF Compex: anycalculationwith Java orGroovy
Configuration • In 3 XML files (or more if complex) • Parameters.xml – devices to monitor • Permits.xml – definition of the logic trees • Spring-Beans.xml– additional classes as beans • You don’t have to tediously write them… • Velocity generates them • simple text processing with macros • If more processing logic is required…
Java Extension Points • ValueConverters - one-to-one conversions • ValueBuilders – many-to-one conversions • ValueConditions – custom tree node logic • Exporters – custom export logic • Modules – additional non-SIS logic • SISController – API for core control • …more – many classes can be exchanged • Spring Framework - glues it all together
Linac2 Watchdog Config • Permits.xml • Parameters.xml • Spring-Beans.xml • A bit of Java • SIS checks if the beam has passed all the elements (BCTs) correctly and sends a good or a bad pulse. • Counter == 0 -> beam is cut.
Groovy Scripts • Groovy == Java • No need to learn a new syntax • But if you do - it’s even simpler! • Declaration of simple conditions in XML • No need for additional Java classes • No speed penalty – all compiled into Java at startup.
Operational Error Cases • Data OK but the test failed. • E.g. a power converter that should be ON is OFF. • No value for a given cycle stamp (PPM evaluations) • Values arrive too late with respect to the evaluations • Value too old (non-PPM evaluations) • The data is not within the predefined time window. • No value at all. • No data for comparison arrived. • Exception from CMW or frontends • The subscription received an exception, instead of valid data.
(Timid) Injector Presence • Linac 2 Watchdog smoothly running last year
PS-SIS in 2012 • Dirac monitoring (Q1 – best before startup) • AQN / CCV comparison of BHZ01S8…QFO02S8 • Executed on destination = EAST_T8 • Counter for bad pulses (knob-controlled) • Actions on EASTB tail clipper • InCA – Isolde (slow) comparators (Q1/Q2) • BTY.CPMAXP-GPS (average intensity comparison) • BTY.CPDIPPOW-GPS (quadruple/dipole min/max) • Executed on destinations = ISOGPS or ISOHRS • Actions on BIX.TCL-SIS to stop the beam
PS-SIS Ideas? • Radiation monitors? • RF Cavities – beam stop, auto reset? • Ideas for further automation?