LabVIEWForum.de - Beenden der Funktion

LabVIEWForum.de

Normale Version: Beenden der Funktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Einen schönen guten Tag,

Ich hoffe, meine Frage ist jetzt nicht zu dämlich. Ich habe folgendes Problem, ich nutze ein Picoscope (Oszilloskop) innerhalb meiner LabView Anwendung. Das Picoscope ist im Regelfall so eingestellt, das dieses nur Daten an mein Diagramm liefert, wenn der Trigger ausgelöst wird. Um die Einstellungen des Picoscopes zu ändern, gibt es ein Button für den Neutsart des Picoscopes. Dadurch wird meine while-Schleife beendet und alle Teile für das Picoscopes werden neu ausgeführt und die Einstellungen werden neu eingelesen. Mein Problem ist nun, dass die while-Schleife aber nie beendet wird, da er die ganze Zeit im Picoscope Block festhängt und auf den Trigger wartet. (PS4000 Block) Gibt es eine Möglichkeit, das Beenden der While Schleife oder einer bestimmten Funktion, hier der PS4000 Block, zu erzwingen? Vielen Dank schon einmal für die Unterstützung.

Gruß Mathias

[attachment=59551]
Hi Zeratul,

herzlich willkommen im Forum!

Zitat:Gibt es eine Möglichkeit, das Beenden der While Schleife oder einer bestimmten Funktion, hier der PS4000 Block, zu erzwingen?
Bei den DAQmx-Funktionen von NI gibt es immer die Möglichkeit, einen Timeout einzustellen, nach dem die Funktion automatisch abbricht.
Geht das bei den PicoScope-Funktionen auch?
Einen schönen guten Tag Gerdw,

Eine ähnliche Funktion gibt es beim Picoscope auch. Ich kann bei den Settings für das Picoscope eine Auto-Trigger Zeit in ms angeben. Das Problem ist aber hierbei, wenn der Trigger nicht ausgelöst wurde, greift die Autotriggerzeit. Dadurch liefert er mir aber Daten für mein Diagramm. Dies möchte ich aber nicht. So gibt es leider keinen separaten booleschen Ausgang für die Funktion, der angibt, ob der Trigger ausgelöst wurde oder ob es die Autotriggerzeit gewesen ist.

Gruß Mathias


[attachment=59552]
Hallo Zeratul,

gibt es in den PicoScope-Funktionen evtl. noch woanders eine Möglichkeit, einen Timeout einzustellen?
Vielleicht schon vorher bei den Initialisierungsroutinen?

Zitat:Das Problem ist aber hierbei, wenn der Trigger nicht ausgelöst wurde, greift die Autotriggerzeit.
Ähnlich wie bei einem Timeout…

Zitat:Dadurch liefert er mir aber Daten für mein Diagramm. Dies möchte ich aber nicht. So gibt es leider keinen separaten booleschen Ausgang für die Funktion, der angibt, ob der Trigger ausgelöst wurde oder ob es die Autotriggerzeit gewesen ist.
In diesem Fall müsstest du mit den gelieferten Daten versuchen, zu erkennen, ob das gewünschte Event enthalten ist…
Einen schönen guten Tag Gerdw,

Danke für die weitere Antwort. Du hast mich auf alle Fälle schon einmal auf eine Idee gebracht. Das ich das Array darauf untersuche, ob ein Wert dabei ist, welcher +/- 10% des Triggerwertes enstpricht. Wenn so ein Wert enthalten ist, stelle ich das Array innerhalb meines Diagramms dar.
So gibt es beim Picoscope aber keine weiteren Einstellmöglichkeiten, die hierfür relevant wären. Es lässt sich u.a. nur die Auflösung oder die Stromversorgung einstellen.

Gruß Mathias
Vielen Dank an Gerdw, der mir den Gedanken für die Lösung brachte. Ich vergleiche das Arrays des ausgelösten Triggers, ob ein Element innerhalb meiner vorgebenen Grenze liegt. Anschließend überprüfe ich das entstehende Bool-Array und wenn dieses irgendwann mal True ist, wird der Fall zum Zeichnen des Diagramms ausgeführt. Im Anhang befindet sich ein Bild der Lösung. Dieser stellt natürlich nicht den Endstand meines Programms dar aber es ist die Lösung meines Problems.

Gruß Mathias

[attachment=59555]
Hallo Mathias,

noch ein Tipp:
Statt Search1DArray gefolgt vom Vergleich könntest du auch einfach "OR Array" verwenden…
Einen schönen guten Tag Gerdw,


Danke für den Hinweis bzw. Tipp. Ich schau mir die Funktion an und werde es dahingehend optimieren.

Gruß Mathias
Referenz-URLs