Old DMPS system. New DMPS systems that I worked with are far more compact, all components are in one chassis. Check DMPS Photos folder for more pictures. |
Source: https://wiki.helsinki.fi/display/SMEAR/DMPS-system+Instructions |
GUI to control DMPS measurement device. The device has a simple operating principle. It decides what size of particles to let through. Then it uses a separate CPC device to count the particles. This is repeated to all particle sizes to get size distribution.
Summer intern project for the University of Helsinki. Copy of a GitLab repository. Note that this repository is out of date and will not include updates made others than myself.
General
- Program for DMPS, HalfMini and UFDMPS.
- Basic working principle for all setups is similar. Parameters are different and for example HalfMini uses probably different kind of blower. UFDMPS has two DMAs and two CPCs.
- ✔️ = Feature is done
- ❌ = Feature is not yet implemented
- ❔ = Not sure if the feature is needed or is implemented
Detectors
- ✔️ TSI CPCs old legacy serial and pulse connection
- ❌ TSI CPCs, new serial, pulse and TCP connections
- ❌ TSI electrometer
- ❌ Airmodus A20
- ❌ Airmodus PSM+A20 (for HalfMini)
- ❌ Airmodus new model (A30?)
- ❌ Airmodus UFCPC model coming?
- ❌ Analog electrometers
- ❌ Also detector status should be saved (concentration and all other data)
DMA's
- ❔ Vienna different lengths
- ❔ HalfMini
- ❔ TSI nano and long
Blowers
- ✔️ Both analog control and pwm using TSI flow meter
- ❌ HalfMini could use 2 x blower (same type as for DMPS) in future
TSI flow meter
- ✔️ Flow, T and P
- ✔️ 4000 series
- ❌ 5000 series
Analog signals
- ✔️ dP (flow), T, P, RH, HV monitor
- ❔ Possibility to add more analog input channels
High Voltage
- ✔️ Stepping voltage (DMPS)
- ❌ Stepping voltage (SMPS)
- ❌ Continous voltage scan (DMPS and SMPS)
PID control
- ✔️ Sheath flow
- ❌ Blower pid using microcontroller?
- ❌ HV control
- ✔️ Blower pid control is executed in separate thread, could be improved
Inversion
- ❌ Python inversion by Anton as module or stand alone old Fortran code from PasiA
- ❌ SMPS inversion? In a separate script but the actual measurement program could give a possibility to determine the delay time.
Parameters
- ✔️ *.INI-file
- ✔️ Program should give a possibility to create the *INI-file (graphical user interface). -> The ini file can be edited in the gui and ini file template is part of this repository. New ini file can not be created with the gui.
- ✔️ Should have also a 'service mode' which allows to change the parameters from GUI. Service mode should show the scaled values.
- ❌ Service mode should also show the raw values
Graphical user interface
- ✔️ Tkinter
- ✔️ Draw graphs of the data
DAQ by NI
- ✔️ NI6211 & 6215
Requirements
- Python 3.x.x
- Tested to work with Python version 3.9.7
- NI-DAQmx (NI-DAQmx Runtime might be enough?)
Installation
- Open any terminal program(cmd) and download the repository with
git clone https://version.helsinki.fi/atm-tech/new-dmps-software.git
you need credentials for that- Or just download the zip file from the main page
- Install the repository to any safe location
- Create virtual environment with
python -m venv env
insidenew-dmps-software
folder- Virtual environment enables you to have multiple different python and python module versions installed on the same PC. The Environment to run this program is now isolated virtual environment.
- Usage of virtual environment is optional
- Activate the env with
env\Scripts\activate
- Make sure you are in correct location so the given file path will work(Root folder which contains env folder)
- PowerShell might give you trouble
- If your terminal displays
(env) [PATH]
everything is working correctly
- Navigate with
cd
insidenew-dmps-software
(root folder of the program) - Install required depencies with
python -m pip install -r requirements.txt
- Pip probably gives warning to upgrade to a new version. You can do that if you want
- Installation is now complete
How to start the program
- Navigate inside
new-dmps-software
folder with any terminal program(cmd) - Activate the virtual environment
env\Scripts\activate
- PowerShell might give you trouble
- If you encounter problems ensure that your PATH is correct
- Run the main file with
python main.py
Bugs/Issues
- Known small priority bugs are documented in Gitlab's Issues section
- If you encounter a bug you can document it in the Issues section. It would be helpful if you attach debug.log from debug folder (and screenshot of terminal output) to the report