Hallo,
ich habe ein SubVI geschrieben, das (leider) recht groß ist. Es ist das unübersichtlichste VI in diesem Projekt.
Und es läuft viel zu langsam.
Da mir eine 6-stellige Genauigkeit zu gering ist, bin ich wohl auf den Double-Wert angewiesen (oder eben alles mit FXP berechnen, wobei das sehr unübersichtlich wird).
Die 2 SubVIs enthalten lediglich 2 Vergleiche und sind inline eingefügt.
Das VI wird pro Durchlauf der Hauptschleife ca. 50 mal in einer For-Schleife aufgerufen. Dort lese ich 50 Messwerte ein, die mit dem angehängten VI dann geprüft werden. Liegen Messwerte innerhalb zweier Grenzen, gebe ich u.a. die Messwerte zurück (über 2 Arrays).
Welche Optimierungsmöglichkeiten seht ihr?
Die automatische Fehlerbehandlung ist bereits dektiviert.
Das Timing-Werkzeug zeigt mir leider nicht an, was langsam ist, nur dass es an diesem VI liegt.
Ich könnte auch versuchen, nicht mit den kalibrierten FXP-Daten zu arbeiten, sondern mit den RAW-Daten.
Allerdings weiß ich nicht, wie diese Werte dann nachher kalibriert werden können.
Die Skalierung würde ich vermutlich noch irgendwie hinbekommen, wobei ich mir da auch nicht ganz so sicher bin. Je nachdem, was für den AD-Wandler das Minimum und Maximum ist.
Nachtrag: Auch mit den RAW-Werten (I32) ist das von der Geschwindigkeit fast identisch.