LabVIEWForum.de
Auslesen der USB übertragung fehlerhaft - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Auslesen der USB übertragung fehlerhaft (/Thread-Auslesen-der-USB-uebertragung-fehlerhaft)



Auslesen der USB übertragung fehlerhaft - horschtinator - 19.09.2012 21:28

Hallo liebe Forengemeinde,
wir haben heute bei unserer Technikerarbeit ein dickes Problem festgestellt:
Wir sollen per Labview eine Platine per USB ansteuern.
Die Kommunikation funktioniert wie folgt:
Der PC sendet ein Signal, welches aus 10 Byte(char Array mit 10 Bytes) besteht an die Platine:
0x2,0x0,0x1,0x12,0x0,0x0,0x1,0xA,0x1B,0x1

Die Unterstrichenen Bytes sind ein Zeitstempel, der nach jedem Sendevorgang inkrementiert wird.
Die kursiven Bytes sind der CRC16 Code.
Das Problem ist aber jetzt folgendes:
Die Platine antwortet ordnungsgemäß zurück(Mit dem Oszi kontrolliert), aber der Visa Read buffer verdreht komplett das eingehende Array.
Erwartet wird als Eingangssignal ein 40ByteArray, welches auch kommt, aber leider komplett verdreht.

Erwartetes Signal:
0x01,0x1E, 0x2,0x12, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x1,0xA,0x85,0xC6

Tatsächliches Signal:
0x0,0x0, 0x0,0x0, 0x0,0x0,0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x85,0xC6,0x1,0x1E,0x2,0x12,0x0,0x0,0x1,0xA

Woher kommt diese Verschiebung im Array?
Wie gesagt, haben wir auch mit dem Oszilloskop gemessen, da kommt alles richtig!
Der Fehler tritt abhängig von verschiedenen Timestamp Zuständen auf, d.h, er kommt immer nur bei Timestamp 0x7, bei Timestamp 0x1A und noch ein paar weitere.
Ich kann mir den Fehler nicht erklären, z.B bei Timestamp 0x6 oder 0x8 Funktioniert alles perfekt, das Array wird in der richtigen Reihenfolge usw.

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Meine Labviewversion ist 2011

Viele Grüße

HEinz


RE: Auslesen der USB übertragung fehlerhaft - jg - 19.09.2012 21:46

Du solltest UNBEDINGT bei der Konfiguration der RS-232-Schnittstelle den Termination-Char deaktivieren!
Der ist nämlich 1) standardmäßig aktiviert und 2) standardmäßig ist der Termination-Char ein 0xA.

Bei aktiviertem Termination Char reagiert VISA-Read anders. Es bricht sofort das "Lesen" ab, wenn der Termination Char erkannt wird.

Da 0xA aber bei dir ein gültiges Zeichen innerhalb deines empfangenen Strings ist, kommt alles durcheinander.

Gruß, Jens


RE: Auslesen der USB übertragung fehlerhaft - horschtinator - 20.09.2012 05:37

Danke Jens, funktioniert jetzt alles.
Hab mich Gestern den Ganzen Tag geärgert!
Grüße
Heinz