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

Frage zur RSAPI.DLL

Frage zur RSAPI.DLL
25.06.2007 20:29:06
Achim
ich habe mir Ihr Buch "Messen, Steuern und Regeln mit Word & Excel" gekauft, und komme mit der RSAPI.DLL
nicht klar.
Folgendes Problem:
Ich möchte eine Siemens LOGO über die RS 232 Schnittstelle steuern und als Datenlogger nutzen.
Mit der Programmiersprache Python ist mir dies problemlos gelungen.
Unter Visual Basic stellt sich fogendes Problem:
Um eine Siemens LOGO in Run zu schalten, muß ich den Steuercode
SENDBYTE (&H55)
SENDBYTE (&H18)
SENDBYTE (&H18)
SENDBYTE (&HAA)
über die RS 232 senden.
Um die LOGO zu stoppen, den Steuercode
SENDBYTE (&H55)
SENDBYTE (&H12)
SENDBYTE (&H12)
SENDBYTE (&HAA)
Ich habe, weil es nicht funktionierte, den ComPort mit einem Portmonitor beobachtet und
festgestellt, das anstelle des Steuercode &H55 das Zeichen "U" gesendet wird, die beiden nächsten Zeichen "&H18 &H18"
stimmen, und das Byte &HAA wird in die Zeichenfolge "ffffffaa" umgewandelt.
Was mache ich falsch ?
Der Programmcode:
Declare Sub OPENCOM Lib "RSAPI.DLL" (ByVal ComParameter$)
Declare Sub CLOSECOM Lib "RSAPI.DLL" ()
Declare Sub SENDBYTE Lib "RSAPI.DLL" (ByVal i%)
Declare Function READBYTE Lib "RSAPI.DLL" (B%) As Integer
Declare Sub TIMEOUT Lib "RSAPI.DLL" (ByVal ms%)
Declare Sub Delay Lib "RSAPI.DLL" (ByVal ms%)
___

Private Sub logo_run_cmd_Click()
OPENCOM "COM1:9600,E,8,1"
SENDBYTE (&H55)
SENDBYTE (&H18)
SENDBYTE (&H18)
SENDBYTE (&HAA)
CLOSECOM
End Sub



Private Sub logostop_cmd_Click()
OPENCOM "COM1:9600,E,8,1"
SENDBYTE (&H55)
SENDBYTE (&H12)
SENDBYTE (&H12)
SENDBYTE (&HAA)
CLOSECOM
End Sub


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zur RSAPI.DLL
25.06.2007 21:25:00
Hubert
Hi,
woher kommt denn die DLL, ist ja schließlich kein Windows-Standard.
Für mich sieht das wie ein Typkonflikt aus. Windows-DLL verwenden
üblicher Weise den Datentyp Long.
Der Wert &H55 ist Dezimal 85, was dem Ascii-Code von U entspricht.
mfg Hubert

AW: Frage zur RSAPI.DLL
26.06.2007 16:31:00
Achim
Hallo,
die RSAPI.DLL ist ein Schnittstellentreiber für die RS232 Schnittstelle und gehört zum o.g. Buch.
Leider hat der Buchautor auf meine Frage nicht reagiert, darum probiere ich es hier.
Ich habe 2 Dateien auf diesen Server geladen. Es sind Protokolle von einem Portmonitor Programm.
Hier die Datei mit einer funktionierenden Version in der Programmiersprache Python
geschrieben:
https://www.herber.de/bbs/user/43596.txt
Und hier die nicht funktionierende Version mit der RSAPI.DLL in VBA
https://www.herber.de/bbs/user/43602.txt
Man sieht in der funktionieren Version ganz deutlich, das der Hex Wert 55 nicht in eine
Dezimalzahl (85) umgewandelt worden ist.
Ich verstehe auch nicht, warum das erste Byte von Hex 55 in eine Zeichen umgewandelt worden ist,
die beiden folgenden Bytes Hex18, Hex 18 so geblieben sind, und das letzte Byte Hex AA auch wieder
umgewandelt wurde (ffffffaa)
Danke für jede Hilfe
Achim

Anzeige
AW: Frage zur RSAPI.DLL
26.06.2007 18:59:00
Hubert
Hi,
ich befürchte, da wird dir hier kaum jemand helfen können,
ich jedenfalls nicht.
mfg Hubert

AW: Frage zur RSAPI.DLL
28.06.2007 21:51:49
Achim
Hallo,
es liegt wohl an der dll.
Ich habe auf der Internetseite
http://www.hjberndt.de/soft/rsapitest.zip
eine andere Version der dll geladen, die wenigstens einmal die gewünschte Funktion ausführt hat,
danach aber nicht mehr (ausser nach Neustart des PC).
Ich werde wohl nach einer anderen Lösung für die Programmierung der RS232 suchen
müssen.
Danke Nochmal
MfG
Achim

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige