You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

  1. Requirements
    1. #Ignore Logic
    2. #Faults
    3. #Logic
    4. #Bypass Dialog
    5. #Interactive View
  2. Schedule

Ignore Logic

New States

  • Truth table is an ignoring table
    • Truth table is ignoring state = MPSTruthTableIgnoreIgnoring = 201 = -55
    • Truth table is not ignoring state = MPSTruthTableIgnoreNotIgnoring = 200 = -56
  • Truth table has an invalid state
    • state = MPSTruthTableStateInvalid = 203 = -53
  • Truth table is not ignored
    • state = truth table's state
  • Truth table is ignored
    • state = 0x80 | (truth table's state)

Therefore, if the truth table's state is not 200, 201, or 203 (-56, -55, -53) the truth table's state is 0x7F & (truth table state) and whether or not it is ignored is 0x80 & (truth table state).

  • If the truth table's state can't be found in the Logic DB, make an alert panel that shows the truth table's name, the raw state value from the IOC:BSY0:MP01:TTBLST array, and a message saying "Send the above information to the controls group."

Mockup

======================================= Ignore Logic ===========================================

------------------------------------------------------------------------------------------------
                                          Logic History

 |=========================< slider >============================================|  [] Show Live

------------------------------------------------------------------------------------------------
         Ignore Logic                                      Ignored Truth Tables
   Sort 2        Sort 0      Sort 1   |                Sort 1                    Sort 0
============== ===========  ========  |   ================================ =================
  Condition    Is Ignoring  Min Rate  |   Truth Table                           Min Rate
============== ===========  ========  |   ================================ =================
TD11 Is In         Yes         0 Hz   |   BFW 1910 Position                             0 Hz
TDUND Is In         No        10 Hz   |   BCS LION753 Threshold                         0 Hz
YG BL211 Is In      No        60 Hz   |   BLM Pedestal Thresholds: UND 920              0 Hz
============== ===========  ========  |   Temperature: North Arc Summary                0 Hz
                                      |   VVPG LI22 Position                            0 Hz
                                      |   YAG IN20 211 Position                        10 Hz
                                      |   PIC HVPS B912                                10 Hz
                                      |   PIC HVPS B913                               120 Hz
                                      |   ================================ =================
                                      |
--------------------------------------+------------------------------------------------------

         Name: YAG IN20 211 Position
 Ignored When: TD11 Is In, or YG BL211 Is In, or ...
Current State: Out
     Solution: --
     Contacts: --

====== = = ==================== ==================== ==================== ====================
 Name  B A     Pockels Cell      Mechanical Shutter         BYKIK         Laser Heater Shutter
====== = = ==================== ==================== ==================== ====================
Moving F F                 0 Hz                 0 Hz                 0 Hz                   --  [Bypass to state]
Out    F T               120 Hz               120 Hz               120 Hz                   --  [Bypass to state] -> window shows PVs and asks for bypass time
In     T F                10 Hz                10 Hz                10 Hz                   --  [Bypass to state]
Broken T T                 0 Hz                 0 Hz                 0 Hz                   --  [Bypass to state]
====== = = ==================== ==================== ==================== ====================

Where::
    = ======================================= ========= ========= ========== ==========
    . PV Prefix                                Current   Latched  Bypass Act Bypass Val
    = ======================================= ========= ========= ========== ==========
    A (YG_BL211_OUT_LIMIT)_(STATE) as PV Name IS_OUT    IS_OUT        No     IS_NOT_OUT
    B (YG_BL211_IN_LIMIT)_(STATE) as PV Name  IS_NOT_IN IS_NOT_IN     No     IS_NOT_IN
    = ======================================= ========= ========= ========== ==========

Note to sergei:  (Device Name)_(Fault Name) from config db



------------------------------------------------------------------------------------------------
Summary / Faults / Logic / Ignore Logic / History /

Ignore Logic Mockup

Test on lcls-dev2

mpsgui \
jdbc:sqlite:/afs/slac.stanford.edu/u/xr/snorum/ioc/mpsConfiguration/database/ \
jdbc:sqlite:/afs/slac.stanford.edu/u/xr/snorum/ioc/mpsConfiguration/algorithm/ \
jdbc:oracle:thin:MPS_HISTORY/Neutrin0!@slac-oracle02.slac.stanford.edu:1521:SLACDEV \
&
  • Ignore/unignore truth tables by writing 0 or 1 to YAGS:IN20:211:IN_LMTSW_BYPV
    caput YAGS:IN20:211:IN_LMTSW_BYPV 1 to ignore
    caput YAGS:IN20:211:IN_LMTSW_BYPV 0 to unignore
    
  • Default solution etc. is "--"

Faults

  • Remove the 2nd splitpane (Area/PV); have either 2 or 3 panes visible
  • Show hidden faults
    Link fault description strings to the PV names that generate them. In other words, if an item latches in the MPS, the MPS GUI and CUD display its description string, but neither one displays the name of the actual PV that is causing the fault. In order to find it, we have to guess what it might be called, and go hunting for it in the list of PVs. This is very important when we want to bypass a fault that is holding off the beam, and it is hard to figure out which obscure PV name(s) is/are causing it! This especially comes into play when doing things such as initial beam checkouts for the BAS, when we often have to bypass a large list of PICs or similar things. But it can be a problem at other times too. It should be an easy fix, but it's a critical feauture in my opinion and I would give it high priority.
    

Logic

  • Add rate to ignored states
  • Say "Ignored/State" for ignore states

Bypass Dialog

  • Change on both, Faults and Ignore Logic tabs
  • Allow to select any state
  • Let's drop the calendar view and simplify the interface.
  • Default to 0 for all duration values
    • If bypass time is 0, don't send any messages to MPS
  • Show truth table name in the window's title bar
  • Read-only values in table
  • Allow tabbing between duration values
    • Tab order: days -> hours -> minutes -> seconds -> days
  • Initialize window with days field selected
  • Add bypass messages to cmlog (hostname, time)

Mockup

Bypass Dialog Mockup

Interactive View

  • Use progress bar instead of spinning wheel (misinterpreted as "can't do anything")
  • Figure out why loading is slow (if database a problem, do partial loading)

Stuff

  • Convert all JTables to MpsGuiTables
  • Monitor Logic/Config changes (add refresh button)
  • MpsLe to remember previous directory

Schedule

  • Ignore Logic, Bypass Dialog (4 man-weeks)
  • Faults, Logic, Interactive View (6 man-days)
  • Mps logic Editor Removal Bug (2-3 man-days)
  • No labels