TIA Quellcode an ZEBRA-Drucker senden

Partybiker91

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

ich habe ein Problemchen beim senden eines Quellcodes an einen ZEBRA-Drucker.
An sich funktioniert die Anwendung einwandfrei. Nur muss auf dieses Etikett ein CCC-Logo gedruckt werden. Der ASCII-Code hierfür ist jedoch incl. Befehl vorher für einen String zu lange. Deswegen schneidet es mir jedes Mal das Logo ab. Ich habe dann versucht den ASCII-Code auf mehrere Strings aufzuteilen, da ich sowieso mehrere Textbereiche zum Drucker sende. Auch dies war ohne Erfolg. Danach hab ich noch versucht das Ganze über einen Array of 3 Strings zu übertragen. Auch das klappt nicht.

Dieser Befehl muss am Stück übertragen werden:
^FO224,64^GFA,01536,01536,00016,:Z64:eJztlE9OQyEQxgcxwZVcoCnX6MKEq/QIXXZVuIFH8BouOQrGRZe6xEgeDv8edKpu3UhS6C8PvoHhGwD+2983nvwFp5RmlMjvE5sIZhnIki2/3kTATg1F5XKIMJaX/rRyLL3uAqyGkq7LVSXeBaWdp6F8G3uABzIe27htY18nWzjUvQPPrGi6DlgQXlleN8AtyKB9sqwyTlPBvCD7LmM+0hnPX4XvMX2f6Q350MKylJttG9kgi6hx8q5tk0f5rl3f8A7zp7yxeWbl/HWBzgeQXtulRqrsNIsTK3diYWY78x4TdirJE4U9Zj7yC4bv+IbwLWFM4K/ff9ZXdinuEGS/lMd5zXTeI8lHyZcd+Wr5XLnm27jOG3T/Y9R4mc/rfZ3T09KNQ++T3nfxQ3pFrn6gfkEb8ZC32PyUbbODPe9+o3688iv185bMo/UgWlzfmJN6agt72QAsRWAUdKlXNupV5r/Sr8zy4zDVO5gAenoPrt4LVuw/NbG+N18qx9DH:AA8E

Wie schon gesagt funktioniert es bei mir bisher nicht sobald ich den Code in irgendeiner Weise aufteile.

Hat jemand eine Idee?

Gruß
Partybiker91
 
@erzteufele:
den Gedanken hatte ich auch schon.
Leider möchte das der Kunde nicht, da es bei einem defekt des Druckers ein größerer Aufwand ist diesen zu tauschen, vor Allem nach der Gewährleistungszeit. :)
 
Code:
VAR 
  CONTENT : Struct
     ROW : Struct
        COUNT : Int;
        TEXT : String;
        LENGTH : UInt;
     END_STRUCT;
     BUFFER : Struct
        POSITION : DInt;
        CHARS : Array[1..1024] of Char;
     END_STRUCT;
  END_STRUCT;
END_VAR

REGION #CONTENT
    #CONTENT.BUFFER.POSITION := 0;
    FOR #CONTENT.ROW.COUNT := 1 TO 5 DO
        CASE #CONTENT.ROW.COUNT OF
            1:
                #CONTENT.ROW.TEXT := 'TESTTEXT.1';
            2:
                #CONTENT.ROW.TEXT := 'TESTTEXT.2';
            3:
                #CONTENT.ROW.TEXT := 'TESTTEXT.3';
            4:
                #CONTENT.ROW.TEXT := 'TESTTEXT.4';
            5:
                #CONTENT.ROW.TEXT := 'TESTTEXT.5';
        END_CASE;
        Strg_TO_Chars(Strg := #CONTENT.ROW.TEXT,
                      pChars := #CONTENT.BUFFER.POSITION,
                      Cnt => #CONTENT.ROW.LENGTH,
                      Chars := #CONTENT.BUFFER.CHARS);
        #CONTENT.BUFFER.POSITION += UINT_TO_DINT(#CONTENT.ROW.LENGTH);
    END_FOR;
END_REGION
 
Wie sollte der Barcode genau aussehen
Normalerweise sollte das schon funktionieren
Der Zebra Drucker hat eine eigene Programmiersprache
Vl musst du nur die Größe vom Barcode einstellen
Druckt der Barcode Drucker schon was ?
 
Ich habe vor einer Woche sowas bei einer Anlage gehabt wenn du willst kann ich dir einen Screenshot schicken
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Wie sollte der Barcode genau aussehen
Normalerweise sollte das schon funktionieren
Der Zebra Drucker hat eine eigene Programmiersprache
Vl musst du nur die Größe vom Barcode einstellen
Druckt der Barcode Drucker schon was ?
Barcode soll auf das Etikett keiner drauf. Nur ein Datamatrix aber der ist auch nicht das Problem.

Ich habe das CCC-Logo (als Image) in mehrere Bilder aufgeteilt. Somit bekomme ich mehrere kleinere Quellcodes und somit auch weniger Zeichen für einen String. Problem gelöst. :)

