LabVIEWForum.de
2 Einzelprogramme zusammenfügen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: 2 Einzelprogramme zusammenfügen (/Thread-2-Einzelprogramme-zusammenfuegen)

Seiten: 1 2 3 4


RE: 2 Einzelprogramme zusammenfügen - GerdW - 10.08.2015 13:22

Hallo Tatiana,

Zitat:Wenn ich die Case-Bedingung aber innerhalb der While-Schleife platziere, ändert sich auch nichts. Es tut sich weiterhin nichts.
Die Case-Struktur muss innerhalb der Schleife sein.
Und wenn dein Button innerhalb der Schleife abgefragt werden soll, dann muss er auch innerhalb der Schleife sein.

THINK DATAFLOW! (Und nutze Sonden, um dein VI zu überprüfen!)


RE: 2 Einzelprogramme zusammenfügen - tatnau - 10.08.2015 13:27

Komisch ist aber, dass er eben nicht abgefragt wird, wenn ich den Button innerhalb der Schleife platziere.

Sonden habe ich verwendet. Ich kann mir nicht erklären, wieso das Programm beim einzelnen Durchlaufen der Schitte funktioniert, aber bei "run continiously" eben nicht. Was mache ich denn falsch?


RE: 2 Einzelprogramme zusammenfügen - GerdW - 10.08.2015 13:29

Hallo Tatiana,

Zitat:Komisch ist aber, dass er eben nicht abgefragt wird, wenn ich den Button innerhalb der Schleife platziere.
Glaube ich nicht.

Zitat:Ich kann mir nicht erklären, wieso das Programm beim einzelnen Durchlaufen der Schitte funktioniert, aber bei "run continiously" eben nicht.
"Run continuously" ist nicht dafür da, ein Programm dauerhaft laufen zu lassen…

Zitat:Was mache ich denn falsch?
Du hast vergessen, die aktuelle Version deines VIs anzuhängen…


RE: 2 Einzelprogramme zusammenfügen - tatnau - 10.08.2015 13:33

Hier ist das aktuelle VI. Wenn ich auf den OK-Button klicke, zeigt mir meine "Sonde" immer noch "FALSE" an.


RE: 2 Einzelprogramme zusammenfügen - tatnau - 10.08.2015 14:02

Wenn ich den OK-Button vor dem Start des Programms auf TRUE setze, funktioniert alles, wie es soll.

Vermutlich wird dessen Zustand abgefragt, gleich nachdem das Programm gestartet wurde?! Kann das sein? Muss diese äußere While-Schleife unbedingt sein?


RE: 2 Einzelprogramme zusammenfügen - GerdW - 10.08.2015 14:18

Hallo Tatiana,

Zitat:Wenn ich den OK-Button vor dem Start des Programms auf TRUE setze, funktioniert alles, wie es soll.
Wozu brauchst du dann diesen Button? Hmm

Zitat:Vermutlich wird dessen Zustand abgefragt, gleich nachdem das Programm gestartet wurde?! Kann das sein?
Wenn du THINK DATAFLOW! verinnerlicht hättest, würdest du die Antwort auf diese Frage kennen.
Hast du dir den Links dazu in meiner Signatur durchgelesen?

Zitat:Muss diese äußere While-Schleife unbedingt sein?
Wenn dein Programm länger laufen soll, brauchst du eine (1) Schleife um alles.

Die Frage ist jedoch: brauchst du die innere While-Loop?
Und noch einmal THINK DATAFLOW: Wie oft wird dein "OK"-Button (der eigentlich "Set Variables" heißt!), abgefragt?
Warum wird er nur einmal abgefragt?
Warum hast du nun plötzlich 2 STOP-Buttons? Gibt dir das nicht zu denken?
Wie müsstest du dein Programm aufbauen, dass du nur einen STOP-Button brauchst?


RE: 2 Einzelprogramme zusammenfügen - tatnau - 10.08.2015 14:32

Der Button ist dafür da, dass das Programm nicht sofort mit dessen Aufruf startet. Er ist auf jeden Fall notwendig.

Der Button wird einmal abgefragt. Zuvor wird allerdings die serielle Schnittstelle initialisiert. Das müsste doch aber beides parallel ablaufen.

Ich habe nun nur noch eine while-schleife. Es geht trotzdem nicht. VI hängt an.


RE: 2 Einzelprogramme zusammenfügen - GerdW - 10.08.2015 14:46

Hallo Tatiana,

Zitat:Ich habe nun nur noch eine while-schleife. Es geht trotzdem nicht. VI hängt an.
Nein, dein VI enthält immer noch zwei ineinander geschachtelte WHILE-Loops!
Und du hast immer noch 2 Stop-Buttons!

Du brauchst die innere Whileloop nicht…

THINK DATAFLOW!


RE: 2 Einzelprogramme zusammenfügen - tatnau - 10.08.2015 15:01

Aber jetzt?! Da muss ich wohl das falsche angehängt haben.

Nochmal zum Verständnis.. ich möchte nur ein einziges mal die Waveform einlesen. Also soll das, was in der Case-Struktur steht nur einmal zu anfang nach Betätigung des Buttons durchgeführt werden.


RE: 2 Einzelprogramme zusammenfügen - GerdW - 10.08.2015 15:08

Hallo Tatiana,

das sieht schon besser aus.
Mangels Hardware und wegen fehlender subVIs (der ganze Hameg-Kram) kann ich dein VI aber nciht testen.

Was mich noch stört, sind die InsertIntoArray-Funktionen. Die lassen sich doch beide durch ein einfaches BuildArray ersetzen!
Und die While-Loop in der Case-Struktur sieht aus, als wenn sie durch eine einfache Rampen-Funktion ersetzt werden könnte…

Noch einmal:
Wenn die Case-Struktur nicht ausgeführt wird, dann nur, weil deine äußere While-Loop nicht iteriert. Und da musst du per Debugging selbst mal gucken, wo es hängt!