Hallo zusammen, ich habe ein Gerät, mit dem ich über ein spezielles serielles Kabel in einen Stinknormalen seriellen Drucker (Epson LX300) die enthaltenen Daten als ASCII-Zeichen ausdrucken kann. Das Kabel ist insofern speziell, dass gegenüber einem normalen 9 poligen Kabel ein paar Adern intern vertauscht sind. Es scheint keine kommunikation zwischen Drucker und dem Gerät zu geben, denn wenn ich den Drucker während des Druckens ausschalte macht das Gerät bei seiner Datenausgabe ungestört weiter. Keine Fehlermeldung usw. Beim Wiedereinschalten des Druckers wird einfach da weitergedruckt, wo der Drucker abhängig von der Ausschaltzeit jetzt drann wäre. Ebenso kann ich das Gerät zum drucken bewegen, ohne, dass ein Drucker hinten drann hängen würde. Das Gerät merkt das scheinbar gar nicht. Es ist also quasi ein Monolog des Gerätes. Die Datenmenge beträgt immer ca. 1-2 DIN-A4 Seiten ASCII-Code. Nun würde ich die ausgegebenen Daten gerne auf einen PC ausgeben lassen. Also den PC anstelle des Druckers anhängen und mit einer Software dann die Daten auswerten. Müßte ich dann das spezielle serielle Kabel des Gerätes über ein Nullmodemkabel am PC anschließen? Gibt es fertige PC-Software, die die ASCII-Zeichenfolgen einließt? Oder hat jemand Visual-Basic-Code, der das für mich macht? Danke für Eure Hilfe und viele Grüße Karl
HTerm ist auch ein hervorragendes Programm für solche Zwecke. http://www.der-hammer.info/terminal/index.htm
Danke schon mal:-) Habe es zuerst mal mit Hyperterminal probiert. Zunächst gab es mal Datensalat. Nachdem ich die Parameter der COM-Schnittstelle korrekt erraten hatte, kamen dann auch auf den ersten Blick die richtigen Daten auf den Bildschirm. Beim genaueren Hinsehen ist mir dann aber aufgefallen, dass Teile des Textes einfach unterschlagen werden. Außerdem habe ich keine Funktion gefunden, wie ich die empfangenen Daten zur Weiterverarbeitung zwischenspeichern kann. Was ich überhaupt nicht verstehen kann: Ich habe versuchsweise noch eine Connection mit den gleichen Parametern (mehrfach verglichen) wie oben angelegt. Mit der neuen Connection ist Hyperterminal immer abgestürzt, sobald das Gerät Daten gesendet hat. Nach Neustart von Hyperterminal und laden der ersten Connection hat es wieder prima funktioniert. (abgesehen von den oben genannten Problemen) Dann habe ich es mit HTerm probiert. Hterm verschluckt zwar keine Daten, dafür druckt es keine Umlaute und zeigt mir so ziemlich alle Steuercodes an. (z.B. \r) Das gute daran ist aber, dass ich den eingelesenen Text abspeichern und mit beliebigen Editoren öffnen kann. Die Steuerzeichen werden hier durch leere Kästchen ersetzt. Das ist aber nicht so schlimm, wie bei Hyperterminal, dass bei mir Daten verschluckt hat. Jetzt kann ich mir in VB was friemeln, was die Dateien auswertet. Noch lieber wäre es mir natürlich, wenn ich die Daten direkt in Visualbasic schicken könnte, damit ich nicht den Umweg über das Termimalprogramm gehen muss. Falls jemand eine Lösung ein Beispiel Progrämmchen parat hätte...
Dann such dir mal im Netz einfach ein Beispiel wie du auf die Schnittstellen zugreifen kannst. Das gibt es bestimmt 1000fach.
>>Beim genaueren Hinsehen ist mir dann aber aufgefallen,
dass Teile des Textes einfach unterschlagen werden.
Klingt, als würde der Empfangspuffer zu klein sein. Und da das Gerät
kein Handshake zu verwenden scheint, sendet es munter weiter, wen der
Puffer voll ist. Also ein Terminalprogramm mit einstellarem Buffer
verwenden. BrayTerm müßte das können, google mal danach...
Sven
Danke Sven. Das wird es gewesen sein. HTerm hat scheinbar eine bessere Buffergröße voreingestellt, so dass es damit prima funzt. Der Datenimport aus der von HTerm erzeugten Textdatei in eine Access-Datenbank ist auch schon fertig:-) Nun fehlt nur noch die Möglichkeit, ein Terminalprogramm zu umgehen, indem man von Access aus die Schnittstelle direkt abhört. Dafür gibt es sogar ein kostenpflichtiges OCX von Microsoft, aber ich hoffe immer noch, dass jemand sowas von Hand programmiert hat oder irgendwo Beispielcode dafür herumliegen hat.
>>>Beim genaueren Hinsehen ist mir dann aber aufgefallen, >dass Teile des Textes einfach unterschlagen werden. Auch Hyperterminal kommt bei 115200 baud spielend mit! Ich glaube nicht das dein Gerät schneller ist!? Wenn da Zeichen oder Teile des Textes verschluckt werden und bei HTerm nicht dann liegt es genau an diesen Steuerzeichen die dich so stören. Einige davon bedeuten nämlich das das vorhergehende Zeichen gelöscht werden soll(Backspace) oder die ganze Zeile etc. Das du Probleme bei Hyperterm hast liegt daran dass du das falsche Protokoll (ANSI,VT100 etc.) gewählt hast und die Zeichen dementsprechend als Steuerzeichen interpretiert werden. Wenn du also in VB "was friemelst" dann solltest du die Daten binär einlesen sonst wird dir das gleiche passieren.
das Ding von "Sehr klein und weich" nennt sich MSCOMM und ist bei jeder VB-Version dabei. Dazu muß man nur die Library hinzufügen... (Rechtsklick auf die Tools [auf der linken Seite, da wo auch Command-Buutons und so auswählbar sind] und dann MSCOMM auswählen. Dann einfach das Icon auf deine Form ziehen. Den Rest musst du dir dann nur noch aus dem MSDN (Suchwort MSCOMM) heraussuchen.
Zum Mitlesen auf der Seriellen ist SioCheck zu empfehlen. Freundlichen Gruss Michael S.
Direkter Zugriff auf die RS232 per Visual Basic (mit Code): http://www.activevb.de/tutorials/tut_com/com.html Pete
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.