Forum: Mikrocontroller und Digitale Elektronik LPT Schnittstelle abfangen und Daten auf USB Stick (Datei) schreiben


von Der Rächer der Transistormorde (Gast)


Lesenswert?

Ok das ist sicher irgendwelcher Exotenkram, aber vielleicht hat ja 
jemand so etwas schon mal gemacht.

Folgender Sachverhalt:

Ein Messgerät (Laboranalyse) wird von einem Uralt-PC gesteuert. Diverse 
proprietäre Hardware da drin, keine Chance das ganze zu modernisieren.

Datenausgabe auf den Drucker, (PCL oder Epson FX Protokoll) das war's.

Das ganze soll jetzt in ein pdf gedruckt werden, was auf dem DOS Rechner 
"etwas schwierig" ist.

Folgende Idee: Die Daten die zum Drucker gesendet werden an der LPT 
Schnittstelle abfangen (das Protokoll ist ja nicht allzu aufwendig), in 
eine Datei schreiben und diese an einem modernen Rechner in ein pdf 
drucken.

"Druckdatei zu pdf" Lösungen gibt es, nur wo und wie bekomme ich die 
"LPT Schnittstelle zu Datei" Funktion?

von Peter II (Gast)


Lesenswert?

kann das Programm die Daten auch zu einer Seriellen schnittstelle 
ausgeben? Es gab ja einige drucker die hatten einen com-port.

Dann könntest du einfach per CrossOver kabel einen 2.PC anschließen.

> Druckdatei zu pdf" Lösungen gibt es
aber doch bestimmt nicht für ein altes Epson protokoll.

von hans (Gast)


Lesenswert?

Wenn er z.B. auf LPT1 druckt sollte

MODE LPT1=C:\TEST.TXT

den Ausdruck auf DOS-Ebene umleiten.

hans

von bitte löschen (Gast)


Lesenswert?

Mit etwas Glück nutzt das DOS-Programm den Drucker-Interrupt 17H für die 
Ausgabe. Da könnte man eine ISR reinhängen. Ist zu lange her, als dass 
ich Dir mal eben etwas dazu hacken könnte, aber mit diesem Ansatz kämst 
Du ohne zusätzliche selbst gebastelte Hardware aus.

von Holler (Gast)


Lesenswert?

das Problem wurde schon for über 20 Jahren mit diversen, 
speicherresidenten Tools gelöst. Eines hies Plotfang.exe.
Wenn du im Netz nicht fündig wirst, durchsuchte ich meine alten 
Disketten, falls noch lesbar.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Peter II schrieb:
> kann das Programm die Daten auch zu einer Seriellen schnittstelle
> ausgeben? Es gab ja einige drucker die hatten einen com-port.

nope

>
> Dann könntest du einfach per CrossOver Kabel einen 2.PC anschließen.


Schön wäre es, danke für die Idee, Aber das ganze ist knallhart auf 
Portebene programmiert.

>
>> Druckdatei zu pdf" Lösungen gibt es
> aber doch bestimmt nicht für ein altes Epson protokoll.


FX80 geht super mit DOSprn

von Der Rächer der Transistormorde (Gast)


Lesenswert?

hans schrieb:
> Wenn er z.B. auf LPT1 druckt sollte
>
> MODE LPT1=C:\TEST.TXT
>
> den Ausdruck auf DOS-Ebene umleiten.


Funzt nicht, weiß der Teufel was die da programmiert haben. Das zweite 
Problem ist das die Datei dann auf dem gleichen Rechner sind und das 
Programm nicht unterbrochen werden kann.

Holler schrieb:
> das Problem wurde schon for über 20 Jahren mit diversen,
> speicherresidenten Tools gelöst. Eines hies Plotfang.exe.

Danke für den Tip aber siehe oben. Zusätzlich brauchen die residenten 
Programme Speicher, der ist aber auch ausgequetscht.

Philipp K. schrieb:
> Mit etwas Glück nutzt das DOS-Programm den Drucker-Interrupt 17H für die
> Ausgabe. Da könnte man eine ISR reinhängen. Ist zu lange her, als dass
> ich Dir mal eben etwas dazu hacken könnte,


