- Requirements
- 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."
- Documentation
- Highlight new truth table state when selected
Mockup
======================================= Ignore Logic =========================================== ------------------------------------------------------------------------------------------------ Logic History |=========================< slider >============================================| [] Show Live ------------------------------------------------------------------------------------------------ Ignore Logic Ignored Truth Tables Sort 2 Sort 0 Sort 1 | Sort 1 Sort2 Sort 0 ============== =========== ======== | ================================ ===== ============ Condition Is Ignoring Min Rate | Truth Table State Min Rate ============== =========== ======== | ================================ ===== ============ TD11 Is In Yes 0 Hz | BFW 1910 Position In 0 Hz TDUND Is In No 10 Hz | BCS LION753 Threshold OK 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 this state] Out F T 120 Hz 120 Hz 120 Hz -- [Bypass to this state] -> window shows PVs and asks for bypass time In T F 10 Hz 10 Hz 10 Hz -- [Bypass to this state] Broken T T 0 Hz 0 Hz 0 Hz -- [Bypass to this 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 = ======================================= ========= ========= ========== ========== ------------------------------------------------------------------------------------------------ Summary / Faults / Logic / Ignore Logic / History / Note to sergei: Use (Device Name)_(Fault Name) to find PV prefix from config db
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
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)