LabVIEWForum.de - Analogmessung und Lichtschranke

LabVIEWForum.de

Normale Version: Analogmessung und Lichtschranke
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=60595][attachment=60596]
[attachment=60597]
Hallo,
mit unserer NI Box USB-6216 soll u.a. ein Teststand aufgebaut werden:
3x Analogmessung, Spg./Strom /Kraft
1x Geschwindigkeitsmessung
div I/O.
Im einzelnen klappt es so weit so gut. Wird alles zusammengeführt, so treten Probleme auf. Ich vermute diese in der Verarbeitungsgeschwindigkeit, muss aber nicht sein.
Im Hauptteil hätte ich versucht, mittels "State-Machine" (wird mittels "Aktive"-Schalter aktiviert, welcher ein Relais ansteuert, der Ausgang wird auf PFI0 als Trigger zum Analogsamplen gelegt). Da ganze soll ca. 2 Sekunden im Aktiv-State sein.

Wo es noch happert:
Es werden nicht immer Daten in das Messdatenfile geschrieben. Wenn ein Binärfile verwendet wird, scheint es besser zu sein, als bei einem Excel File. Jedoch wird mit dann der Lichtschrankenwert nicht geschrieben.

Wie kann ich den Aktiv-State auf eine feste Zeit legen, z.B. 3 Sekunden. Die Messung soll ebenso mehrmals hintereinander aktiviert werden können.

Vielen Dank, Grüße, Heribert
Hallo Herri,

Zitat:Wo es noch happert:
Es werden nicht immer Daten in das Messdatenfile geschrieben. Wenn ein Binärfile verwendet wird, scheint es besser zu sein, als bei einem Excel File. Jedoch wird mit dann der Lichtschrankenwert nicht geschrieben.
Wie kann ich den Aktiv-State auf eine feste Zeit legen, z.B. 3 Sekunden. Die Messung soll ebenso mehrmals hintereinander aktiviert werden können.
Wenn der "Aktiv"-State genau 3s lang laufen soll, würden sich 2 Optionen anbieten:
- du fragst beim AI-Task Daten für genau 3s an - lässt sich ja einfach über die Samplerate berechnen…
- du machst eine While-Loop in diesen State und bestimmst über ElapsedTime deine 3s Laufzeit…

Excel-Files zu erstellen benötigt deutlich mehr Zeit als einfache Text/CSV-Dateien. ExpressVIs dafür zu verwenden führt auch nicht zu effizienten Programmen…

Zum gezeigten Bild:
- Hast du dir die LabVIEW-Hilfe zur Funktion DAQmxTiming durchgelesen? Weißt du, was der Input Buffergröße bewirkt - und warum man ihn bei "kontinuierlicher" Messung üblicherweise nicht verdrahten sollte?
- Wiese gibt es eine lokale Variable von "Aktiv?" im Bild??? Verwende Draht - bzw. lasse das Select danach weg, da du den Wert von "Aktiv?" in State 3 ja sowieso kennst…
- Wieso hat der boolsche Button recht unten kein Label???
- Wieso musst du im State 3 prüfen, ob der State-Selektor wirklich den Wert 3 bekommen hat, nur um eine lokale Variable von "Bereit" damit zu setzen? Warum schreibst du nicht einfach ein TRUE in die Value-Property, wenn du sowieso schon eine Propertynode von "Bereit" verwendest???
- Wieso schreibst du "Daten" in eine lokale Variable "Time (s)", und danach nochmal in das Terminal "Time (s)"? Wieso schreibst du diesen Wert auch noch in ein Schieberegister, um dann beim nächsten Schleifenstart den gleichen Wert aus einer weiteren lokalen Variablen "Time (s)" zu lesen???
- Wenn du LV2018 verwendest, solltest du die Kommentarfelder in Strukturen aktivieren und verwenden statt freie Kommentare im BD zu hinterlassem, die noch nicht einmal per Pfeil an zugehörige Funktionen angepinnt sind…
Hallo GerdW,

vielen Dank für Deine Anregungen und Tipps, diese werden mir als Neuling auf dem Thema sicherlich helfen. Ich werde versuchen, die Fehler zu bereinigen.
Nach der Durcharbeit werde ich mich wieder melden.

Vielen Dank und Grüße, Heribert
Hallo GerdW,

ich habe Deine Tipps und Anregungen einmal durchgearbeitet:

-Die Zeitbegrenzung führe ich nun über ein Timeout am Lesetask (Analog und Zähler) aus. Solange keine Lichtschranke oder PFI0 Trigger erfolgt, wird bis zum Timeout gewartet.

-Analogergebnisse bekomme ich nur bei "kontinuierlicher" Messung. Ob ich hier noch einen Fehler habe lasse ich mal offen.
-Der Boolsche Button ist STOP, zum Beenden
-Die Variable "Aktiv" als auch das Schieberegister in der Zeitmessung mit den mehreren Anzeigen stammt aus früheren Versuchen, als mir nach beenden der Schleife die Zeit immer auf "0" gesprungen ist.
-Das State 3 prüfen ist natürlich überflüssig, na ja, Anfänger

Das mit den Kommentarfeldern habe ich noch nicht verstanden. Ich habe bisher das Textfeld verwendet, damit zumindest etwas Kommentar (zum Verständnis) vorhanden ist. In der Hilfe habe ich leider nichts gefunden. Wie meinst Du "Kommentarfelder in Strukturen" aktivieren?

Zum Speichern der Daten verwende ich nun "TDMS schreiben", nachdem ich im Init ein File erstellt habe.

Vielen Dank, Grüße, Heribert
(09.12.2019 14:20 )Herri schrieb: [ -> ]Hallo GerdW,

ich habe Deine Tipps und Anregungen einmal durchgearbeitet:

-Die Zeitbegrenzung führe ich nun über ein Timeout am Lesetask (Analog und Zähler) aus. Solange keine Lichtschranke oder PFI0 Trigger erfolgt, wird bis zum Timeout gewartet.

-Analogergebnisse bekomme ich nur bei "kontinuierlicher" Messung. Ob ich hier noch einen Fehler habe lasse ich mal offen.
-Der Boolsche Button ist STOP, zum Beenden
-Die Variable "Aktiv" als auch das Schieberegister in der Zeitmessung mit den mehreren Anzeigen stammt aus früheren Versuchen, als mir nach beenden der Schleife die Zeit immer auf "0" gesprungen ist.
-Das State 3 prüfen ist natürlich überflüssig, na ja, Anfänger

Das mit den Kommentarfeldern habe ich noch nicht verstanden. Ich habe bisher das Textfeld verwendet, damit zumindest etwas Kommentar (zum Verständnis) vorhanden ist. In der Hilfe habe ich leider nichts gefunden. Wie meinst Du "Kommentarfelder in Strukturen" aktivieren?

Zum Speichern der Daten verwende ich nun "TDMS schreiben", nachdem ich im Init ein File erstellt habe.

Vielen Dank, Grüße, Heribert

Hallo Heribert,

du hast die Möglichkeit Diagramme (Whileschleifen..) zu beschriften indem du einen Rechtsklick darauf machst und Subdiagram Label aktivierst (Siehe Anhang). Optional kannst du auch deine Textfelder benutzen. Die Textfelder haben aber auch noch die schöne Funktion, dass wenn du mit der Maus über die untere rechte Ecke fährst, du Pfeile auf deinen jeweiligen Wert/Schleife.. ziehen kannst
Referenz-URLs