Vacuum controller

From base48
Revision as of 13:02, 30 October 2016 by B42 (talk | contribs) (formatting)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Hardware

  • TMP - Turbo Molecular Pump
  • PVP - Pre Vaccum Pump
  • VV1 - Venting Valve 1 - small venting valve
  • VV2 - Venting Valve 2 - large venting valve
  • PV - PVP valve
  • CCG - pening gauge
  • PG - pirani gauge

Vacuum diagram.png

Firmware

Mode A: automatic Mode B: manual

Info

all treshold variables should be editable in one config file. eg. %. V, pressure


Penning gauge: gauge output: 0-10V ADC input: gauge_out/4 (0-2.5V) digital out: on/off relay


enableCCG() - true/false Condition: enable only if TMP speed > 80%, disable if TMP speed drop below 80%. Error: TMP is not running at full speed. Check for vacuum leak. Condition: Disable automatically if pressure is above 2e-3 Pa. Error: Vacuum leak detected. If ok: Info: CCG was enabled. Out: digital pin Lo/Hi, Lo Disable, Hi enable, disabled by default.

getCCGPressure() - get gauge pressure in mbar return pressure only if CCG reportes "measuring" status

if voltage is in range 1.9V – 9.1V (measuring mode) retur pressure in mbar calculated by formula: 10e(ADC*4-6) mbar) return false(or CCG status model) if out of range


getCCGRaw() - get gauge pressure in V same conditions as getCCGPressure return CCG output voltage - ADC*4


getCCGStatus() - return status as string.

measuring: 1.9V – 9.1V (formula: 10e(Voltage-6) mbar) underflow: <1.8V – pressure underflow owerflow: >9.2V – pressure owerflow error: 9.5V – Broken filament error: 9.6V – Callibration error disabled: if not enabled


Pirani gauge: gauge output: 0-10V ADC input: gauge_out/4 (0-2.5V) digital out: on/off relay


enablePG() - true/false Condition: none If ok: Info: PG was enabled. Out: digital pin Lo/Hi, Lo Disable, Hi enable, disabled by default.

getPGressure() - get gauge pressure in mbar return pressure only if PG reportes "measuring" status

if voltage is in range 1.9V – 9.1V (measuring mode) retur pressure in mbar calculated by formula: 10e(ADC*4-6) mbar) return false(or PG status model) if out of range


getPGRaw() - get gauge pressure in V same conditions as getPGressure return CCG output voltage - ADC*4


getPGStatus() - return status as string.

ToDo: tresholds are taken from CCG. Proper values are bit different.g measuring: 1.9V – 9.1V (formula: 10e(Voltage-6) mbar) underflow: <1.8V – pressure underflow owerflow: >9.2V – pressure owerflow error: 9.5V – Broken filament error: 9.6V – Callibration error disabled: if not enabled


TMP digital out: on/off signal ADC input: TMP_speed/5 (0-xxV)


enableTMP() - true/false Conditions: enable only if PVP is enabled. Enable only if VV1 and VV2 is closed. Enable only if PV is open. Conditions: disable automaticaly if TMP speed drops down below 95% form the full speed. Error: Possible vacuum leak detected. Disabling TMP for safety reason. Out: digital pin Lo/Hi, Lo Disable, Hi enable, disabled by default.


getTMPSpeed() - get TMP speed in % Range: 0 - >100% !!! 0V=0%, 10V=100%, 11V=110% ADC input: TMP_speed/5


' PVP ' digital out: on/off signal, off by default

enablePVP() - turn the PVP pump on/off Conditions: none


' VV1 ' digital out: on/off signal

enableVV1() - turn the VV1 pump on/off Conditions: none Disable = closed, enable = open, closed by default

' VV2 ' digital out: on/off signal

enableVV2() - turn the VV2 pump on/off Conditions: none Disable = closed, enable = open, closed by default


' PV ' digital out: on/off signal

enablePV() - turn the PV pump on/off Conditions: none Disable = closed, enable = open, closed by default

Automatic mode

Pump() - Preconditions: CCG disabled TMP disabled, VV1, VV2 disabled


Pump: Enable PVPV, delay, enable PVP, delay 30 seconds, enable TMP, wait till TMP speed is >80%, enableCCG, issue Vacuum OK signal when pressure is better than treshold (1e-3). Timeout: 5 min. Disable CCG, Disable TMP, Disable PVP, open VV1, wait till TMP speed is <50%, open VV1. wait till TMP speed is <5%, close VV1, delay xxx seconds, close VV2. h