Termotransferowa drukarka etykiet Zebra P4T

zebraW ostatnim czasie pracowałem nad systemem dla dużej amerykańskiej firmy, który miał usprawnić zarządzanie zleceniami dla operatorów wózków widłowych w magazynie.
Importujemy dane pochodzące z zewnętrznego systemu ERP, pracownik korzystający ze stanowiska komputerowego na hali magazynowej rozdysponowuje poszczególne zadania, a operatorzy wózków na bieżąco mają podgląd aktualnych kursów do wykonania na przenośnym mini komputerze / czytniku kodów kreskowych Intermec. Po zakończeniu całego procesu dla jednego zlecenia osoba je kompletująca drukuje etykietę za pomocą drukarki Zebra P4T. Główna część systemu po stronie serwera została napisana w Javie i uruchomiona na Tomcacie. Panel dla operatora na magazynie korzysta z AngularaJS i komunikuje się z serwerem za pomocą socket.io, zresztą podobnie jak panele na urządzenia mobilne Intermec.

Dane techniczne

Kod produktu: P4T
Rodzaj druku: termotransfer
Rozdzielczość druku [dpi]: 203
Maks. prędkość druku [mm/s]: 038
Szerokość druku [mm]: 101.6
Maks. długość druku [mm]: 914
Min. szerokość etykiet [mm]: 50.8
Szerokość etykiety [mm]: 104
Wysokość etykiety [mm]: 914
Maks. średnica zewn. rolki etykiet [mm]: 66
Maks. długość taśmy barwiącej [m]: 30
Maks. szerokość taśmy barwiącej [mm]: 109.2
Procesor: 32-bit
Ilość pamięci FLASH: 008 MB
Ilość pamięci RAM: 016 MB
Dostępne interfejsy: USB, RS-232, Bluetooth
Zasilanie: akumulator 7,4 V
Języki programowania: CPCL, EPL, ZPL, EPL2, XML
Wymiary [mm]: 177,8 x 218,4 x 76,2
Temperatura pracy: od 0°C do 45°C
Temperatura składowania: od -30°C do 70°C
Dopuszczalna wilgotność otoczenia [%]: od 10% do 90 %
Gwarancja producenta [mc]: 12
Pojemność akumulatora [mAh]: 4200
Bezpieczny upadek na twardą pow. [m]: 1.5
Obsługiwane kody kreskowe: 1D, 2D, GS1 Databar, PDF

Komunikacja

Ponieważ oba wykorzystywane urządzenia połączone są z siecią przez wifi, postanowiłem wykonać centralne sterowanie zleceniami wydruków na serwerze aplikacji. Cały problem polegał na tym, że serwer pracujący w innej lokalizacji nie mógł łączyć się do wewnętrznej sieci wifi. W związku z tym został przygotowany jeszcze jeden program, który instalowany jest na stanowisku komputerowym na magazynie. Pełni on rolę pośrednika – wykrywa wszystkie drukarki Zebra pracujące w sieci, nasłuchuje żądania wydruków pochodzące z serwera i wysyła je do konkretnych drukarek. Tym sposobem osoba zlecająca wydruk etykiety na przenośnym urządzeniu wysyła żądanie do serwera, na którym uzupełniany jest szablon etykiety o odpowiednie dane, a on z kolei wysyłany jest do aplikacji uruchomionej na komputerze operatora na magazynie, która już bezpośrednio łączy się z drukarką i zleca wydruk.

Połączenie z drukarką wykonywane jest przez sockety (java.net.Socket(IP, PORT)) i proste zlecenie wysyłki komendy może wyglądać tak:

Gdzie w konstruktorze obiektu Socket przekazano adres IP drukarki i port.

Zebra API

Można jednak skorzystać z SDK udostępnionego przez Zebrę która zawiera API z bibliotekami dla platofrm: android, blackberry, iOS, windows mobile no i pc.

Wykrywanie podłączonych do sieci drukarek:

API wykorzystuje protokół SNMP do wykrywania urządzeń pracujących w sieci, a przykład kodu wyszukującego drukarki wygląda następująco:

Wysłanie komendy do drukarki:

ZPL – format danych konfiguracji wydruku

Układ etykiety w drukarkach Zebra definiuje się w specjalnym formacie ZPL (Zebra programming language). Nie będę Was zanudzał samym opisem składni, bo świetnie jest to udokumentowane w tych dwóch plikach:

Przydatnym narzędziem jest Online ZPL Viewer za pomocą którego możemy edytować etykiety i zobaczyć efekty bezpośrednio w przeglądarce.

Poniżej kilka przykładów etykiet z napisem NotatnikProgramisty.pl:

Wynik:

np_zpl

Dodajmy kod kreskowy (Code 128):

np_zpl2

Real foto:

WP_20160109_001

Podsumowanie

Urządzenie drukuje etykiety błyskawicznie, posiada również możliwość komunikacji przez USB, kabel ethernetowy oraz z wykorzytsaniem bluetooth, a SDK udostępnione przez Zebrę zawiera wiele przykładów. Co ciekawe bardzo szybko odpisali mi na pytanie zadane na facebooku. Wadą jest z pewnością cena tej drukarki (3-4 tys. zł) oraz dosyć szybkie zużywanie się taśmy do termotransferu. Na pewno domyślacie się jak łatwo można będzie połączyć taką drukarkę z RaspberryPI czy nawet Arduino 🙂

To również może Cię zainteresować:

  • HTML, CSS 2.1 i dokumenty PDFHTML, CSS 2.1 i dokumenty PDF W ostatnim czasie realizowałem projekt w którym należało zaprojektować ok. sto dokumentów PDF w postaci różnego rodzaju wniosków, w różnym układzie. Ten, kto kiedykolwiek generował […]
  • Fundamenty języka JavaFundamenty języka Java Niecały miesiąc temu zostałem poproszony przez Strefę Kursów o ocenę ich nowo wydanego materiału dla osób chcących zacząć naukę programowania w Javie: "Fundamenty języka Java". Przerobiłem […]
  • Bielsko-Biała JUG #4, Jarosław Pałka – JIT me baby one more time.Bielsko-Biała JUG #4, Jarosław Pałka – JIT me baby one more time. Wczoraj odbyło się czwarte spotkanie Bielsko-Bialskiej grupy miłośników Javy i programowania (Bielsko-Biała JUG). Tym razem prelekcję przygotował dla nas Jaroslaw Palka - od ponad 15 lat w […]
  • Java Spring, recenzja kursu wideo z Videopoint.plJava Spring, recenzja kursu wideo z Videopoint.pl Każdy, kto zawodowo programuje w obojętnie jakim języku wie, że bez wsparcia frameworków nasze życie byłoby znacznie trudniejsze. Tak jak Python ma swojego Django, PHP - Symfony, czy Ruby […]
  • Mapowanie XML obiektów Java – JAXBMapowanie XML obiektów Java – JAXB Podczas tworzenia oprogramowania na każdym kroku mamy kontakt z danymi w formacie XML. Opiszę tutaj jeden ze sposobów konwersji danych w obie strony Java <-> XML. Ale na […]
  • Permutacje, cz. 2 – algorytmyPermutacje, cz. 2 – algorytmy W poprzednim wpisie programistyczne rozwiązanie zagadki polegało na wygenerowaniu wszystkich permutacji zbioru i sprawdzeniu każdej z nich pod względem spełnienia warunku […]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *