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.


  1. #General Remarks
  2. #Glossary

General Remarks

  • MPS GUI and MPS History Server are built on top of the module MPS Config
  • All SQL queries 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 (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 numbers are keys; fault names may be changed by MPS engineers

Macro

  • aka logic, 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 (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 for a 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 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

    0

    0

    0Hz 10Hz 0Hz 0Hz

    1

    01

    0

    1

    0Hz 10Hz 120Hz 120Hz

    2

    10

    1

    0

    120Hz 10Hz 0Hz 0Hz

    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
  • No labels