Werte aus while-Schleife in Tabelle außerhalb aktualisieren
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Werte aus while-Schleife in Tabelle außerhalb aktualisieren
Hi,
ich habe folgendes Problem:
Ich habe eine Case-Struktur mit 3 verschiedenen Fällen, von denen jeder eine while-Schleife beinhaltet. In jedem dieser Fälle werden Messwerte aufgenommen, die während der Messung auf dem Frontpanel in einer Tabelle dargestellt werden müssen, also quasi in Echtzeit. Das ist so wichtig, weil die Messung sehr lange dauert und man überprüfen können muss, ob die Werte Sinn machen.
Leider schaffe ich es nur, die Tabelle in Echtzeit zu aktualisieren, wenn ich das Erstellen der Tabelle IN der while-Schleife habe. Dann ist aber das problem, dass ich für jeden Fall eine Tabelle auf dem Frontpanel sehe. Mit 3 Tabellen wäre das Frontpanel aber ganz schön überfüllt. Hat da vielleicht jemand eine Idee, was ich machen kann?
Das VI seht ihr unten, die Sub-VI's füge ich mal nicht alle an, die sind dabei ja eher unerheblich. Ich habe das mit der Tabelle exemplarisch für Fall 2 ausprobiert (Im Front-Panel im Ringelement "Y").
Das andere Problem in meinem Fall ist, dass wenn die Messung einmal durchgelaufen ist, und ich eine neue Messung starte, die Tabelle nicht überschrieben wird, sondern der neue Datensatz unten angefügt wird, obwohl ich bei "Tabelle erstellen" die Option "Daten bei jedem Aufruf löschen" aktiviert habe.
Ich habe das VI für LV 8.0 und LV 8.2 gespeichert. Das waren die einzigen Optionen, die ich hatte....
Es wäre super, wenn jemand dabei helfen könnte.
VGruß,
schuggiz
28.06.2007, 15:51 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2007 15:54 von jg.)
Werte aus while-Schleife in Tabelle außerhalb aktualisieren
Hallo,
wenn du an mehreren Stellen im Programm in dasselbe Frontpanel-Element etwas schreiben willst, dann geht das u.a. mit lokalen Variablen. (Rechtsklick auf BD-Terminal -> Create -> Local Variable).
Und beim "Nichtlöschen" tippe ich mal auf Grund deines Screenshots darauf, dass das von deinen nicht-initialisierten Shift-Registern herrührt. Geh einfach mal mit der Maus auf das Shift-Register-Eingang, rechte Maustaste->Create->Constant. Dann sollte eine leeres Array erstellt werden.
MfG, Jens
EDIT: canix Vorschlag mit Notifiern ist eine andere (elegantere) Möglichkeit.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Werte aus while-Schleife in Tabelle außerhalb aktualisieren
Hallo,
das Problem kann man mit Meldern (Notifiern) lösen:
Die Daten in der jeweiligen While-Schleife einfach einem Melder übergeben. In einer parallelen While-Schleife werden die Daten empfangen und in die Tabelle geschrieben.
Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Werte aus while-Schleife in Tabelle außerhalb aktualisieren
Hi,
vielen Dank für die beiden Vorschläge. Ich habe mir das VI mit den Meldern mal angesehen, aber irgendwie habe ich die Sache mit der Konfiguration zu Beginn nicht verstanden. Aber vielen Dank für die Hilfe dabei.
Ich habe also den uneleganteren Weg über die lokale Variable gewählt, und das funktioniert wunderbar. Das Problem mit der fehlenden Initialisierung der Schieberegister ist auch behoben, da ich sie gar nicht mehr brauche, wenn ich in der while-Schleife direkt die Daten an die lokale Variable schicke.
Also, vielen, vielen Dank für die schnelle Hilfe...wenn alles immer so gut und schnell laufen würde, wie Fragen beim LVF, dann wäre das Leben um einiges leichter!