Drukarka kodów kreskowych w obiegu towaru
Drukarka kodów kreskowych jest w magazynie ostatnim ogniwem łańcucha danych. Program magazynowy zna numer palety, adres lokalizacji albo partię towaru, ale dopiero wydruk zamienia te dane w oznaczenie, które skaner odczyta na hali. Błąd w szablonie albo źle dobrana głowica kończą się kodem nieczytelnym dla kolektora, więc urządzenie traktuje się jak element procesu, a nie jak peryferium przy biurku.
Etykiety powstają w czterech miejscach obiegu. Zestawienie poniżej pokazuje, skąd system bierze dane do każdej z nich i jaki kod trafia na wydruk.
| Moment procesu | Etykieta | Dane z systemu | Typowy kod |
|---|---|---|---|
| Przyjęcie dostawy | Jednostka logistyczna | Numer SSCC, GTIN, numer partii, data ważności | GS1-128 |
| Odłożenie na regał | Lokalizacja magazynowa | Przykładowy adres strefa-rząd-kolumna-poziom | Code 128 albo Data Matrix |
| Kompletacja i pakowanie | Karton wysyłkowy | Numer zamówienia, odbiorca, numer przesyłki | Code 128 albo QR |
| Produkcja | Wyrób gotowy | Indeks, numer partii, data produkcji | GS1-128 albo Data Matrix |
Budowę kodów i etykiety GS1 opisują osobne strony o kodach kreskowych w magazynie oraz o etykietach logistycznych GS1. Ten tekst dotyczy urządzenia: co nim steruje, jak dobrać głowicę i materiał oraz jakie ograniczenia ma przykładowy model przemysłowy.
Etykieta jest wynikiem operacji, a nie osobną czynnością
Najprostszy układ zostawia drukowanie magazynierowi: wpisuje numer i wybiera szablon w programie do etykiet. Każdy taki krok jest okazją do pomyłki, a wydruk nie zostawia śladu w bazie. W układzie lepszym żądanie druku powstaje razem z operacją magazynową. Potwierdzenie przyjęcia palety zapisuje ruch i wstawia zadanie wydruku w jednej transakcji SQL, więc wydruk nie istnieje bez ruchu, a ruch bez wydruku.
Ten opis dotyczy mechanizmu ogólnego, a nie konfiguracji konkretnego produktu. Studio WMS.net generuje etykiety logistyczne GS1 na podstawie danych operacji, co omawia strona o etykiecie GS1 w programie WMS, natomiast zakres szablonów ustala projekt wdrożeniowy dla danego magazynu.

