System magazynowy obejmuje więcej niż sam program. W magazynie wysokiego składowania tworzą go dwie warstwy: aplikacja WMS, która gromadzi dane o stanach i zadaniach, oraz wyposażenie fizyczne, przez które te dane trafiają do bazy i za pomocą którego towar faktycznie się przemieszcza. Tekst opisuje obie warstwy i miejsca, w których ich parametry muszą do siebie pasować.

System magazynowy jako dwie warstwy pracy magazynu

Pojęcie bywa używane zamiennie z nazwą oprogramowania WMS, ale to skrót myślowy. Aplikacja bez wyposażenia nie ma z czym współpracować, a wyposażenie bez aplikacji nie zostawia śladu w danych. Decyzja o wdrożeniu rzadko ogranicza się więc do wyboru dostawcy programu.

  • Regały - konstrukcja wyznaczająca lokalizacje, które program zna z nazwy.
  • Wózki - sprzęt przemieszczający ładunek, dobrany do wysokości i szerokości alejek.
  • Urządzenia mobilne - skanery wraz z terminalami oraz drukarki etykiet, przez które operator komunikuje się z systemem.
  • Sieć bezprzewodowa - łączność urządzeń z bazą w całej hali, także na wysokości.

Firmy planujące budowę lub modernizację magazynu często traktują sprzęt i oprogramowanie jako dwa zakupy prowadzone równolegle, ale niezależnie. Wąskie gardła powstają wtedy na styku: regały o parametrach niezgodnych z możliwościami wózków albo zasięg sieci, który kończy się na trzecim poziomie.

Warstwa programowa jako źródło zadań i danych

Program gromadzi informacje napływające z urządzeń mobilnych. Przetwarza je i udostępnia w formie czytelnej dla magazyniera i kierownika zmiany, a także dla innych działów. Od jego reguł zależy, na której lokalizacji trafi paleta, w jakiej kolejności zbiera się zamówienie i kiedy powstaje etykieta logistyczna dla przesyłki.

Reguły w oprogramowaniu a praca na hali

Bez systemu rozmieszczenie towaru staje się przypadkowe, a kolejność wydań zależy od pamięci pracowników. Program zastępuje te decyzje regułami zapisanymi w konfiguracji i wysyła je jako zadania na terminal. Ogólny obraz codziennej pracy opisuje strona o gospodarce magazynowej, a wpływ systemu na całą firmę omawia tekst o roli WMS w rozwoju firmy.

Sama aplikacja, choćby najlepiej zaprojektowana, nie przesunie palety ani nie odczyta kodu kreskowego. Do tego służy wyposażenie, którego jakość wpływa na tempo i dokładność pracy programu. Warstwa sprzętowa bywa pomijana w budżecie, choć od niej zależy, czy zapisy trafiają do bazy od razu, czy z opóźnieniem.

Rejestr urządzeń w bazie

Warstwa sprzętowa zostawia ślad w danych tylko wtedy, gdy program zna urządzenia. Dobrym zwyczajem jest rejestr, w którym każdy terminal ma numer i przypisanego operatora, a także datę ostatniej synchronizacji. Pozwala on ustalić, który egzemplarz zawodzi w konkretnym miejscu hali i kto pracował na nim w chwili błędu, a przy wymianie sprzętu przenieść jego konfigurację na następne urządzenie bez ponownego zbierania ustawień.

Regały wysokiego składowania oraz wózki widłowe i kolejowe

Regały wysokiego składowania wykorzystują przestrzeń w pionie. Na tej samej powierzchni mieści się w nich znacznie więcej miejsc niż w magazynie niskiego składowania, ale konstrukcja wymaga sprzętu dopasowanego do wysokości i szerokości alejek. Podział przestrzeni na lokalizacje opisuje strona o miejscach składowania.

Wysokie regały paletowe z paletami w niebieskich i pomarańczowych opakowaniach oraz wózek widłowy w alejce magazynu
Regały wysokiego składowania - o liczbie poziomów i szerokości alejek decyduje układ, który program odwzorowuje w tabeli lokalizacji

