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!
05.07.2013, 11:04 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2013 12:08 von jg.)
Hallo,
ich habe da ein kleines Anfängerproblem mit einem "for-loop". Das Diagramm hab ich unten beigefügt. Normalerweise kenne ich das so, dass wenn ein Vector auf einer "for-loop"-Struktur liegt und zu einem Ausgang geführt wird, am Ende des "for-loop"s als Matrix ausgegeben wird. Also mit jedem Zeilenvektor, der auf der einzelnen Seite erzeugt wurde. Wird also auf dem "for-loop" der Vektor (1, 1, 1) 3 mal erzeugt und zu einem Tunnel geführt, so steht nach Fertigstellung aller Seiten hinterm Tunnel
(1,1,1)
(1,1,1)
(1,1,1)
die Ausgabe erscheint auch wie ich es kenne erst nach der Abarbeitung aller Seiten des "for-loop"s.
Des weiteren zählt der Index mit jeder Seite i um einen hoch. So wie es ja auch sein soll.
ich habe ein recht großes Programm, in dem ebenfalls eine "for-loop"-Struktur vorhanden ist und hier passiert alles anders.
Egal wieviele Seiten abgearbeitet werden müssen, der Tunnel gibt sofort den auf dem "for-loop" befindlichen Wert durch den Tunnel und schreibt ihn in die oberste Stelle der Matrix. Die Ausgabe ist dann
(1,1,1)
(0,0,0)
(0,0,0)
Des weiteren fällt auf, dass die Ausgabe durch den tunnel nicht erst nach Abarbeitung aller Seiten erfolgt, sondern immer direkt nach jeder Seite. Ausserdem fällt auf, dass der Index des Stapels nicht mit läuft. Der Index bleibt die ganze Zeit auf 0 stehen.
Was is da los?
Ich hoffe mir kann jemand helfen. Das Messprogramm muss bald einsatzbereit sein :/
hier das Programm und die Ausgabe
Großbuchstaben wurden nun ein der Forumskultur entsprechend eingefügt
Oh, ich habe das falsche wort benutzt. es geht um den "for-loop" der index vom diesem funktioniert nicht. Der, welcher in dem bild mit dem indicator "numeric" versehen ist. der bleibt bei null stehen.
Danke für den Hinweis der falschen Forumilierung. Werde sie jetzt direkt ändern. Das war sehr verwirrend.
05.07.2013, 11:30 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2013 11:32 von Trinitatis.)
also wenn der Index einer Schleife nicht hochläuft, dann steckt sie in der jeweiligen Iteration fest - soll heißen: Irgendwas in der Abarbeitung der Schleife hält dermaßen auf, dass es so aussieht, als wäre der Index kaputt
Gruß, marko
Edit:
Setz dir mal Sonden, um zu sehen, bis wo dein VI überhaupt kommt. Dann kannst du dich auch an die Stelle rantasten, an der es gerade "hängt".
05.07.2013, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2013 12:02 von GerdW.)
Zitat:Normalerweise kenne ich das so, dass wenn ein Vector auf einer "for-loop"-Struktur liegt und zu einem Ausgang geführt wird, am Ende des "for-loop"s als Matrix ausgegeben wird.
Normalerweise heißen diese Dinge in LabVIEW 1D-Array und 2D-Array (Matrix ist etwas anderes!) und der Vorgang nennt sich Autoindizierung!
Zitat:die Ausgabe erscheint auch wie ich es kenne erst nach der Abarbeitung aller Seiten des "for-loop"s.
Das nennt sich DATAFLOW! Außerdem: Schleifen haben keine "Seiten", sondern führen Iterationen aus...
Zitat:Egal wieviele Seiten abgearbeitet werden müssen, der Tunnel gibt sofort den auf dem "for-loop" befindlichen Wert durch den Tunnel und schreibt ihn in die oberste Stelle der Matrix.
Auch das nennt sich DATAFLOW, hier anhand eines Schieberegisters!
Zitat:Des weiteren fällt auf, dass die Ausgabe durch den tunnel nicht erst nach Abarbeitung aller Seiten erfolgt, sondern immer direkt nach jeder Seite. Ausserdem fällt auf, dass der Index des Stapels nicht mit läuft. Der Index bleibt die ganze Zeit auf 0 stehen.
Logische Schlußfolgerung: deine FOR-Loop läuft genau Null-mal durch. Im Gegensatz zu While-Loops kann dir das bei einer FOR-Loop nämlich passieren.
Und wann genau passiert das? Das darfst du jetzt selbst überlegen...
P.S.: Sonden an allen relevanten Eingängen der FOR-Loop können bei der Fehlersuche ungemein helfen...
Ich weiß leider noch nicht, was Autoindexing ist. Ich bin noch ziemlicher Anfänger im Labview programmieren. Ich habe immer nur das N in der "for-Schleife" bedient. Könnt ihr mir da noch weiter helfen?
Vielen dank schon mal für die Hinweise.
05.07.2013, 12:37 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2013 12:38 von GerdW.)