Hallo Labview-Forum,
ich hatte in
diesem Beitrag bereits mein Problem geschildert und nach weiterem rum probieren habe ich entschieden doch noch einen Schritt zurück zu gehen.
Noch mal in kürze: Ich soll an der Uni mehrere Vi's zu einem großen Programm zusammen fügen. Leider bin ich ziemlicher Labviewneuling und der Datenaustausch über mehrere While-Schleifen hinweg ist für mich noch ziemlich undurchsichtig. Gelesen über Globale Variablen, Notifier und Queues hab ich schon viel. Nur das Verständnis wann ich am besten was anwende konnte ich noch nicht gewinnen. Darum auch der Schritt zurück um euch zu fragen, welche Programm-Struktur für mich die sinnvollste wäre. Dazu stell ich kurz dar, was mein Programm im Endeffekt tun soll und was ich mir dazu bereits überlegt habe bzw. wo meine Probleme sind.
Programmfunktionen (Hauptfunktionen):
1. Steuerung der Oberfläche
- Nicht immer soll alles angezeigt werden.
- Anzeige- und Bedienelemente sind auf verschiedenen Tabs angeordnet, die per Button geschaltet werden
2. Aufnahme von Daten über den Serial-Port im 50Hz / 100HZ / 500Hz / 1000Hz (Frequenz einstellbar)
- Genaue Initialisierungsstruktur notwendig für die Kommunikation mit einer Maschine
- Verarbeiten der Daten und Anzeige von verschiedenen Informationen
- Einige Bedeinelemente um Daten zu bearbeiten
- Bei Bedarf speichern der Daten
Diese Funktion soll ständig geschehen, egal welche sonstigen Programmfunktionen aktiv sind
3. Anzeigen eines Kamerabildes
- Nach Bedarf anzeige eines Kamerabildes und Verarbeitung der Daten
- Wieder mit einigen Anzeige und Bedienelemente
So, das sind mal die Hauptfunktionen. Nach dem studieren von etlichen Tutorials und Labview-Büchern seh ich leider den Wald vor lauter Bäumen nicht. Was wäre jetzt eine gute Struktur das Programm auf zu bauen??
Ideen zur Umsetzung:
Drei parallele While-Schleifen, wo die Bedienelemente auf dem Frontpanal frei positioniert werden
Probleme
- Synchronisierung der Schleifen
- Frage ob man Bedienelemente so frei Positionieren kann
Übergeben alle Daten per Globaler Variable
- Auch hier synchronisationsproblem
- Ich kann mir nicht vorstellen das 20-30 Elemente in der Globalen Variable effizient sind
Synchronisation und Datenübermittlung mittels Notifiern und Queues
- Problem: Struktur wird nur ausgeführt, wenn sich was ändert. Es müssen aber immer die Daten am Com-Port empfangen werden
( würde man dazu die Queue in bestimmten intervallen automatisch auslösen ? )
Sorry für die vielen Fragen und den vielen Text. Ich hab leider die Arbeitsweise von Labview noch nicht richtig verstanden. Habe sonst nur kleinere Programme in C oder VisualBasic geschrieben.
Vielen Dank für eure Hilfe und liebe Grüße
Philipp