AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RS232 Problem

Ein Thema von perle · begonnen am 10. Aug 2004 · letzter Beitrag vom 6. Sep 2004
Antwort Antwort
perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#1

RS232 Problem

  Alt 10. Aug 2004, 08:11
Morgen zusammen. Ich habe folgendes Problem (ich hoffe das ist die Richtige Sektion):

Die Geschichte:

Auf der Arbeit haben wir eine Alarmanlage, an die man direkt einen Drucker (entweder über parallel oder seriellen Anschluß) anschließen kann. Immer wenn die Alarmanlage nun ein Event auslöst (bzw eine bestimmte Zahl von Events , wie z.b. das Scharf - / Unscharfschalten , oder wenn ein Alarmausgelöst wird) dann wird quasi das Log auf dem Drucker ausgegeben, ungefähr in dieser Form:

Code:
Ereignis : 0540
Datum : 21.02.2004. Uhrzeit: 17:50:55
Extern Scharf
Bereich 5 Keller EDV Raum
Die Aufgabe:

Ich soll nun ein Programm schreiben, wobei statt dem Drucker ein PC an die RS-232 Schnittstelle angeschlossen, die Daten, die eigentlich an den Drucker gesendet werden gespeichert und in eine Datenbank geschrieben werden. Dazu müssen sie natürlich vorher vernünftig geparsed werden.

Das Problem:

Inzwischen habe ich eine Komponente gefunden, mit der man Char für Char einlesen kann, was über den Com-Port reinkommt (AsynchPro heisst die Komponente). Da ich jedoch nicht so ohne weiteres an die Alarmanlage ran darf, weiß ich leider nicht, in welcher Form die Daten an den Drucker gesendet werden...also weiß ich auch nicht, wie ich diese Parsen muss.
Kann mir jemand sagen, wie die Daten gesendet werden? Kommen da ganze Strings zusammen? (bzw char für char)
Ich habe die Schnittstelle bisher nur mit einer alten Com-Maus getestet und die sendete nur verwirrende Ascii Zeichen.

Ich bin für jede Hilfe sehr Dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: RS232 Problem

  Alt 10. Aug 2004, 08:14
an den drucker werden die daten per druckertreiber übermittelt. Das heißt es kommen dir unverständliche zeichen an dem anschluss an die der drucker in aller regel auswertet und auf papier umsetzt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: RS232 Problem

  Alt 10. Aug 2004, 08:18
Hai perle,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Ich gehe mal davon aus das der Drucker ein einfacher Nadeldrucker mit Endlospapier ist?
Im Allgemeinen senden Alarmanlagen reine ASCII-Zeichen zu den Druckern. Es sollte also ziemlich einfach sein die Daten auszulesen.

Zum testen würde ich empfehlen ein einfaches Terminalprogramm an die Anlage zu hängen und mal zu schauen was da so ankommt.

Zitat von perle:
..(ich hoffe das ist die Richtige Sektion...
Nicht wirklich Darum verschiebe ich die Frage mal.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
10. Aug 2004, 08:19
Dieses Thema wurde von "Sharky" von "Windows API" nach "Sonstige Fragen zu Delphi" verschoben.
Ich denke hier ist die Frage ersteinmal am besten aufgehoben
perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: RS232 Problem

  Alt 10. Aug 2004, 08:32
Zitat von Sharky:
Hai perle,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".
Dankeschön....und auch für die schnelle Antwort.

Zitat:

Ich gehe mal davon aus das der Drucker ein einfacher Nadeldrucker mit Endlospapier ist?
richtig

Zitat:
Im Allgemeinen senden Alarmanlagen reine ASCII-Zeichen zu den Druckern. Es sollte also ziemlich einfach sein die Daten auszulesen.

Zum testen würde ich empfehlen ein einfaches Terminalprogramm an die Anlage zu hängen und mal zu schauen was da so ankommt.
puh, hoffe ich mal dass das stimmt, wenn das mit dem Druckertreiber so sein sollte, dann gute nacht
Wegen dem Terminal programm....wie mache ich das? Funktioniert es , wenn ich per Com Kabel 2 PC's verbinde und mit dem Hyperterminal Daten versende?

[/quote]
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: RS232 Problem

  Alt 10. Aug 2004, 08:41
Zitat von perle:
...puh, hoffe ich mal dass das stimmt, wenn das mit dem Druckertreiber so sein sollte, dann gute nacht
Halte ich ersteinmal für unwahrscheinlich. Dann müsste der Treiber ja in die Alarmanlage eingespielt werden. Und da, aus gutem Grund, diese Anlagen so fehlerfrei wie möglich laufen sollen macht es keinen Sinn einen Treiber zu verwenden.
Bei den Anlagen an denen ich früher (lange ist es her) mal gesesen habe wurde wirklich reiner ASCII-Code gesendet. Inklusiver der normalen ASCII-Steuerzeichen für Wagenrucklauf und Zeilenwechsel.

Zitat:
Wegen dem Terminal programm....wie mache ich das? Funktioniert es , wenn ich per Com Kabel 2 PC's verbinde und mit dem Hyperterminal Daten versende?
Du brauchst ein "Nullmodem-Kabel" sprich ein einfaches Kabel wo die Sende und Empfangsleitung gekreuzt sind.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#7

Re: RS232 Problem

  Alt 10. Aug 2004, 08:41
Hallo Perle,

über eine serielle Schnittstelle kommen die Zeichen erst mal grundsätzlich char für char. Du mußt dir also die Strings selber zusammenbauen. Das Zeilenende dürfte ein CarriageReturn LineFeed sein. Alles was der Drucker ausgibt dürfte als darstellbarer ASCII-Code kommen. Du mußt jedoch auch mit FormFeeds rechnen mit denen dem Drucker mitgeteilt wird das jetzt eine Seite rum ist und es ist auch nicht auszuschließen das noch irgendwelche anderen Kommandos an den Drucker geschickt werden. Wenn du wirklich was anständiges Programmieren willst mußt du entweder an die Alarmanalage ran oder brauchst zumindest ne entsprechende Doku.

Wenn du AsyncPro benutzt sollte bei den Demos auch ein Terminal-Programm dabei sein, das kannst du ja für die ersten Steps benutzen. Dann hast du auch schon mal ne Programmiergrundlage.
Gruß
UweR
  Mit Zitat antworten Zitat
Mibu

Registriert seit: 3. Sep 2004
Ort: Bad Kreuznach
2 Beiträge
 
Delphi 7 Professional
 
#8

Re: RS232 Problem

  Alt 6. Sep 2004, 10:09
[quote="UweR"]Hallo Perle,

[...]
über eine serielle Schnittstelle kommen die Zeichen erst mal grundsätzlich char für char. Du mußt dir also die [...]


Unter http://www.toolbox-mag.de/ findest Du eine Komponente Namens TSerial. Die verwende ich in vielen Projekten. Die Komponente hat ein Ereignis OnEventChar(). Das wird ausgelöst, wenn das als EventChar definierte Zeichen empfangen wird (hier also CR)
Im Ergebnis erhälst du eine komplette Zeile als String.


Beste Grüße
Michael
Michael Busser
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz