Modeling vacuum plumbing in Aeon's HACS
Overview
A vacuum plumbing system can be viewed simply as a network of valves connecting enclosed chambers. The HACS model starts with these two elements, and provides a several composite classes that define connections and implement common operations to greatly simplify process code.
Each element in the system is defined in the settings.xml file by listing its properties. First, define the most elementary devices, then proceed to the more complex. For the vacuum plumbing, a good order of construction is Chambers, Ports, Valves, Sections, VacuumSystems, GasSupplies.
Aeon often names Chambers and Ports by short, two- or three-letter mnemonics or abbreviations of their functions, and then names Valves from the Chambers or Ports they connect. For example, an inlet manifold might be named IM, and a variable temperature trap, VTT. A valve between them would be named v_IM_VTT. This is merely a convention. Device names may be any valid string.
Elements
Here are brief descriptions of the major HACS plumbing system classes, along with guidance for setting certain properties for particular purposes.
- Valve
A device that can be Opened or Closed to join or separate two Chambers.
- Chamber
A valve-enclosed volume in a the vacuum plumbing.
- Port
A point in the system where sample material may be inserted or removed. A Port has a Valve that opens or closes the Port.
- LinePort
A Port with state tracking (Loaded, Prepared, InProcess, Complete).
- ValveList
An ordered list of valves, treated as a unit and operated in a controlled sequence.
- VacuumSystem
A composite device class that monitors a Vacuum Manifold (VM) chamber pressure and a foreline pressure, and automatically controls four valves to safely manage pumping operations to reach and maintain a requested vacuum state (Isolate, Evacuate, Standby). It's most important properties are:
- Pressure (a VSPressure)
A device that provides the VM pressure. A VSPressure is a composite device consisting of an ion gauge and a second sensor for detecting pressures higher than the ion gauge can read.
- pForeline (a DynamicQuantity)
A pressure sensor on the foreline chamber.
- v_HighVacuum (a Valve)
The Valve that connects the VM to the high-vacuum pump, usually a turbomolecular pump.
- v_LowVacuum (a Valve)
The Valve that connects the VM to the foreline.
- v_Backing (a Valve)
The Valve that connects the high-vacuum pump's exhaust to the foreline.
- v_Roughing (a Valve)
An optional Valve that connects the low-vacuum, "roughing" pump to the foreline. This valve is normally left open, but may be closed for system maintenance and troubleshooting purposes.
- Section
A connected collection of Chambers, treated as a unit, with the following properties:
- PathToVacuum (a ValveList)
An ordered list of valves from the Section to its VacuumSystem manifold.
- Isolation (a ValveList)
An ordered list of valves that isolate the Section and define its volume perimeter or boundary. Also include any valves required to isolate the PathToVacuum. If the Section connects to the VM, put that valve last. Often, port valves (IP, IP2, GRs, etc) should be omitted from this list (use the Ports list, instead). Isolation valves are always closed to isolate the section. Omitted port valves can (and must) be explicitly managed in the Section-calling code, depending on the needs of the caller.
- InternalValves (a ValveList)
An ordered list of valves that joins the Section chambers into a single volume.
- GasSupply
A composite device class that manages the introduction of pressure-regulated cylinder gas into a Destination Section via a Path Section, with the following properties:
- Destination (a Section)
- Chambers (a list of Chambers)
These receive the gas.
- Isolation (a ValveList)
Isolates the Destination volume and also the PathToVacuum.
- PathToVacuum (a ValveList)
Joins the Destination volume to the VM
- Path (a Section)
NOTE: Leave Path empty if the gas source valve is on Destination boundary.
- Chambers (a list of Chambers)
Those along the Path but not in Destination.
- Isolation (a ValveList)
Isolates the Path volume and also the PathToVacuum.
- PathToVacuum (a ValveList)
Joins the Path volume to the VM.
NOTE: Leave PathToVacuum empty if Path cannot be evacuated without also evacuating Destination.
- InternalValves (a ValveList)
This is the gas-flow path. The last valve should also be on Destination.Isolation.
Whether, where, and when certain valves should appear in ValveLists
General guidelines (there may be exceptions)
ValveList.Close() and .Open() do not directly operate VacuumSystem v_HighVacuum or v_LowVacuum Valves. When either of those valves is present in a ValveList, the method invokes VacuumSystem.Isolate() or .Evacuate() instead.
Exclude (physically present) port valves (at the IP, VP, GRs, etc.) to have them ignored by general-purpose ValveList methods. This enables and requires their inclusion or exclusion to be determined by the process code, which is normally the desired functionality.
Gas supply valves usually may be included or omitted without affecting general-purpose functionality. It normally doesn't hurt to include them, but their absence normally does not matter, either, because they are essentially always closed (except briefly to admit gas). If a gas supply valve is included in a Section's Isolation list, and that list is ever Open()ed, the gas supply valve will be opened along with everything else. This most probably would be undesired; however, Isolation lists are never Open()ed in the general-purpose code.