Ile doków potrzebuje magazyn - rachunek na danych

Pojemność doków przeładunkowych jest parametrem, który magazyny najczęściej szacują na oko. Zbyt mała liczba stanowisk w stosunku do wolumenu dostaw prowadzi do kolejek na placu, opóźnień w rozładunku i przestojów zespołu przyjęć. Zarządzanie pojemnością obejmuje trzy zadania: wyliczenie liczby stanowisk, przydzielanie doku do dostawy według jej charakterystyki oraz obsługę chwili, w której wszystkie doki są zajęte.

Punktem wyjścia jest prosty rachunek. Trzeba znać liczbę pojazdów przyjeżdżających w godzinie szczytu (λ), średni czas zajęcia doku przez jeden pojazd w godzinach (S) oraz docelowe obłożenie stanowisk (ρ). Obciążenie ruchem wynosi λ razy S i jest wyrażone w erlangach, a minimalna liczba doków to obciążenie podzielone przez ρ, zaokrąglone w górę.

Obłożenie nie powinno dążyć do 100 procent. W układach z kolejką czas oczekiwania rośnie nieliniowo, gdy obłożenie zbliża się do jedności, więc magazyn pracujący na granicy pojemności ma długie kolejki nawet przy średnio równych przyjazdach. Orientacyjnie planuje się obłożenie w szczycie na poziomie 75-85 procent.

Scenariusz (dane przykładowe)Pojazdy w szczycie na godzinęCzas obsługiDoki przy ρ = 0,75Doki przy ρ = 0,9
Magazyn regionalny645 min65
Centrum dystrybucyjne1245 min1210
Centrum z wolniejszą obsługą1260 min1614
Przeładunek krótkich wizyt2030 min1412

Reguła: liczbę doków wylicza się dla godziny szczytu, a nie dla średniej dobowej, bo zator powstaje w szczycie i to on decyduje o czasie oczekiwania pojazdów.

Skąd wziąć dane do wzoru

Obie wartości wynikają z historii wizyt, a nie z szacunków. Zapytanie poniżej liczy średnią liczbę przyjazdów na godzinę i średni czas zajęcia doku z ostatnich trzech miesięcy. Tabela DockVisit jest poglądowa, a dane zwykle pochodzą z systemu awizacji i z systemu WMS. Aby wynik nie zaniżał szczytów, dzieli się liczbę wizyt przez liczbę dni w okresie, a dni wolne od pracy warto wyłączyć osobnym warunkiem.

DECLARE @To   date = CAST(SYSDATETIME() AS date),
        @From date = DATEADD(MONTH, -3, CAST(SYSDATETIME() AS date));

SELECT DATEPART(HOUR, ArrivedAt) AS HourNo,
       CAST(COUNT(*) AS decimal(9,2))
           / NULLIF(DATEDIFF(DAY, @From, @To), 0) AS AvgArrivalsPerHour,
       AVG(DATEDIFF(MINUTE, DockStartAt, DockEndAt)) AS AvgServiceMin
FROM   dbo.DockVisit
WHERE  ArrivedAt >= @From AND ArrivedAt < @To
GROUP BY DATEPART(HOUR, ArrivedAt)
ORDER BY HourNo;

Godzina z największą wartością AvgArrivalsPerHour wyznacza λ do wzoru. Jeśli ta godzina wypada tuż po otwarciu zmiany, problemem może być rozkład dostaw, a nie liczba doków. Analiza historii razem ze stanami magazynowymi pokazuje, w których godzinach stanowiska są obłożone, a w których stoją puste. Wynik warto sprawdzić osobno dla poszczególnych dni tygodnia, ponieważ poniedziałek i piątek mają zwykle inny profil niż środek tygodnia.

Przydział doku do dostawy

Przydział stanowiska nie powinien być przypadkowy. Operator, który przypisuje pojazdy do doków bez uwzględnienia charakterystyki dostawy, naraża magazyn na przestoje z braku sprzętu albo na fizyczną niemożność zaparkowania pojazdu przy zbyt małym stanowisku. Logika przydziału opiera się na czterech kryteriach.

  • Typ towaru - paleta, drobnica, ładunek luzem albo towar w stałej temperaturze wymagają innego wyposażenia doku.
  • Wymagany sprzęt - rampa hydrauliczna, wózek widłowy czy instalacja chłodnicza muszą być dostępne przy wybranym stanowisku.
  • Rozmiar pojazdu - naczepa standardowej długości potrzebuje innego promienia manewru niż pojazd dostawczy.
  • Priorytet dostawy - towar wrażliwy na czas wyprzedza transport, który może poczekać.