Do obsługi regałów używa się wózków widłowych z masztem, który podnosi ładunek na wysokość kilku metrów. W magazynach o bardzo wąskich alejkach pracują wózki kolejowe, prowadzone po szynach lub ścieżce indukcyjnej w podłodze. System koordynuje ich pracę, wskazując operatorowi najbliższą wolną lokalizację i trasę przejazdu.

Przy wózkach prowadzonych szyną albo ścieżką indukcyjną operator nie kieruje na boki w alejce, więc kolejność zadań ma większe znaczenie. System może układać je tak, by ograniczyć zmiany alejek, bo każde przejście z jednej alejki do drugiej oznacza wyjazd na główny ciąg komunikacyjny i ponowne wprowadzenie wózka.

Parametry do uzgodnienia przed zakupem

Parametry regałów i wózków wzajemnie się ograniczają. Błąd na tym etapie kosztuje więcej niż błąd w konfiguracji programu, bo wymaga wymiany sprzętu.

ParametrCo ograniczaSkutek niedopasowania
Wysokość podnoszenia wózkaNajwyższy dostępny poziom regałuGórne poziomy pozostają nieosiągalne
Szerokość alejkiWybór typu wózkaWózek nie skręca albo alejka marnuje powierzchnię
Udźwig wózka na wysokościMasa palety na wyższych poziomachRyzyko przewrócenia, bo udźwig maleje wraz z wysokością podnoszenia
Nośność poziomu regałuMasa składowanej paletyPrzeciążenie belek nośnych

Reguła: masa palety zapisana w systemie musi mieścić się w nośności poziomu regału i w udźwigu wózka na danej wysokości, a te wartości wprowadza się do danych lokalizacji przed uruchomieniem.

Dane o nośności i wysokości trzyma się w tabeli lokalizacji obok adresu, a kontrolę robi zapytanie porównujące masę palety z nośnością miejsca. Poniższy przykład używa tabel poglądowych.

-- przykład: tabela lokalizacji z parametrami regału i kontrola przeciążeń (schemat poglądowy)
CREATE TABLE dbo.Lokalizacja (
    IdLokalizacji int IDENTITY(1,1) PRIMARY KEY,
    Adres         varchar(20) NOT NULL UNIQUE,
    Poziom        tinyint     NOT NULL,
    WysokoscMm    int         NOT NULL,
    NosnoscKg     int         NOT NULL,
    CONSTRAINT CK_Lokalizacja_Nosnosc CHECK (NosnoscKg > 0)
);

SELECT p.IdPalety, p.MasaKg, l.Adres, l.NosnoscKg
FROM   dbo.Paleta       AS p
JOIN   dbo.Lokalizacja  AS l ON l.IdLokalizacji = p.IdLokalizacji
WHERE  p.MasaKg > l.NosnoscKg;

Typowe błędy w projektowaniu układu opisuje strona o błędach przy planowaniu układu regałów. Praca na wysokości wymaga też dbałości o bezpieczeństwo: wózki poruszają się w wąskich alejkach, a regały niosą duże obciążenia, więc każda operacja powinna zostawiać zapis możliwy do prześledzenia.

Urządzenia mobilne i drukarki etykiet

Magazynier wprowadza dane do systemu w czasie rzeczywistym przez urządzenia mobilne. Skaner kodów kreskowych odczytuje etykietę palety lub opakowania zbiorczego i od razu przekazuje ją do programu, eliminując ręczne przepisywanie numerów. Dobór takiego urządzenia opisuje strona o programie magazynowym ze skanerem.

Ręczny skaner z klawiaturą i kolorowym ekranem w dłoni na tle regałów magazynowych
Ręczny skaner - odczyt etykiety palety trafia do bazy w chwili skanu, bez papierowej listy pośredniej

Terminal radiowy łączy funkcję skanera z ekranem, na którym magazynier widzi kolejne zadania: lokalizację odłożenia, listę pozycji do skompletowania i potwierdzenie wykonanej operacji. Praca bez niego oznacza powrót do papierowych list i ustaleń telefonicznych z biurem, co w wysokim magazynie szybko staje się źródłem pomyłek. Rolę urządzenia omawia strona o terminalu radiowym w magazynie, a przykładem sprzętu używanego w praktyce jest Motorola Symbol MC9090.

Dłonie trzymające przemysłowy terminal radiowy z kolorowym ekranem aplikacji magazynowej na tle regałów
Terminal radiowy - ekran z listą zadań zastępuje wydruk zlecenia i pozwala potwierdzać operacje skanem

Coraz częściej stosuje się też kolektor danych z systemem Android, który zastępuje dedykowane terminale przemysłowe tańszym i bardziej uniwersalnym urządzeniem, zachowując integrację z oprogramowaniem magazynowym. Sprzęt i zakres współpracy z programem przedstawia też serwis SoftwareStudio o terminalach radiowych.

Drukarka etykiet z ekranem dotykowym wysuwa pasek z wydrukowanymi kodami kreskowymi na tle regałów magazynowych
Drukarka etykiet logistycznych - karta paletowa albo etykieta GS1 powstaje na hali, bez powrotu do biura

Starsze terminale z systemem Windows CE często wymagają wymiany razem z aplikacją, ponieważ system i sprzęt bywają już poza wsparciem producenta. Sposób przejścia na urządzenia z Androidem opisuje strona o migracji terminali z Windows CE na Android, a wybór sprzętu warto uzgodnić z dostawcą programu jeszcze przed zakupem.

Uzupełnieniem zestawu jest drukarka etykiet logistycznych. Drukuje kartę paletową lub etykietę w standardzie opisanym na stronie o etykiecie GS1 bezpośrednio na hali, po zapisaniu przyjęcia w systemie.

Sieć bezprzewodowa w alejkach regałowych

Najdroższy terminal nie pomoże, jeśli sieć ma słaby zasięg w wyższych partiach regałów. Konstrukcje stalowe i gęsto ułożony towar tłumią sygnał, więc przed instalacją sprawdza się pokrycie na każdym poziomie, a nie tylko na poziomie podłogi. Zagadnienia szyfrowania i pokrycia opisuje strona o terminalu radiowym oraz łączności Wi-Fi.

Na dużej hali terminal przechodzi między kilkoma punktami dostępowymi, więc liczy się także szybkość przełączania. Zbyt wolny roaming przerywa połączenie z serwerem w środku operacji i zmusza aplikację do ponowienia zapisu, co operator odbiera jako zawieszanie się programu.

Wykrywanie martwych stref

Po uruchomieniu problem widać w danych. Jeśli urządzenie zapisuje zdarzenie utraty zasięgu razem z ostatnią lokalizacją, proste zapytanie wskazuje miejsca, w których łączność zawodzi najczęściej. Poniższy przykład działa na tabelach poglądowych.

-- przykład: miejsca, w których terminale najczęściej tracą zasięg (tabele poglądowe)
SELECT l.Strefa,
       l.Rzad,
       l.Poziom,
       COUNT(*) AS BrakiZasiegu
FROM   dbo.DziennikTerminala AS d
JOIN   dbo.Lokalizacja       AS l ON l.IdLokalizacji = d.IdLokalizacji
WHERE  d.TypZdarzenia = N'BRAK_ZASIEGU'
  AND  d.Czas >= DATEADD(DAY, -7, SYSDATETIME())
GROUP  BY l.Strefa, l.Rzad, l.Poziom
ORDER  BY BrakiZasiegu DESC;

Wynik z kilku dni pokazuje, czy problem dotyczy jednego rzędu, czy całej strefy, i podpowiada, gdzie dodać punkt dostępowy. Aplikacja mobilna może dodatkowo buforować operacje w urządzeniu i wysyłać je po powrocie łączności, co jest wzorcem opisywanym w dokumentacji Android o aplikacjach offline-first. Poniższy szkic pokazuje ideę kolejki w JavaScript.

// przykład: kolejka skanów wysyłana ponownie po powrocie zasięgu (adres API poglądowy)
async function wyslijZalegleSkany() {
  const kolejka = JSON.parse(localStorage.getItem('kolejkaSkanow') || '[]');
  while (kolejka.length > 0) {
    try {
      const odpowiedz = await fetch('/api/ruchy', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(kolejka[0])
      });
      if (!odpowiedz.ok) break;
      kolejka.shift();
      localStorage.setItem('kolejkaSkanow', JSON.stringify(kolejka));
    } catch (blad) {
      break;
    }
  }
}

Każda operacja w kolejce powinna mieć własny identyfikator, żeby serwer mógł odrzucić powtórkę, gdy odpowiedź zgubiła się po drodze. Bez tego ponowna wysyłka po utracie zasięgu podwoiłaby ruch magazynowy.

Elementy wyposażenia i ich funkcja w systemie

Element wyposażeniaFunkcja w systemie magazynowym
Regał wysokiego składowaniaUmożliwia składowanie w pionie i wyznacza lokalizacje rozpoznawane przez program
Wózek widłowy z masztemPodnosi ładunek na wysokość regałów i obsługuje przyjęcia oraz wydania
Wózek kolejowyPracuje w bardzo wąskich alejkach i zwiększa wykorzystanie powierzchni
Skaner kodów kreskowychOdczytuje etykiety palet i przekazuje dane bez wpisywania
Terminal radiowyŁączy operatora z programem w czasie rzeczywistym i wyświetla zadania
Drukarka etykiet logistycznychDrukuje karty paletowe i etykiety GS1 na hali

W typowej konfiguracji każdy wiersz zestawienia ma odpowiednik w danych programu. Regał staje się zbiorem lokalizacji z adresami, wózek rodzajem zasobu, do którego przypisuje się zadania, a urządzenia mobilne pozycjami rejestru powiązanymi z operatorami. Im dokładniej te odpowiedniki zapisano na etapie wdrożenia, tym mniej ręcznych korekt będzie potrzebne, gdy hala zacznie pracować pod obciążeniem.

Wybór systemu magazynowego z oprogramowaniem i sprzętem

Magazyn wysokiego składowania to środowisko, w którym różnicę widać najwyraźniej. Przy regałach o wysokości kilku, a czasem kilkunastu metrów odnalezienie palety bez precyzyjnego adresu i łączności między sprzętem a programem graniczy z niemożliwością. Kiedy system staje się w takim magazynie konieczny, opisuje strona o oprogramowaniu klasy WMS dla magazynu wysokiego składowania.

Sprawność systemu zależy od dokładności integracji obu warstw, a nie od tego, jak zaawansowany jest pojedynczy element. Wdrożenie zaczyna się więc od analizy całego środowiska pracy: układu regałów i tras wózków, a także pokrycia sieci oraz liczby stanowisk wymagających skanerów i terminali. Dopiero na tej podstawie dobiera się modele sprzętu i konfiguruje program tak, aby odzwierciedlał rzeczywistą halę, a nie schemat z projektu.

  1. Analiza przestrzeni - wysokość i układ regałów oraz szerokość alejek transportowych.
  2. Dobór wózków - typ i udźwig dopasowane do parametrów regałów.
  3. Dobór urządzeń mobilnych - terminale i skanery oraz drukarki potwierdzone jako zgodne z programem.
  4. Konfiguracja i testy - odwzorowanie hali w systemie, próby na wszystkich poziomach i szkolenie operatorów.

Testy przed uruchomieniem obejmują skan etykiety na najwyższym poziomie, odczyt z odległości typowej dla pracy z wózka i czas odpowiedzi aplikacji w godzinach szczytu. Każdy z tych sprawdzianów wykrywa inny rodzaj niedopasowania, a wszystkie razem zamykają listę uwag, zanim system trafi do pracy produkcyjnej.

Szkolenie obejmuje również uprawnienia. Operator wózka nie potrzebuje wglądu w konfigurację reguł składowania, a kierownik zmiany nie powinien zmieniać adresów lokalizacji. Rozdzielenie ról ogranicza pomyłki i ułatwia audyt zmian.

Reguła: przed zakupem sprzętu trzeba ustalić z dostawcą programu, które modele terminali i skanerów oraz drukarek zostały już sprawdzone we współpracy z jego oprogramowaniem.

Poprawnie dobrany system zmienia pracę całego magazynu, a nie tylko jednego etapu. Magazynier z terminalem wykonuje zadania szybciej i z mniejszą liczbą pomyłek niż na papierowych listach. Kierownik zmiany widzi, które stanowiska pracują sprawnie, a które potrzebują wsparcia, a dział utrzymania ruchu może na podstawie zapisów pracy wózków planować przeglądy.