Danke euch allen für die Unterstützung und bis zum nächsten Mal. :)

Gruß
Partybiker91
 
Hallo,

um kein neues Thema aufzumachen schreib ich hier mal rein. Im Prinzip habe ich das gleiche Problem. Ich habe einen Code aus ca. 2000 Zeichen, welchen ich übertragen möchte. Diesen wollte ich in ca. 10 Strings [254] unterteilen und nacheinander senden. Zum Test habe ich mir einen einfachen Code gebastelt (ca. 70 Zeichen). Übertrage ich diesen auf "Schlag" funktioniert das Ganze. Teile ich diesen und übertrage erst den ersten Teil, dann den Zweiten passiertr nix. Muss am Drucker evtl. noch was eingestellt werden? Steh grad auf dem Schlauch.
Der Versuch mit den Charakters scheitert grade am Speichervolumen der 1212 :(
 
Wenn ich das Zebra-Handbuch richtig verstehe, muß zumindest ein Befehl immer vollständig gesendet werden. Also von ^ bis vor das nächste ^.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe einen Code aus ca. 2000 Zeichen, welchen ich übertragen möchte. Diesen wollte ich in ca. 10 Strings [254] unterteilen und nacheinander senden.
Du könntest den Codepuffer als ARRAY of CHAR (oder ARRAY of BYTE) deklarieren, dann gibt es fast keine Längenbeschränkung und Du kannst den Code auch in einem Stück senden.

Harald
 
erst mal danke für die Antworten. Das mit den einzelnen Char wollte ich versuchen, allerdings reichte der Speicher der CPU nicht (muss ich mir noch mal genauer anschauen).
Aktuell habe ich das Problem, dass der Drucker gar nicht mehr will :( Ich habe das Gute Stück in meiner Verzweifelung auf Werkseinstellung zurückgesetzt und nun druckt er nichts mehr von der SPS. Habe mir einen einfachen Code (^XA^LH360,30^FO20,10^AF^FDtest^FS^XZ) direkt in den String geschrieben und es geht nix, auch über den Druckertreiber, in welchen man direkt Druckbefehle senden kann, geht nix. Ich sehe nur, dass der Drucker was empfängt (LED blinkt), das wars dann auch schon. Status über länger Knopf drücken druckt er und bereit ist er auch. Vom Typ ist das ein Honeywell datamax oneil E-4305A. Muss da noch was in den Einstellungen getätigt werden, damit der überhaupt Befehle annimmt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ettikettengröße, Schwarzdichte, ... eingestellt?
Eventuell braucht er auch (ohne das es im Handbuch erwähnt ist) Formatbefehle wie Lage, Schriftgröße usw., damit er was sichtbares druckt.
Ich hatte mir mit dem mitgelieferten Programm ein Ettikett erstellt, exportiert und das dann an den Drucker gesendet.
 
Du hast genug Platz für 10 Strings aber nicht genug für 2000 Chars?

Ich hätte vor einigen Jahren mal einen Drucker, der seine Programmsprache immer gewechselt hatte, nachdem er stromlos war.
Du könntest mal versuchen vor deinem ersten ^XA folgendes noch einfügen:
Code:
! U1 setvar "device.languages" "zpl"
Das hat bei mir damals geholfen.
 
Drucker druckt wieder, im Druckertreiber gabs nur zwei Einstellungen für den Eingabemodus, auf der Weboberfläche gabs sieben. Dabei war dann auch Auto und nicht nur DPL und Line...also alles auf Anfang.

@R4m80 die Strings wollte ich drin stehen lassen, damit ich dynamisch verschiedene Logos anwählen kann und diese dann mit den Prozessvariablen in die 2000 Char´s schieben kann...also Speicher zu klein

werd jetzt mal versuchen ein Bild auf dem Drucker zu speichern und dies innerhal eines Strings auf zu rufen....mal schaun
 
Zurück
Oben