Programm erstellen RS232 Schnittstelle

tlows112

Newbie
Registriert
Nov. 2009
Beiträge
1
Hallo liebe Programmiergemeinde,



Ich habe ein kleines Problem und würde mich über eure Hilfe sehr freuen!
Ich habe so gut wie keine Programmierkenntnisse, bräuchte aber für die
Realisierung eines Projektes ein kleines Hilfsprogramm.

Ich erkläre mal das Problem:

Ich bekomme über die RS232-Schnittstelle eine Meldung mit Datum, Uhrzeit,
Protokollnummer und Messwert geliefert.
(9600 Baud, 8Datenbits, 1 Stoppbit,keine Parität, Floatcontrol=none)
Per Hyperterminal kann ich diese auch ansehen, aber das reicht leider nicht.
Ich muss aus jeder aktuellen Nachricht nämlich nur das Messergebnis(Messwert) rausfiltern
und an ein gesondertes Programm übergeben.

Folgende Überlegungen habe ich mir gemacht:

Das Programm sollte als Schleife laufen.
Wenn es ein "Telegramm" per RS232 erhällt muss es den Messwert filtern.
Das Messergebnis ist immer 2-3 Stellen lang und steht nach einem * und
endet mit einem Leerzeichen.
Dann muss es den Messwert übergeben.
Die Übergabe erfolgt so, dass ein gesondertes Programm mit dem Messwert
als Parameter gestartet wird. (C:/bsp.exe -messwert)
Danach soll die Auswertung weiterlaufen.


Für Menschen mit guten Programmierkenntnissen sollte das wahrscheinlich machbar sein,
aber da ich leider 0 Ahnung habe und mich nur mit der Handwareumsetzung auskenne brauche
ich bitte eure Unterstützung!

Welche Programmiersprache benutzt wird ist mir unwichtig, hauptsache die Vorgaben werden erfüllt.
Muss graphisch nicht aufwendig gemacht sein. Es muss mit einem Windows Rechner mit Win 2000 oder XP laufen.

Ich würde mich über jede Hilfe freuen!!!

Ihr erreicht mich per Mail oder hier im Forum. E-Mail: tlows@gmx.de
 
AW: Hilfe: Programm erstellen RS232 Schnittstelle

Was Schleife, Parameter und externes Programm sind, ist dir offenbar bekannt. Du bist also kein komplett computerfremdes Wesen. Dann schnapp dir irgendeine Programmierumgebung und lies dir einen Schnelleinstieg zur jeweiligen Programmiersprache im Web durch (also kein fettes Buch!). Datei einlesen, bischen rumrechnen, einen Text ausgeben, ein anderes Programm aufrufen ... mehr brauchst du nicht. Das hast du dir in spätestens 3 Stunden selbst beigebracht. Programmieren ist kein Hexenwerk. Einfach mal versuchen. :)

Die serielle Schnittstelle wird je nach Betriebssystem und Programmiersprache fast immer gleich oder ähnlich wie eine Datei mit besonderem Namen angesprochen und sollte somit keine große, zusätzliche Hürde darstellen.
 
Zuletzt bearbeitet:
AW: Hilfe: Programm erstellen RS232 Schnittstelle

ich würde ad-hoc jetzt visual Basic 9 empfehlen. Dort ist die RS232-Schnittstelle nähmlich eine art Steuerelement, welches über die Visual-Studio-Oberfläche konfigurierbar ist.

Die Umgebung ist kostenlos:
http://www.microsoft.com/germany/express/product/visualbasicexpress.aspx

In deiner Anwendung solltest du keine Probleme mit der Threadbehandlung der Schnittstelle haben. wenn doch, einfach nochmal nachfragen... :)

Der rest ist eigentlich formsache ;)
 
AW: Hilfe: Programm erstellen RS232 Schnittstelle

1.) Bitte auf keinen Fall das MS Comm Control verwenden. Das ist total veraltet und macht nebenbei nur Probleme. Das ging mir mir sogar schon einmal so weit, dass ich es von einem Tag auf den anderen bei einem Kunden nicht mehr neu einfügen konnte in das Projekt, das damals noch in Access und VBA gelöst war. Benutzen ist noch gegangen aber hinzufügen oder Formular kopieren nicht mehr. Das war nur zu VB6 Zeiten sehr praktisch, da es sonst keine schnelle Möglichkeit gab auf die serielle Schnittstelle zu zugreifen und gerade VB Leute ziemlich scheu sind, was die Verwendung der Windows API angeht.

2.) Auf eine COM Schnittstelle sollte man nicht wie auf eine Datei zugreifen. Das ist eine alte Unart aus der DOS Zeit. In Vista funktioniert ein "echo Test > com1" z.B. schon nicht mehr. In .NET lässt sich auf normalem Weg auf kein FileStream mehr auf eine virtuelle Datei wie COM1 oder LPT1 erzeugen.
Weiters wird dann die Baudrate verwendet, die im Gerätemanager eingestellt ist und diese wird in den meisten Fällen nicht stimmen. Die Baudrate muss immer vom Anwendungsprogramm konfiguriert werden. Wenn man sauber programmiert, dann auch Datenbits, Stoppbits und Parity.

3.) In C# bzw. VB.NET ist geht es meiner Meinung nach am Einfachsten, wenn man die unsauberen Lösungen weglässt. Dort gibt es eine Klasse System.IO.Port.SerialPort. Mit der kann man ohne viele Umstände einfach in einer Schleife einlesen, aber wenn man noch nie irgendetwas programmiert hat außer vielleicht zwei Stunden Hallo World im Informatikunterreicht der Hauptschule, dann ist es wahrscheinlich besser, wenn man sich da gleich jemanden holt, der das für einen macht. Das Einlesen ist ja nicht alles, weil ja das Zerlegen des Ergebnisses und herausholen des Messwerts ja auch für einen kompletten Anfänger etwas zu viel ist.

4.) Gibt es das Programm, dem man den Messwert übergeben soll eigentlich schon oder muss das auch geschrieben werden.

P.S.: Wenn man mit der seriellen Schnittstelle arbeitet, dann muss man beachten, dass diese nur einen Programm auf einmal zugeordnet sein kann und es gibt meines Wissens nach auch keine praktische Möglichkeit herauszufinden, welches Programm das gerade ist. Wenn man also eine Software auf COM1 laufen lässt, so muss man genau darauf achten, dass die COM1 auch von keinem anderen Programm belegt wird. Virtuelle Druckertreiber, die einen Pseudo Port brauchen sind da eine Gefahrenquelle. Die werden schnell einmal verstellt z.B. auf COM1, was dazu führt, dass der Druckspooler sind die COM1 unter den Nagel reißt.
 
Zuletzt bearbeitet:
AW: Hilfe: Programm erstellen RS232 Schnittstelle

So wie ich seinen text gedeutet habe sucht er auch einen der ihm das kleine Hilfsprogramm schreibt und will es nicht selbst schreiben.

und in 3 Stunden im Internet sich das programmieren aneignen, wenn man zuvor noch nichts geschrieben hat, kannste auch komplett knicken.
Hallo Welt ist da schon drin, aber nicht solch ein hilfsprogramm...
 
Auf eine COM Schnittstelle sollte man nicht wie auf eine Datei zugreifen. Das ist eine alte Unart aus der DOS Zeit.
Ich glaube er hat es anders gemeint, denn mit der WinAPI liest bzw. schreibt man auf den Seriellen Port über ReadFile bzw. WriteFile.
Also stimmt es schon, dass man auf die COM Schnittstelle wie auf eine Datei zugreift, ohne jedoch die alte DOS Art zu verwenden.

Ansonsten stimme ich dir natürlich zu!

Gruß
BlackMark
 
Zurück
Oben