ich möchte mit VB6 und dem MSCOMM-Steuerelement das Datenpaket von meinem Messgerät einlesen.
Andere Geräte die einen String senden auszulesen schaffe ich. Aber irgentwie scheitere ich an
dem bitweisen auslesen.
Das auslesen mit der Herstellersoftware ist problemlos möglich
die Daten des Herstellers sind
Geschw. 1200 Baut
Datenbits 8
Parität keine
Stobbit 1
Übertragung binär
die Daten werden laufend ohne Aufforderung ausgegeben.
der Aufbau lt Hersteller sieht so aus:
Byte Bedeutung
1 O2 HiByte
2 O2 LowByte
. .
. .
. .
23 CxHy HiByte
24 CxHy LowByte
25 $FF
26 $FF
in meinem Versuchsprogramm verändert sich auch jedesmal die Ausgabe im Textfeld.
Private Sub CommandÖffnen_Click()
Me.MSComm1.CommPort = Me.Text1.Text
Me.MSComm1.Settings = "1200,N,8,1"
Me.MSComm1.InputMode = comInputModeBinary
Me.MSComm1.InputLen = 1
Me.MSComm1.RThreshold = 26
Me.MSComm1.SThreshold = 1
Me.MSComm1.PortOpen = True
Me.MSComm1.InBufferCount = 0
End Sub
Public Sub mscomm1_oncomm()
If (Me.MSComm1.CommEvent = comEvReceive) Then
n = Me.MSComm1.InBufferSize
For i% = 1 To 26
Bit = Me.MSComm1.Input
empfangen = empfangen & " - " & Bit
Next i%
Me.Text2.Text = n & " " & empfangen
empfangen = ""
End If
End Sub
Gruß Andreas
Andere Geräte die einen String senden auszulesen schaffe ich. Aber irgentwie scheitere ich an
dem bitweisen auslesen.
Das auslesen mit der Herstellersoftware ist problemlos möglich
die Daten des Herstellers sind
Geschw. 1200 Baut
Datenbits 8
Parität keine
Stobbit 1
Übertragung binär
die Daten werden laufend ohne Aufforderung ausgegeben.
der Aufbau lt Hersteller sieht so aus:
Byte Bedeutung
1 O2 HiByte
2 O2 LowByte
. .
. .
. .
23 CxHy HiByte
24 CxHy LowByte
25 $FF
26 $FF
in meinem Versuchsprogramm verändert sich auch jedesmal die Ausgabe im Textfeld.
Private Sub CommandÖffnen_Click()
Me.MSComm1.CommPort = Me.Text1.Text
Me.MSComm1.Settings = "1200,N,8,1"
Me.MSComm1.InputMode = comInputModeBinary
Me.MSComm1.InputLen = 1
Me.MSComm1.RThreshold = 26
Me.MSComm1.SThreshold = 1
Me.MSComm1.PortOpen = True
Me.MSComm1.InBufferCount = 0
End Sub
Public Sub mscomm1_oncomm()
If (Me.MSComm1.CommEvent = comEvReceive) Then
n = Me.MSComm1.InBufferSize
For i% = 1 To 26
Bit = Me.MSComm1.Input
empfangen = empfangen & " - " & Bit
Next i%
Me.Text2.Text = n & " " & empfangen
empfangen = ""
End If
End Sub
Gruß Andreas