Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Serielle Schnittstelle

Serielle Schnittstelle
28.11.2012 23:47:02
Thomas
Liebe Excelperten,
ich möchte aus Excel auf die serielle Schnittstelle zugreifen. Hierzu folgender Sachverhalt:
- habe mir aus dem Internet einen Code heruntergeladen, der die kernel32-Funktionen nutzt. Quelle: http://dev.emcelettronica.com/serial-port-communication-excel-vba
- folgende Konstante habe ich von 4 auf 20 hochgesetzt:

Private Const MAX_PORTS = 20

- dann habe ich noch die eigentliche Routine ergänzt:

Private Sub CommandButton1_Click()
Dim intPortID As Integer ' Ex. 1, 2, 3, 4 for COM1 - COM4
Dim lngStatus As Long
Dim strData   As String
Dim msg As String
intPortID = 10
' Open COM port
If CommOpen(intPortID, "COM" & CStr(intPortID), "baud=38400 parity=N data=8 stop=1")  0    _
_
_
_
Then
lngStatus = CommGetError(msg)
MsgBox "Fehler beim Öffnen: " & msg
Else
strData = "z"
lngStatus = CommWrite(intPortID, strData)
If lngStatus = 0 Then
lngStatus = CommGetError(msg)
MsgBox "Schreibfehler: " & msg
Else
AppSleep 100
If CommRead(intPortID, strData, 13) = -1 Then
lngStatus = CommGetError(msg)
MsgBox "Lesefehler: " & msg
Else
MsgBox strData
End If
End If
If CommClose(intPortID)  0 Then
lngStatus = CommGetError(msg)
MsgBox msg
End If
End If
End Sub

- läuft auf meinem Desktop (XP, Excel 2002) auf COM1 wunderbar :o)
- läuft auf meinem Laptop (W7, Excel 2003) aber leider nicht. :o( Hier habe ich allerdings keinen RS232-Port, sondern nur USB. Geht aber auch, da ich für den 9-poligen D-SUB-Stecker meines Gerätes einen RS232->USB-Umsetzer benutze. Dieser Umsetzer meldet sich auf dem Laptop als COM10 an! Selbstverständlich habe ich die Zeile "intPortID = 1" abgeändert auf "intPortID = 10".
- beim Öffnen des Ports kommt aber immer die Meldung

"Das System kann die angegebene Datei nicht finden."
Irgendwie findet Excel offenbar den COM10 nicht?
- er ist aber da! Mit Hyperterminal kann ich mit derselben HW (Laptop, RS232-Umsetzer) über COM10 auf das Gerät zugreifen, es antwortet auch richtig.
Weiß hier jemand Rat? Versteht die kernel32 evtl. nicht COM10? Geht die überhaupt so weit? Ich hatte ja die Konstante MAX_PORTS von 4 auf 20 hochgesetzt. Könnte hier der Hase begraben liegen?
Vielen Dank schon einmal!
Viele Grüße,
Thomas :o)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serielle Schnittstelle
29.11.2012 20:09:16
Peter
Schreib ab COM10: in der Form "\\.\COM10"), das sollte das Problem lösen.
Low-Level auf der Schnittstelle ist immer eine Quelle der Freude!
Je nachdem,was du machen willst, und welcher Art die serielle Datenquelle ist, kann es
sehr sinnvoll sein, Fertiges hinzuzunehmen.
Schau mal, ob du auf http://www.serielleSchnittstelle.de etwas passendes findest!

DAAAAAANKE!!!!
29.11.2012 23:04:17
Thomas
Hallo Peter,
es funktioniert! Ich könnte dich... ;o)
Ich verstehe zwar ehrlich gesagt noch nicht warum, aber vielleicht bekomme ich das auch noch heraus. Falls du noch eine Erklärung in ein-zwei Sätzen hast, wär ich dir dankbar, muss aber auch nicht sein.
Serielle-Schnittstelle.de muss ich mir mal anschauen. Hintergrund ist hier übrigens ein Gerät, das im Ziel eines Volkslaufes über einen Chip die Daten des soeben eingelaufenen Läufers einliest. Der PC kommuniziert hier mit dem Gerät eben (leider nur) über RS232. Die Daten lese ich mit Excel ein, da die komplette Volkslaufauswertung in Excel geschrieben ist.
Vielen Dank nochmal und viele Grüße aus Berlin,
Thomas :o)

Anzeige
AW: DAAAAAANKE!!!!
30.11.2012 18:26:06
Peter
Freut mich, dass die Welt jetzt wieder ein bisschen besser ist ... ;-)
Zum Grund weiß ich nicht viel zu sagen; außer vielleicht, dass der API-Aufruf CreateFile() und der Doppelpunkt sich nicht mögen.
Für deine Aufgabenstellung wird eines der Programme Extract!xxx auf der genannten Seite richtig sein.
Wenn etwas unklar ist, schreib dort eine Kontakt-Mail und man wird dir helfen!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige