Hallo,
ich würde mir gerne einen Fortschrittsbalken in LabVIEW machen, den gibt es ja fix fertig. Sprich ein Balken der mir anzeigt, wie lange das Programm noch laufen wird. Eingebunden habe ich ihn, und füttern tue ich ihn mit dem "i" meiner For-Schleife die 1000 Iterationen hat. Aber dieses "i" wird erstens nicht ausgegeben, obwohl ich den Indicator ausserhalb der Schleife postiert habe und Auto-Indexing deaktiviert habe. Erst am Ende wenn es bei 999 angekommen ist wird die Zahl ausgegeben, statt dass es mir einfach so mithochzählt.
Ich kann leider grade nichts raufladen, vielleicht kann mir aber ja so jemand helfen. Ich vermute es ist nur ein praktischer Fehler bei mir?
Hmm seltsam. Im Sub-VI zählt er mir die Zahl im Front-Panel hoch, aber wenn ich sie nach oben "verlinke" ins Hauptprogramm mittels Connector dann wird nur der letzte Wert angezeigt am Ende des Programms. Sehr komisch...
Danke Sandisk
Überhaupt nicht komisch.
Datenfluss, Datenfluss, Datenfluss! Wenn du einen Indikator außerhalb einer Schleife platzierst, dann wird er erst nach Abarbeitung der Schleife aktualisiert.
Gruß, Jens
(16.02.2011 08:36 )jg schrieb: [ -> ]Überhaupt nicht komisch.
Datenfluss, Datenfluss, Datenfluss! Wenn du einen Indikator außerhalb einer Schleife platzierst, dann wird er erst nach Abarbeitung der Schleife aktualisiert.
Gruß, Jens
Danke.

Ich bin inzwischen soweit, dass es im Sub-VI läuft.
1) Initialisiere ich die Slide auf 0
2) Setze ich mittels Property Node Scale Maximum das Maximum meines Balkens auf das N meiner For-Schleife.
3) Ich weise dem Slide mittels lokaler Variable den Wert der iteration "i" zu.
So, das läuft jetzt im Sub-VI, der Balken ist so groß wie ich das N definiert habe und er macht auch die Schritte der Iteration mit.
PROBLEM: Ich kann diesen Balken nicht nach "oben" ins Haupt-VI durchgeben. Gebe ich die Iteration nach oben durch, gibt er mir nur den letzten Schleifenwert aus. Gebe ich die Slide nach oben durch (jeweils als Connector beim Symbol oben) macht der Balken auch nichts.
Kann ich den Balken oder den Schleifenwert "i" ins Haupt-VI durchgeben lassen?
Danke Sandisk
Hallo Sandisk,
das mit dem Datenfluß hast du noch nicht so ganz begriffen, oder? Daten werden erst aus dem subVI weitergeleitet, wenn es komplett abgearbeitet wird...
Alternativen:
- globale Variablen (QnD)
- FGV
- Referenz auf slide im MainVI in subVI weiterleiten
- ...
Hallo,
wie Jens schon sagte. Datenfluss, Datenfluss, Datenfluss. Sorry, aber daran liegts.
Zur Erklärung: Du gibts den Wert der Iteration der Schleife am Ende über die Connector Pane ans Haupt-VI. Dies passiert natürlich erst, wenn das Sub-Vi komplett abgearbeitet, also die Schliefe komplett durchgelaufen ist. Die Lokale Variable in der Schleife bezieht sich natürlich nur auf das dazugehörige FP-Element im Sub-VI und weiß vom Haupt-Vi gar nichts.
Lösung: Da du den Ladebalken natürlich im Haupt-VI updaten willst, musst du eine Referenz ans Sub-VI weiterreichen. Damit kannst du dann den Wert des Elemnts im Haupt-VI mittels eines Eigenschaftsknotens im Sub-VI bearbeiten. In der Schleife kannst du somit den Ladebalken im Haupt-VI mit den neuen Werten füttern.
Beste Grüße,
NWO
(16.02.2011 09:43 )GerdW schrieb: [ -> ]Hallo Sandisk,
das mit dem Datenfluß hast du noch nicht so ganz begriffen, oder? Daten werden erst aus dem subVI weitergeleitet, wenn es komplett abgearbeitet wird...
Alternativen:
- globale Variablen (Qn'D)
- FGV
- Referenz auf slide im MainVI in subVI weiterleiten
- ...
Dafür hab ich ja euch!

Nein, Scherz beiseite ich danke für den Hinweis. Was würdest Du mir empfehlen von den bereits genannten Möglichkeiten? Ich lese mich grad in die globalen Variablen ein, so easy scheint dies gar nicht zu gehen.

(16.02.2011 09:49 )NWOmason schrieb: [ -> ]Hallo,
wie Jens schon sagte. Datenfluss, Datenfluss, Datenfluss. Sorry, aber daran liegts.
Zur Erklärung: Du gibts den Wert der Iteration der Schleife am Ende über die Connector Pane ans Haupt-VI. Dies passiert natürlich erst, wenn das Sub-Vi komplett abgearbeitet, also die Schliefe komplett durchgelaufen ist. Die Lokale Variable in der Schleife bezieht sich natürlich nur auf das dazugehörige FP-Element im Sub-VI und weiß vom Haupt-Vi gar nichts.
Lösung: Da du den Ladebalken natürlich im Haupt-VI updaten willst, musst du eine Referenz ans Sub-VI weiterreichen. Damit kannst du dann den Wert des Elemnts im Haupt-VI mittels eines Eigenschaftsknotens im Sub-VI bearbeiten. In der Schleife kannst du somit den Ladebalken im Haupt-VI mit den neuen Werten füttern.
Beste Grüße,
NWO
Danke, sowohl globale Variablen als auch Referenzen habe ich noch nie verwendet. Muss mich einlesen.

Hallo Sandisk,
globale Variablen funktionieren wie die lokale Variante - und mit der hast du doch schon gearbeitet... Also solltest du doch auch eine schnelle QnD-Lösung hinbekommen!
(16.02.2011 10:15 )GerdW schrieb: [ -> ]Hallo Sandisk,
globale Variablen funktionieren wie die lokale Variante - und mit der hast du doch schon gearbeitet... Also solltest du doch auch eine schnelle QnD-Lösung hinbekommen!
Ich nehme an QnD soll quick and dirty heißen?
Ja aber die lokalen erstelle ich einfach, sprich rechte Maustaste und er erstellt sie mir. Und ich kann diese auch einfach zuweisen. Für die globalen muss ich ja bereits ein eigenes VI (gobal vi) machen, einen indicator dort reinziehen usw. Wie ich dann diese Variable nach oben durchgebe sehe ich auch nicht wirklich. Ich nehme an ich muss es als VI einbinden im Hauptprogramm.
Ist nicht ganz so einfach.

Aber sonst wärs ja kein Spass!
EDIT: OK, es geht nicht. Ich habe 2 globale Variablen erstellt, eine für das N meiner Forschleife und eines für mein i der Forschleife. Diese mit "READ" im Haupt-VI eingefügt passiert leider Nüsse. Weder aktualisiert sich der Balken noch werden die Iterationen wiedergegeben. Es rennt gleich wie vorher... -.-
Soda, ich hab es so gemacht wie es meiner Meinung nach aussehen soll. Aber es "tut einfach nüscht"...

Wird der Teil im "Hauptprogramm" auch wiederholt (also in einer eigenen Schleife) ausgeführt?
Du willst einen Fortschritt anzeigen, also laut Datenfluss muss auch immer wieder der Balken aktualisiert werden! Und das muss man auch so programmieren.
Gruß, Jens
EDIT: Mit Referenzen tust du dir wahrscheinlich leichter:
[
attachment=32323]
[
attachment=32324]
Hallo Jens,
ich danke Dir für Deine Lösung.
Beim Nachbauen bzw. nachvollziehen habe ich jetzt ein Problem mit den STRICT property nodes. Deine Property Node der Slide ist strict, bei mir nicht. Wie mache ich sie strict?
EDIT: Ah scheinbar stimmt meine Referenz noch nicht, ich sehe gerade auch diese ist bei Dir "strict".
Danke Chris