Serielle Schnittschtelle mit VBA ansprechen!
10.02.2005 11:01:12
Serge
Bitte helft mir ihr VBA Profis!
Ich habe ein Gerät, das ich mit VBA über Serielle Schnittstelle ansprechen will.
Für diese Zwecke habe ich aus dem Internet eine Bibliothek, so genannte RSAPI.DLL
""" Mit diesen allgemeinen Funktionen sollte es möglich sein, jedes Gerät mit RS 232-Anschluß aus Standard-Software heraus anzusprechen. Wurden früher technisch-wissenschaftliche Geräte mit Analog-Ausgängen für XY-Schreiber ausgestattet, findet man heute an vielen Geräten den seriellen Anschluß. Dabei werden häufig die Daten als Zeichen zum Rechner übertragen. """
Declaration...
Sub Senden()
OPENCOM "COM1:9600,N,8,1"
SENDSTRING "STA,S,2" + Chr$(13)
CLOSECOM
End Sub
Sub StopK()
OPENCOM "COM1:9600,N,8,1"
SENDSTRING "STA,S,4" + Chr$(13)
CLOSECOM
End Sub
bis dahin funzt alles...ich kann bestimmte Befehle an das Gerät (Kommando-Antwort Beziehung)
senden und es emfängt sie und führt die aus . Das Bios von dem Gerät kann
Strings verstehen und intepretieren. Serielle Übertragung geht auch...
In der Anleitung zum Gerät steht nähmlich....dass es Zeichenkette als Antwort zurückgibt
Jetzt will ich die Daten von dem Gerät bekommen und die dann im Excel Tabellenblatt speichern.
Mein Code dazu:
Dim S As String
Sub Test()
OPENCOM ("COM1:9600,N,8,1")
SENDSTRING "CLL,G" + Chr$(13) ' Daten anfordern
S=SPACE$(32) 32 Leerzeichen (VBA)
READSTRING S Auf 32 Zeichen warten
ThisWorkbook.Sheets("Tabelle1").Range("A1").Value = S ' in die Tabelle
schreiben
CLOSECOM
End Sub
Erwarte als Antwort vom Gerät ein Zeichen "02"
Das sollte laut Hilfe zur RSAPI.DLL
Zitat:
------------------
Empfangen einer Zeichenkette. Die Länge der übergebenen Zeichenkette legt fest, auf wie viele Zeichen eingelesen werden sollen. Bei einem TimeOut bricht der Empfang ab.
Rückgabe: Zahl der empfangenen Zeichen.
--------------
Wer weiß worum funzt das nicht...wo liegt mein Fehler?