Forum: PC-Programmierung Serielle Schnittstelle auslesen via USB


von Jonas (Gast)


Lesenswert?

Hallo an alle,

Ich habe mal wieder ein großen Problem, zumindest für mich groß.
Und zwar habe ich ein Messgerät welches mir via USB Daten auf den PC 
schickt.
Das Schnittstellenprotokoll habe ich mir schonmal zukommen lassen, von 
dem Hersteller, allerdings ist die mitgelieferte Software einfach nur 
ein grauss...

Naja weiter im Text...

Gibt es eine Möglichkeit direkt, von mir aus in Excel, über VBA die 
Com-Schnittstelle anzusprechen, an der das Messgerät hängt und mir dann 
die Daten alle 5sec in der Excel Tabelle Zeile für Zeile schreibt?

Meine Programmierkenntnisse, was das angeht gehen gegen Null :-( 
Deswegen auch die Frage an euch?! Ist es denn technisch zu realisieren?

Wäre über eine Antwort sehr erfreut.

Mit freundlichen Grüßen
Jonas

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was jetzt? USB oder serielle Schnittstelle? Oder ist das Gerät ein CDC 
bzw. nutzt eine USB-Seriell-Bridge à la FT232?

von Jonas (Gast)


Lesenswert?

Ähm USB-Schnittstelle, ich habe gedacht USB schickt auch seriell Daten 
rüber :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jonas schrieb:
> Ähm USB-Schnittstelle, ich habe gedacht USB schickt auch seriell Daten
> rüber

Tut es zwar, aber dazwischen liegt ein Protokoll, und das wird mit 
Devicetreibern abgehandelt; schließlich können am USB bis zu 127 Geräte 
angeschlossen sein, die Du ganz sicher nicht alle von Excel aus 
ansprechen willst ...

Du musst Dir also ansehen, was für einen Devicetreiber Dein Messgerät 
mit sich bringt, und je nachdem, was das für ein Devicetreiber ist, die 
weitere Vorgehensweise untersuchen.

von Jonas (Gast)


Lesenswert?

Das heist jetzt im Klartext? Ich habe ja das Schnittstellenprotokoll von 
dem Hersteller des Messgerätes...

von Christian R. (supachris)


Lesenswert?

Im Klartext heißt das, dass du uns verwirrende Informationen gegeben 
hast. Hat das Gerät nun eine USB- oder eine COM-Schnittstelle? Wenn USB: 
Wird dann ein virtueller COM Port angelegt? Wie sieht das Protokoll aus? 
Poste doch mal ein kleines Beispiel.

von Skua (Gast)


Lesenswert?

Alles Geheim auch welches Gerät es ist.

von Jonas (Gast)


Lesenswert?

Das Messgerät ist ein PeakTech 4390 :-)

Hat einen USB-Anschluss...
Hier ist das Schnittstellenprotokoll von Hersteller dafür:

RS232 Transmission Specification

RS232 transmission format is 14 byte. Its transmission rate is 2400bps. 
The format is as follows

Sing  Data Byte        Space  Point  SB1  SB2  SB3  SB4  BAR  EOF  ENTER
1  2  3  4  5  6  7  8  9  10  11  12  13  14
+/-  X  X  X  X  020H  X  X  X  X  X  X  0DH  00AH

14 byte output code location:
Sing   byte 1  0f0H
Data  byte 2  0f1H
Data   byte 3  0f2H
Data  byte 4  0f3H
Data   byte 5  0f4H
Space   byte 6  0f5H
Point  byte 7  0f6H
SB1   byte 8  0f7H
SB2   Byte 9  0f8H
SB3  Byte 10  0f9H
SB4  Byte 11  0faH
BAR  Byte 12  0fbH
EOF  Byte 13  0fcH
ENTER  Byte 14  0fdH

Sing byte stands for the positive or negative sign of DMM measuring 
signla, and its output code is ASCII code:
Positive (+) :    02BH    Negative (-) :     02DH

Data byte is 4 byte that stands for DMM measured data and its output 
code is ASCII code:
Data byte 2    stands for LCD_1
Data byte 3    stands for LCD_2
Data byte 4    stands for LCD_3
Data byte 5    stands for LCD_4





Point byte stands for the decimal location and its output is HEX code
Point 0  030H  stands for no decimal and LCD shows 0000
Point 1  031H  stands for no decimal and LCD shows 0.000
Point 2  032H  stands for no decimal and LCD shows 00.00
Point 3  033H  stands for no decimal and LCD shows 000.0

SB1 Byte code is as follo (SB1) and its output is HEX code:
Status  Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0
0
1  Hi  RPM  AUTO  DC  AC  REL  HOLD  BPN

SB2 Byte code is as follo (SB2) and its output is HEX code:
Status  Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0
0
1  Z1  Z2  MAX  MIN  APO  Bat  n  Z3

SB3 Byte code is as follo (SB3) and its output is HEX code:
Status  Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0
0
1  µ  m  k  MIN  Beep  Diode  %  Z4

SB4 Byte code is as follo (SB4) and its output is HEX code:
Status  Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0
0
1  V  A  W  hFE  Hz  F  °C  °F

Bar byte 7 stands for the positive or negative; Bit 0 ~ 6 stands for 
Bargraph number.
Its output code is HEX code.





Dieses Messgerät gibt es auch mit einer USB-Schnittstelle...

Lg Jonas

von Thomas R. (Gast)


Lesenswert?

Jonas schrieb:
> Das Messgerät ist ein PeakTech 4390 :-)
>
> Hat einen USB-Anschluss...
....
> Dieses Messgerät gibt es auch mit einer USB-Schnittstelle...
>
> Lg Jonas

Hat es nun einen USB-Anschluss oder gibt es das auch mit USB-Anschluss?

von Peter II (Gast)


Lesenswert?

Jonas schrieb:
> Das Messgerät ist ein PeakTech 4390 :-)
>
> Hat einen USB-Anschluss...
> Hier ist das Schnittstellenprotokoll von Hersteller dafür:

Jonas schrieb:
> Dieses Messgerät gibt es auch mit einer USB-Schnittstelle...

achso jetzt es das gerät also mit USB anschluss and USB schnittstelle?

von me (Gast)


Lesenswert?

Hat einen USB-Anschluss...
Dieses Messgerät gibt es auch mit einer USB-Schnittstelle...
Häh...?

von Jonas (Gast)


Lesenswert?

sorry mein Fehler...
Dieses Messgerät gibt es "NUR" mit einer USB-Schnittstelle....

von Thomas R. (Gast)


Lesenswert?

Wird das Gerät als virtueller COM-Port erkannt?

von Jonas (Gast)


Lesenswert?

Jawohl, und habe es dann anschließend auf einen Com-Port gesetzt der 
kleiner 10 ist damit Windows damit umgehen kann, bzw. das mitgelieferte 
Programm

Ergo hat er jetzt COM3

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jonas schrieb:
> Jawohl, und habe es dann anschließend auf einen Com-Port gesetzt der
> kleiner 10 ist damit Windows damit umgehen kann, bzw. das mitgelieferte
> Programm

Unter Windows lassen sich bis zu 256 serielle Schnittstellen nutzen.

Wenn das mitgelieferte Programm damit nicht klarkommt, dann hat der 
retardierte Affe*, der es zusammengefrickelt hat, es nicht geschafft, 
Dokumentation zu lesen, die seit über 15 Jahren beschreibt, wie die 
korrekte Syntax für Schnittstellennamen aussieht.

*) Tut mir leid, aber bei so hartnäckiger Dummheit verliere ich die 
Contenance.

von Jonas (Gast)


Lesenswert?

mhhhhh deswegen möchte ich ja auch ein eigenes Programm haben?!?

Wo ist denn das Problem?

von Christian R. (supachris)


Lesenswert?

Na dann ist das relativ problemlos. In VBA gibts meines Wissens eine 
Komponente zum Kommunizieren mit der COM Schnittstelle. Ob die nun 
virtuell über USB ist oder echt, spielt dabei keine Rolle. Programmieren 
musst du das allerdings dann schon selbst.

von Jonas (Gast)


Lesenswert?

tja da kommt gleich wieder das nächste Problem, kenne mich nur sehr 
geringfügig mit der Programmierung aus, deswegen schreibe ich ja sowas 
auch hier ;)

von Max G. (l0wside) Benutzerseite


Lesenswert?

Jonas schrieb:
> tja da kommt gleich wieder das nächste Problem, kenne mich nur sehr
> geringfügig mit der Programmierung aus, deswegen schreibe ich ja sowas
> auch hier ;)

http://www.herber.de/forum/archiv/140to144/t141081.htm

Das muss an Hinweisen aber reichen. Support gibt´s gerne, aber für 
Arbeit abnehmen lassen ist das hier der falsche Ort. VBA ist nun 
wirklich kein Hexenwerk.

Alternativ: Studenten einstellen, der das kann ;-)

von Mark B. (markbrandis)


Lesenswert?

Max G. schrieb:
> VBA ist nun wirklich kein Hexenwerk.

Nicht? Ich hätte jetzt schon gedacht, dass diese Sprache von dunklen 
Gestalten ersonnen wurde. :)

von Juppi J. (juppiii)


Lesenswert?

wenn es als Com behandelt wird,kann auch .net zur Programmierung benutzt 
werden.
Ist das Protokoll bekannt,läßt sich eine schöne Oberfläche und Bedienung 
zaubern.

von der comport profi (Gast)


Lesenswert?

Hallo

Nach dem klar ist was du willst und hier viel Halbwissen verbreitet 
wurde möchte ich nun Klarheit schaffen:

Jonas schrieb:
> Gibt es eine Möglichkeit direkt, von mir aus in Excel, über VBA die
> Com-Schnittstelle anzusprechen, an der das Messgerät hängt und mir dann
> die Daten alle 5sec in der Excel Tabelle Zeile für Zeile schreibt?
Ja.

Jonas schrieb:
> Meine Programmierkenntnisse, was das angeht gehen gegen Null :-(
Kannst du irgendeine Programmiersprache? Kannst du VBA?
Wenn ja ist alles gut und du wirst es schaffen.
Wenn nein lerne programmieren, Google ist dein Freund.

Jonas schrieb:
> Deswegen auch die Frage an euch?! Ist es denn technisch zu realisieren?
natürlich.

Christian R. schrieb:
> In VBA gibts meines Wissens eine
> Komponente zum Kommunizieren mit der COM Schnittstelle.
Es gibt Komponenten die das können, aber bei VBA ist von Haus aus nichts 
dabei.

Christian R. schrieb:
> Ob die nun
> virtuell über USB ist oder echt, spielt dabei keine Rolle. Programmieren
> musst du das allerdings dann schon selbst.

Max G. schrieb:
> http://www.herber.de/forum/archiv/140to144/t141081.htm
> Das muss an Hinweisen aber reichen.
? willst du damit sagen das es nicht geht? oder das es schwer ist wenn 
man Microsoft Produkte verwenden will?
es geht, und mit ms ist es schwerer.

Max G. schrieb:
> Support gibt´s gerne, aber für
> Arbeit abnehmen lassen ist das hier der falsche Ort. VBA ist nun
> wirklich kein Hexenwerk.
da kann ich dir zustimmen.

Und jetzt mein gesammeltes Wissen:
Ich würde dir empfehlen die rsapi.dll zu verwenden. Die gibts dort zum 
Download, inklusiv Dokumentation:
1
h**p://www.b-kainka.de/rsapidll.zip
Das funktioniert zu 100% immer und überall. Getestet mit Windows XP und 
Office 2000 und 2003.

Was es noch gibt:
"MCS COMM OCX"
1
h**p://www.mcselec.com/index.php?option=com_docman&task=doc_details&gid=151&Itemid=54
Habe ich noch nicht ausprobiert.

Dann möchte ich der Vollständigkeit halber noch das MSComm Steuerelement 
von Microsoft erwähnen. Es ist Bestandteil von Visual Basic 6.0. Das 
heißt man kann es nicht einfach rumkopieren, sondern man muss VB6.0 
installieren.
Ich meine dieses hier:
1
http://www.amazon.com/Microsoft-Visual-Basic-Professional-Edition/dp/B000E81F9S/ref=sr_1_3?s=software&ie=UTF8&qid=1302776976&sr=1-3
Danach geht es aber immernoch nicht, weil es von über sogenannte 
Killbits deaktiviert wurde:
1
http://de.wikipedia.org/wiki/Killbit
Das heißt man muss es erst aktivieren, zb. mit diesem Programm:
"ActiveX Compatibility Manager v1.00"
1
http://www.nirsoft.net/utils/acm.html
Anschließend kann man diese Control auf diesem PC auch in Excel 
verwenden.
Die Doku dazu gibt es tief in der msdn verbuddelt:
1
http://msdn.microsoft.com/en-us/library/aa259393(v=VS.60).aspx


Viele Grüße
der comport profi

von Sam .. (sam1994)


Lesenswert?

Max G. schrieb:
> VBA ist nun
> wirklich kein Hexenwerk.

VBA ist ein Hexenwerk. Da sind C ähnlich Sprachen tausendmalleichter 
(für m ich zumindest).

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.