pete_redman
Grünschnabel
Hallo zusammen,
ich möchte mit einer selbst gestalteten Oberfläche in VB ein RFID-Lesegerät über RS232 ansprechen.Dazu sollen HEX-Zeichen an das Lesegerät übertragen und entsprechend empfangen werden.
Mit welchem Code kann auf einfache Weise erst einmal die Schnittstelle angesprochen werden?
Das Interface des Lesegerätes ist folgender Maßen aufgebaut:
Folgende Parameter sind eingestellt:
RS485 Mode: false
Bautrate : 9600
Databits: 8
Paraty: 9
Stopbits: 1
SW Flowoption: Non
DTR: true
RTS: true
Logfile: on
Logfile HEX: on
Der Code mit dem wir versucht haben die Schnittstelle anzusprechen (allerdings ohne Erfolg) lautet:
Option Explicit
Dim x As String 'Deklaration von Variablen
Dim Y As String, Normal As String ', 'line As Long
Dim datenlogger As Boolean
Private Sub Command1_Click() 'System aktivieren
i = 0 'Laufvariable i=0 setzen
Command1.Enabled = False 'Button Aktivieren blockieren
With MSComm1 'With-Anweisung für MSComm1
.CommPort = 1 'ComPort1 ansprechen
.InputLen = 1 'Anzahl der Zeichen auf 1 festlegen
.InBufferSize = 1 'Größe des Empfangspuffer festlegen
.Handshaking = comRTS 'Handshake-Protokoll festlegen
.Settings = "9600,n,8,1" 'Parameter für die Baudrate, Datenbits und Stopbits festlegen
.RThreshold = 14 'Anzahl der zu empfangenen Zeichen festlegen
.PortOpen = True 'ComPort aktivieren
End With
Normal = "ABC"
Text2 = Normal
MSComm1.Output = Normal 'Zeichen normal an die serielle Schnittstelle senden
Open "c:\test.txt" For Output As #8 'Textdatei anlegen
Print #8, "Transponder", Tab, "n" 'Schreiben der Datei
datenlogger = True 'Aktivieren des Datenloggers
MSComm1.PortOpen = False
End Sub
Private Sub Command2_Click() 'System deaktivieren
Unload Form1 'Deaktivieren der Form Funktionsgenerator
frmSplash.Show 1 'Aufrufen des Hauptmenüs
datenlogger = False 'Deaktivieren des Datenloggers
Close 8 'Textdatei schließen
End Sub
'Private Sub Command3_Click() 'x
' line = Chr(1 & 2 & 10 & 50 & 58)
' MSComm1.Output = "line" 'Zeichen a an die serielle Schnittstelle senden
'End Sub
Private Sub mscomm1_oncomm() 'MSComm-Steuerelement
For i = 1 To 12
Select Case MSComm1.CommEvent 'Anweisung bei einem zu letzt aufgetreteten Kommunikationsereignnis
Case comEvReceive 'Case-Anweisung, wenn MSComm Ereignis ausgelöst wird
'x = AscB(MSComm1.Input) 'Daten aus dem Empfangspuffer in AsciiB-Zeichen als Variable x speichern
x = x & MSComm1.Input 'x Werte in das Textfeld schreiben
'If datenlogger = True Then 'If-Anweisung wird aktiviert, wenn Datenlogger aktiviert wurde
' i = i + 1 'Laufvariable um eins erhöhen
' ReDim Preserve ergebnismatrix(2, i) 'Matrix auf 2 Spalten und i abhängige Reihen definieren
' ergebnismatrix(1, i) = i 'Spalte 1 besteht aus der Laufvariable
' ergebnismatrix(2, i) = x 'Spalte 2 besteht aus der Variable x
'End If
'MSComm1.InBufferCount = 0 'Empfangspuffer null setzen
End Select
Next i
Text1 = x
End Sub
Weiß jemand einen Rat?

Danke im Voraus!
Besten Gruß
ich möchte mit einer selbst gestalteten Oberfläche in VB ein RFID-Lesegerät über RS232 ansprechen.Dazu sollen HEX-Zeichen an das Lesegerät übertragen und entsprechend empfangen werden.
Mit welchem Code kann auf einfache Weise erst einmal die Schnittstelle angesprochen werden?
Das Interface des Lesegerätes ist folgender Maßen aufgebaut:
Folgende Parameter sind eingestellt:
RS485 Mode: false
Bautrate : 9600
Databits: 8
Paraty: 9
Stopbits: 1
SW Flowoption: Non
DTR: true
RTS: true
Logfile: on
Logfile HEX: on
Der Code mit dem wir versucht haben die Schnittstelle anzusprechen (allerdings ohne Erfolg) lautet:
Option Explicit
Dim x As String 'Deklaration von Variablen
Dim Y As String, Normal As String ', 'line As Long
Dim datenlogger As Boolean
Private Sub Command1_Click() 'System aktivieren
i = 0 'Laufvariable i=0 setzen
Command1.Enabled = False 'Button Aktivieren blockieren
With MSComm1 'With-Anweisung für MSComm1
.CommPort = 1 'ComPort1 ansprechen
.InputLen = 1 'Anzahl der Zeichen auf 1 festlegen
.InBufferSize = 1 'Größe des Empfangspuffer festlegen
.Handshaking = comRTS 'Handshake-Protokoll festlegen
.Settings = "9600,n,8,1" 'Parameter für die Baudrate, Datenbits und Stopbits festlegen
.RThreshold = 14 'Anzahl der zu empfangenen Zeichen festlegen
.PortOpen = True 'ComPort aktivieren
End With
Normal = "ABC"
Text2 = Normal
MSComm1.Output = Normal 'Zeichen normal an die serielle Schnittstelle senden
Open "c:\test.txt" For Output As #8 'Textdatei anlegen
Print #8, "Transponder", Tab, "n" 'Schreiben der Datei
datenlogger = True 'Aktivieren des Datenloggers
MSComm1.PortOpen = False
End Sub
Private Sub Command2_Click() 'System deaktivieren
Unload Form1 'Deaktivieren der Form Funktionsgenerator
frmSplash.Show 1 'Aufrufen des Hauptmenüs
datenlogger = False 'Deaktivieren des Datenloggers
Close 8 'Textdatei schließen
End Sub
'Private Sub Command3_Click() 'x
' line = Chr(1 & 2 & 10 & 50 & 58)
' MSComm1.Output = "line" 'Zeichen a an die serielle Schnittstelle senden
'End Sub
Private Sub mscomm1_oncomm() 'MSComm-Steuerelement
For i = 1 To 12
Select Case MSComm1.CommEvent 'Anweisung bei einem zu letzt aufgetreteten Kommunikationsereignnis
Case comEvReceive 'Case-Anweisung, wenn MSComm Ereignis ausgelöst wird
'x = AscB(MSComm1.Input) 'Daten aus dem Empfangspuffer in AsciiB-Zeichen als Variable x speichern
x = x & MSComm1.Input 'x Werte in das Textfeld schreiben
'If datenlogger = True Then 'If-Anweisung wird aktiviert, wenn Datenlogger aktiviert wurde
' i = i + 1 'Laufvariable um eins erhöhen
' ReDim Preserve ergebnismatrix(2, i) 'Matrix auf 2 Spalten und i abhängige Reihen definieren
' ergebnismatrix(1, i) = i 'Spalte 1 besteht aus der Laufvariable
' ergebnismatrix(2, i) = x 'Spalte 2 besteht aus der Variable x
'End If
'MSComm1.InBufferCount = 0 'Empfangspuffer null setzen
End Select
Next i
Text1 = x
End Sub
Weiß jemand einen Rat?

Danke im Voraus!
Besten Gruß