Autor Beitrag
mirco99
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Sa 02.12.06 11:14 
Hallo,

bin absoluter anfänger in delphi.
habe mir das Buch Delphi for Kids gekauft und lerne schritt für schritt.

Mein Problem ist, das ich ganz normalen Text oder Zahlen an ein Display über einen Microcontroler über die serielle schnittstelle senden möchte. Der controler schickt nach datenempfang auch einen text über rs232 zurück.

Bitte nicht schlagen. ich weiss das es hier unzählige fragen über die ansteuerung der schnittstelle beantwortet sind und es sogar schöne toturials gibt.

leider wird, wenn mein projekt fertig ist, es gewerblich genutzt und deswegen kann ich nicht z.B.: serialng von domis nehmen.

Es muss doch eine einfache delphi programmierung für die ansteuerung der schnittstelle geben.

ich wäre euch super dankbar, wenn mir jemand ein toturial oder besser ein beispielprogramm schicken könnte.

Da ich noch nicht so programmierfest bin, hilft mir keine antwort wie: probiers doch mal mit buildcommdcb oder so etwas.

Da ist es einfacher ein fertiges Programm zu verstehen und umzusetzten. Um die Frage vorab zu beantworten: Nein ich verdiene kein Geld mit diesem Programm und kann mir zusätzliche kosten nicht leisten!!!

Ich weiss ich verlange viel von euch, aber vielleicht kann ich irgendwann anderen leuten hier im Forun auch helfen.

Also vielen Dank vorab
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Sa 02.12.06 11:36 
user profile iconmirco99 hat folgendes geschrieben:
...leider wird, wenn mein projekt fertig ist, es gewerblich genutzt und deswegen kann ich nicht z.B.: serialng von domis nehmen.
...
Nein ich verdiene kein Geld mit diesem Programm und kann mir zusätzliche kosten nicht leisten!!!


Oh Mann, armes Deutschland. 8) "Leider wird das Programm gewerblich genutzt werden und ich verdiene kein Geld damit" Da kann man nur sagen : schön blöd. :mrgreen: Und dann noch für serielle Schnittstelle ? :shock: Aber egal. Als Komponenten würde ich AsyncPro verwenden. Die kosten mittlerweile nichts mehr. Habe selber zwar 4XX DM dafür bezahlt, aber nun gibts das eben umsonst mit dem Preis der Nicht-Weiterentwicklung.

_________________
Gruß
Hansa
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: Sa 02.12.06 13:36 
Falls Du Dich wirklich ernsthaft mit der Steuerung von Geräten unter Delphi befassen willst, solltest Du schon ein wenig investieren. Hier ein paar Tips (gibt unendlich viele Links):
www.bkainka.de/

Folgendes Buch behandelt die serielle Schnittstelle (und auch USB) sehr detailliert (mit CD):
B. Kainka, "Handbuch der PC-Mess- und Steuertechnik"
Hier wird die Ansteuerung der RS232 über die WinAPI und Delphi bis ins kleinste Detail erklärt.
Habe ich hier relativ billig (Neu!) gekauft:
cgi.ebay.de/Handbuch...Z40459QQcmdZViewItem

Weiter bei Google und im Forum unter "RS-232" gucken.

Weiter gibts auch noch weitere fertige Komponenten für RS-232 (TcomPort) unter:
sourceforge.net/projects/comport/

Evtl. das noch informativ:
hsg.region-kaisersla...ell/prowo04/TCPD.php

Die fertigen Komponenten sind sehr umfangreich und komfortabel, aber sie erschweren auch dadurch etwas das Verständnis für die eigentlich simplen Basis-Vorgänge. Hängt von Dir ab, was Du willst.
mirco99 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mo 04.12.06 10:13 
Super das Buch werde ich mir kaufen. Das ist genau, was ich gesucht habe.

Danke
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Mo 04.12.06 12:06 
user profile iconmirco99 hat folgendes geschrieben:
Super das Buch werde ich mir kaufen. Das ist genau, was ich gesucht habe.

Danke


Verwende nicht die serielle Schnittstelle.
Die wird es in absehbarer Zeit nicht mehr geben. Für dein Anliegen währe der USB Port geeignet.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 04.12.06 13:58 
user profile iconQuake User hat folgendes geschrieben:
Für dein Anliegen währe der USB Port geeignet.


Und was heißt USB ? Univeral Serial Bus.

_________________
Gruß
Hansa
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: Mo 04.12.06 14:52 
@Quake User:
Vorsicht - USB macht nur Sinn, wenn das Steuermodul auch ein echtes USB-Interface besitzt. Ein solches Interface selber zu bauen (und den USB-Controller zu programmieren!) ist trotz der angebotenen Kits sehr kompliziert und auch ziemlich teuer. Echte, fertige USB-Interboards für Steuerungen sind aber auch nicht gerade billig - wenn sie kein Schrott sind. Gerade bei einfachen Meßgeräten und den derzeit angebotenen preiswerten Interfaceboards herrscht nach wie vor die RS232 vor. Auch die meisten Mikrocontroller (z.B. die PICs) besitzen eine RS232-Schnittstelle.

Daß die neuen Rechner aus Preisgründen nur noch USB anbieten, finde ich schade, weil damit ein Großteil der Flexibilität verloren geht. Man kann zwar einen USB-RS232 Adapter nehmen (gibt's schon für ca. 10Euro bei Reichelt u.a. - USB1.1 reicht), hier kann es aber zu Überraschungen kommen, was die Übertragungsrate angeht. Das liegt an den festliegenden USB-Frames von 1 msec. Habe schon entsprechende Erfahrungen hinter mir. War schon interessant, was da so auf dem Oszilloskop zu sehen war. Aber mit etwas Sorgfalt bei der Progammierung kann man da einiges machen. So ein Adapter ist ein brauchbarer Kompromiß, wenn man nur noch USB-Ports am Rechner hat (der zugehörige Treiber erzeugt ja einen virtuellen seriellen COMport im WIn-Gerätemanger). Hier ist eine echte RS232-Schnittstelle besser, weil auch das Timing zuverlässiger ist. (Allerdings ist das wurscht, wenn man sowieso nur mit 9600 oder 19200bit/s arbeiten will :wink: ).

Auch bei einer "echten" USB-Schnittstelle an der Steuerung kann man aus dem o.g. Grund nicht davon ausgehen, daß das unbedingt schneller geht. Immer dann, wenn man nur relativ wenige Bytes sendet/empfängt, geht die Geschwindigkeit in den Keller, weil überwiegend fast leere Frames gesendet werden. Guck Dir mal die spezifizierten maximalen Übertragungsraten der USB-Interfaces (z.B. von Conrad oder AK-Module) an - die sind sehr niedrig. USB ist erst richtig schnell bei großen Datenmengen (HDD, Scanner usw.).
:oops: :oops:
Oh Mann..... das sollte kein Tutorial sein, sorry. :mrgreen:

Also kurz, wenn man sich eine Steuerung selber bauen will, ist RS232 immer noch der einfachste Einstieg.

Ich gebe Dir natürlich recht - die Zukunft geht auch hier zu USB, trotz der Einschränkungen. Leider bleibt dann einem Anfnger nichts weiter übrig, als fertige Boxen zusammenzustecken.

@Mirco99:
Fallst Du das Buch kaufst, kannst Du Dir ja auch die Kapitel über USB mal angucken. Ist schon ein Unterschied. Vom gleichen Verfasser gibt's übrigens auch das Buch "MSR mit USB". Wenn Du googelst, wirst Du bei "USB" erschlagen von Links...
mirco99 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 05.12.06 09:52 
"Daß die neuen Rechner aus Preisgründen nur noch USB anbieten, finde ich schade, weil damit ein Großteil der Flexibilität verloren geht. Man kann zwar einen USB-RS232 Adapter nehmen (gibt's schon für ca. 10Euro bei Reichelt u.a. - USB1.1 reicht)"

Das habe ich mir genauso gedacht. Wenn seriell erstmal problemlos funktioniert, kann ich später an eine USB Schnittstelle denken. Übertragungsrate bei 9600 reicht mir völlig.

Ich werde jetzt erstmal mein erstes Delphibuch zu ende studieren, das ist für nen anfänger, der Arbeiten geht nicht so einfach.

unter Robotikhardware.de bekommt man auch schon fertige USB Schnittstellen für den Funkbetrieb.

Eine solche Funkstrecke benötige ich und die Easy Radio Funkmodule nehmen einem sehr viel Programmieraufwand.
Ich habe gerade noch ein problem meine Display´s zu initialisieren.

Wie Ihr lest, kämpfe ich erade an mehreren Fronten. Der Microcrontroller will auch noch seine Inputs.

aber ich halte euch auf dem Laufenden
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Do 07.12.06 01:45 
user profile iconaim65 hat folgendes geschrieben:
@Quake User:
Vorsicht - USB macht nur Sinn, wenn das Steuermodul auch ein echtes USB-Interface besitzt.


Das sehe ich nicht so.
- RS323 existiert nicht mehr. Warum willst Du dafür ein Programm schreiben?
- der Microcontroller wird eine serielle Schnittstelle haben. Also verwendest Du einen Chip, wie den FTDI FT232BM und wandelst die Signale nach seriell.
- es gibt keinen anderen Weg!
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Do 07.12.06 01:53 
user profile iconaim65 hat folgendes geschrieben:

Daß die neuen Rechner aus Preisgründen nur noch USB anbieten, finde ich schade, weil damit ein Großteil der Flexibilität verloren geht.


Es sind keine Preisgründe.
- Versuche doch mal im Betrieb deine serielle Schnittstelle zu trennen oder
- 100 Geräte anzuschließen
- und schicke doch mal Daten an eine falsche COM. Was macht dann dein Gerät an diesem COM Port?
- erfähst Du wenn Du Daten bekommen hast?
- was ist wenn der FIFO Puffer voll ist?
- ...

Und - Bussysteme dürften flexibler sein. Ob es USB sein muss ist eine andere Frage. Ich halte nichts von USB.
Sicher ist USB recht komplex ABER es gibt gute, einfache Bausätze für wenig Geld.

Nebenbei der o.g. FTDI hat auch kaum was gekostet.
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Do 07.12.06 02:30 
user profile iconmirco99 hat folgendes geschrieben:

Das habe ich mir genauso gedacht. Wenn seriell erstmal problemlos funktioniert, kann ich später an eine USB Schnittstelle denken. Übertragungsrate bei 9600 reicht mir völlig.


Das ist leider völlig falsch. Das Programm für USB währe ein völlig anderes. Du schreibst dann also 2 Programme.
mirco99 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 07.12.06 10:20 
user profile iconQuake User hat folgendes geschrieben:
user profile iconmirco99 hat folgendes geschrieben:

Das habe ich mir genauso gedacht. Wenn seriell erstmal problemlos funktioniert, kann ich später an eine USB Schnittstelle denken. Übertragungsrate bei 9600 reicht mir völlig.


Das ist leider völlig falsch. Das Programm für USB währe ein völlig anderes. Du schreibst dann also 2 Programme.


Ja das ist mir klar, aber ich habe mir ein USB auf Serialkabel gekauft und meine ersten gehversuche mit dem asyncfree Beispielprogramm gemacht, an das Serialkabel ein Modem angeschlossen. Nach richtiger Einstellung des Com Ports und des Stopbits und Geschwindigkeit, kann ich pro Tastendruck am Modem sehen, das Daten ankommen. Genauso wenn ich das Modem einschalte, sendet dieses ein Zeichen an den PC zurück.
Ob die Zeichen jetzt korrekt ankommen, weiss ich natürlich nicht. Aber gesendet und empfangen wird schonmal etwas.

Ich blicke nur gar nicht durch die Programmierung. habe mir am Anfang ein bisschen zu viel vorgenommen, aber irgendwie muss ich tas hinbekommen. Heute abend wird erstmal weiter am Microcontroler programmiert, damit dieser die Seriellen Daten auf das Display anzeigen kann und ein Paar Messwerte zurückschickt.

Ich habe mir die Zeitschrift Toolbox vom Februar nachbestellt.
www.toolbox-mag.de/data/tx22006inh.pdf
Dort ist die letzte Version einer Komponente enthalten. Ich hoffe auch mit einer guten Beschreibung.

Ich habe nach langem Googeln eine Beschreibung gefunden, wie man ganz einfach eine Schnittstelle programmieren kann ohne zusätzlichen Komponenten.
Ich ich glaube mit opencomm, writecomm...bin bir aber nicht mehr ganz sicher.
Leider finde ich den Link nicht mehr. Kennt jemand eine vereinfachte Programmierung?

Ich muss nur in einem Textfeld einen Text eingeben, danach auf senden klicken.
Jetzt muss das Programm wissen, das es etwas empfangen muss und diese empfangenden Daten anzeigen.

Danke euch schonmal.
aim65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 312

Win 9x, Win XP
Delphi 3pro, 7PE
BeitragVerfasst: Do 07.12.06 19:44 
@ Quake User
Warum verwirrst Du mirco99 mit Begriffen aus der DOS-Steinzeit (FIFO, usw)? Ist doch bei Windows völlig transparent für den User. Eine simple Fehlerroutine bei einer falschen COM-Nummer ist nun wirklich das Einfachste der Welt. Liefert Windows frei Haus, auch z.B. Time-Out-Funktionen. Man programmiert übrigens über Windows keine USB-Schnittstelle, sondern das Gerät, das dranhängt. Jedes USB-Gerät muß einen eigenen Treiber bereitstellen, der dann per Programm angesprochen wird. Auch ein USB-Seriell-Adapter hat einen Treiber, der erst installiert werden muß (auch bei XP). Dann erscheint - wie ich schon gesagt hatte - dieser Adapter eben als serieller COM-Port im Gerätemanager und wird wie eine RS232-Schnittstelle angesprochen. Ich habe hier zwei solche Adapter durchgemessen (Timing, usw.), eine mit PL2303-Chip, der andere mit einem FTDI-Chip. Beide haben verschiedene Treiber.

RS232 ist noch lange nicht tot, nur weil die meisten Computer-User sie normalerweise nicht mehr brauchen. Warum gibt es denn so viele USB-RS232-Adapter zu kaufen? Dürfte noch ein ziemlich großer Markt sein. Sogar moderne GPS-Empfänger haben überwiegend noch RS232.

Noch mal, USB und Firewire sind eine feine Sache, wenn es um Plug&Play, große Datenmengen und Standardgeräte geht. Natürlich gibt es auch USB-MSR Interfaces, wie z.B. Compulab/USB, usw. Der Trend geht sicher auch hier zu USB.
Aber hier geht es doch erst mal um das grundlegende Verständnis für MSR.

@ mirco99
Man muß auch kein neues Programm für USB schreiben. Das Windows-IODriver Modell in der Windows-API spricht alle externen Geräte immer über die gleichen Routinen an - sie werden einfach als Dateien (Files) behandelt. Die einzige Änderung, die man in einem solchen Programm vorsehen muß, sind die unterschiedlichen Parameter für die anzusprechenden Geräte in "CREATEFILE(...)" und evtl. "OPENFILE(...)".
Der Datentransfer erfolgt dann grundsätzlich über "WRITEFILE(..)" bzw "READFILE(..)". Geschlossen wird das Gerät/ die Schnittstelle - welche Überraschung - mit "CLOSEFILE". Diese Basisfunktionen sind bei Delphi in der "Windows.pas bzw. ..dcu" gekapselt und können daher direkt aus einem Delphi-Programm heraus angesprochen werden.
Es gibt noch "DeviceIOControl(..)", mit dem man spezielle Steuerzugriffe bei einem Treiber durchführen kann. Das geht aber schon ins Eingemachte. Alle Port.dll's oder I/O-Komponenten greifen auf diese fünf Grundfunktionen zu.

Das ist alles ausführlich in dem o.g. Buch beschrieben.

Gib doch auch einfach mal "createfile" in die Suchfunktion hier im Forum ein. Dann haste erst mal genug zum Lesen. Ein paar Links:
www.delphi-library.d...=elektor%20%20%20dll
www.delphi-forum.de/...highlight=createfile
www.swissdelphicente.../showcode.php?id=841
Viel Vergnügen
mirco99 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 08.12.06 10:22 
danke aim65,

ich denke ohne dem Buch "Handbuch der PC-Mess und Steuertechnik", komme ich nicht weiter. Ich habe noch zu wenig kenntnisse, um zu wissen in welchen Objekten und Formularen was stehen muss, damit es funktioniert.

Die Links aus dem Delphi Forum hatte ich schon gefunden. Kann mir aber kein funktionierendes Programm daraus machen und ein fertiges Beispielprogramm finde ich nicht.

War gestern bis tief in die nacht dabei die 4 Displays mit nem Atmel in Bascom anzusteuern. Leider bietet Bascom keine vereinfachte Prozedur für 4 Displays, so das ich bitweise Programmieren muss. Gestern haben noch die Displays gewonnen und ich bin gefrustet ins bett...

Also ich meld mich, wenn es neuigkeiten gibt. oder wenn mir jemand ein Beispielprogramm für writecom usw.. mal posten kann,wäre ich ihm sehr dankbar.

Danke allen, das hier so fleissig gepostet wird.