vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen und Antworten zur vbarchiv.dll
Ansprechen von Serieller Schnittstelle Com1 
Autor: Fricktaler
Datum: 03.10.05 08:32

Hallo Leute

Ein dickes grosses Lob für die von euch geleistete Arbeit.

Ich versuchte mit der vbarchiv.dll die serielle Schnittstelle anzusprechen. Die sollte ja eigentlich kein Problem darstellen, aber irgendwas mach ich falsch.

Fragen:
1. Welche Daten und Parameter benötige ich vom COM-Port teilnehmer, wenn dieser z.B. mein Fluke 189 Messgerät ist und ich die Daten im Excel anzeigen möchte. (Normalerweise habe ich von Fluke die ganzen Spezifikationen erhalten)

2. Hat jemand ein Beispiel wie mit vbarchiv.dll eine serielle schnittstelle angesprochen und z.B. Daten von einem Teilnehmer in eine VB oder VBA-Applikation übertragen wurde.


Besten Dank für eure Hilfe

Gruss
Fricktaler
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 03.10.05 14:49

1. Schritt: mit comOpen den gewünschten Port öffnen.
2. Schritt: mit comSet oder über comConfigDlg die Port-Einstellungen setzen (Baudrate, usw.).
3. Schritt: Daten mit comReceive(Line) oder comSend(Line) transferieren.
4. Schritt: Port schließen mit comClose.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Fricktaler
Datum: 05.10.05 20:30

Hallo Martoeng

Danke für deine Antwort. Manchmal komme ich mir hier im Forum ein wenig fehl am Platz vor. Lesen kann ich ja auch. Habe die HTML zu den jeweiligen Codes gelesen, dennoch bin ich zu blöd um die sinnvoll zu beschalten. Habe jetzt eine Lösung mit dem MSCOMM32 am laufen gehabt. Ging ja alles tiptop, bis ich die Anwendung auf einem andern Rechner laufen lassen wollte.
Jetzt fehlt mir diese MSCOMM32.OCX und trotz installation kommt immer die Fehlermeldung: "OLE Server nicht richtig registriert"

Ich werde mich jetzt also nochmals mit der vbarchiv.dll auseinander setzen und hoffe, das ich sie heute Nacht endlich korrekt beschalten kann, damit sie funzt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Braun
Datum: 07.10.05 23:09

Hallo Martoeng, hallo Fricktaler,

meine jetzige Lösung ist auch eine mit MSCOMM32. Die klappt soweit ganz gut, obwohl ich auch dort Schwierigkeiten habe. Irgendwann hatte ich ein Quellencode in die Hand bekommen, diesen eingebaut und es ging. Ich musste bisher nur Daten empfangen.
Mit den com-Dingen habe ich aber auch so meine Schwierigkeiten.
Gibt es nicht irgendwo eine Möglichkeit die einzelnen Funktionen/Prozeduren im kurzen Quellencode darzustellen. Vielleicht liest das jemand, hat das schon alles in Anwendung und kann etwas dazu sagen.
Bist Du (Fricktaler) mit deiner Auseinandersetzung weiter gekommen?

Jetzt noch eine andere Frage an Martoeng. Mein Notebook (ziemlich neu) hat keine serielle Schnittstelle, kein Diskettenlaufwerk, keine LPT- Schnittstelle mehr. Zielt ja alles immer mehr auf USB hin. Wie werden Daten aus solchen Schnittstelle gelesen.

Vielleicht ist demnächst soetwas nötig:
Public Declare Function usbGet Lib "vbarchiv.dll" (ByVal hC............


Gruß Braun
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Fricktaler
Datum: 08.10.05 13:53

Hallo Braun

Danke für dein Posting. Also, wo stehe ich. Eigentlich stehe ich noch ziemlich am Anfang. Konnte nach wie vor meine Excel-Applikation nicht auf einem Anderen Rechner zum laufen bringen, ohne das ich das VB installiert habe und dadurch die MSCOMM richtig integriert ist.

Habe im Moment aber auch andere Prioritäten gesetzt. Ich kann mit dem MSCOMM auch ohne Probleme Daten von verschiedenen Messgeräten lesen. Leider hat jetzt der eine Hersteller die Daten in einem IEEE.754 Format, welches ich erst mal Umformen muss.... Mal sehen wie lange ich wieder für das benötige.

Ah noch etwas. Ich habe einen USB-RS232-Adapter an meinem Laptop angeschlossen. DAs funktioniert so weit ganz gut. MSCOMM merkt das nicht einmal, da für den Adapter ein spezieller Treiber installiert wurde.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 09.10.05 13:44

Ich sehe nicht das Problem beim Anwenden der Funktionen.
Vielleicht schreibt ihr einfach mal ein Beispiel? Es läuft ja immer nach dem "Initialisieren-Hin&Her-Schließen"-Prinzip.

Zur USB-Sache: USB ist sehr komplex und es gibt nicht die einfache Methode wie bei normalen seriellen Schnittstellen, dass man so mir nichts dir nichts Daten senden und empfangen kann.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Fricktaler
Datum: 11.10.05 12:55

Hallo Martoeng

Alles was ich möchte ist ja das:
MSSComm1.CommPort = 1
MSComm1.Settings = "115200,N,8,1"
MSComm1.PortOpen = True

'MSComm1.RThreshold = 1
'MSComm1.SThreshold = 1
'MSComm1.InputLen = 1

MSComm1.Output = TextBox2.Value + vbCr

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent
Case comOverrun: MsgBox "Datenverlust!"
Case comRxOver: MsgBox "Datenverlust!"
Case comEvReceive: TextBox3.Value = TextBox3.Value + MSComm1.Input

End Select
End Sub

Aber eben mit der VBarchiv.DLL

Kannst du mir einen Tip geben?

Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 11.10.05 20:17

Dim hComm As Long
hComm = comOpen("COM1")
comSet hComm, "BAUDRATE",115200
... da musst Du wissen, welche Werte gesetzt werden
comSend hComm, TextBox2.Value + vbCrLf

Das Empfangen von Daten muss dann selbst gemacht werden, da kann's natürlich kein Event geben. Mit comReceive oder comReceiveLine (die 2. wartet auf ein vbCrLf) kann man den Eingang abfragen. Dies könnte man entweder in einen Timer oder einen Thread auslagern.

Also, zu comSet/comGet noch folgende Anmerkung: die untersützen die folgenden Argumente (natürlich ohne weitere Anführungszeichen einsetzen, bspw. comSet(hComm, "BAUDRATE", 115200):
"BAUD", "BAUD RATE", "RATE", "BAUDRATE"
"BREAK"
"BYTE", "BITS"
"CD"
"CTSFLOW"
"DSRFLOW"
"DSRSENS"
"DTRFLOW"
"DTRLINE"
"NUL", "NULL"
"PARITY"
"PARITYCHAR"
"PARITYREPL"
"PARITYTYPE", "PARITYPE"
"RING"
"RLSD"
"RTSFLOW"
"RXBUFFER"
"RXQUE"
"STOP"
"TXBUFFER"
"TXQUE"
"XINPFLOW", "XINFLOW"
"XOUTFLOW"


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Fricktaler
Datum: 12.10.05 00:07

Hallo Martoeng

Besten Dank für deine Hilfe
Es scheint so, als würde die Adressierung des Gerätes nicht stimmen. Habe im Moment ein Blackout wie ich die Datenbit (8) und Stopbit (1) eingeben kann.

ist etwa das der richtige Befehl:
Dim hComm As Long
Me.TimerInterval = 100

hComm = comOpen("COM1")
comSet hComm, "BAUDRATE", 9600
comSet hComm, "PARITY", No
comSet hComm, "Bits", 8
comSet hComm, "STOP", 1

comSend hComm, TextBox2.Value + vbCrLf

Private Sub Form_Timer()

comReceive hComm
TextBox3.Value = hComm

End Sub

Gruss
Fricktaler
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 14.10.05 17:23

STOP 0 = 1 stop bits, 1 = 1.5 stop bits, 2 = 2 stop bits.


BYTE Number of bits per byte (4, 5, 6, 7, or 8).


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Braun
Datum: 19.10.05 13:27

Hallo Martoeng,

Eine Datenübertragung vom MDE(Mobile-Daten-Erfassung) zum PC soll durchgeführt werden.

Die Com-Port-Parameter sind:
Baud: 115200
Parity: keine
datenbits:8
Stopbits:1

Der Anstoss der Übertragung beginnt mit den Senden eines "READ[13]" zum MDE. MDE antwortet bei stehender Verbindung mit "ACK[13]", danach sendet MDE den ersten Record.

Nach Eingang eines Records vom MDE zum PC kann man jetzt eine Kontrolle dürchführen (hier nicht beschrieben, ob richtige Anzahl der Bits übertragen wurden) und sendet ggfs. ein "NAK[13]", wenn der Record nochmals übertragen werden muss.
Bei korrekter Übertragung sendet man vom PC ein "ACK[13]" um das Senden des nächsten Records zu veranlassen. Nachdem alle Records gesendet worden sind, sendet MDE ein "OVER[13]".

Wie sollte das mit diesen Tools aussehen?
Leider habe ich es bisher mit den Tools nicht hinbekommen.

Gruß Braun
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 24.10.05 19:48

Sub CommPort()
    hComm = comOpen("COM1") 'Öffnen
    If hComm = 0 Then Exit Sub
    comSet hComm, "BAUDRATE", 115200 'Baud Rate
    comSet hComm, "PARITY", 0 'Parity
    comSet hComm, "BYTE", 8 'Datenbits
    comSet hComm, "STOP", 1 'Stopbits
    comSet hComm, "TXBUFFER", 1024 'Transmit buffer
    comSet hComm, "RXBUFFER", 1024 'Receive Buffer
 
    'Daten senden
    comSend hComm, "READ[13]"
    'Antwort empfangen, hier evtl. ne Schleife bauen oder mit nem Timer 
    ' auslesen und zusammenfügen
    Dim sAnswer As String
    sAnswer = comReceive(hComm, sAnswer)


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 24.10.05 19:54

Aber das Auslesen sollte in einen Thread und man kann noch mit comGet "RXQUE" abfragen, damit hat man die Länge der Input-Queue.

Wird da kein CRLF als Ende der Daten mitgeliefert!?


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: Braun
Datum: 24.10.05 22:41

das Ende wird mit "OVER[13]" empfangen.
Wobei in Klammern die Werte [13] ein CR bedeuten.
Also z.B. senden mit MSComm sieht so aus:
MSComm.Output "READ" & Chr(13) ' = Anstoss um einen Datenübertragung einzuleiten.
Ein weiteres Problem ist, dass die empangenen Records z.T. unterschiedliche Längen
(erster und letzter Record) haben und das die Records ein CR im Record selbst besitzen. Also nicht nur am Ende des Records. Z.B. sieht der erste empfangener Record so aus:

"ACK" & chr(13) & ..(div. Acii-Zeichen).. & chr(13)

Das erste Chr(13) also CR macht schon Schwierigkeiten den Record mit
MsComm.Input zu lesen. Bisher hatte ich das erste Chr(13) mit
Replace usw. herausgefiltert.
Leider habe ich keine Möglichkeit die gesendeten Records im MDE zu verändern.Das ist vom Gerät gegeben.

Wie würde der erste empfangener Record deiner Meinung nach aussehen?

Gruß Braun
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ansprechen von Serieller Schnittstelle Com1 
Autor: ModeratorMartoeng (Moderator)
Datum: 25.10.05 14:05

dann kannst du zum empfangen auch comReceiveLine nehmen, das wartet solange bis ein CRLF kommt.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel