Hallo,
echt ein super Forum.
Ich hätte jetzt auch mal eine Frage. Ich erstell gerade mit den DAQmx Modulen ein VI was diverse Spannungen usw. einliest und anzeigt Das klappt soweit auch schon recht gut.
Jedoch möchte ich gerne noch wenn jetzt z.B. die Spitzenwerterkennung auf 5 V steht und dann über 5V eingelesen werden, dass das VI stoppt und eine Meldung anzeigt. Also quasi Abbruchbedingungen in die einzelnen Signalauswertungen hinzufügen und mit den Werten eben auch arbeiten.
Sicher ziemlich einfach aber leider keine Idee wie ich das angehen soll.
VI im Anhang. (Hoffe die 10er is für alle lesbar)
Vielen Dank für die Hilfe
LG
Hallo Lab,
- Wartezeit aus der Schleife entfernen und eine feste Anzahl Samples abfragen
- auf ExpressVI und DDT verzichten
Ansonsten: Einfach die Schleife abbrechen, wenn ein Spitzenwert über 5 erkannt wird! Die Spitzenwerterkennung liefert nicht nur "Locations", sondern auch "Amplitudes"…
Danke für die Antwort.
Feste Anzahl ist aber schlecht, da ich ja nicht weiß wann z.B über 5V gemessen wird. Das ganze sollte Tage durchlaufen und einfach nen Fehler bringen wenn über X Volt angezeigt werden.
Wie bekomme ich die Abbruchbedingung genau hin ?
Kann ja schlecht vom Wert direkt auf den Stop Button verdrahten ^^
Das DDT-Problem versteh ich leider gar nicht.
Hallo Lab,
Zitat:Feste Anzahl ist aber schlecht
Wieso?
Momentan wartest du 10ms und holst dann die gerade vorhandenen Samples ab. Je nach Samplerate sind das halt auch mehr als nur eines. Wenn du stattdessen Samplerate/100 als Sampleanzahl vorgibst, läuft die Schleife auch mit 100Hz - ohne dass du noch eine extra Wartezeit brauchst…
Zitat:Wie bekomme ich die Abbruchbedingung genau hin ? Kann ja schlecht vom Wert direkt auf den Stop Button verdrahten ^^
Indem du einen Vergleich mit 5 programmierst und das Ergebnis dieses Vergleichs mit dem Stop-Terminal verknüpfst.
Genauso wie du jetzt schon einen STOPP-Button und den ErrorCluster verknüpfst, um die Schleife abzubrechen, kannst du doch weitere Bedingungen mit boolschen Operationen verknüpfen!
Zitat:Das DDT-Problem versteh ich leider gar nicht.
Du fragst vom DAQmxRead ein Array of Waveforms ab - und das wandelst du mit SplitSignal in DDT-Drähte um.
Nimm lieber IndexArray, wenn du Arrayelemente abfragen willst!
Zum Abbruch: Ist soweit jetzt klar, aber wie verbinde ich das wenn ich viele Abbruchbedingungen in einer Schleife haben möchte ?
So gehts wohl nicht.
Hallo Lab,
Zitat:aber wie verbinde ich das wenn ich viele Abbruchbedingungen in einer Schleife haben möchte ?
Über boolsche Verknüpfungen…
Zitat:So gehts wohl nicht.
Genau beobachtet. Und was sagt dir LabVIEW zu der Fehlerursache?
Wenn du ein Array von Werten vergleichst, bekommst du (standardmäßig) ein Array mit boolschen Werten. Dieses kann man mit speziellen Funktionen (AndArray, OrArray) auswerten. Alternativ gibt es ja ein Kontextmenü bei der Vergleichsfunktion - und die LabVIEW-Hilfe zu den Funktionen…