MPS Config is a client library for interacting with the Config/Logic DBs as well as relevant MPS PVs. Written in Java.
MPS GUI is a desktop application that displays the state of the MPS. Written in Java.
MPS History Server is a Unix daemon that saves MPS messages to Oracle
MPS Editors page for MPS Logic editor and MPS Config editor.
MPS Stats is a prototype that can correlate MPS History data with the data from the Channel Archiver.
...
General Remarks
- MPS GUI and MPS History Server are built on top of the module MPS Config
- All SQL queries
General design
- All SQL statements are stored in .properties files in corresponding packages
- (Almost) all constants/properties for each MPS "module" are located in the class edu.stanford.slac.module.ModuleProperties
Glossary
Fault
- aka device, (binary) input, signal
- The basic event in the MPS ,
- Belongs to an MPS device; usually a PV
- Has two states: OK (true or 1) and Faulted (false or 0)
- Current fault states is what drives the MPS
- Stored in the Config DB
- 4 types: EPICS, LinkNode, LinkNodeChannel, LinkProcessor
- Classes in MPS Config edu.stanford.slac.mps.fault
- Fault number is the key, numbers are keys; fault names may be changed (manually)by MPS engineers
Macro
- aka Truth Tablelogic, truth table
- Defines 2-4 #MacroStates for 1 -or 2 faults
- The order of faults matters (there is a column "position" in the DB schema)
- May need support for more than 2 faults in the future (currently not supported)
- Some macros, called "ignoring macros", may ignore other
- major redesign needed!)
- Can be bypassed (set) to a #MacroState for a period of time
- Bypassed fault numbers (ids) are stored in IOC:BSY0:MP01:BYPASS_LIST.VALA
- Corresponding (absolute) end times are stored in IOC:BSY0:MP01:BYPASS_LIST.VALB (using EPICS epoch)
- Operators want to know when bypasses expire
- Macro numbers are keys; macro names may be changed by MPS engineers
- Stored in the Logic DB
Ignore Condition
- aka ignoring macro (overload- sigh!), ignore logic
- Sort-of "meta"-macros that can ignore other macros
- Useful, for instance, when the fault hardware misbehaves
- Can be set active or inactive (by MPS engineers, not operators)
- If active, operators want to know the minimum rate the MPS would allow, if the condition became inactive
- Note: Some macros are always evaluated
- Stored in the Logic DB
MacroState
- aka (just) state
- Defines the maximum allowed beam rates given for a particular state of the corresponding macro combination of fault states
- Rate names are hard-coded in edu.stanford.slac.mps.jdbc.logic.Rate
- Characterized by a state number
- A negative state number has a predefined meaning (see method getMacroState() in the class edu.stanford.slac.mps.jdbc.logic.LogicDB in MPS Config)
- A non-negative state number limits beam rates
- The binary representation of the (non-negative) state number reflects the state states of the corresponding faults; example for 2 faults: A (position=0) and B (position=1):
State Number
Binary Representation
B*
A*
Rate Limits at 4 Locations
0
00
F
0
0
0Hz 10Hz 0Hz 0Hz F
1
01
0
F
1
0Hz 10Hz 120Hz 120Hz T
2
10
1
T
0
120Hz 10Hz 0Hz 0Hz F
3
11
1
1
120Hz 10Hz 120Hz 120Hz
- Note: In A and B columns, you may also see T
- (for True) and F (for False)
- Current state numbers of every macro are stored in IOC:BSY0:MP01:TTBLST.VALA
- Stored in the Logic DB