Architektura systemu awizacji dostaw

System awizacji dostaw składa się z kilku warstw, które spotykają się przy jednej bramie. Pierwsza to aplikacja webowa, w której dyspozytor oraz zewnętrzne firmy rezerwują terminy. Druga to punkty kontaktu na terenie zakładu, na przykład waga samochodowa i kiosk. Do nich dochodzą kamery oraz stanowisko ochrony. Trzecia warstwa to integracje z systemami WMS i ERP, a także z TMS, które zlecają samą dostawę i ją rozliczają.

W praktyce awizacja przestaje być kalendarzem, gdy pojazd dojedzie do bramy. Od tego momentu system musi rozpoznać pojazd, dopasować go do rezerwacji i zapisać czasy kolejnych etapów wizyty. Każdy z tych kroków wymaga innego urządzenia albo innego źródła danych, więc architektura systemu decyduje o tym, ile pracy ręcznej zostaje na bramie.

Punkt kontaktuUrządzenie lub systemDane, które trafiają do awizacji
Rezerwacja terminuprzeglądarka, aplikacja mobilnaokno czasowe, pojazd, kierowca, rodzaj ładunku
Brama wjazdowakiosk, totem, kamera z odczytem tablicpotwierdzenie przybycia, numer rejestracyjny
Waga samochodowaurządzenie sieciowe z modułem komunikacjimasa pojazdu przy wjeździe i wyjeździe
Rampaterminal, aplikacja magazynierapoczątek i koniec rozładunku
Systemy nadrzędneWMS, TMS, ERPzlecenia przyjęcia i wydania, plan tras

Ogólny podział zadań między awizację a resztę infrastruktury placu opisuje artykuł o systemach klasy YMS, a przebieg samej wizyty od zgłoszenia do wyjazdu - tekst o awizacji transportu i jej statusach. Tutaj omawiamy urządzenia i integracje, bo to one odróżniają system awizacji od zwykłego arkusza terminów.

Waga samochodowa jako urządzenie sieciowe

Studio VSS.net integruje się z wagami samochodowymi, które działają jako urządzenia sieciowe. Dzięki temu kontrola masy pojazdu nie wymaga osobnego stanowiska z papierowym wydrukiem. Wynik ważenia trafia do awizacji, a firma może monitorować wjazdy pojazdów i porównywać masę z deklaracją przewoźnika.

Odczyt odbywa się technologią AJAX. Formularz nie przeładowuje się w trakcie ważenia, tylko wysyła zapytanie do urządzenia komunikacyjnego podłączonego do wagi i wstawia zwróconą wartość w pole masy. Program odczytuje wartość zwracaną przez urządzenie i przelicza ją na format bazy danych. Formularz do obsługi wag jest napisany w JavaScript, co pozwala go elastycznie dopasować do konkretnego modelu wagi. Użytkownik może odczytać masę jednym kliknięciem, a przyciski noszą nazwy własne wag używanych w danym zakładzie.

// przykład: odczyt wagi bez przeładowania formularza (adres i format odpowiedzi są przykładowe)
async function odczytajMase(adresUrzadzenia) {
  const odp = await fetch(adresUrzadzenia, { headers: { Accept: 'application/json' } });
  if (!odp.ok) throw new Error('Waga niedostępna: ' + odp.status);
  const dane = await odp.json();                 // np. { "wartosc": "24 360", "jednostka": "kg" }
  const kg = Number(String(dane.wartosc).replace(/\s/g, '').replace(',', '.'));
  if (!Number.isFinite(kg)) throw new Error('Nieprawidłowa wartość wagi');
  document.querySelector('#Masa').value = kg;
  return kg;
}

Podstawy komunikacji asynchronicznej, na której opiera się taki odczyt, opisuje dokumentacja MDN o używaniu Fetch API. Ważny szczegół dotyczy konwersji: wagi zwracają masę w różnych formatach, z separatorem tysięcy albo bez, z przecinkiem lub kropką dziesiętną. Kod musi to znormalizować przed zapisem, bo tekst „24 360” nie jest liczbą.

Ilustracja: fasada magazynu z rzędem bram rampowych, przy których odbywa się kontrola wjazdu
Brama i rampy w zakładzie: waga samochodowa na wjeździe i wyjeździe dostarcza dane do awizacji, a strona o wagach samochodowych w awizacji omawia szczegóły

Masa brutto i netto w awizacji

Ważenie na wjeździe i wyjeździe daje dwie liczby. Różnica między nimi jest masą przyjętego albo wydanego towaru, o ile pojazd nie zmienił wyposażenia w czasie postoju. Ograniczenia tonażowe obiektu to drugi powód ważenia: system może odmówić wjazdu pojazdowi, którego masa przekracza dopuszczalną, zanim dojedzie do rampy.

Reguła: masa z wagi jest źródłem danych, a nie decyzją. O odmowie wjazdu decyduje reguła zapisana w konfiguracji, na przykład tolerancja względem deklarowanej masy ładunku.

Potwierdzanie przyjazdu na kiosku i kodem QR

Infokioski i totemy ustawione na terenie zakładu pozwalają kierowcom potwierdzić przybycie samodzielnie, bez angażowania ochrony. Kierowca wpisuje numer awizacji albo inne dane otrzymane wcześniej od systemu. Rozwiązanie zdejmuje z portierni najprostszą czynność. Skraca też kolejkę przy wjeździe.

Drugą metodą jest kod QR. Kierowca dostaje go wcześniej w wiadomości MMS albo w formie wydruku i skanuje przy wjeździe. System weryfikuje dane zapisane w kodzie i potwierdza przyjazd na teren zakładu. Metody można łączyć: kierowca bez telefonu z dostępem do Internetu korzysta z wydruku, a pozostali skanują kod z ekranu.

Metoda potwierdzeniaCo okazuje kierowcaCo weryfikuje system
Kiosk lub totemnumer awizacji wpisany na ekranieistnienie awizacji w oknie czasowym
Kod QR z MMSkod na ekranie telefonuzgodność danych zapisanych w kodzie z awizacją
Kod QR z wydrukukartka z kodemte same dane bez potrzeby użycia telefonu
Ochrona przy bramienumer rejestracyjny podany ustniedopasowanie pojazdu do awizacji w programie

Kiosk nie zastępuje ochrony w każdej sytuacji. Pojazd bez awizacji trafia do kolejki wyjątków, którą obsługuje człowiek, a kioskowy przebieg dotyczy transportów zaplanowanych. Rozwiązanie kioskowe opisuje strona o kiosku samoobsługowym w awizacji, a obsługę pojazdów bez rezerwacji - artykuł o transporcie nieawizowanym.

Rozpoznawanie tablic rejestracyjnych z kamer

Trzecia metoda identyfikacji nie wymaga żadnej czynności od kierowcy. Kamery CCTV z technologią LPR (License Plate Recognition) odczytują numery rejestracyjne pojazdów zbliżających się do bramy. System można zintegrować z kamerami sieciowymi, a odczytany numer trafia do VSS.net, gdzie jest dopasowywany do zaplanowanego transportu.

Dopasowanie skraca odprawę, bo zanim pojazd zatrzyma się przy szlabanie, awizacja jest już znaleziona, a dokumenty można przygotować. Zdjęcia pojazdów z widocznymi tablicami wyświetlają się w systemie podczas procesu awizacji. Dane o ruchu są zapisywane i archiwizowane, więc historia zrealizowanych transportów pozostaje dostępna do kontroli.

Błędy odczytu i dopasowanie numerów

Odczyt optyczny nie jest nieomylny. Litera O bywa mylona z zerem, a znaki pod niekorzystnym kątem albo w słabym świetle zwracają wynik z lukami. Dobrze zaprojektowane dopasowanie nie polega więc na porównaniu identycznych ciągów, tylko na normalizacji numeru, czyli wielkich liter bez spacji i myślników, oraz na próbie dopasowania przybliżonego. Niepewny wynik trafia do potwierdzenia przez ochronę, zamiast otwierać bramę automatycznie.

-- przykład: normalizacja numeru rejestracyjnego przed dopasowaniem (nazwy przykładowe)
SELECT a.AwizoId
FROM   dbo.AwizoPrzyklad AS a
WHERE  UPPER(REPLACE(REPLACE(a.NrRejestracyjny, ' ', ''), '-', ''))
     = UPPER(REPLACE(REPLACE(@OdczytLPR,        ' ', ''), '-', ''))
  AND  a.Dzien = CAST(GETDATE() AS date)
  AND  a.Status = 1;   -- 1 = zatwierdzone

Istotne jest ograniczenie do bieżącego dnia i do awiz zatwierdzonych. Bez niego stary rekord z tym samym numerem tablicy mógłby zostać dopasowany do nowej wizyty. Historia zdjęć wjazdów przydaje się też przy sporach o czas przyjazdu: obraz z kamery ma znacznik czasu, którego nie da się dopisać po fakcie.

Konta i uprawnienia użytkowników

System awizacji obsługuje ludzi z różnych firm. Konta i uprawnienia są więc osobnym tematem konfiguracji. Administrator zakłada konta dla pracowników magazynu i nadaje im role. Rola określa, do których pozycji menu użytkownik ma dostęp, na przykład czy widzi funkcję awizacji dostaw, czy tylko podgląd harmonogramu.

Zasada jest prosta: pracownik ma dostęp wyłącznie do operacji zgodnych ze swoim zakresem obowiązków. Ochrona nie musi zatwierdzać awiz, a magazynier nie powinien zmieniać danych przewoźnika. Ograniczenie uprawnień zmniejsza ryzyko pomyłek, a przy okazji chroni poufność danych o dostawach. Sposób konfiguracji opisuje artykuł o module Administrator w programie VSS.net.

Ilustracja: pracownik w odblaskowej kurtce z tabletem przy naczepie z załadowanymi kartonami
Praca z tabletem przy rampie: to samo konto i te same uprawnienia obowiązują w przeglądarce oraz na urządzeniu mobilnym

Powiadomienia i aplikacja mobilna kierowcy

Kierowca rejestruje przyjazd online, a system wysyła mu powiadomienia SMS albo e-mail. Potwierdzenie rezerwacji okna czasowego generuje się automatycznie, podobnie jak wiadomość o zmianie terminu. Platforma działa na urządzeniach mobilnych z systemem Android, a rezerwacje można modyfikować z telefonu lub tabletu w czasie rzeczywistym.

Oprogramowanie obsługuje kilka języków, co ma znaczenie przy współpracy z międzynarodowymi przewoźnikami. Kierowca otrzymuje komunikaty w języku zrozumiałym dla niego, a dyspozytor widzi ten sam rekord w swoim. Zasady komunikacji wielojęzycznej omawia artykuł o komunikacji wielojęzycznej z dostawcami i kierowcami, a pracę kierowcy w aplikacji - tekst o awizacji kierowcy.

GPS i dokumenty przewozowe

Integracja z GPS pozwala śledzić pojazd w drodze, więc dyspozytor zmienia harmonogram na bieżąco, gdy transport się opóźnia. Do awizacji można też dołączyć dokumenty przewozowe w formie elektronicznej. Wpisy na papierze znikają z bramy. Ochrona i magazynier widzą ten sam skan.

Ochrona ma dostęp do awizacji, dzięki czemu łatwo weryfikuje pojazd i kierowcę. Ochrona może też wystawić przepustkę na dany wjazd w formie tradycyjnej lub elektronicznej. Ewidencja wjazdów i wyjazdów powstaje jako produkt uboczny tych czynności, a nie osobny rejestr do prowadzenia.

Priorytety transportów i zasoby towarzyszące

Okna czasowe można zarządzać na dwa sposoby, a wybór zależy od tego, jak przewidywalny jest ruch na placu. Szczegóły samej rezerwacji terminów opisuje artykuł o oknie czasowym.

  • Tryb ręczny - dyspozytor wskazuje rampę i godzinę sam, co sprawdza się przy transportach niestandardowych i rzadkich.
  • Tryb automatyczny - system proponuje wolne okno na podstawie danych o dostawie, co dobrze działa przy dostawcach o stałym rytmie.

System pozwala też oznaczać transporty priorytetem z wizualną identyfikacją. Dostawa towaru z krótkim terminem ważności albo pilnego materiału dla produkcji wyróżnia się na liście i w harmonogramie, więc dyspozytor widzi ją bez filtrowania. Według opisu produktu VSS.net umożliwia również rezerwację zasobów towarzyszących, takich jak wózki widłowe i personel, obok samej awizacji transportu. Rezerwacja dotyczy wtedy rampy oraz ludzi i sprzętu potrzebnych do rozładunku.

Tego typu funkcje mają sens dopiero przy większym ruchu. Magazyn z kilkoma dostawami dziennie obsłuży plan w arkuszu, natomiast przy kilkudziesięciu pojazdach na zmianę ręczne pilnowanie priorytetów i obsady zaczyna zawodzić. Wtedy oznaczenie priorytetu w systemie i widok obciążenia zasobów pozwalają uniknąć sytuacji, w której pilna dostawa czeka na rampie, bo nikt nie miał wolnego wózka.

Wymiana danych z systemami nadrzędnymi

System awizacji dostaw jest użyteczny dopiero wtedy, gdy pozostaje w zgodzie z systemami, które zlecają dostawę. Gdy dostawca zaplanuje transport, informacje trafiają do systemu awizacji, który przekazuje je do WMS. WMS sprawdza dostępność miejsca w magazynie, a TMS może na tej podstawie zaplanować trasę dostawy. Każda ze stron dostaje ten sam plan i może się do niego przygotować.

SystemRola przy dostawieCo wymienia z awizacją
WMSprzyjęcie, składowanie, wydanie towaruzlecenie przyjęcia po zatwierdzeniu awiza, potwierdzenie rozładunku
TMSplanowanie tras i kosztów transportuplan tras oraz przewidywany czas przyjazdu
ERPzamówienia zakupu i rozliczeniapropozycje awizacji z zamówień, statusy dostaw

Techniczny kanał zależy od systemu. VSS.net wymienia dane z WMS i ERP przez REST API albo pliki EDI. Sposób budowy takich integracji opisuje artykuł o łączeniu VSS z WMS i ERP przy przyjęciach. Uwagi o kolejkowaniu komunikatów i obsłudze błędów w wymianie zawiera tekst o integracji WMS z ERP, a stronę transportową - artykuł o integracji TMS z ERP i WMS.

Co daje integracja w dniu dostawy

Zatwierdzona awizacja zamienia się w zlecenie przyjęcia widoczne dla magazyniera już w chwili wjazdu pojazdu. Magazynier wie, co jest na naczepie i na który adres odłożyć towar, zanim otworzy drzwi. Dostawca nie wpisuje danych po raz drugi, bo zamówienie zakupu przyszło z ERP, a on tylko wybiera okno czasowe.

Ta zależność ma też stronę zasobową. System koordynuje dostęp do doków i wag, a wizualizacja placu pokazuje, które miejsca postojowe są zajęte. Mapę zajętości opisuje artykuł o wizualizacji zajętości miejsc parkingowych. Zasady rezerwowania okien czasowych, z których korzysta całość, omawia strona o zarządzaniu oknami czasowymi w VSS.net.

Firmy, które chcą zobaczyć ten przebieg w działaniu, mogą przejść przez demo systemu awizacji, a opis modułu od strony produktu znajduje się na stronie Studio VSS.net.