Hallo zusammen, ich habe mir ein neues Multimeter geleistet und bin gerade dabei mir dafür ein kleines Programm zu schreiben was die Messdaten direkt in mein Messprotokoll schreiben soll... Ich konnte die Datenverbindung erfolgreich aufbauen und sehe auch, dass das Multimeter Daten sendet......doch leider entsprechen die nicht einmal annähernd der im 'PeakTech 4090 Interface Protokoll' (siehe Anhang) angegebenen Spezifikation??? Statt Einsen und Nullen gibt das Gerät lediglich folgendes Gedöhns aus: 105016;000:3105016;000:3105016;000:3105016;000:3105016;000:3105016;000:3 105016;000:3105016;000:3105016;000:34905016;000:3105016;000:3105016;000: 3105016;000:3 Könnte mir bitte jemand verraten wo mein Denkfehler liegt? ^^ Danke! Mit freundlichen Grüßen BB
:
Bearbeitet durch User
Dein Denkfehler liegt erst einmal in Deinem Ausgabeformat. Ich kann nicht sehen, wie 000:3105016 über den Draht gewandert ist, irgendetwas hast Du mit den Daten angestellt, aber was? Stell mal die empfangenen Bytes als Hex rein, vieleicht sieht man dann etwas. Bis jetzt würde ich vermuten, Du siehst nur Speichermüll. Edit: Du schreibst "Nullen und Einsen". Kann es sein, dass Du Dir vorstellst, da kommen wirklich Strings wie "01001011", also Ascii Nullen und Einsen? Das natürlich nicht, das sind Bytes, die man z.B. als Hex-Zahl pro Byte ausgibt. Die letzten beiden Bytes sind nicht etwa "0001101 001010" sondern 0x0D 0x0A bzw '\r' '\n' oder chr(13) chr(10). Du hast ja nicht einmal die Sprache angegeben.
:
Bearbeitet durch User
Glaub nicht das das nur Garbage ist. :( Der markierte Text (siehe Bild) stellt die gemessene Spannung dar... Folgende fnc hat diese Ausgabe generiert: Sub Read() Me.Handshake = Handshake.None Me.ReadTimeout = 5000 Me.DtrEnable = True Me.Open() Do Console.WriteLine(Me.ReadLine) Loop End Sub
Ach neee :-( Das wird wieder so ein stundenlanges Hin und Her mit Detail aus der Nase ziehen. Zeichenfunktionen zum Schreiben von Binärdaten nehmen ist schon scheiße. Es nicht einsehen wollen ist noch schlechter. Daneben tippe ich mal darauf, dass übersehen wurde dass die Übertragung mit 7O1, statt den beliebten 8N1, erfolgt. D.h. da ist wahrscheinlich noch jeweils das Odd-Parity Checkbit in die Daten gerutscht. Damit bin ich dann aus raus. Viel Spaß mit der Salamitaktik.
Ach Du großer Gott, stimmt, wer verwendet denn heutzutage 7o1? Aber falls die 5012 stimmen, hat der TE Glück. Irgendwie hat er 7o1 eingestellt, es funktioniert jedenfalls. Ok, die "05012" sind digit 4 bis digit 0 aus dem Protokoll. Weil dieses Protokoll die Ziffern als ASCII verschickt, sind die tatsächlich lesbar. Die '1' davor ist 0x31, also die 2. Zeile der Range-Tabelle. Das ';' ist das Function-Byte ';'= 0x3B, also 1. Zeile der Function-Tabelle, also Voltage. Für Voltage ist die zweite Zeile der Range-Tabelle 22V. Insgesamt 5,012V. Nach dem ';' kommen Status und Option1 und 2, alle 0. Der ':' ist option 3, 0x3A, also DC und auto. Die '3' ist option 4, 0x33 heißt Hold und LPF aktiv. Dann kommt "\r\n" und beendet die Zeile. An den den TE: lerne, einzelne Bytes zu verarbeiten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.