PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 mit VBA ansteuern



Sebastian B.
27.11.2005, 21:30
Hallo zusammen,

Ich hoffe, dass mir hier jemand weiterhelfen kann.

Ich muss mit VBA aus Excel heraus einen µC ansprechen über die COM Schnittstelle. Der µC kommuniziert schon über ein Terminalprogramm ohne Probleme mit dem PC, allerdings nicht in Excel.
Habe es mit der RSAPI.DLL versucht, allerdings nach Beispielen für Windows 98 (das ältere Kainka Buch).
Es will nichts funktionieren, auch 2 PCs wollen nicht miteinander reden.

Mein Programm sieht grob wiefolgt aus:
- Alle Prozeduren mit Parametern deklarieren
- OPENCOM mit Parametern
- SENDBYTE (ASCII Zeichen wird gesendet)
- READBYTE (14 ASCII Zeichen werden empfangen und angezeigt)
- CLOSECOM

Ist da ein grober Denkfehler drinnen oder liegts vll nur an der falschen Programmierung (da ich das Buch für Excel 7 habe, aber unter Excel 2000 arbeite)? Die 32 Bit RSAPI.DLL ist installiert.

M f G
Sebastian

teslapower
27.11.2005, 22:46
Hi!

Hast du das so geschrieben:
OPENCOM "COM2:1200,N,8,1"
oder mit Komma anstatt Doppelpunkt?

Hast du die neuste Version der DLL?

MFG teslapower

skycore
27.11.2005, 22:50
Versuch mal nen anderen porttreiber

lg.

teslapower
27.11.2005, 22:57
Jetzt hat skycore aber schnell editiert :cheesy:

Wichtig ist die neue Version zu benutzen, die läuft auch auf NT basierenden Systemen!

Ansonsten gehts damit auch ohne extra DLL
http://www.activevb.de/rubriken/upload/dateien/13-10-11.06.01_ser_port_vba.zip

skycore
28.11.2005, 13:28
*lol* ](*,)
Da hat einer aber schnell gelesen O:)

Sebastian B.
28.11.2005, 16:50
Hallo,

Also ich habs heute mal mit nem Win 95 Rechner Und Office 97 versucht. Auch kein erfolg.

Das Programm von teslapower ist mir ehrlich gesagt etwas zu hoch, da ich mich mit dem ganzen erst seit ein paar Tagen beschäftigen "muss" im Rahmen meiner Ausbildung.
Als Rückantwort kriege ich immer -1 angezeigt.. also keine Verbindung....

Vll. hat noch jemand einen Rat wie mans mit der rsapi.dll machen kann?

M f G
Sebastian

teslapower
28.11.2005, 18:05
Wie gesagt, hast dus mit Komma oder Doppelpunkt geschrieben?
NT usw. will da nen Doppelpunkt haben.
Hast du die neuste Version der DLL runtergeladen oder benutzt du die vom Buch?
Wenn nicht, poste mal deinen Quellcode, dann kann man helfen.
Der Comport muss natürlich geschlossen sein, also nicht Terminal oder
so zeitgleich laufen lassen.

MFG teslapower

Sebastian B.
28.11.2005, 18:48
Hallo,
Habe den Code leider nicht hier, aber versuche es mal zusammenzukriegen (ist ja nicht so viel).

Declare Function OPENCOM Lib "RSAPI.DLL" (ByVal A$) As Integer
Declare Function CLOSECOM Lib "RSAPI.DLL" ()
Declare Function SENDBYTE Lib "RSAPI.DLL" (ByVal b%) As String
Declare Function READBYTE Lib "RSAPI.DLL" () As Integer



Sub test()

OPENCOM "COM2:28800,N,8,1"

SENDBYTE Asc("r")

x = READBYTE

MsgBox "empfangene Daten: " & x, vbOKOnly

CLOSECOM
End Sub



So, da sind sicher noch etliche Fehler drinnen, aber ich habe leider noch nicht genug Zeit gehabt.. bitte um Nachsicht. Auch weiß ich nicht wann man oben etwas als Sub oder als Function deklarieren muss und wann bei den Prozeduren oben irgendetwas übergeben werden muss.

PS:
So meckert er noch über die MsgBox Zeile: Ungültiger Prozeduraufruf oder ungültiges Argument.

Wie du siehst, ich bin ein ziemlicher Neuling bei VBA, mehr als grobes Verständnis (aber dafür Motivation) bringe ich noch nicht mit. Denke das wird aber noch. Ein kleines Erfolgserlebnis würde schon helfen ;)

M f G
Sebastian