Hallo,
ich habe einen Sensor der 1000 Messwertstrings pro Sekunde über einen virtuellen Comport sendet.
Die Auswertung klappt, jedoch stürtzt die serielle Verbindung über Labview mit einem Blue Screen ab (usbser.sys), siehe Anhang.
Das Tool "hterm" stürtzt als Beispiel nicht ab, daher denke ich, dass das Problem an LabView liegt.
Bei 20 Messwerten pro Sekunde habe ich keine Abstürze, vielleicht hilft das für die Tips.
Nach 3 Tagen und einem eigentlich fertigen Programm, das unter Abstürzen leidet, bin ich um jeden Tip dankbar.
Grüße Hachiko
Hallo,
da auf dem gleichen Laptop das ganze Spiel mit dem Tool "Hterm" funktioniert, genauso wie MatLAB, kann es nicht am Chipsatz hängen.
Gruß
Hachiko
Veränderst du bei HTerm/Matlab auch dauernd den "TermChar" beim Lesen?
Wie lange braucht es bis zum BlueScreen?
Was passiert denn, wenn du einfach nur Strings liest und das Parsing selber machst, oder im ersten Test - gar nicht parst?
Gruß, Jens
Hallo,
wenn ich selbst parse geht meine Prozessorauslastung auf ca. 50%, das finde ich zuviel, dafür stürzt das Programm nicht ab.
Mit der TermChar-Funktion von Labview bleibt die Auslastung unter 5%, stürtzt aber ab.
Es kommen schon recht viele Daten in einer Sekunde an, 2000 Datensätze mit jeweils 63 Bytes Länge, die quasi Byteweise vom Puffer abgeholt werden und geparst werden.
Das von Labview bereitgestellte "Advanced Serial Read and Write" stürzt auch nach 1- 2 min. ab. Mein Laptop kommt wohl doch nicht mit der TermChar-Funktion klar,
werde das nochmal auf einem anderen Laptop probieren.
Gruß
Hachiko
, wenn die Länge der Datensätze IMMER identisch ist, dann arbeite doch damit anstatt TermChar! Synchronisation auf den Datenstream brauchst du nur 1x am Anfang.
Bytes einzeln aus VISA-Read abfragen ist natürlich tödlich für die Performance.
Gruß, Jens
Hi,
die Länge ist leider nicht gleich lang, genauso wie es 3 Unterschiedliche TermChars gibt für 3 Protokollarten, sonst wäre es leicht.
Also fällt mir nur das Byteweiße auslesen ein, ausserdem ist das sicherer als auf feste Bytes zu reagieren, es könnte ja auch mal ein Byte verloren gehen.
Gruß
Hachiko
: Bitte
Da steht noch LabVIEW 2010 drin. Du hast aber 2012.
Gruß Markus
(15.01.2014 15:11 )Hachiko schrieb: [ -> ]die Länge ist leider nicht gleich lang, genauso wie es 3 Unterschiedliche TermChars gibt für 3 Protokollarten, sonst wäre es leicht.
Kann ich nicht wissen, du hast das anders dargestellt.
(15.01.2014 15:11 )Hachiko schrieb: [ -> ]Also fällt mir nur das Byteweiße auslesen ein, ausserdem ist das sicherer als auf feste Bytes zu reagieren, es könnte ja auch mal ein Byte verloren gehen.
Widerspruch: Selbst dann muss man nicht Byte für Byte einzeln auslesen, sondern kann immer Blöcke oder z.B. alle 50 ms alle gerade anliegenden Bytes aus dem VISA-Buffer holen. Dann geht es mit String-Parser-Funktionen (z.B. Match Pattern o.ä.) weiter.
Gruß, Jens
Hallo,
muss ich mal ausprobieren, wenn ich dazukomme schreibe ich wieder.
Gruß
Hachiko