FluxControl-tiny-mods
Geschrieben von Mathias Lindner 2015.
Änderungen von Henrik Haftmann, September 2016.
Änderungen
- Alle Fehlergeneratoren in allen Sub-VIs mit Aufrufpfad zur Lokalisierungsmöglichkeit
- VI-Terminierung per Fensterschließknopf (= Ereignisstruktur)
- Pfade sowie Schriftgröße für Pfade (kleiner, damit man sieht, dass sie lang sind)
- Bedingtes SPCM-Start.vi im Case "Measure", nicht bei fehlendem Trigger,
dadurch Fehlermeldung weg
- Diverse Tunnel mit Default (kosmetisch)
- aux_buildXYGraph.vi: Durchgehende Daten entfernt (kein Datenmodifizierer!)
- Abbruch bei fehlendem Trigger mit „Wiederholen“ (automatsich nach 5 Sekunden) und „Abbrechen“,
nicht „Wiederholen“ und „Beenden“
- Signaldarstellungen mit sofort wirksamen Ein/Aus-Schaltern (ähnlich LV2015+),
Buttons mit OFF-Text
- "Switch_Full_Traces" und "Help" in Ereignisstruktur gesetzt (wo's hingehört)
- Zustände "Switch_Full_Traces" und "Help" entfernt, Wait→Idle und auf Platz 0
(für später: Default-Case 0)
- Hilfe-Dialog darf mit Klick oben rechts beendet werden (= Ereignisstruktur),
Aufruf der CHM-Datei mit Extra-Knopf eingebunden
- Alle versteckten Steuerelemente außer XY-Diagramm „Single_Traces_full“
sichtbar gemacht (für Klarheit!) im Freibereich des Tabs „Parametrize“.
Diese dienen schlicht als lokale Variablen.
Wenn man sie dereinst nicht mehr benötigt, ist es besser,
sie außerhalb des Fensterbereiches zu platzieren statt sie zu verstecken,
um das Programmverständnis nicht allzu sehr in Mitleidenschaft zu ziehen.
- Enabled-Status über Referenz-Array statt Namen schalten (bei Idle) — reaktivere GUI
- Temperaturanzeigen im Statusbereich als
double, nicht als int
Bearbeitungshinweis
Achtung! Niemals gleichnamige VI-Dateien aus verschiedenen Ordnern zugleich öffnen!!
(Also nicht aus FluxControl-tiny-mods und FluxControl-backup zugleich!)
Das danach entstehende Chaos ist kaum mehr zu entflechten.
Die Bezeichner („Label“) der Steuerelemente darf nicht geändert werden,
da die Bezeichner an einigen tiefen Stellen hartkodiert sind
(= schlechter Programmierstil).
Bei Änderung oder Übersetzung ist „Caption“ zu aktivieren.
Außerdem können die Typdefinitionen nicht auf „strikt“ gestellt werden,
sonst geht der tiefe Komponentenzugriff beim Laden/Speichern in die Hose
(ebenfalls schlecht).
Datendurchlauf
Die Messwerte (4 AI-Kanäle) und „Sec. Voltage Setpoint“
durchlaufen folgende VIs (Case „Measure_Check“ im Fall „Single Test“):
aux_data_conditioning.vi
aux_data_conversion.vi
- Skalierung (= Multiplikation mit Werten aus Rig.Conversion), außer Uset
- Aus „Sec. Voltage Setpoint“ wird irgendwie ein periodisches Signal neu gebaut (unklar!)
aux_data_add_time.vi
- Fügt den 4+1 Signalen jeweils eine Zeitachse (als Spalte 0) hinzu.
In Millisekunden über die Dauer von "Rig.AO.Test Time".
Da die beiden Signalgruppen verschiedene Längen (= Anzahl Abtastwerte) haben,
ergibt sich so ein unterschiedliches Δt der beiden Gruppen.
Ansonsten ist alles äquidistant und man könnte mit dem LabVIEW-Datentyp „Signal“
viel komfortabler arbeiten.
aux_data_trim.vi
- “trim switch on effects and cut end to get full periods” (für alle 4+1 Signale)
calc_sine_phase_matlab.vi
- “Calc polarization from field strength based on static magnetization curve”
aux_data_stray_correction.vi
- Nur für den Fall “stray correction in software”, nur die vier AI-Signale:
aux_lowpass.vi
- IIR-Tiefpassfilter, hier mit 1. Ordnung, ohne Fensterung, True für “Zero Phase with IC”
aux_data_filter.vi
- Filtern der 4 AI-Signale mit den "Filter"-Parametern (Struktur des Hauptfensters),
nur wenn Filter.FFT = false und entsprechender Filter-Schalter (pro Signal) ein:
aux_lowpass.vi
- IIR-Tiefpassfilter, hier mit 1. Ordnung, ohne Fensterung
aux_data_freq_correction.vi
- Filtern der 4 AI-Signale mit den "Filter"-Parametern (Struktur des Hauptfensters),
nur wenn Filter.FFT = true und entsprechender Filter-Schalter (pro Signal) ein,
mittels Matlab
freq_correction()
aux_data_trim.vi
- “trim switch on effects and cut end to get full periods” (für alle 4+1 Signale),
noch einmal mit “one period trimmed automatically”
calc_sine_phase_matlab.vi
- “Calc polarization from field strength based on static magnetization curve”
aux_calc_results.vi (nur für die vier AI-Kanäle)
calc_formfactor.vi
calc_dynamic_hysteresis.vi,
generiert H-J-Array, Tests folgen:
aux_review_fieldstrength_lf_offset.vi
aux_review_ranges.vi
aux_adjust_ranges.vi
- Verändert etwas in der Benutzeroberfläche
aux_review_polarization_overlap.vi
aux_sort2Darray.vi
aux_sortUpDown.vi
aux_detectUpDown.vi
aux_detect_amplitudes.vi
- “detect indexes of local amplitudes of periodic signals with appox equal amplitude highs
including boundaries (local amplitude at start/end)”
calc_amplifier_characteristics
- “create amp characteristics”