Forum: PC-Programmierung Blutiger VBA Anfänger sucht Hilfe mit RS232 in Excel


von Jakob B. (teddynator)


Angehängte Dateien:

Lesenswert?

Hi Forum!

Ich bin noch absoluter Anfänger in VBA und versuche einfach mal aus 
Excel heraus ein einfaches Zeichen an die serielle Schnittstelle zu 
senden. Aber irgendwie will es einfach nicht klappen. Ich verwende die 
RSAPI.DLL und habe die Codeschnipsel, die ich für sinnvoll hielt, mehr 
oder weniger aus dem Buch "Messen, Steuern und Regeln mit Word und 
Excel" abgeschrieben. Herausgekommen ist dieser Code den ich in das 
"Modul1" eingefügt habe.
1
Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal para$)
2
Declare Sub CLOSECOM Lib "RSAPI.DLL" ()
3
Declare Sub SENDBYTE Lib "RSAPI.DLL" (ByVal Wert%)
4
5
Sub uart()
6
    Sheets("Tabelle1").Activate
7
    OPENCOM "COM11,38400,N,8,1"
8
    SENDBYTE Asc("U")
9
    CLOSECOM
10
End Sub

Dass wär ja auch zu einfach gewesen. Ist die serielle Schnittstelle für 
einen Anfänger überhaupt zu handhaben? Oder sollte ich mir besser erst 
etwas anderes ansehen? Kann mir hier jemand auf die Sprünge helfen, wie 
ich einfach mal nur ein einfaches zeichen aus Excel an die RS232 Senden 
kann? In meinem Terminal Programm klappt es super. Hier verwende ich 
diese Einstellungen: Baud 38400, COM 11, Data 8, Stop 1, Parity N.

Ich verwende Excel XP, mein erster Versuch ist im Anhang dabei.

Vielen Dank schonmal

von Jakob B. (teddynator)


Lesenswert?

Kann mir keiner weiterhelfen? Habe gelesen es soll auch mit MS Com 
Control möglich sein. Aber der Code sieht extrem umfangreich aus und ist 
für mich nur schwer verständlich.
Bin für jede Hilfe dankbar.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die Fehlermeldung lautet also "es klappt nicht"? Das hätte ich Excel 
nicht zugetraut.

von Jörg H. (dr_coolgood)


Lesenswert?

Du benutzt die falschen Werkzeuge.
Benutze eine Programmierumgebung die für Dein Problem besser geeignet 
ist. Dazu solltest Du erklären was Du vorhast.

von Jakob B. (teddynator)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Die Fehlermeldung lautet also "es klappt nicht"? Das hätte ich Excel
> nicht zugetraut.

es kommt keine Fehlermeldung. Ich drücke auf das "Play" Symbol oben im 
VBasic Editor. Es öffnet sich ein Fenster, das mich fragt welchen Sub 
ich ausführen will und ich klicke auf "uart". Fenster schließt sich und 
es passiert nichts. Es kommen keine Daten an der seriellen Schnittstelle 
an.

Jörg Hermann schrieb:
> Du benutzt die falschen Werkzeuge.
>
> Benutze eine Programmierumgebung die für Dein Problem besser geeignet
>
> ist. Dazu solltest Du erklären was Du vorhast.

Was ich vorhabe: Ich habe ein Excel Sheet gebastelt, das mir einen Code 
erzeugt den ich dann (binär) über ein Terminalprogramm per RS232 an 
meine LED Matrix senden kann.
Nun hätte ich gerne einen "Senden" Button direkt im excel sheet. Da ich 
von VBA noch keine Ahnung habe, wollte ich erst mal versuchen ein 
einzelnes Zeichen zu senden um den Code dann weiter auszubauen. Ich will 
ja auch was lernen dabei.

Das Excel Sheet hier: 
http://www.elektronik-biberger.de/projects/rgbmatrix/matrix_colorizer.xls

Genauere Beschreibung des Projekts (zumindest so weit es bis jetzt ist) 
ebenfalls auf meiner Homepage
http://www.elektronik-biberger.de

von Isnichwahr (Gast)


Lesenswert?

@Rufus (Moderator)

Du bist ja ein Wahnsinns-Komiker...
Ich übersetze es Dir mal mundgerecht: Der Autor möchte mit dem in seinem
Text zu sehenden Code aus Excel heraus ein Zeichen über seine serielle
Schnittstelle senden. Das funktioniert aber nicht, wogegen das Senden 
eines
Zeichens über ein Terminalprogramm funktioniert. Er schließt daraus, daß
der Fehler in seinem Programm liegen muß und bittet nun um Hilfe beim
Auffinden es Fehlers.

Konntest Du den Ausführungen soweit folgen?

von Rainer (Gast)


Lesenswert?

Schau mal hier:

http://www.b-kainka.de/portnt.htm

letzter Abschnitt, Probleme beim Öffnen...

Vielleicht hilft es.

Rainer

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Isnichwahr schrieb:
> Du bist ja ein Wahnsinns-Komiker...

Du bist ebenfalls sehr drollig. Die halbe Miete ist eine anständige 
Fehlerbeschreibung. "Funktioniert nicht" ist keine Fehlerbeschreibung, 
weil "funktioniert nicht" nicht beschreibt, was exakt schiefgeht. Es 
hätte ja eine Fehlermeldung ausgegeben werden können, es hätte 
irgendwelcher anderer Kram ausgegeben werden können als der, der 
erwartet wird, es hätte schlussendlich auch das passieren können, was 
der Threadstarter dann, in seinem zweiten Beitrag auch beschrieben hat.

Zum Thema:

Untersuche, ob die Syntax für den Schnittstellennamen korrekt ist. Die 
dem ganzen zugrundeliegenden Win32-API-Funktionen stolpern über "COM11" 
und erwarten stattdessen "\\.\COM11". Ob das VBA/EXCEL-Konglomerat das 
bereits korrigiert, entzieht sich meiner Kenntnis.

Ein Versuch wert wäre es, entweder eine andere Schnittstelle < COM10 zu 
verwenden oder aber die Schnittstellnnummer der verwendeten auf einen 
Wert < 10 zu ändern.

Ansonsten könnte es sein, daß die Argumente für "OPENCOM" ein etwas 
anderes Format benötigen, das Trennzeichen zwischen dem Namen der 
Schnittstelle und dem Rest sollte ein Doppelpunkt und kein Komma sein.
(Zumindest spuckt Google entsprechende Hinweise aus).

Probiere also mal folgende Varianten aus:

    OPENCOM "\\.\COM11,38400,N,8,1"

    OPENCOM "COM11:38400,N,8,1"

    OPENCOM "\\.COM11:38400,N,8,1"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.