Datenübertragung über serielle Schnittstelle

OP #7756904
Lesenswert?

Hallo,

ich hoffe, daß man mir bei folgendem Problem auf die Sprünge helfen kann.

Ich habe eine Waage mit einer seriellen Schnittstelle. Mit hilfe eines Schalters an der Waage kann man das aktuelle Gewicht auf einen PC übertragen lassen. Dazu habe ich in Visual Basic mit dem Visual Studio ein kleines Programm erstellt, bei dem man sich das übertragene Gewicht in einem Textfeld anzeigen lassen kann. Diese Übertragung von der Waage zum PC funktioniert und es werden die korrekten Werte im Textfeld angezeigt.

Nunmehr kann man auch an der Waage zum Beispiel die Wiegeeinheit ändern (kg/g/oz usw.) und zwar in der Art, dass man an die Waage bestimmte Befehle über die serielle Schnittstelle sendet (Befehl als ASCII-Zeichen mit (ESC s) oder als HEX-Code (1B 73))

Im Programm habe ich definiert, dass beim betätigen des Button 2 die Daten übertragen werden sollen und damit der Wiegeeinheitenwechsel durchgeführt wird.

1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
2

3
    Dim Sende1 As String = "1B73"
4

5
    SerialPort1.Write(Sende1 & vbCrLf)
6

7
End Sub

Leider wird der Einheitenwechsel nicht durchgeführt. Eine Datenübertragung über die Schnittstelle findet jedoch statt, da dies mittels LED am Schnittstellenstecker angezeigt wird. Offensichtlich wird der Befehl nicht korrekt übertragen.

Im Visual Studio gibt es den "Seriellen Monitor". Wenn ich über diesen Monitor den Befehl 1B73 senden, wird der Einheitenwechsel an der Waage vollzogen.

#7756919
Lesenswert?

Moin,

ich bin in VBA nicht bewandert, aber was hier vermutlich passiert ist, dass dein String "1B73" als Hex 0x31 0x42 0x37 0x33 + Nullterminator für den String übertragen wird.

Vermutlich wirst du deine 0x1B 0x73 einzeln als Bytes übertragen müssen. Aber hier gibts mit Sicherheit den ein oder anderen Spezi, der sich da besser auskennt. Vielleicht hilft es ja trotzdem.

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren