PDA

Vollständige Version anzeigen : Lesen,Schreiben auf COM1 mit Acess97/2000


buchh
01.10.2002, 13:19
Hallo zusammen!

Ich bräuchte dringend Hilfe zu folgendem Problem:
Ueber die COM1 Schnittstelle versuche ich Werte von verschiedenen Messwertgebern zu lesen und in einer Access DB zu speichern. Momentan arbeite ich mit Access97. Mit folgendem VBA-Code in einem Modul kann ich wohl einen Output machen, beim Input bleibt das Programm jedoch hängen.
Weiss jemand was da falsch ist? Oder gäbe es eine andere Variante?
Vielen Dank für eine Antwort schon zum voraus!

Sub ComTest_mit_Modul()
Dim Befehl, Zeichen, TextFile As Variant
TextFile = "Com1"
Befehl = "$1"
Open TextFile For Output As #1
Write #1, Befehl
Debug.Print Befehl
Close #1
Open TextFile For Input As #2
Line Input #2, Zeichen
Debug.Print Zeichen
Close #2
End Sub

YahooGreg
01.10.2002, 13:56
Hi,

ich kanns hier zwar nicht nachvollziehen, aber spontat würde ich behaupten es hängt an deiner Zeile:

Line Input #2, Zeichen

Line Input wartet auf ein Satzende (CR & LF), solange dies nicht über die COM1 ankommt, wartet das Programm.

Vielleicht hilft folgendes:
Zeichen = Input(1, #2)' Ein Zeichen lesen.
Debug.Print Zeichen ' Ausgabe im Testfenster.
if Zeichen = ??? then
' und tschüss
endif

Versuchs mal damit
Gregor

buchh
01.10.2002, 15:54
Vielen Dank Greg für Deine spontane Antwort.
Leider hat es aber nicht geklappt.
Was mich wundert ist, wenn ich im Einzelschritt das Programm teste, es genau an dieser Zeile stehen bleibt.
Hättest Du vielleicht sonst noch eine Idee?
Währe sehr froh darum!

YahooGreg
01.10.2002, 16:09
Das Programm bleibt stehen, weil nix über die Schnittstelle kommt!

Der will ein Zeichen einlesen und es kommt nix, würd ich mal behaupten.

Kann das sein?
Was hast du an COM1 angeschlossen?
Hängt es vielleicht an COM2?
Ist das Verbindungskabel richtig verdrahtet (DTS, DTR und was es sonst noch so zu verdrahten gibt)?

Du siehst, es gibt viel zu beantworten.
Ich muß jetzt allerdings nach Hause, schau aber morgen früh wieder nach dir.

Sorry aber ansonsten steigt mir meine Frau aufs Dach!

Gregor

buchh
02.10.2002, 16:11
Hallo Gregor

Habe Heute alles getestet, was Hardware anbelangt. Habe einen Monitor mit Tastatur an die Schnittstelle angeschlossen, um Daten anzuzeigen und senden zu können. Daran sollte es also nicht liegen.
Habe auch noch versucht, das ganze in einen
On Error Go to Block zu verpacken. Das Programm blieb trotzdem stehen und konnte nur noch mit Ctrl Alt Del abgeschossen werden.
Hast Du vielleicht noch eine Idee?
Sorry, dass ich Dich so beanspruche.
Gruss
Hans

YahooGreg
03.10.2002, 13:17
Hallo Hans,

da ich dies hier nicht nachvollziehen kann, gehen mir leider so langsam auch die Ideen aus.

Wäre evtl. die Baudrate, Stopbit, Parity usw. noch zu checken, nehme aber an, das hast du bereits getan!

Wo ich auch noch unsicher bin, ist deine Anweisung:

TextFile = "Com1"

Wird die serielle Schnittstelle wirklich so adressiert, in der OH findet man darüber natürlich auch nix.

Mail doch mal den Roland (der das Problem mit dem COM1 bei WinXP hat) direkt an, vielleicht kann der dir in dem Fall weiterhelfen.

Sorry, das ich dir nicht helfen konnte
Gregor