Anmelden

View Full Version : Zebra drucker versteht mich nicht



Seiten : [1] 2

bjoern
12-11-03, 10:20
Hallo,

nachdem ich nun unseren Zebra TLP 2844 als Remoteoutq definiert habe, versuche ich ihm über ein DDS-Printerfile aus RPG mit EPL2 Befehlen zu versorgen. Leider versteht mich der Drucker nicht. Muss ich das DDS File irgendwie besonders definieren ? Vielleicht hat ja sogar jemand ein kleines Beispiel.

Danke im vorraus ...

Björn

Fuerchau
12-11-03, 13:51
Da ich die Befehle nicht kenne aber davon ausgehe, dass diese ggf. mit einem Hexwert ESC (1B) eingeleitet werden, müssen die Befehle ggf. direkt als ASCII-Code in die PRTF gestellt werden.
Dazu ist in dem Feld, dass die Befehle aufnimmt TRNSPY (transparente) definiert werden. Dadurch erfolgt KEINE Umsetzung durch die AS/400 sondern die Codes werden direkt durchgeschleust.

Eine Aufteilung der Felder in z.B. den ESC-Code und dahinter dann die Daten funktioniert nicht unbedingt, da ggf. durch Hosttransform jedes Feld einzeln übertragen wird und somit die Felder nicht zusammenhängend am Drucker ankommen.

Vielleicht postest du mal ein Beispiel der Steuersequenz.

bjoern
12-11-03, 14:33
Hallo,

so sieht der Zeit mein Versuch aus:

PRTF:
A R ZEILE
A DATEN 80 1TRNSPY

RPG:

...

DCrLf S 2

...

C EPL Begsr
*
C Eval CrLf=X'0D'+X'0A'
*
C Open ICH21PRT
*
C Eval Daten=CrLf
C Write Zeile
C Eval Daten='N'+CrLf
C Write Zeile
C Eval Daten='A50,0,0,1,1,1,N,"Test"'+CrLf
C Write Zeile
C Eval Daten='P1'+CrLf
C Write Zeile
*
C Close ICH21PRT
*
C Endsr

Gruß

Björn

bjoern
12-11-03, 14:35
ach ja,

beim Drucker ankommen soll

"

N
A50,0,0,1,1,1,N,"Test"
P1
"

(ohne das ersten und letzte ")

Gruß

Björn

husky
12-11-03, 16:26
Hallo Björn,
wir haben das Thema so gelöst:

Verzicht auf ein Printerfile.

Plattform: COBOL (kann leider kein RPG)
TWINAX mit Konverter
(muß aber ACF-Funktion haben wegen ASCII)

Eine Teildatei erstellen mit den Befehlen wie


N
A50,0,0,1,1,1,N,"Trallala"
P1

etc.

COBOL liest lediglich die Sätze ein und gibt sie einfach aus.

Vielleicht hilft das weiter.

Viel Spaß
Husky

Martin
12-11-03, 18:08
Hallo,

wie wird der Drucker denn angesteuert? Unsere Thermotransferdrucker (keine Zebra-Drucker) werden über ASCII-Codes gesteuert (keine ESC-Sequenzen). Wir nutzen die Host-Druckerdatenstromumsetzung für die EBCDIC->ASCII-Konvertierung. Dabei hatten wir anfangs das Problem, dass Steuerzeichen erzeugt wurden, die der Drucker nicht verstand.

Wir haben dann einfach ein fast leeres Datenstationsanpassungsobjekt erstellt. Dadurch haben wir es erreicht, dass keine Initialisierungsbefehle mehr zum Drucker geschickt werden. Seitdem funktioniert es bei uns problemlos.

Vielleicht kommt man mit diesem Verfahren ja auch bei den Zebra-Druckern weiter.

Was das angegebene Programmfragment angeht, so verstehe ich eines nicht: Wie wird aus z.B. 'A50' (EBCDIC) 'A50' (ASCII)? Oder wird die Host-Druckerdatenstromumsetzung bereits eingesetzt? In dem Fall verstehe ich den Sinn der hart codierten CRLFs nicht.

Martin

Brownie
12-11-03, 18:46
hi bjoern,

zebra ist bei uns als 5256 über twinax angeschlossen.

bei interesse schicke ich dir gerne prtf, rpg-programm als muster für etikettendruck.

ob allerdings bei der installation, bei der ein "zebra"-spezie anwesend war, druckerseitig etwas geändert wurde kann ich dir nicht sagen.

trotzdem kopf hoch, bald ist weihnachten.......
und da darf man sich ja was wünschen.


LoL und gruss,

brownie

husky
12-11-03, 20:12
kann es sein, daß die Befehlsfolgen unvollständig sind?

Beil. ein Stringmuster für ein 55x30 mm Etikett:

N (Puffer löschen WICHTIG!
I7,2 (Zeichensatz optional
O (Optionen löschen OC= Cutter
(Trick: Falls Du bei jedem Etikett
(schneiden willst, mach am
( Anfang OC + laß O wech.
(Willst erst nach dem
(Druckauftrag schneiden,
(stelle am Anfang O rein
(und nach dem "P" ein OC
ZT (Druckrichtung kannste machen
q440 (Etikettenbreite 440Dot=55mm
Q240,20 (Länge 240Dot=30mm+2,5mm
( Abstand zwischen Etikett
A8,32,0,3,1,1,N,"HURRA! die Gemse"
D15 (Hitze der Druckplatte je nach
(Qualität des Materials
S3 (Geschwindigkeit
(s.o.

Das klappt bei mehreren Eltron/Zebras immer, voraus-
gesetzt, daß der Drucker X"0A" als Zeilenabschluß empfängt.


(P.S. Wir wollen, daß Du Weihnachten zu Hause unterm
Christbaum verbringst)


Husky

Sven Schneider
12-11-03, 20:36
Zur Anbindung über remote outq steht alles hier :
http://www-912.ibm.com/s_dir/slkbase.NSF/0888cc5d18fceca58625680b005dc690/ccf052269288d640862569c1006cd157?OpenDocument

Wichtig ist das der Drucker neben CRLF und FF keine weiteren Steuerzeichen, neben deinen Etiketten-Nutzdaten, bekommt.

Ob du dein Etikettendaten per O-Karten oder DDS-Printerfile ausgibst ist egal.
Auf jeden Fall ein Satzformat mit einem Feld z.B. 80 lang erstellen.
Hier schiebst du die Zeichen rein und gibst sie Zeile für Zeile per WRITE/EXCEPT aus.
(Wie die Bsp. weiter oben schon beschreiben)

Die Umsetzung EBCDIC/ASCCII übernimmt Host Print Transform mit der *WSCST QWPDEFAULT. Diese *WSCST enthält nur die o.a. Steuerzeichen. (siehe Link oben)
Schlüsselwort TRANSPY kannst du dir schenken. Außerdem kannst du die SPLF dann auch mit WRKSPLF ansehen.

Zum Ausprobieren würde ich ein Etikett mal auf einem PC mit einem Texteditor erstellen und zum lokal am PC angeschlossenen Zebra-Drucker wie folgt senden :

Copy Etikett.txt > PRN (oder LPT1 oder wenn seriell COM1)


Viel Glück

Martin
12-11-03, 20:46
Hallo Sven,

diese Information hilft mir auch weiter. Jetzt können wir QWPDEFAULT statt unserer eigenen WSCST verwenden.

Vielen Dank

Martin