LabVIEWForum.de - Tabellendaten werden überschrieben

LabVIEWForum.de

Normale Version: Tabellendaten werden überschrieben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich bin noch relativ frisch beim Umgang mit LabView und bin auf ein Problem bei der Dateneingabe zur Volumenberechnung von Quadern gestoßen.

Gerne möchte ich die Tabelle nacheinander ausfüllen lassen, dies soll nach jedem Zyklus geschehen. Jedoch werden die vorhergehenden Daten überschrieben und nicht nacheinander in die Tabelle aufgenommen. Im Anhang befindet sich die Datei. Über Denkanstöße würde ich mich sehr freuen.

Viele Grüße

Sven
[attachment=50738]
THINK Dataflow, du initialisierst das Schieberegister jedesmal mit einem leeren Array und fügst dann eine Zeile hinzu. Größer wird deine Tabelle also nie werden.
[attachment=50740]
Gruß, Jens
Hallo Jens,

vorab vielen Dank für die schnelle Antwort.

Ich dachte mir schon fast, dass es was mit der Initialisierung der Schieberegister zu tun hat. Doch scheitere ich bei der Umsetzung deines Vorschlags aufgrund meiner fehlenden Erfahrung. Also müsste ich das Array so formatieren, dass dieses nicht leer aufgezeigt wird? Bringt es was, die String - Verarbeitung (aktuell Konstant) zu ändern?

Gruß, Sven
Hallo Sven,

da sind ein paar Dinge, die du ändern solltest…

Wozu die Whileschleife um die 3 Eingabeelemente (Rad, Tang, Long)?
Wozu die Whileschleife um die String/Array-Verarbeitung?
Beide Schleifen werden jeweils nur genau einmal durchlaufen - sie sind schlichtweg unnötig!

Warum ist Table ein Control, obwohl du es nur als Indicator verwendest? Du könntest eine lokale Variable einsparen!
Wieso wird eine Konstante "0+1" in die Tabelle eingefügt?

Wieso ist der Cancel-Button links und der OK-Button rechts? Dies widerspricht den gängigsten UI-Designregeln…

Edit:
Schau dir mal das Attachment an…
Hallo Gerd,

vielen Dank für die Hilfe und die zugehörigen konstruktiven Informationen.

Meine Erklärung zu deinen Fragen.

"...Wozu die Whileschleife um die 3 Eingabeelemente (Rad, Tang, Long)?..."

- Ich dachte mir dabei, dass es notwendig ist, um nach der erfolgten Eingabe die Werte im vortlaufenden Betrieb wieder auf 0 zu setzen.

"...Wozu die Whileschleife um die String/Array-Verarbeitung?..."

- Hierbei wollte ich meinem Ziel, dass die Tabelle mit der Datennummerierung fortlaufend von 1...n realisiert wird. Wie du siehst, ist es eher erfolglos verlaufen.

"...Warum ist Table ein Control, obwohl du es nur als Indicator verwendest? Du könntest eine lokale Variable einsparen!
Wieso wird eine Konstante "0+1" in die Tabelle eingefügt?..."

- Über die Control - Funktion wollte und der Variablen wollte ich erreichen, dass die Tabelle fortlaufen die Werte aufnimmt. Sprich, drei Messungen (rad, tan, lon,) verbunden mit einer Zeile.


Jedenfalls hänge ich noch immer mit der Lösung zur fortlaufenden Nummerierung der Zeilen. Muss ich nach dem "Build Array" noch was anhängen?

Viele Grüße

Sven
Hallo Sven,

dann schau dir mal das Attachment an und versuche zu verstehen, wie der Zähler jetzt funktioniert…

Anmerkung:
Bei deinem VI fehlt noch eine übegeordnete Schleife. Wie rufst du das VI auf? Hoffentlich nicht per RunContinuous…
Hallo,

mit der Inkrementierung hatte ich auch schon einmal als ersten Lösungsansatz versucht, da es nicht funktionierte, hatte ich es wieder entfernt. Im Grunde verstehe ich den Zählerlauf schon, doch die Umsetzung ist schon kompliziert (für mich zumindest Blink).

Das VI dient als Sub VI. Im Anhang habe ich dir mal das komplette VI mit deiner Version angehangen. Die Durchnummerierung der einzelnen Zeilen mit der Tabelle soll nicht nur im Sub, sondern auch im Haupt - Vi zum Abschluss der Datenerfassung geschehen.

Danke und viele Grüße

Sven
Hallo Sven,

grundsätzliche Tipps:
- Bei Controlnamen sollte man Whitespaces (Space, Tab, etc.) vermeiden. Dies führt zu komischen Effekten im BD, wie z.B. das "\t.." in der Case-Struktur nach deinem Auswahl-Enum…
- Ich persönlich mag auch keine Namen wie "2) the inner diameter in mm". Ich benenne solch ein Control mit "diameter" und zeige dem User statt des Labels (Beschriftung) eine Caption (Untertitel). In der Caption kannst du dann tippen, was du willst: der User ist glücklich über "Klartext", der Programmierer freut sich über sinnvolle Labels an Controls im BD…
- Icons von subVIs ohne Rahmen sind auch gewöhnungsbedürftig. Es sieht halt schei**e aus, wenn ein Draht im Nirwana endet…

Zitat:Die Durchnummerierung der einzelnen Zeilen mit der Tabelle soll nicht nur im Sub, sondern auch im Haupt - Vi zum Abschluss der Datenerfassung geschehen.
Im Haupt-VI ist weder eine Tabelle noch eine Datenspeicherung zu sehen. Du musst schon genauer erläutern, was wo wie passieren soll…

Wenn deine Zeilennummer ein Parameter für die Tabellenerstellung ist, würde ich a) diese als Parameter in einem Schieberegister des HauptVIs halten und b) ein subVI nur zum Erstellen der Tabelle verwenden. (Stichwort: klare Aufteilung von Funktionen in DAQ und LOG!)
Hey Gerd,

bei der Benennung und grundsätzlichen Dingen muss auch noch gefeilt werden, da stimme ich Dir Voll und Ganz zu. "Klartext" ist die Formel!

Mit der Tabellenausgabe im Haupt - VI ist eine Idee zu der Gesamtsituation, dies wurde noch nicht in Angriff genommen, da eigentlich das Haupt Vi nur zu Auswahl der Körperform stand .

Im Fokus steht die Angabe der Daten in einer Reihenfolge im Sub - Vi. Über weitere Lösungsansätze und Denkanstöße würde ich mich freuen.

Sorry für die undeutlichen Formulierungen.

Viele Grüße

Sven
Hallo Sven,

du musst nur die Initialisierung der Schieberegister in den Griff bekommen…
Seiten: 1 2
Referenz-URLs