Jak program magazynowy steruje drukarką etykiet
Drukarka przemysłowa rozumie język poleceń, a nie pliki z edytora tekstu. W urządzeniach Zebra jest nim ZPL II: strumień znaków ASCII, który opisuje pola tekstowe i kody kreskowe, a także liczbę kopii. Program magazynowy składa te polecenia z danych operacji i wysyła je do drukarki przez sieć, port USB albo łącze szeregowe.
Etykieta lokalizacji zajmuje w ZPL II kilkanaście linii. Poniższy szablon dla etykiety o szerokości 4 cali przy 203 dpi drukuje adres tekstem oraz kodem Code 128 i zleca jedną kopię.
^XA
^PW812
^LL406
^CI28
^FO40,30^A0N,40,40^FDLokalizacja^FS
^FO40,90^A0N,70,70^FDA-12-03-2^FS
^FO40,190^BY3^BCN,120,Y,N,N^FDA-12-03-2^FS
^PQ1
^XZ
Polecenie ^FO ustawia pozycję pola w punktach od lewego górnego rogu etykiety, a ^A0N wybiera czcionkę skalowalną o podanej wysokości i szerokości. Wartość ^BY3 wyznacza moduł kodu, czyli szerokość najwęższej kreski, na 3 punkty. Polecenie ^BCN drukuje Code 128 w pozycji poziomej z tekstem pod kodem, a ^PQ1 określa liczbę kopii.
Reguła: polecenie ^CI28 ustawia kodowanie UTF-8, więc polskie znaki w polach tekstowych wymagają tej samej strony kodowej w programie i w drukarce, która obsługuje Unicode.
Szablon na serwerze albo w pamięci drukarki
Wzór etykiety można dostarczyć na dwa sposoby. Pierwszy wysyła pełny szablon z każdym zadaniem, więc zmiana układu wymaga poprawki tylko w programie. Drugi zapisuje wzór w pamięci Flash drukarki poleceniem ^DF, a w zadaniu przekazuje wyłącznie wartości pól przez ^FN oraz wywołanie ^XF. Ruch w sieci maleje, ale każda zmiana szablonu oznacza aktualizację wszystkich urządzeń.
^XA
^DFE:LOKACJA.ZPL^FS
^FO40,90^A0N,70,70^FN1^FS
^FO40,190^BY3^BCN,120,Y,N,N^FN1^FS
^XZ
^XA
^XFE:LOKACJA.ZPL^FS
^FN1^FDA-12-03-2^FS
^PQ1
^XZ
Pamięć urządzenia ma limit. Model Zebra ZM400 z opisu w dalszej części tekstu ma 8 MB pamięci Flash, opcjonalnie 64 MB. Prosty szablon tekstowy zajmuje pojedyncze kilobajty, więc ograniczeniem bywają raczej grafiki i dodatkowe czcionki.
Wysyłka zadania i kolejka wydruku
Zadanie trafia do drukarki sieciowej przez surowe gniazdo TCP, zwykle na port 9100. Poniższy fragment C# otwiera połączenie i zapisuje polecenia w kodowaniu UTF-8.
using System.Net.Sockets;
using System.Text;
static void WyslijZpl(string host, string zpl)
{
using var client = new TcpClient(host, 9100);
using var stream = client.GetStream();
byte[] bytes = Encoding.UTF8.GetBytes(zpl);
stream.Write(bytes, 0, bytes.Length);
}
Połączenie z drukarką potrafi zawieść: brak papieru, otwarta głowica albo przerwa w sieci. Z tego powodu program nie wysyła zadania bezpośrednio z okna użytkownika, tylko zapisuje je w tabeli kolejki i odbiera osobnym procesem, który ponawia próby. Tabela poniżej jest schematem przykładowym, a nie strukturą produktu.
CREATE TABLE dbo.PrintJob (
PrintJobId bigint IDENTITY(1,1) PRIMARY KEY,
PrinterCode varchar(20) NOT NULL,
Zpl nvarchar(max) NOT NULL,
Status tinyint NOT NULL DEFAULT 0, -- 0 nowe, 1 wysłane, 2 błąd
Attempts tinyint NOT NULL DEFAULT 0,
CreatedAt datetime2 NOT NULL DEFAULT SYSUTCDATETIME()
);
Reguła: wpis w kolejce powstaje w tej samej transakcji co ruch magazynowy. Po cofnięciu transakcji znika także zadanie, więc nie zostaje etykieta na towar, który nie przeszedł przez system.
Rozdzielczość głowicy i materiał etykiety
Parametry urządzenia wybiera się według najmniejszego kodu na etykiecie, a nie według cennika. Punkt wydruku ma określony rozmiar, a moduł kodu, czyli najwęższa kreska, składa się z całkowitej liczby takich punktów.
| Rozdzielczość | Punktów na milimetr | Rozmiar punktu | Typowe zastosowanie |
|---|---|---|---|
| 203 dpi | 8 | 0,125 mm | Etykiety logistyczne GS1 i adresy lokalizacji |
| 300 dpi | 12 | około 0,083 mm | Małe etykiety z kodami 2D |
| 600 dpi | 24 | około 0,042 mm | Bardzo drobne kody i znakowanie małych elementów |
Moduł o szerokości 3 punktów daje przy 203 dpi kreskę 0,375 mm, a przy 300 dpi kreskę 0,25 mm. Ten sam szablon wydrukowany na drukarce o innej rozdzielczości ma więc inne wymiary fizyczne, jeśli wartość ^BY nie zostanie przeliczona.
Reguła: do standardowych etykiet logistycznych GS1 wystarcza 203 dpi, natomiast drobne kody 2D na małych etykietach wymagają głowicy 300 lub 600 dpi, aby skaner odczytał kod bez powtórnej próby.
Druk termotransferowy a termiczny bezpośredni
Obie technologie działają na tej samej głowicy, ale utrwalają obraz inaczej. Wybór zależy od tego, jak długo etykieta ma zostać czytelna.
| Cecha | Termotransferowy | Termiczny bezpośredni |
|---|---|---|
| Nośnik barwnika | Taśma barwiąca i etykieta | Papier reagujący na ciepło, bez taśmy |
| Trwałość nadruku | Odporny na światło i tarcie | Blaknie pod wpływem światła i temperatury |
| Koszt materiałów | Etykiety oraz taśma | Tylko etykiety |
| Typowe użycie | Etykiety paletowe, znakowanie długotrwałe | Krótkotrwałe oznaczenie przesyłek |
Etykieta paletowa, która ma zostać czytelna dłużej niż kilka tygodni, powinna powstawać metodą termotransferową. Nadruk termiczny bezpośredni ciemnieje albo blaknie, po czym kod SSCC na palecie przestaje się skanować. Do taśmy barwiącej należy jeszcze dobrać nawinięcie zgodne z trzpieniem drukarki (IN albo OUT).
Zebra ZM400 jako przykład drukarki przemysłowej
Zebra ZM400 należy do drukarek półprzemysłowych do etykiet logistycznych GS1. Opis modelu podaje parametry, które dobrze pokazują, na co patrzy się przy wyborze urządzenia. Pełną listę symbologii i wyposażenia zawiera osobna strona Drukarka Zebra ZM400 - parametry techniczne.
| Parametr | Wartość według opisu modelu |
|---|---|
| Metoda druku | Termotransferowa oraz termiczna bezpośrednia |
| Rozdzielczość głowicy | 203 dpi, 300 dpi albo 600 dpi |
| Maksymalna szybkość | 254 mm/s przy 203 dpi, 203 mm/s przy 300 dpi, 102 mm/s przy 600 dpi |
| Szerokość druku | 104 mm |
| Pamięć | 16 MB DRAM, 8 MB Flash, opcjonalnie 64 MB Flash |
| Język poleceń | ZPL II |
| Interfejsy | USB 2.0, Centronics, RS232, serwer druku ZebraNet 10/100, opcjonalnie sieć 802.11b/g |
Szybkość spada wraz z rozdzielczością: głowica 600 dpi drukuje z prędkością 102 mm/s, czyli ponad dwa razy wolniej niż głowica 203 dpi. Przy stanowisku pakowania, gdzie etykieta powstaje po każdym kartonie, ta różnica zamienia się w czas oczekiwania. Rozdzielczość 600 dpi wybiera się więc tylko tam, gdzie wymaga tego kod.
Model można doposażyć. Z listy opcji istotne dla magazynu są cztery:
- Zegar czasu rzeczywistego - pozwala drukować datę i godzinę z zegara urządzenia.
- Obcinacz etykiet - tnie materiał po każdym wydruku.
- Odklejacz z nawijakiem podkładu - wydaje pojedynczą etykietę gotową do naklejenia.
- Obsługa RFID - umożliwia zapis znacznika wklejonego w etykietę.
Reguła: parametry w tabeli pochodzą z opisu modelu. Przed zakupem sprawdza się aktualną kartę katalogową producenta i dostępność materiałów eksploatacyjnych.

Status urządzenia i konserwacja w codziennej pracy
Opowieści o drukarce, która sama zamawia materiały, należą do zapowiedzi marketingowych. Realne możliwości są skromniejsze i bardziej użyteczne: urządzenie zgłasza swój stan, a program reaguje na niego przed wysłaniem kolejnego zadania.
Odczyt statusu drukarki
Zebra udostępnia polecenie ~HS, które zwraca ciąg znaków ze stanem urządzenia. Odczytuje się z niego dwie grupy informacji: braki materiału (papier, taśma) oraz stan mechaniki (otwarta głowica, pauza).
Program wysyła zapytanie przed zadaniem i wstrzymuje wydruk, gdy któraś flaga jest ustawiona. Zadanie wraca do kolejki ze statusem oczekującym, a magazynier dostaje komunikat na kolektorze, że drukarka wymaga interwencji. Etykieta nie ginie po cichu.
Czyszczenie głowicy i opcja RFID
Głowica zużywa się od tarcia i zanieczyszczeń. Zabrudzona daje jasne smugi, które przerywają kreski kodu, a skaner odrzuca taki wydruk albo odczytuje go błędnie. Wynik kontroluje się skanerem, a nie okiem: etykieta próbna powinna odczytać się od razu. W opisie modelu ZM400 konserwację toru przesuwu i głowicy uproszczono.
Przy opcji RFID drukarka zapisuje dodatkowo dane w znaczniku wklejonym w etykietę. Zapis, który się nie powiódł, trzeba odnotować, a taką etykietę wyłączyć z użycia. Wtedy w obiegu nie zostaje znacznik bez danych.
Wdrożenie druku etykiet w magazynie
Wdrożenie zaczyna się od inwentarza etykiet, a nie od zakupu drukarek. Dla każdego typu etykiety ustala się dane i kod, a także rozmiar oraz miejsce wydruku. Zestawienie poniżej pokazuje przykładowy podział stanowisk.
| Stanowisko | Drukarka | Etykieta | Uwaga |
|---|---|---|---|
| Rampa przyjęć | Stacjonarna przemysłowa, 203 dpi | Jednostka logistyczna z SSCC | Wydruk po potwierdzeniu przyjęcia |
| Hala składowania | Mobilna, przy wózku | Lokalizacja | Wydruk na żądanie po zmianie adresu |
| Pakowanie | Stacjonarna z odklejaczem | Karton wysyłkowy | Znaczenie ma szybkość wydruku |
| Produkcja | Przemysłowa z taśmą barwiącą | Wyrób gotowy z partią | Głowica dobrana do najmniejszego kodu |
Kolektor danych z Androidem potwierdza czytelność wydruku przez odczyt kodu z etykiety. Urządzenia opisuje strona o kolektorze danych Android WMS, a pracę skanera z programem strona o programie magazynowym ze skanerem. Adresy regałów, które trafiają na etykiety lokalizacji, opisuje tekst o miejscach składowania.
Dla każdego typu etykiety wykonuje się próbę odczytu na docelowym skanerze, a przy kodach 2D także na kolektorze z kamerą. Przy towarze z partią i datą ważności próba obejmuje wszystkie pola identyfikatorów, co omawia strona o partiach produkcyjnych i datach ważności. Etykiety paletowe wiążą się z numerem SSCC, który wraca w awizacji, jak opisuje tekst o awizo dostawy palet.
Powtórny wydruk i numeracja SSCC
Etykieta uszkodzona w transporcie albo zabrudzona na hali wymaga powtórnego wydruku. Numer SSCC jednostki logistycznej nadaje się jednak raz, w chwili jej utworzenia, więc druga etykieta nie może dostać kolejnego numeru. System drukuje kopię z tego samego rekordu i zapisuje, kto zlecił wydruk i z jakiego powodu.
Dzięki temu w bazie istnieje jeden numer palety i historia jej etykiet. Odbiorca, który skanuje kod przy przyjęciu, dostaje ten sam identyfikator niezależnie od tego, którą kopię naklejono. Gdyby numer generowano od nowa przy każdym wydruku, jedna paleta miałaby dwa identyfikatory, a awizacja wysyłkowa wskazywałaby tylko jeden z nich.
Reguła: powtórny wydruk zmienia liczbę kopii etykiety, a nie numer jednostki. Nowy numer SSCC dostaje wyłącznie nowa jednostka logistyczna.
Składnię poleceń ZPL II opisuje dokumentacja producenta Zebra. Współpracę drukarki z modułem magazynowym można obejrzeć w demo systemu magazynowego SoftwareStudio, a opis Studio WMS.net znajduje się na stronie producenta. Szerszy obraz oprogramowania, które obsługuje przyjęcia i etykiety, daje tekst o oprogramowaniu magazynowym.