Dank für den Tip, geht aber auch nicht (s.o). Außerdem ist es zu Riski 
da noch ein anderes Programm laufen zu lassen weil kein Mensch weiß wie 
sich die Software vom Timing verhält


> aber mit diesem Ansatz kämst  Du ohne zusätzliche selbst gebastelte
> Hardware aus.

Es braucht eine saubere Trennung, die Daten extern abzufangen greift 
nicht in den PC ein.

von Holler (Gast)


Lesenswert?

ich würde einen Versuch mit plotfang, war in der DOS Zeit sehr 
zuverlässig und benötigte keine  20 kb. Lies sich auch in den "oberen 
Speicherbereich" hochladen, d.h. zwischen die Adapter ohne dem 
Hauptprogramm Speicher wegzunehmen.

Wenn du dennoch scharf trennen willst, schaue dich mal bei emsystech um. 
Die bieten converter von GPIB und LPT auf USB eines Hostrechners an. 
Dabei wird eine Bitmap erzeugt. Habe die gpib Version für ca 100euro im 
Einsatz an meinem alten Spekki, funktioniert super.

von Frank K. (fchk)


Lesenswert?

http://www.wut.de/e-28000-ww-dade-000.php?pf=80

Klemmst Du anstelle des Druckers an den Parallelport. Auf einem zweiten 
PC kannst Du die Ausgabe über eine serielle Schnittstelle entgegennehmen 
und weiterverarbeiten.

Eine andere Lösung wüßte ich jetzt nicht.

fchk

von Reinhard Kern (Gast)


Lesenswert?

Philipp K. schrieb:
> Da könnte man eine ISR reinhängen.

Du meinst TSR. Ich habe mal sowas geschrieben für Drucken über INT17 
(aus Clipper-Programm), das speichert die Druckausgabe in eine Datei, 
die wurde dann umgewandelt von Epson in PCL und mit Kopien auf 
Laserdrucker ausgegeben. Hat jahrelang tagein tagaus funktioniert.
1
;
2
; WPRINT (TSR) leitet drucken via int17
3
; um in eine datei
4
;
5
; V1.0 Copyright (c) RK elektronik 1996
6
;
7
code    segment
8
        assume cs:code,ds:code
9
;
usw. ist aber wirklich schon lang lang her.

Gruss Reinhard

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Holler schrieb:
> Wenn du dennoch scharf trennen willst, schaue dich mal bei emsystech um.

Guter Tip, werde dort mal Anfragen

Frank K. schrieb:
> Klemmst Du anstelle des Druckers an den Parallelport.

Könnte klappen, danke für den Tip.

von bitte löschen (Gast)


Lesenswert?

Reinhard Kern schrieb:
> Du meinst TSR

In dem TSR ("Terminate and Stay Resident") -Programm liegt irgendwo die 
ISR ("Interrupt Service Routine") für den Int 17H. Dass hinter 
Interrupts Systemaufrufe stecken, ist eine PC/DOS-spezifische Kiste, 
aber rein vom Namen her ist es eine ISR. Wir meinen das gleiche.. :-)

von Rainer (Gast)


Lesenswert?


von Henrik Haftmann (Gast)


Lesenswert?

Das Problem löst man hardwareseits damit:
http://www.tu-chemnitz.de/~heha/lptcap

und softwareseits damit:
http://www-user.tu-chemnitz.de/~heha/viewzip.cgi/hs_freeware/SPE.zip/

Ersteres fängt parallele Druckdaten zu USB (virtuelles COM-Port) auf. 
Einfacher geht's wirklich nicht, wenn keine Softwarelösung zur Umlenkung 
aufs COM-Port anwendbar ist.

Letzteres interpretiert die Druckdaten zur Ausgabe auf (irgend)einen 
Windows-Drucker, etwa einen PDF-Generator. Fertig. (Die vorliegende 
Version unterstützt keine Pixelgrafik-Ausgaben!)

Ein Windows-PC mit USB wird benötigt, darf >10 Jahre alt sein.

Linux (etwa ein Raspberry) geht auch, wenn man die Funktionalität von 
SPE.exe in ein Python-Skript steckt und einen geeigneten 
Text-Zu-PDF-Konverter benutzt.

henni

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
Noch kein Account? Hier anmelden.