Search/Navigation:
Related:
SLAC/EPP/HPS Public
Jefferson Lab/Hall B/HPS Run Wiki
S30XL-LESA/LDMX
Check dry air is flowing, and all interlock inputs are plugged in. Both chillers and MPOD should be powered but not running. Interlock board should be off.
Test MPOD interlock: With the interlock board still off, start EPICS controls and verify that MPOD channels cannot be turned on.
Setup SVT chiller: Set SVT chiller setpoint using its touchscreen. When done, switch to remote RS-232 control (Menu->Connect Unit->Remote control). Verify watchdog is enabled (Menu->Connect Unit->Digital Interfaces).
Setup FEB chiller: Start FEB chiller and adjust setpoint, then stop the chiller.
Turn on the interlock board: Green LED should turn on immediately; MPOD trip LED (third from top) should clear as chillers start. The other LEDs should stay off.
Turn on MPOD channels through EPICS.
In a screen session, start the Arduino monitor script on hpstracker ("~/interlock/arduino_monitor.py /dev/ttyS0 9600"). It should send an initial status tweet.
Open the interlock board's enclosure and flip the switch on the interlock board to the "BYP" position to bypass the MPOD interlock (the switch is reachable through the side of the enclosure, but you need to feel around for it) - this disconnects the interlock board's trip signal.
In this mode you can unplug anything you want from the interlock board (RS-232 cables, flow and dry air sensors) without tripping the MPOD.
Turn on the interlock board. The top two LEDs (green and yellow) on the interlock board should be on; the bottom two may also be on.
Turn on MPOD channels through EPICS.
Plug the MPOD controller into the crappy Windows laptop and run MUSEcontrol. Go to System->Config and turn on "ignore hardware interlocks."
There is no way to tell the interlocks have been disabled without testing the trip, or running MUSEcontrol. Do not leave the MPOD in this state.
ppa-pc91245:mpod_scripts/clear_interlock.sh
#!/bin/bash
for j in `seq 5 8`;do for i in `seq -w 00 15` ; do snmpset -v2c -m +WIENER-CRATE-MIB -c guru ppa-mpod1 outputSwitch.u$j$i i 10 ; done;done
Stop the Arduino monitor script on hpstracker (this is not necessary if you don't mind it sending alarm tweets).
Take the SVT chiller off of remote control (Menu->Connect unit->Remote control). Check the setpoint and make sure it's what you want.
Turn off the interlock board and chillers, in any order. This should trip the MPOD.
Stop the Arduino monitor script on hpstracker. Start minicom (or other terminal, configured to /dev/ttyS0 9600 8N1).
Commands starting with "F" or "S" will be forwarded to the FEB or SVT chiller, respectively. If the chiller responds with a message, the response will be printed.
Useful commands:
Command | description |
---|---|
FSO1 | send "SO1" to FEB chiller - start chiller |
FSS20.0 | send SS20.0 to FEB chiller - set setpoint to 20.0 C |
Sout_mode_05 1 | send "out_mode_05 1" to SVT chiller - start chiller |
T20.0 | set SVT chiller setpoint to 20.0 C |
Quit Minicom and start the monitor script.
The crappy Windows laptop has the Arduino IDE installed.
The interlock board is normally powered from a 24 V supply. When the USB cable is plugged in, the board is powered by USB. Do not have both cables connected at the same time. Unplug 24 V before connecting USB, and vice versa.
Monitor script runs on hpstracker in a screen: run "screen -rd" to attach the screen, and repeat Ctrl-A Space until you see the monitor script.
Start the monitor script:
~/interlock/arduino_monitor.py /dev/ttyS0 9600
Status messages are sent to twitter.com/hpsbot; alarms and alerts are sent to twitter.com/heavyphoton.
The full output of the Arduino is saved to ~/interlock/log, with timestamps. When this file gets too big, gzip it and name it with the current date.
Example: "Status: T=24.48,RH=-2.18,dew=-273.10,fl=0,fS=1,sS=1,fT=20.0,fSP=20.0,fFl=0.3,fF=0,sC=1,sT=19.94,sSP=20.00,sPw=26,sP=2.05,io1=0.84"
name | description | source | units | nominal value |
---|---|---|---|---|
T | air temp in SVT box | dry air sensor | C | between SVT and room temps |
RH | relative humidity in SVT box | dry air sensor | % | near or below 0 |
dew | dewpoint in SVT box | dry air sensor | C | -50 or below |
fl | flow switch state | flow switch | boolean | 0 (flow above setpoint) |
fS | FEB chiller serial link | serial port | boolean | 1 (OK) |
sS | SVT chiller serial link | serial port | boolean | 1 (OK) |
fT | FEB chiller temp | FEB chiller serial link | C | setpoint +/- 0.1 |
fSP | FEB chiller setpoint | FEB chiller serial link | C | 20 - 30 |
fFl | FEB chiller flow | FEB chiller serial link | gpm | 0.0 - 1.0 (this flow meter is not very reliable) |
fF | FEB chiller fault code | FEB chiller serial link | 0 (no errors) | |
sC | SVT chiller state | SVT chiller serial link | boolean | 1 (running) |
sT | SVT chiller temp | SVT chiller serial link | C | setpoint +/- 0.2 |
sSP | SVT chiller setpoint | SVT chiller serial link | C | -20 - 20 |
sPw | SVT chiller power | SVT chiller serial link | % full power | 15 - 30 |
sP | SVT chiller pressure | SVT chiller serial link | bar | 1.5 - 2.0 |
io1 | BNC input voltage 1 | BNC jack | V | 0 - 5.0 |
Alarm in | Alarm cleared | Cause | MPOD trip? |
---|---|---|---|
Alarm: flow switch trip | Event: flow switch cleared | Flow at FEB chiller return below setpoint (~15 GPH), or switch unplugged | yes |
Alarm: dewpoint trip | Event: dewpoint trip cleared | dewpoint above -10 C, or sensor unplugged | no |
Alarm: SVT chiller stopped | Event: SVT chiller running | SVT chiller responds with "0" (not running) to "in_mode_05" | yes |
Alarm: SVT serial bad | Event: SVT serial OK | no response, or unparseable response, to last 5 messages | yes |
Alarm: FEB serial bad | Event: FEB serial OK | no response, or unparseable response, to last 5 messages | no |
Flow switch trips -> interlock trips MPOD. This interlock is independent of the Arduino, and the MPOD will trip if the interlock board loses power or the flow switch is unplugged.
Arduino monitor script will tweet a "no status received" error after a timeout (10 sec).
SVT chiller will go to a noncondensing temperature (20 C) after 30 seconds, protecting the SVT from dry air failure.
FEB will still be protected: FEB flow interlock is independent of Arduino, so FEB chiller shutdown will still trip the MPOD.
SVT will not be protected from SVT chiller trip. Unlikely coincidence.
Power loss on the interlock board will remove the "MPOD enable" signal, shutting down the MPOD.
Arduino is powered from the interlock board, so Arduino monitor script will tweet a "no status received" error after a timeout (10 sec).
SVT will not be protected from a dry air failure. Not likely.
Chiller status will indicate a trip, or chiller will not respond to RS-232. In either case, the MPOD will trip.
Coolant leak
Both chillers have low level protection; a leak in either loop will stop that chiller, and the interlock will stop the MPOD.
Flow switch failure
Unplugging the flow switch, or a break in any line of the flow switch cable, will trip the MPOD.
FEBs must not be powered without cooling: MPOD trips and does not start if FEB flow switch is below setpoint.
SVT must not be cooled without dry air: SVT chiller setpoint is reset at 20 C unless dry air dewpoint is below setpoint.
SVT must not be powered without cooling: MPOD trips and does not start if SVT chiller doesn't respond to RS-232 or is not running.
Over Twitter: Report system status (every 10 minutes) to twitter.com/hpsbot, and failures (as they happen) to twitter.com/heavyphoton. People can subscribe to text messages from either Twitter feed.
Logging: all system variables, to ~/interlock/log on hpstracker at 1-second intervals.
RS-232 commands sent by the PC are relayed to one of the chillers depending on first character: "Sstatus" sends "status" to the SVT chiller, "FRG" sends "RG" to the FEB chiller, etc.
Inputs:
Thresholds:
Logic:
Outputs:
Top (green): power on/MPOD enable - should always be on
#2 (yellow): MPOD interlock bypassed (controlled by switch on interlock board)
#3 (red): MPOD trip signal (OR of flow switch trip and Arduino output) - this trips the MPOD unless the interlock is bypassed
#4 (red): dewpoint not OK (this is an Arduino output)