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!
Wenn mein SubVI so ist wie bisher, dann wird mir doch nicht die Ausgabeanzeige gelöscht wenn ich Bilddaten anfordere. Stattdessen bekomme ich ASCII-Schnipsel mit seeehr vielen Zeilenumbrüchen dazwischen. Daher ist meine Anzeige bis auf das Prompt scheinbar leer. Wenn ich aber mal scrolle finde ich wie gesagt einige (wenige) Schnipsel.
Setze ich eine Wartezeit vor mein Bytes at Port (10ms), dann sind die Schnipsel größer. Noch größer werden sie, wenn ich 100ms Wartezeit vor dem auslesen ansetze. Der Anzeigezähler läuft wie gewohnt runter (ca. 100 Bytes/s) bis auf 0.
Offensichtlich habe ich dann wohl ein Timingproblem?! Aber wie bekomme ich jetzte eine gescheite, vollständige Ausgabe hin. Das Problem habe ich wie gesagt nur, wenn es sich um hohe Datenmengen handelt. Bei einfachen Statusabfragen etc. tritt kein entsprechender Effekt auf...
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Probleme bei mehrfacher Nutzung eines SubVIs
Dann solltest Du die Timing-Zeit so hoch wählen, dass definitiv alles übertragen wird (da Du ja keine definierten Terminierungszeichen hast, wenn ich Dich richtig verstanden habe).
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Dass die Schnipsel größer werden, wenn du länger wartest, ist doch logisch
Das Gerät bzw. die Kommunikation zwischen Gerät und Rechner hat halt nur ne gewisse Baud-Rate, mit der es übertragen kann, und bei ner Baudrate von z.b. 9600 schafft es halt nur etwa 9600/8 also gut 1 Byte pro ms. Ich glaube, dein Problem liegt einfach an der Art, wie du die fertige Antwort zusammensetzt.
Von was für einer "Anzeigezähler" ist das eigentlich? Hat das Gerät hardwaremäßig eine Anzeige, wieviele Bytes es noch auf Lager hat?
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
@Kasi: Die Baudrate beträgt 115200. Mit dem Anzeigezähler meine ich nur den Knoten Bytes at Port. In der Debugausgabe kann ich mir ja die aktuelle Anzahl anzeigen lassen. Dort habe ich diese Beobachtung des ständigen Abfalls gemacht.
Warum zählt der "Bytes at Port" runter? Normalerweise müsste das ReadVI ALLE Bytes abholen, da du ihm genau diese Angabe ja reingibst. Könnte es sein, dass die Leseroutine ständig in ein Timeout rennt? Mal den Fehlerausgang beim Read ausgelesen?
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
ich werd aus dem beschriebenen Verhalten leider nicht schlau. Aber ich geb noch nen Debug-Ansatz:
Einfach mal die Leseroutine bis zum Timeout laufen lassen, also mehr Bytes als Konstante für die Antwort veranschlagen, als geliefert werden, "Bytes at Port" also durch ... was weiß ich, 10000 ersetzen. Keine While-Schleife, keine Case-Strukturen. Trotz des Timeout-Fehlers sollte er dann die vollständige Antwort ausspucken. Und das dann auch mit aufeinanderfolgenden Befehlen versuchen.
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Tja...habe jetzt mal in meinen While-Schleifen den Fehlercluster per Schieberegister durchgereicht. Außerdem habe ich fix ein SubVI gebastelt, welches meine Verbindung zum Gerät sauber trennt. Ich weiß nicht ob es daran liegt, jedenfalls kann ich jetzt vollständige Datensätze empfangen, wenn ich Bilddaten anfordere...
Könnte mir vorstellen, dass es an den Schieberegistern liegt. Da ich ja nur den VISA Resource Name (der sich ja nicht ändert) und den Fehlercluster aus der Whileschleife rausführe, machen mein VIs evtl. schon weiter bevor die Whileschleife durch ist. Die erforderlichen Daten würden ja bereits anliegen...bin da aber nicht ganz sicher. Muss mal schauen wie es sich jetzt mit der Verwendung des gleichen SubVIs nacheinander verhält.
Danke soweit erstmal für die tolle Unterstützung
Da ich grad am schreiben bin, gleich noch ne Frage: Gibt es ne Art Protokoll, wie man solche ASCII Bilddaten in ein Bild wandeln kann? Also wie bekomme ich aus dem empfangenen Bytes ein Bild?
mfg
22.12.2010, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2010 14:50 von GerdW.)