Forum: PC-Programmierung Drucker exakt ansteuern


von Flo B. (flo_b)


Lesenswert?

Hallo Zusammen,

ich möchte gerne eine Epson Stylus D88 Drucker exakt mitteilen wo er auf 
dem Papier drucken soll.

Es muss hierzu doch möglich sein dem Drucker dies auf irgendeine Art und 
Weis mitzuteilen.

Da ich im Moment leider etwas "unkreativ" bin, wollte ich wissen ob mir 
hier jemand eine Denkanstoss geben kann.

Es ist für mich auch kein Problem mich in Themen rein zu lesen, nur weis 
ich im Moment leider nicht wie ich an die Sache ran gehen soll?

Vielen Dank für Eure Hilfe.

Schöne Grüße

flo

von Klaus2 (Gast)


Lesenswert?

tja. du schaust dir einfach erstmal das protokoll der parallelen 
schnittstellen von gewöhnlichen druckern an? usb ist dann nochmal was 
anderes. ganz simpel ist das zb bei alten nadel-kassendruckern mit 
rs232.

Klaus.

von Mike (Gast)


Lesenswert?

Ich denke mal das er das nicht mit nem Mikrocontroller machen will. Also 
sollte er sich eher mit dem Drucker-API vertraut machen...

von Klaus2 (Gast)


Lesenswert?

...wie, er will das nicht mit einem uC machen???

Langweilig. :)

Klaus.

von Flo B. (flo_b)


Lesenswert?

Ich kann ja mal versuchen zu erklären was ich vorhabe:

Der Druckkopf (mit der dazu gehörigen Ansteuer-Elektronik)des Epson 
Druckers soll mit einem Linear-Tisch kombiniert werden. Und ich möchte 
nun wissen wie ich den Druckkopf ansteuern muss um ihn auf dem Tisch 
exakt ausrichten zu können. (Die Idee stammt nicht von mir, sondern ist 
ne Projekt-Aufgabe!)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann wird es unumgänglich sein, die druckereigene Elektronik zu 
vergessen und die Mechanik mit selbst entwickelter Elektronik 
anzusteuern.

Nur bei sehr alten und sehr primitiven Druckern besteht eine gewisse 
Korrelation zwischen den Dingen, die dem Drucker gesendet werden, und wo 
der Drucker seinen Druckkopf positioniert. Jeder in den letzten 20 
Jahren gebaute Drucker aber arbeitet zeilenorientiert, d.h. er verwaltet 
einen Puffer mit allen in einer Zeile auszugebenden Daten, jedes 
Kommando, das irgendwas mit Text- oder Graphikausgabe und horizontaler 
Positionierung zu tun hat, beeinflusst diesen Puffer. Und wann der 
Inhalt des Puffers tatsächlich gedruckt wird, also der Druckkopf auch 
positioniert wird, entscheidet letztlich die Druckerfirmware selbst.

Um das zu umgehen, muss die Druckerfirmware umgangen werden, also eigene 
Elektronik die Schrittmotoren etc. des Druckwerkes ansteuern (denn es 
ist eher unwahrscheinlich, auf der vorhandenen Hardware eigene Firmware 
laufen zu lassen, da diese Hardware zu den undokumentierteren Dingen 
gehören dürfte, denen man so im Alltag begegnet).

von oszi40 (Gast)


Lesenswert?

Auge in Drucker-Manual ESC-Sequenzen schafft einen ersten Überblick über 
mögliche Befehle. Wie Rufus schon beschrieb, ist zwischen Befehl - 
Speicher und Druckvorgang ein langer Weg.

von Karl H. (kbuchegg)


Lesenswert?

Mir ist noch nicht klar, was da jetzt der Lineartisch damit zu tun hat.
Möchtet ihr den Drucker auf eine Art 'Flachbett-Drucker' umbauen, oder 
wie ist das zu verstehen?

Arbeitet der Drucker weiterhin als Drucker, oder wollt ihr ihn im Grunde 
nur benutzen um eine billige Mechanik zu bekommen?


Es geht darum abzuschätzen, ob ihr die Elektronik (abgesehen vom 
Leistungsteil) überhaupt weiterbenutzen könnt oder nicht.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

mit einem Drucker geht das nur, wenn er noch nach dem Teletype-Prinzip 
funktioniert, also wie eine Schreibmaschine. Dazu müsste er wohl 20 - 30 
Jahre alt sein. Heutige Drucker sammeln die nötigen Daten und drucken 
dann eine ganze Seite. Laserdrucker haben garkeinen Druckkopf.

Nadeldrucker, die mit ESC/P arbeiten, führen Positionierbefehle noch 
sofort aus, sowas ist noch zu finden.

Mit einem Plotter ginge es, wenn es wirklich noch ein Plotter ist und 
nicht wie heute ein Drucker, der das Plotten emuliert. Er müsste also 
auch so 10 - 20 Jahre alt sein.

Gruss Reinhard

von oszi40 (Gast)


Lesenswert?

Leute, die Druckwegoptimierung war schon vor >20 Jahren erfunden.

Daher hilft nur das konkrete EPSON-Handbuch mit den Steuerbefehlen etwas 
weiter. Kunst dabei ist: Positionierbefehle ohne Zwischenspeicherung 
auszuführen.

von Karl H. (kbuchegg)


Lesenswert?

oszi40 schrieb:
> Leute, die Druckwegoptimierung war schon vor >20 Jahren erfunden.

Drucker von damals wurden aber anders angesteuert als die heutigen.

Heute wird im Windows eine Monsterbitmap aufgebaut, in die der Code 
hineinrendert. Ist die Seite im PC fertig gerendert, wird die Bitmap zum 
Drucker übertragen. Der Rechner im Drucker muss nicht viel können, 
ausser die Spalten korrekt aufs Papier zu klatschen.

Der Verteil liegt auf der Hand: Die Seite sieht auf allen Druckern 
gleich aus. Probleme mit unterschiedlichen Fonts gibt es nicht, weil der 
Drucker das alles nicht mehr beherrschen muss.


In grauer Vorzeit hatte man den Speicher nicht, um im PC die komplette 
Druckseite aufbauen zu können. Text wurde als Text zum Drucker 
übertragen und dazu gab es dann noch jede Menge Steuercodes, die Font, 
Schriftstärke etc. auswählten. Im Grafikmodus gehts dann auch noch eine 
Druckzeile pixelmässig anzusprechen.

Eine Plotteremulation auf einem Nadeldrucker war hauptsächlich eine 
Geduldprobe und eine Frage dessen, wie gut der Programmierer mit 
Diskettenzugriffen umgehen konnte.

> Daher hilft nur das konkrete EPSON-Handbuch mit den Steuerbefehlen etwas
> weiter.

Die Zeiten, als man zu einem Drucker noch ein Handbuch mit Codes und 
Beispielprogrammen zur Ansteuerung mitgeliefert bekam, sind lange 
vorbei.

von Flo B. (flo_b)


Lesenswert?

Super, vielen Dank für die vielen Tipps.

Ich muss mich da aber erst mal in Ruhe reindenken, bin aber für weitere 
Anmerkungen dankbar.

Ich werd mich dann wieder mit (hoffentlich) neuen Erkenntnissen melden.

Also nochmals ein dickes Danke an alle!

Viele Grüße

vinnie

von Flo B. (flo_b)


Lesenswert?

Hallo Zusammen,

da das obige Problem noch in der Luft hängt (ich weis noch nicht wies 
mit dem Projekt weiter geht) hätte ich nochmal ne andere Frage:

Ist es denn möglich die Signale die der PC beim drucker uber USB an den 
Drucker sendet abzufangen und auszulesen? Und wenn ja, wie würde sowas 
gehen?

Danke für die Hilfe.

Schöne Grüße

Flo

von Karl H. (kbuchegg)


Lesenswert?

Flo B. schrieb:

> Ist es denn möglich die Signale die der PC beim drucker uber USB an den
> Drucker sendet abzufangen und auszulesen?

Im Prinzip: ja.

> Und wenn ja, wie würde sowas
> gehen?

zb einen µC dazwischenschalten, der von einer USB BUchse zur anderen 
alles 1:1 weiterreicht, gleichzeitig aber auch noch ein Protokoll 
mitschreibt, was da gesendet wurde.

Für die RS232 gibt es Port-Sniffer, die genau das auf dem PC machen, 
indem sie sich in die Treiberschicht ganz unten einklinken und das 
Protokoll von dort ziehen. Ob es sowas auch für USB gibt, weiß ich 
nicht.

Aber selbst wenn du es schaffst, da mitzulesen.
Das zu entschlüsseln ist meistens sehr, sehr, sehr aufwändig!
Du stellst dir das jetzt so vor: Och, da werf ich mal einen Blick drauf 
und dann weiß ich welche Bytes ich ihm schicken muss, und dann passt das 
schon.
Da hast du aber mit Zitronen gehandelt. Im Schwierigkeitsgrad musst du 
dir das eher so vorstellen, dass du Japanisch lernen willst, nur in dem 
du 2 Japanern beim Sprechen zuhörst. Am Anfang verstehst du nichts, 0, 
njente, nothing. Nur durch viel Raten und Querdenken formt sich dann 
eine Idee, was ein einzelnes Zeichen bedeuten könnte. Mit dieser 
Hypothese hört man dann weiter zu, bis man sich einigermassen sicher 
ist, das das Geratene der Wahrheit entsprechen könnte oder auch nicht.

Schreib EPSON an, ob es Entwicklerunterlagen gibt. Selbst wenn die etwas 
kosten, ist das immer noch billiger als 2 Wochen Hex-Dump Studium. Ob 
beim Hex-Dump Studium was raus kommt, steht in den Sternen. Die brauchen 
da in der Übertragung nur irgend ein Kompressionsverfahren einsetzen und 
du schaust wochenlang in die Röhre.


Mit deiner Beschreibung, was ihr da machen möchtet, kann man nicht viel 
anfangen. Eventuell gehts auch anderen so, aber bisher habe ich darin 
nichts herausgelesen, was ein weiterverwenden der Original-Software im 
Epson (und damit einen Riesenaufwand, insbesondere wenn man Reverse 
Engineering machen muss) rechtfertigen würde. Das wäre meine 
Nr.1-Option: Original-Elektronik raus; neue Elektronik bauen; 
Druckertreiber dafür schreiben. Das ist zumindest überschaubar und die 
einzige Unbekannte ist die eigentliche Ansteuerung der machanischen 
Komponenten. Dem Problem kann man aber mit Messgeräten (Multimeter, 
Oszi) zu Leibe rücken.


Vielleicht gibts auch noch andere Option (höchst wahrscheinlich gibt es 
welche). Aber dazu müsste man endlich einmal wissen, was ihr da 
eigentlich baut.
Vielleicht könnte man die Druckmechanik auch auf einen seperaten 
Kreuztisch bauen und mit diesem das Feintunig in der Aufsetzposition 
machen.
Also: Was wird das?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Flo B. schrieb:
> Ist es denn möglich die Signale die der PC beim drucker uber USB an den
> Drucker sendet abzufangen und auszulesen? Und wenn ja, wie würde sowas
> gehen?

Wesentlich einfacher erzielt man das gleiche, indem man auf dem PC mit 
dem zum Drucker gehörenden Druckertreiber in eine Datei druckt.

Die kann man dann nach Belieben analysieren.

Das aber ist für die geforderte Aufgabe vollkommen nutzlos, wie ich 
hier eigentlich schon ausreichend dargelegt habe:
Beitrag "Re: Drucker exakt ansteuern"

Ob der Drucker nun per USB, über die parallele oder eine serielle 
Schnittstelle angesteuert wird, hat mit dem Grundproblem nichts zu tun.

von Xenu (Gast)


Lesenswert?

Karl heinz Buchegger schrob:

>Heute wird im Windows eine Monsterbitmap aufgebaut, in die der Code
>hineinrendert. Ist die Seite im PC fertig gerendert, wird die Bitmap zum
>Drucker übertragen.

Ich weiß nicht wie allgemein Du das gemeinst hast, aber das gilt nur für 
Drucker für den "Geiz ist geil"-Massenmarkt. Für Leute, die bereit sind, 
mehr als 50 Euro auszugeben, gibt es Drucker die PCL oder Postscript 
können, und bei denen eine Prozessor drinsteckt, der dann rendert. Gilt 
z.B. für alle Kyocera-Laserdrucker.

Davon abgesehen und zur eigentlichen Fragestellung zurück stimme ich 
aber mit Rufus und Dir überein, direkt die Schrittmotoren + Druckkopf 
anzusteuern.

von Karl H. (kbuchegg)


Lesenswert?

Xenu schrieb:
> Karl heinz Buchegger schrob:
>
>>Heute wird im Windows eine Monsterbitmap aufgebaut, in die der Code
>>hineinrendert. Ist die Seite im PC fertig gerendert, wird die Bitmap zum
>>Drucker übertragen.
>
> Ich weiß nicht wie allgemein Du das gemeinst hast, aber das gilt nur für
> Drucker für den "Geiz ist geil"-Massenmarkt.

Richtig.
Ich bin allerdings nicht im Bilde, wie Epson das macht.
Aber im Zweifel geh ich immer vom schlimmsten aus :-)

Worauf ich eigentlich hinaus wollte:
Es muss noch nicht einmal sein, dass die Druckposition in Zahlenform als 
eine einzige Zahl in der Übertragung zum Drucker vorkommt.

> Davon abgesehen und zur eigentlichen Fragestellung zurück stimme ich
> aber mit Rufus und Dir überein, direkt die Schrittmotoren + Druckkopf
> anzusteuern.

Tja. Wenn man das wüsste.
Da müsste man erst mal wissen, was man eigentlich erreichen will. Ausser 
natürlich der sehr allgemeinen Aussage "Dem Drucker zu sagen wo er genau 
drucken soll, weil ein Lineartisch noch mit im Boot ist"

von probieren geht über studieren (Gast)


Lesenswert?

A
A
A
A
Druckbefehle
EPSON ESC/P2-Steuercodes
Durch die Auswahl des EPSON ESC/P2-Druckers in Ihrer
Software können Sie fortschrittlichste Schriften und Grafiken
verwenden. Wenden Sie sich für weitere Informationen über die
Befehle an den EPSON-Kundendienst. Nähere Informationen
dazu erhalten Sie im Abschnitt “Kontaktaufnahme mit dem
Kundendienst” auf Handbuch Seite 86.
Druckbetrieb:
ESC@, ESC U
Papiertransport:
FF, LF, ESC 0, ESC 2, ESC 3, ESC +, CR
Seitenformat:
ESC (C, ESC C, ESC C 0, ESC Q, ESC l, ESC (c, ESC N, ESC O
Druckposition:
ESC $, ESC \, ESC (V, ESC (v, ESC D, HT, ESC B, VT, ESC J
Schriftwahl:
ESC k, ESC x, ESC y, ESC X, ESC P, ESC M, ESC g, ESC p, ESC 4,
ESC 5, ESC E, ESC F, ESC !
Druckeffekte:
ESC W, DC 4, SO, DC2, SI, ESC w, ESC G, ESC H, ESC T,
ESC S, ESC -, ESC (-, ESC q
Zeichenabstand:
ESC Space, ESC c, ESC (U
...usw. ...

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.