Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ComPort auslesen (https://www.delphipraxis.net/87368-comport-auslesen.html)

joel93 27. Feb 2007 17:14


ComPort auslesen
 
Ja Ja, ich weis, euer erster gedanke is wieder "der soll in der suche gucken".
Aber da is über comports sogut wie nix! :wall:

Also:
Ich hab nen Multimeter mit ner RS232 Schnittstelle hab aber keine software.
Im Handbuch stand volgendes:

Zitat:

c) Folgendes gilt zu beachten, wenn sie ihre eigene Software erstellen:

Ein Datenformat ist 14 Byte lang. Die Zusammensetzung lautet wie folgt:
Delphi-Quellcode:
Byte   1 2 3 4 5 6 7 8 9 A B C D E
bsp.1   D C  - 3 . 9 9 9 V      CR
bsp.2           3 . 9 9 9 M o h m CR
(Musste DelphiQuellcode drüber schreiben weil sonst die Leerzeichen weg warn)
Wie ihr euch schon denken könnt, will ich ersma nur das auslesen können, den rest mach ich dann selber...

Der_Unwissende 27. Feb 2007 17:18

Re: ComPort auslesen
 
Zitat:

Zitat von joel93
Ja Ja, ich weis, euer erster gedanke is wieder "der soll in der suche gucken".
Aber da is über comports sogut wie nix! :wall:

Hi,
dann such mal nach TComPort (also z.B. auch bei google). Ist eine Komponente, die eine sehr gute Kapselung der RS-232 Schnittstelle bietet, auch gut Dokumentiert, einfach mal schauen und ggf. weiter nach fragen.

Gruß Der Unwissende

shmia 27. Feb 2007 17:45

Re: ComPort auslesen
 
Bevor du anfängst zu Programmieren solltest du unbedingt den Datenverkehr
mit einen Terminalprogramm anschauen.
Unter Start->Programme->Zubehör findet sich das Programm "Hyperterminal". (je nach Betriebssystem)
Das ist zwar lang nicht so "Hyper" wie der Name vorgibt, aber zum Testen der seriellen Datenverbindung gut geeignet.
Ohne diese Vorprüfung kann es sein, dass du einen Fehler in deiner Software suchst, obwohl der Fehler ganz woanderst liegt (Datenkabel falsch/defekt, falscher COM-Port, falsche Baudrate, falsche Parität, Probleme mit Hardware-Handshake, Multimeter sendet nicht, ...).

Die RS-232 Schnittstelle ist eigentlich eine technische Fehlkonstruktion, da zu viele Möglichkeiten an Parametern (Baudrate, Datenbits, Stopbits, Parity), Kabelbelegungen offen bleiben. Hoffentlich stirbt sie bald aus.

christian.noeding 27. Feb 2007 17:52

Re: ComPort auslesen
 
Zitat:

Hoffentlich stirbt sie bald aus
Meine Meinung: hoffentlich bleibt sie möglichst lange erhalten!!! Hast du schonmal ne eigene Schaltung mit USB designed? Ich schon... ist eine sch... Arbeit, wenn man nicht aus Kostengründen auf nen FTDI Chip zurückgreifen will. Eine RS232 Verbindung ist mit dem µController schnell etabliert, da viele Controller bereits eine eingebaute UART haben. Es gibt keine einfachere Kommunikationsschnittstelle, als die RS232.

Du kannst zudem sehr leicht eine Pegelwandlung zwischen RS232, TTL und RS485 über billige Bauteile herstellen, was z.B. sich sehr stark auf die Übertragungslängen auswirkt (von wenigen Metern bishin zu Kilometern!!!)


Also vorsicht mit solchen Wünschen ;-)

joel93 27. Feb 2007 20:07

Re: ComPort auslesen
 
Ich guck morgen mal...
Danke schonma, aber meine frage is ja noch nich beantwortet!...

EDatabaseError 27. Feb 2007 20:09

Re: ComPort auslesen
 
Zitat:

Zitat von christian.noeding
Zitat:

Hoffentlich stirbt sie bald aus
Meine Meinung: hoffentlich bleibt sie möglichst lange erhalten!!! Hast du schonmal ne eigene Schaltung mit USB designed? Ich schon... ist eine sch... Arbeit, wenn man nicht aus Kostengründen auf nen FTDI Chip zurückgreifen will. Eine RS232 Verbindung ist mit dem µController schnell etabliert, da viele Controller bereits eine eingebaute UART haben. Es gibt keine einfachere Kommunikationsschnittstelle, als die RS232.

Du kannst zudem sehr leicht eine Pegelwandlung zwischen RS232, TTL und RS485 über billige Bauteile herstellen, was z.B. sich sehr stark auf die Übertragungslängen auswirkt (von wenigen Metern bishin zu Kilometern!!!)


Also vorsicht mit solchen Wünschen ;-)


Wenn es die RS232 Schnittstelle nicht mehr gibt - mit was soll man dann arbeiten
Diese Schnittstelle ist noch NICHT ersetzt. Auch nicht durch USB.

Wenns nach mir ginge hätte jeder PC eine RS232 Schnittstelle und das bis es was besseres / stabileres gibt.

Mfg
Tobi

joel93 28. Feb 2007 19:57

Re: ComPort auslesen
 
HyperTerminal is nich so hyper...
da stand nur verbunden, und die Zeit, vllt. liegst daran, dass ich im HTerminal nich 600 baud einstellen kann :gruebel: , das steht nähmlich in dem handbuch.
Brauch ich eigentlich ne Flusssteuerung?!?

christian.noeding 28. Feb 2007 20:09

Re: ComPort auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, damit von mir auch was konstruktives Beigetragen wird: ich habe eben gerade mal ein kleines Programm gehackt, welches dir in einer Listbox die eingehenden Daten am COM2 mit 600 Baud anzeigt. Sollte gehen - habe jetzt leider kein RS232-Stringsendehardware hier. Aber der Sourcecode hilft dir auf jeden Fall weiter ;-)

Die Sources nutzen die TComport-Komponente (auch hier im Forum irgendwo zu finden). Die musst du zum Compilen erst in Delphi installieren.

Viel Glück!
Christian!

messie 28. Feb 2007 20:49

Re: ComPort auslesen
 
Zitat:

Zitat von shmia
Die RS-232 Schnittstelle ist eigentlich eine technische Fehlkonstruktion, da zu viele Möglichkeiten an Parametern (Baudrate, Datenbits, Stopbits, Parity), Kabelbelegungen offen bleiben. Hoffentlich stirbt sie bald aus.

Wenn Du Dir die industriellen Bussysteme ansiehst wirst Du sehen, daß sich dort meist serielle Standards tummeln, die eine gewisse Ähnlichkeit mit RS232/422/485 besitzen. Auch die Kfz-Bussysteme und Serial ATA sind ja Nachfolger dieses Gedankens. Und mit einem billigen 9 Euro-Wandler (USB) kann ich problemlos 1 GBit übertragen.
Der entscheidende Vorteil ist die asynchrone Übertragung. Alle synchronen Datenübertragungen sind stark beschränkt und haben einen erheblichen Synchronisationsaufwand, asynchrone sind recht flexibel. Dadurch auch die Vielzahl von Parametern.

Grüße, Messie

Edit: Korrekturen siehe nachfolgender Post. Da ist mir wohl die letzte DSL-Diskussion etwas in die Quere gekommen... :oops:

Reinhard Kern 28. Feb 2007 23:54

Re: ComPort auslesen
 
Zitat:

Zitat von messie
Zitat:

Zitat von shmia
Die RS-232 Schnittstelle ist eigentlich eine technische Fehlkonstruktion, da zu viele Möglichkeiten an Parametern (Baudrate, Datenbits, Stopbits, Parity), Kabelbelegungen offen bleiben. Hoffentlich stirbt sie bald aus.

Wenn Du Dir die industriellen Bussysteme ansiehst wirst Du sehen, daß sich dort meist serielle Standards tummeln, die eine gewisse Ähnlichkeit mit RS232/422/485 besitzen. Auch die Kfz-Bussysteme und Serial ATA sind ja Nachfolger dieses Gedankens. Und mit einem billigen 9 Euro-Wandler (USB) kann ich problemlos 1 GBit übertragen.
Der entscheidende Vorteil ist die asymmetrische Übertragung. Alle symmetrischen Datenübertragungen sind stark beschränkt und haben einen erheblichen Synchronisationsaufwand, asymmetrische sind recht flexibel. Dadurch auch die Vielzahl von Parametern.

Grüße, Messie

Hallo, wenn man symmetrisch durch synchron ersetzt und assymmetrisch durch asynchron, machen deine Worte Sinn.

Gruss Reinhard

joel93 1. Mär 2007 19:17

Re: ComPort auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was das?
p.s. Ich glaub, ich brauch an meinem pc aber com1

edit:
*.bpl mmmmmh?!?! Könnte das damit was zu tun haben das ich auf dissem rechner (papas) grad kein D installiert hab???

christian.noeding 1. Mär 2007 19:27

Re: ComPort auslesen
 
Nun, ich bin davon ausgegangen, dass du ein Delphi auf deinem PC installiert hast. Egal - ich kompiliere dir gleich nochmal die Exe und dann mit den VCL-Packages und auch auf COM1...

moment...

christian.noeding 1. Mär 2007 19:30

Re: ComPort auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, hier ist die Datei... Quellcode wurde auch entsprechend angepasst.

Das Delphi-Projekt ist die RS232Reade.DPR


Viel Erfolg! :)

messie 1. Mär 2007 19:59

Re: ComPort auslesen
 
Zitat:

Zitat von joel93
HyperTerminal is nich so hyper...
da stand nur verbunden, und die Zeit, vllt. liegst daran, dass ich im HTerminal nich 600 baud einstellen kann :gruebel: , das steht nähmlich in dem handbuch.
Brauch ich eigentlich ne Flusssteuerung?!?

Hallo Joel,
probier' bitte nochmal Hyperterminal und 9600 Baud. Das könnte auch ein Tippfehler in der Anleitung des Messgeräts sein. Denn als 600 Baud angesagt waren, gab es eigentlich noch keine Multimeter, die so etwas konnten. Unter 1200 Baud habe ich nichts kennengelernt in der Messtechnik. Es sein denn, Du hast eine Halterung für einen Telefonhörer auf dem Messgerät. :lol: Und bei den Einstellungen ist üblich: 8 Datenbits, keine Parität, ein StoppBit (8N1). Auch diese Einstellungen solltest Du nochmal im Handbuch nachsehen.

Und dann möchte ich noch darauf hinweisen, dass viele dieser Geräte gepollt sind, also erst auf einen Polling-Befehl hin einen Wert senden (z.B. PV? + <CR> oder so). Das läßt sich dann meist aber auch mit HyperTerminal probieren. Vielleicht sagt Du mal den Typ des Messgeräts.

OT: ich habe in den letzten Tagen merkwürdige Verzögerungen in den Posts - eine Anwort geschrieben und einige Stunden später sind dort vier Beiträge dazwischengerückt, die ich nicht sehen konnte.... Habt Ihr das auch?

Grüße, Messie

joel93 4. Mär 2007 11:45

Re: ComPort auslesen
 
Ich glaube das is nen Voltkraft ME-32, bin mir aber nich sicher. :gruebel:

christian.noeding 4. Mär 2007 11:52

Re: ComPort auslesen
 
Also, wenns ein Voltcraft ME-32 ist, dann stimmen die 600 Baud.

Zitat:

Mit wenigen Ausnahmen wird die Baudrate auf 1200 Baud eingestellt.

Folgende Geräte arbeiten mit abweichenden Einstellungen:

M-3860 M, M-4660 A, M-4660 M und MXD-4660 A erfordern 9600 Baud
GDM 703, 704 und 705 funktionieren ebenfalls mit 9600 Baud
VC 630, VC 650 und VC 670 laufen auf 4800 Baud
ME-22 RSM, VC 635, VC 655 , ESCORT 97 und VC 820, VC 840 laufen mit 2400 Baud
ME-32 und ME-42 arbeitet mit 600 Baud

Hinweis! Beim Druck der Bedienungsanleitungen zu den Meßgeräten haben sich teilweise Fehler eingeschlichen. Hier sind die korrekten Angaben.

In manchen Bedienungsanleitungen werden Sie aufgefordert, beim Anschluß des Multimeters an einen Computer das Meßgerät in den COM-Modus zu schalten. Diese Angabe ist nur bei VC 506, VC 630, VC 650, VC 670 , VC 635, VC 655 und ESCORT 97 richtig. Alle anderen Geräte sind nach dem Einschalten sofort betriebsbereit.

Die Aktivierung des COM-Mode am DMM führt in Verbindung mit den Beispielen zu fehlerhaften Datenübertragungen.
Siehe hier: Software Digiscop Infos



bis denn,
Christian :)

messie 4. Mär 2007 15:48

Re: ComPort auslesen
 
Man lernt nie aus.
Ich hatte unabhängig vom letzten Post mal die Anleitung vom 3850 rausgesucht, das Originalskript von Kunze von 93. Da stand auch die 1200 drin.

Wichtige Information außer den COM-Einstellungen ist, daß Du die Daten pollen mußt, indem Du ein "D" ans Multimeter schickst.
Das sollte auch mit Hyperterminal ohne Probleme funktionieren.

Bist Du denn sicher, daß Dein Anschlußkabel richtig ist?

Grüße, Messie

joel93 4. Mär 2007 17:34

Re: ComPort auslesen
 
Kla!

Warum ich mir so sicher bin? :wiejetzt:
Wir ham da immer nen paa von in der firma liegen :thumb: , wir machen so was mit automatisierungstechnik (SPS),
Ich könnt ja auch mein onkel fragen, der mach sowas mähmlich(arbeitet bei muhr und bänder falls das einer kennt), der hat aber im moment keine zeit-wirklich keine.

edit:
Wie schik ich im HT nen "d"?

messie 4. Mär 2007 21:21

Re: ComPort auslesen
 
Zitat:

Zitat von joel93
Wie schik ich im HT nen "d"?

indem Du die D-Taste drückst. Die Eingabe wird sofort in den Ausgangspuffer der seriellen Schnittstelle geschrieben.
Beim Kabel gibt es zwei Möglichkeiten: Modem- und Nullmodem. Du solltest beide verfügbar haben.

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz