LabVIEWForum.de - Programm pausieren

LabVIEWForum.de

Normale Version: Programm pausieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo ihr Lieben,

ich hab ein ganz simples VI, mit der ich der Reihe nach Befehle an einen Generator sende. Meine Frage: gibt es die Möglichkeit, mein VI für eine Zeitdauer td (z.B. eine Sekunde) nach Übergabe eines Befehls zu pausieren? Mit Schleifen weiß ich, wie das geht, aber geht das auch wenn ich keine Schleife habe? Bei den Kommentaren PAUSE möchte ich die Pausen einfügen.

Liebe Grüße und schon mal Danke für Eure Hilfe! Smile
Kaya
Hallo Kaya,

Zitat:gibt es die Möglichkeit, mein VI für eine Zeitdauer td (z.B. eine Sekunde) nach Übergabe eines Befehls zu pausieren? Mit Schleifen weiß ich, wie das geht, aber geht das auch wenn ich keine Schleife habe?
Gegenfrage: wieso hast du keine Schleife, wenn du die gleiche Prozedur mehrfach wiederholen willst?

Du hast in deinem Beispiel 6 mal die Kombi aus VISAWrite und VISARead, mit jeweils einem anderen Befehl: warum also keine Schleife und warum kein subVI, welches beide Befehle beinhaltet?
Dann kannst du nämlich noch ein Wait mit ins subVI packen und als zusätzlichen Parameter ans subVI geben: Befehl + Delay…

Andere Alternative: frühzeitig den Umgang mit Statemachines erlernen. Dann hast du die States "Kommunikation (Schreiben/Lesen)" und "Warten", die nach Belieben aufgerufen werden können!

Und noch ein simpler Tipp: erstelle dir ein subVI namens "Wait with error IO" und packe das in deine user.lib. Das kannst du dann immer per Dataflow aufrufen, wenn du zwischen zwei Operationen gezielt warten willst. (Es gibt da garantiert was fertiges bei OpenG oder GPower.)

Außerdem: Defaultwerte muss man nicht als Konstante anschließen, bei dir z.B. bei ConfigureSerialPort…
Hi Gerd,

das VI habe ich erstellt, um meine Frage deutlicher zu machen. Ich dachte, vielleicht gibt es einen entsprechenden Befehl.

Es gibt auf jeden Fall den seriellen Befehl "unterbrechen". Ich werde es mal damit versuchen.

LG Smile
Hallo Kaya,

Zitat:Ich dachte, vielleicht gibt es einen entsprechenden Befehl.
Siehe den "simplen Tipp" in der vorigen Nachricht…
Eine noch simplere Variante dieses Tipps:
[attachment=62559]

Zitat:Es gibt auf jeden Fall den seriellen Befehl "unterbrechen". Ich werde es mal damit versuchen.
Was soll das <serieller Befehl "unterbrechen"> genau sein?
Danke Gerd,

das ist genau was ich brauche. Ich glaube, in der vorherigen Nachricht hab ichs einfach nicht ganz verstanden. Blink

LG Kaya
Hallo Kaya,

nimm die "5000"-Konstante aus dem SequenceFrame heraus.
Dann den Frame markieren und in ein subVI umwandeln: (fast) fertig ist ein einfaches subVI, mit dem du Dataflow-gesteuert warten kannst…
Hallo Kaya,

wie Gerd bereits weiter oben erwähnt hat, suche im VI Package Manager (VIPM) einmal nach den VIs von GPower und lade sie in deine LV-Version. Dort sind bereits viele Zeit-VIs fertig programmiert vorhanden und viele andere nützliche VIs ebenso. Der große Vorteil an diesen VIs ist, dass das Blockdiagramm frei ist, man den Code nachvollziehen und das Wissen für sich nutzen kann.
Hi ihr Lieben,

ich habe eine weitere Frage zu dem SubVI und will kein neues Thema erstellen, und zwar: gibt es eine Möglichkeit, nur zu warten, bis mit dem read-befehl eine Antwort von meiner seriellen Schnittstelle empfangen wurde?
Also statt einer Konstante, in der ich die festgeschriebene Zeit 5000ms warte wie Gerd es gezeigt hat.

LG Kaya Smile
Hallo Kaya,

Zitat:gibt es eine Möglichkeit, nur zu warten, bis mit dem read-befehl eine Antwort von meiner seriellen Schnittstelle empfangen wurde?
Ja, einfach diese 5s Wartezeit entfernen…
Oder verstehe ich die Anforderung jetzt falsch?
Hallo Gerd,

(17.08.2023 15:08 )GerdW schrieb: [ -> ]Ja, einfach diese 5s Wartezeit entfernen…
Oder verstehe ich die Anforderung jetzt falsch?

Wenn ich die 5s Wartezeit entferne, dann gibt mir die "warten"-Funktion einen Error, weil sie einen input erwartet.

LG Kaya
Seiten: 1 2
Referenz-URLs