Typ dostawyWymagany dokNiezbędny sprzęt
Paletowa (pełne palety, transport FTL)standardowy dok z rampą hydraulicznąwózek widłowy, rampa wyrównawcza
Drobnicowa (wiele mniejszych przesyłek)dok z szeroką strefą przyrampowąwózek paletowy, skanery kodów, strefa sortowania
Chłodnicza i mrożonadok szczelny z izolacją termicznąinstalacja chłodnicza, uszczelnienie doku, termometr kontrolny
Ładunek luzem lub sypkidok z niezależnym systemem rozładunkuprzenośnik lub instalacja pneumatyczna, osłona przeciwpyłowa
Ponadgabarytowa (maszyny, konstrukcje)dok o zwiększonym promieniu manewrudźwig lub suwnica, dodatkowa przestrzeń manewrowa

W praktyce część doków warto na stałe dedykować jednemu typowi towaru, na przykład chłodniczemu, a pozostałe stanowiska zostawić uniwersalne. Taki podział ogranicza liczbę decyzji zespołu przyjęć w czasie rzeczywistym. Powiązanie doku z dokumentami magazynowymi ułatwia też ustalenie, które stanowisko obsłużyło daną dostawę.

Alokacja doków przy dostawach jednoczesnych

Trudność zaczyna się wtedy, gdy kilka pojazdów zgłasza się w tej samej chwili. System zarządzania dokami, zwykle działający jako część operacji magazynowych w WMS, musi rozstrzygnąć, który pojazd trafia na które stanowisko. Bierze pod uwagę dostępność doków, ale też obciążenie personelu przyjęć i sprzętu przeładunkowego. Kilka dostaw wymagających tego samego wózka przypisanych do sąsiednich stanowisk w jednej chwili powoduje przestój, mimo że doki formalnie są wolne.

Skuteczna alokacja uwzględnia cały układ zasobów przyrampowych, czyli operatorów z wózkami oraz miejsca odkładcze. W magazynach o dużym natężeniu ruchu dostawy o zbliżonej charakterystyce rozdziela się na różne części hali, żeby zapotrzebowanie na sprzęt nie kumulowało się w jednym miejscu.

Lista doków magazynowych w module Gate Assistant systemu VSS.net z kolumnami Magazyn, Kod, Opis i Rezerwacja dla oraz menu Zajętość doków i Blokady
Lista doków w module Gate Assistant: kolumna Rezerwacja dla wskazuje kontrahenta, któremu przypisano rampę.

Zrzut pokazuje listę doków magazynowych w module Gate Assistant systemu VSS.net. Kolumna Rezerwacja dla wskazuje kontrahenta, któremu dok został przypisany, a kolumna Ciągnik/Naczepa pokazuje pojazd zajmujący stanowisko. Menu tego modułu obejmuje też Zajętość doków oraz Obciążenie ramp i Blokady. Opis widoku znajduje się na stronie producenta o zajętości doków, a rezerwację okien po stronie awizacji opisuje artykuł o awizacjach VSS.net.

Rezerwacja doku w transakcji

Przydział wykonany przez dwóch dyspozytorów naraz nie może skończyć się dwiema rezerwacjami tego samego stanowiska w nakładających się godzinach. Standardowe rozwiązanie to transakcja, która blokuje wiersz doku podpowiedzią UPDLOCK, a kolejnych kandydatów pomija dzięki READPAST. Dwie sesje wybierają wtedy różne doki, zamiast czekać na siebie nawzajem.

BEGIN TRAN;

DECLARE @DockId int;

SELECT TOP (1) @DockId = d.DockId
FROM   dbo.Dock AS d WITH (UPDLOCK, READPAST, ROWLOCK)
WHERE  d.IsActive = 1
  AND  d.DockType = @DockType
  AND  NOT EXISTS (SELECT 1
                   FROM   dbo.DockReservation AS r
                   WHERE  r.DockId = d.DockId
                     AND  r.ReservedFrom < @To
                     AND  r.ReservedTo   > @From)
ORDER BY d.DockId;

IF @DockId IS NOT NULL
    INSERT INTO dbo.DockReservation (DockId, VisitId, ReservedFrom, ReservedTo)
    VALUES (@DockId, @VisitId, @From, @To);

COMMIT;

Warunek nakładania się przedziałów ma postać: istniejąca rezerwacja zaczyna się przed końcem nowej i kończy po jej początku. Zapytanie jest poglądowe, a znaczenie podpowiedzi opisuje dokumentacja table hints w Microsoft Learn. Podpowiedź READPAST ma cenę: pominięty dok może być wolny w interesującym przedziale, więc przydział bywa nieoptymalny. W magazynach z niewielką liczbą doków, gdzie każde stanowisko się liczy, lepiej zablokować cały zbiór kandydatów blokadą aplikacyjną.

Dokładniejszy opis planowania stanowisk i okien znajduje się w artykule o zarządzaniu dokami w magazynie.

Wąskie gardła i zatory w godzinach szczytu

Większość magazynów ma powtarzalne szczyty ruchu: rano, przed zamknięciem zmiany albo w dniach poprzedzających weekend. Wtedy liczba pojazdów przekracza chwilową pojemność doków, nawet jeśli infrastruktura wystarcza dla średniego dziennego wolumenu. Wąskie gardło powstaje nie z braku stanowisk, lecz z nierównomiernego wykorzystania ich w czasie. Zanim zapadnie decyzja o rozbudowie, trzeba więc odróżnić dwie przyczyny.

  • Niedobór pojemności - obłożenie doków jest wysokie przez większość zmiany, a nie tylko w szczycie. Pomaga dodatkowy dok albo skrócenie czasu obsługi.
  • Nierównomierny rozkład - średnie obłożenie dobowe jest niskie, ale w jednej lub dwóch godzinach kolejka rośnie. Pomaga rozłożenie okien czasowych na całą zmianę.

W drugim przypadku rozbudowa infrastruktury nie rozwiąże zatorów. Ograniczenie kolejki wymaga rozłożenia planowanych dostaw w ciągu zmiany, rezerwowania części stanowisk na dostawy nieplanowane oraz bieżącego monitorowania obłożenia, które pozwala przekierować pojazd na stanowisko zapasowe, zanim kolejka zdąży się utworzyć. Reguły rezerwacji terminów opisuje artykuł o slot booking, a ich zastosowanie w YMS omawia tekst o oknach czasowych w systemie YMS.

Reguła: jeden lub dwa doki warto wyznaczyć jako stanowiska buforowe, uruchamiane wyłącznie w godzinach szczytu. Bufor pochłania nagły wzrost ruchu bez utrzymywania pełnej obsady na pozostałych stanowiskach przez cały dzień.

Kolejka na placu i priorytety obsługi

Nawet dobrze zaplanowana pojemność ma chwile, w których wszystkie doki są zajęte. Kolejne pojazdy trafiają wtedy na plac manewrowy i czekają na odpowiednie stanowisko. Bez zasad kolejkowania ustawiają się w losowej kolejności, a dostawa o wysokim priorytecie czeka dłużej niż mniej pilny transport, który przyjechał wcześniej. Rozwiązaniem jest priorytet zapisany w danych: typ towaru, znaczenie dla ciągłości produkcji lub sprzedaży oraz czas już spędzony na placu.

Sam priorytet bazowy może jednak prowadzić do zagłodzenia dostaw o niskiej wadze, które nigdy nie doczekają się doku w dniu o dużym ruchu. Wyrównuje to dodanie punktów za czas oczekiwania, czyli tak zwane starzenie zgłoszeń. Zapytanie poniżej wybiera dziesięć pojazdów o najwyższym wyniku, przy czym każde 10 minut czekania dodaje jeden punkt do priorytetu bazowego.

SELECT TOP (10)
       q.VisitId,
       q.PlateNo,
       q.BasePriority
         + DATEDIFF(MINUTE, q.ArrivedAt, SYSDATETIME()) / 10 AS Score
FROM   dbo.YardQueue AS q
WHERE  q.Status = N'Waiting'
ORDER BY Score DESC, q.ArrivedAt;

