Hallo Leute,
ich bin ein LV-Anfänger und arbeite zurzeit an meiner Bachelorarbeit und möchte ein Signal mit Labview visualisieren. Graph anzeigen lassen funktioniert. Jetzt möchte ich das Signal kontrollieren ob es einen bestimmten Wert überschreitet. Wenn der Grenzwert überschritten ist, soll ein Digital Output auf true gesetzt werden. In meinem vi habe ich bisher mein DAQ-Input mit einem Graph kombiniert und nun wollte ich das signal noch vergleichen und das Ergebnis an einen DAQ-Output schicken, jedoch kommt immer die Fehlermeldung, dass ich in meinem Task nur 1 Kanal habe aber 100 benötigt werden .. hier hören meine Kenntnisse auf.. Kann mir wer helfen ?
Danke schonmal und Grüße Paul
Hallo Paul,
Bitte VI anhängen…
Ansonsten: wenn du 100 Samples ausgibst und DAQmxWrite nicht passend einstellst, ist diese Fehlermeldung verständlich…
das vi kann ich leider erst morgen hochladen, aber ich denke du liegst schon genau richtig mit dem Fehler. Habe als DAQ-Input kontinuierlich eingestellt mit 100 Samples mit 1k Rate und beim DAQ-Output 1 sample on Demand. Werde morgen früh das vi hochladen und dann kannst du mir ja vielleicht nochmal helfen
Hallo Paul,
einfache Lösung: aus den 100 gelesenen Samples nur einen einzigen Wert für die Ausgabe machen…
Hier ist das vi. Wenn irgendwer viellicht kurz die Zeit hat, kann er das vi ja kurz anpassen und hochladen, dann verstehe ich vielleicht wie es gemacht wird
Hallo Paul,
da ich hier kein DAQmx installiert habe, bleibt nur dieser Vorschlag:
[
attachment=50600]
Wie ich oben schon sagte: aus den 100 Samples, die du gelesen hast, ein einzelnes für die Ausgabe machen…
Ansonsten:
Versuche auf ExpressVIs zu verzichten. Auf längere Sicht fährst du dann deutlich besser!
Hey Gerd,
vorab schonmal Danke für deine Bemühungen. Ich wollte gestern dein VI nachbauen, aber ich hab leider die Funktionen bei meinem LV nicht gefunden , die du benutzt um das Signal zusammenzufassen... wie heisst die Funktion dann kann ich sie vielleicht suchen ? Und wenn die Samples zusammengefasst sind, wie ist das dann mit der Reaktionszeit ? Da ist doch bestimmt ein Delay vorhanden, also dass das der digital Output erst später gesetzt wird als zu dem Zeitpunkt in dem die Spannung meinen Grenzwert überschreitet ?
Gruß Paul
Hallo Paul,
Zitat:wie heisst die Funktion dann kann ich sie vielleicht suchen ?
Es werden hier boolsche Werte verarbeitet. Guck doch einfach mal in die Palette mit den boolschen Funktionen…
Zitat:Und wenn die Samples zusammengefasst sind, wie ist das dann mit der Reaktionszeit ? Da ist doch bestimmt ein Delay vorhanden, also dass das der digital Output erst später gesetzt wird als zu dem Zeitpunkt in dem die Spannung meinen Grenzwert überschreitet ?
Ja, da ist ein Delay.
Du liest ein Array mit Werten vom AI. Darin suchst du nach dem Grenzwert und erzeugst daraus eine Schaltbedingung. Der (maximale) Delay hängt also von der Arraygröße (=Sampleanzahl) und der Samplerate ab…
Lösung:
- Einzelwertverarbeitung: Einzelwerte vom AI lesen und sofort auswerten. Dies begrenzt die Samplerate auf ca. 200Hz (mit starkem Jitter)…
- Begrenzung der Sampleanzahl auf "vernünftige" Werte: Wenn du innerhalb von 20ms reagieren willst, solltest du bei einer Samplerate von 1kHz nicht mehr als 20 Werte auf einmal lesen…
Hey Gerd,
jetzt hab ich das vi natürlich gefunden
danke nochmal es funktioniert
... das Delay-Problem muss ich mir nochmal angucken, ob es relevant ist ..