Wagę czasu oczekiwania ustala się doświadczalnie, a reguły zapisuje jako stały element procedury, a nie doraźną decyzję ochrony lub dyspozytora. Pojazd z towarem szybko rotującym albo wrażliwym na temperaturę powinien mieć wyższy priorytet bazowy niż transport, który może bezpiecznie poczekać.

Ciężarówka przed regałami magazynu i tablet z kalendarzem rezerwacji, ilustracja planowania okien czasowych dla stanowisk dokowych
Rezerwacje okien czasowych porządkują ruch pojazdów przed dokami, zanim kolejka powstanie na placu.

Yard management jako uzupełnienie zarządzania dokami

Zarządzanie placem uzupełnia zarządzanie dokami o widoczność całego terenu. System pokazuje, ile pojazdów oczekuje, jak długo stoją i które doki zwolnią się jako pierwsze, więc dyspozytor kieruje kolejny pojazd na konkretne stanowisko z wyprzedzeniem. Proces na placu opisuje artykuł o systemie yard management, zakres systemu YMS - tekst o systemie YMS, a zajętość miejsc parkingowych - strona o wizualizacji miejsc parkingowych. Sposób pracy zespołu przyjęć zbliża się wtedy do pracy dyspozytorów magazynowych, którzy planują kolejność obsługi z wyprzedzeniem.

Wskaźniki wykorzystania doków

Ocena, czy pojemność jest wykorzystywana efektywnie, wymaga stałego pomiaru. Poniżej zestawiono cztery wskaźniki, które opłaca się śledzić.

  • Wskaźnik wykorzystania doku - procent czasu pracy magazynu, w którym stanowisko jest zajęte przez pojazd.
  • Rotacja doku - czas od podjazdu pojazdu do zwolnienia stanowiska po zakończeniu przeładunku.
  • Średni czas oczekiwania na placu - pokazuje, jak długo pojazdy czekają na wolny dok w godzinach szczytu.
  • Udział dostaw nieplanowanych - im wyższy, tym trudniej utrzymać płynność harmonogramu doków.

Pierwszy wskaźnik liczy się prostym zapytaniem, w którym suma minut zajętości dzieli się przez liczbę minut dostępności doku w okresie.

DECLARE @Days int = 28, @ShiftMinutes int = 16 * 60;   -- doba pracy 16 godzin

SELECT DockId,
       CAST(100.0 * SUM(DATEDIFF(MINUTE, DockStartAt, DockEndAt))
            / (@Days * @ShiftMinutes) AS decimal(5,1)) AS UtilizationPct
FROM   dbo.DockVisit
WHERE  DockStartAt >= DATEADD(DAY, -@Days, SYSDATETIME())
GROUP BY DockId
ORDER BY UtilizationPct DESC;

Systematyczna analiza tych danych w systemie do zarządzania magazynem pozwala odróżnić stanowiska przeciążone od wykorzystywanych poniżej możliwości. Decyzje o rozbudowie infrastruktury opierają się wtedy na liczbach, a nie na odczuciach zespołu. Producent opisuje moduły magazynowe na stronie o systemie zarządzania magazynem WMS.

Plan zmian pojemności doków

Zmiany w pojemności doków warto wprowadzać w ustalonej kolejności, bo część problemów znika po samym uporządkowaniu okien.

  1. Zbierz dane historyczne - trzy miesiące wizyt pokazują realny rozkład ruchu w ciągu dnia i tygodnia.
  2. Rozstrzygnij przyczynę - sprawdź, czy problemem jest liczba stanowisk, czy rozkład dostaw w czasie.
  3. Zmień reguły - dopasuj wyposażenie doków do typu towaru, ustal priorytety kolejki i wprowadź stanowiska buforowe.
  4. Mierz po zmianie - porównaj wskaźniki z okresu przed zmianą i po niej, zanim zapadnie decyzja o rozbudowie.

Integracja tych zasad z systemem WMS oraz z planowaniem wysyłek z magazynu pozwala traktować doki jako zasób planowany łącznie z pracą personelu i sprzętu. Powiązanie danych o przyjęciach z planowaniem dostaw do magazynu ułatwia prognozowanie szczytów, a przebieg samego przyjęcia opisuje artykuł o przyjęciu do magazynu.