Hertz GPS Linkway - zakres integracji i źródła danych

Hertz GPS Linkway to układ, w którym lokalizatory Hertz Systems w pojazdach przekazują pozycje do modułów linkway.TMS i linkway.FLEET. Lokalizator wie, gdzie jest pojazd. Nie wie, jakie zlecenie wiezie, do kogo jedzie i na kiedy ma być na rampie. Te informacje ma TMS, dlatego dopiero połączenie obu źródeł daje dyspozytorowi obraz, na którym można podjąć decyzję.

Warto rozdzielić dwie role. Telematyka odpowiada za pozycję i prędkość pojazdu, a TMS za zlecenie i jego rozliczenie. Gdy dyspozytor poprawia dane zlecenia w arkuszu, a kierowca jedzie według innej wersji, żadna pozycja GPS tego nie naprawi.

Źródło danychCo dostarczaKto z tego korzysta
Lokalizator Hertz (Monitoring GPS)pozycja, prędkość, zapłon, historia przejazdówdyspozytor, kontrola floty
linkway.TMSzlecenie, plan trasy, statusy, ETAspedytor, obsługa klienta
linkway.FLEETkoszty eksploatacji, wykorzystanie pojazdówmenedżer floty
linkway.INTEGRATORwymiana danych między źródłami a modułamiadministrator integracji

Opis samego integratora znajduje się w artykule o linkway.INTEGRATOR i jego zastosowaniach, a moduł zleceń przedstawia tekst o Linkway TMS w transporcie międzynarodowym. Ta strona zajmuje się warstwą pośrednią: drogą pojedynczej pozycji GPS od urządzenia do ekranu.

Naczepa ciągnika siodłowego na mokrym placu przed wielokondygnacyjnym budynkiem magazynowym o pomarańczowo-niebieskiej elewacji
Plac przed magazynem - obszar, który w systemie opisuje strefa geofencingu i którego przekroczenie generuje zdarzenie wjazdu

Reguła: jedna pozycja GPS nie zmienia statusu zlecenia, robi to dopiero zdarzenie wyliczone z kilku pozycji.

Przepływ pozycji GPS od lokalizatora do dyspozytora

Lokalizator zapisuje pozycję w stałym interwale albo po zdarzeniu, na przykład po włączeniu zapłonu. Dane trafiają do serwera producenta telematyki, a stamtąd do linkway.INTEGRATOR, który mapuje je na pola TMS. Każdy przeskok to miejsce, w którym pozycja może się opóźnić albo zdublować. Czasem ginie całkiem.

Rekord pozycji i jego pola

Rekord pozycji jest mały, ale każde pole ma znaczenie dla dalszych obliczeń. Czas fiksacji pochodzi z urządzenia, a nie z serwera, bo pozycja zapisana w buforze po wyjściu z tunelu ma wartość dla trasy dopiero wtedy, gdy zachowa swój prawdziwy czas.

  • Czas fiksacji w UTC - moment odczytu z odbiornika GPS, podstawa do porządkowania pozycji.
  • Szerokość i długość geograficzna - współrzędne w układzie WGS 84 (SRID 4326).
  • Prędkość i kierunek - dane do rozróżnienia postoju od jazdy w korku.
  • Stan zapłonu - odróżnia postój z wyłączonym silnikiem od postoju w kolejce do rampy.

Duplikaty i kolejność komunikatów

Komunikaty przychodzą w innej kolejności, niż powstały, a ten sam odczyt bywa wysłany dwukrotnie po zerwaniu połączenia GSM. Klucz główny (identyfikator urządzenia, czas fiksacji) rozwiązuje oba problemy naraz. Przykład poniżej pokazuje mechanizm, nazwy tabel są poglądowe i nie odzwierciedlają schematu produktu.

CREATE TABLE dbo.GpsPosition (
    DeviceId    int          NOT NULL,
    FixTimeUtc  datetime2(0) NOT NULL,
    Lat         decimal(9,6) NOT NULL,
    Lon         decimal(9,6) NOT NULL,
    SpeedKmh    smallint     NULL,
    Ignition    bit          NULL,
    CONSTRAINT PK_GpsPosition PRIMARY KEY CLUSTERED (DeviceId, FixTimeUtc)
);

INSERT INTO dbo.GpsPosition (DeviceId, FixTimeUtc, Lat, Lon, SpeedKmh, Ignition)
SELECT s.DeviceId, s.FixTimeUtc, s.Lat, s.Lon, s.SpeedKmh, s.Ignition
FROM #Staging AS s
WHERE NOT EXISTS (SELECT 1 FROM dbo.GpsPosition AS p
                  WHERE p.DeviceId = s.DeviceId AND p.FixTimeUtc = s.FixTimeUtc);

Ostatnia pozycja pojazdu to zapytanie o jeden wiersz z końca zakresu jednego urządzenia. Indeks klastrowy zaczynający się od DeviceId zamienia je na pojedyncze wyszukiwanie zamiast skanu całej tabeli. Gdyby klucz miał odwrotną kolejność kolumn, każde odświeżenie mapy przeglądałoby dane wszystkich pojazdów.

Częstotliwość raportowania a obciążenie bazy

Interwał 30 sekund oznacza 2880 pozycji na pojazd na dobę. Dla stu pojazdów to 288 tysięcy wierszy dziennie, czyli ponad sto milionów rocznie. Liczby są przykładowe, ale rząd wielkości wyjaśnia, dlaczego surowe pozycje przechowuje się przez ustalony okres, a dłuższą historię trzyma w postaci zdarzeń: wjazdów oraz postojów w strefach.

Geofencing w strefach załadunku i rozładunku

Geofencing zamienia współrzędne na zdarzenia zrozumiałe dla procesu. Strefę opisuje okrąg o zadanym promieniu albo wielokąt, a system sprawdza, po której stronie granicy leży kolejna pozycja. Wielokąt lepiej oddaje kształt placu magazynowego, bo okrąg o promieniu obejmującym bramę obejmie też drogę dojazdową.

Kształt strefyZastosowanieRyzyko fałszywego zdarzenia
Okrągstacja paliw, parking przy trasieśrednie, obejmuje przyległe drogi
Wielokątplac magazynu, teren zakładuniskie, przy poprawnych wierzchołkach
Korytarz wzdłuż trasykontrola zjazdu z planowanej drogizależy od szerokości korytarza

W SQL Server test położenia punktu wykonuje typ geography. Kolejność wierzchołków ma znaczenie: pierścień musi biec przeciwnie do ruchu wskazówek zegara, bo odwrotna kolejność oznacza dopełnienie, czyli prawie całą kulę ziemską. Opis typu i metod zawiera dokumentacja danych przestrzennych w SQL Server.

DECLARE @strefa geography = geography::STPolyFromText(
    'POLYGON((16.9200 52.4000, 16.9300 52.4000, 16.9300 52.4060, 16.9200 52.4060, 16.9200 52.4000))', 4326);
DECLARE @punkt geography = geography::Point(52.4030, 16.9250, 4326);

SELECT @strefa.STIntersects(@punkt) AS WStrefie;

Histereza i czas postoju w strefie

Odbiornik GPS ma błąd rzędu kilku metrów, więc pojazd stojący przy granicy strefy potrafi wchodzić i wychodzić z niej co kilkanaście sekund. Zdarzenie wjazdu potwierdza się dopiero po kilku kolejnych pozycjach wewnątrz strefy, a wyjazd po kilku pozycjach na zewnątrz. Czas postoju liczy się od potwierdzonego wjazdu, nie od pierwszej pozycji.

Zdarzenia z geofencingu dobrze łączą się z planem dostaw. Wjazd do strefy magazynu może uruchamiać w systemie awizacji status „na placu”, a opis okien i ramp znajduje się w artykułach o oknach czasowych oraz o awizacjach w Studio VSS.net.

Nieplanowane postoje poza strefami

Ta sama zasada działa w drugą stronę. Pojazd z prędkością zero i wyłączonym zapłonem przez ustalony czas, znajdujący się poza jakąkolwiek zdefiniowaną strefą, generuje zdarzenie nieplanowanego postoju. System może wtedy ostrzec dyspozytora o przekroczeniu czasu dojazdu, zanim kierowca zadzwoni z informacją o awarii.

Próg czasu dobiera się do rodzaju trasy. Postój dwudziestominutowy na trasie międzynarodowej może być obowiązkową przerwą, a taki sam postój w mieście przy dostawie do sklepu oznacza problem. Dlatego próg zapisuje się przy zleceniu albo przy typie trasy, a nie globalnie dla całej floty.

ETA liczone z pozycji i czasu pracy kierowcy

ETA, czyli przewidywany czas przyjazdu, jest funkcją kilku wejść, które system pobiera z różnych miejsc. Pozostały dystans wynika z planu trasy w TMS. Średnia prędkość pochodzi z ostatnich pozycji GPS albo z historii przejazdów na danym odcinku. Obowiązkowe przerwy kierowcy wynikają z przepisów o czasie prowadzenia i z zapisu czasu pracy.

public static DateTime Eta(DateTime nowUtc, double remainingKm, double avgKmh, TimeSpan breaks)
{
    if (avgKmh <= 0) throw new ArgumentOutOfRangeException(nameof(avgKmh));
    return nowUtc.AddHours(remainingKm / avgKmh) + breaks;
}

Wzór jest prosty, a jakość wyniku zależy od wejść. Zawyżona średnia prędkość daje ETA zbyt optymistyczne, a pominięcie przerwy przesuwa przyjazd o kilkadziesiąt minut. Mechanizm liczenia ETA w systemach Linkway opisuje artykuł o ETA od Linkway.

Składnik ETAŹródłoSkutek błędu
Pozostały dystansplan trasy w TMSETA przesunięte proporcjonalnie do błędu
Średnia prędkośćpozycje GPS z ostatnich minutzbyt optymistyczna prognoza w korku
Przerwy i czas pracyzapis czasu pracy kierowcynagłe skoki ETA po postoju
Postój w strefiezdarzenia geofencinguzawyżony czas obsługi punktu

ETA przelicza się po każdej nowej pozycji, ale komunikat do odbiorcy wysyła się dopiero wtedy, gdy prognoza przekroczy ustalony próg względem poprzedniej wartości. Bez progu odbiorca dostawałby co minutę nową godzinę, a po kilku takich wiadomościach przestałby je czytać.

Aplikacja kierowcy jako drugie źródło statusów

Pozycja mówi, gdzie jest pojazd, a status od kierowcy mówi, co się tam wydarzyło. Aplikacja dla kierowcy, opisana w artykule o linkway.TRACKER, wysyła na urządzenie zlecenia z punktami trasy, a potwierdzenia etapów wracają do systemu. Dwa źródła się uzupełniają: geofencing zgłasza wjazd do strefy, kierowca potwierdza rozpoczęcie rozładunku.

Gdy oba sygnały się rozjeżdżają, TMS powinien oznaczyć rozbieżność, a nie wybierać jedną wersję po cichu. Kierowca potwierdził rozładunek, choć pozycja pokazuje pojazd 40 kilometrów dalej. Taki przypadek to zwykle pomyłka przy potwierdzaniu z wyprzedzeniem, ale bywa też pierwszym sygnałem o błędnie przypisanym urządzeniu.

Dowód dostawy (POD) trafia do zlecenia zaraz po zamknięciu etapu, więc rozliczenie i ewentualna reklamacja opierają się na jednym komplecie dokumentów. Koszt opóźnień w komunikacji z kierowcami omawia osobny tekst o aplikacji dla kierowcy.

Integracja przez linkway.INTEGRATOR i mapowanie pól

linkway.INTEGRATOR łączy źródła telematyczne, w tym Hertz Systems, z modułami TMS i FLEET. Wymiana jest dwukierunkowa i obejmuje pozycje oraz zdarzenia, a także statusy i parametry pojazdów. Do tego samego integratora można dołączyć inne źródła, na przykład GBOX czy WIALON, bez zmiany panelu dyspozytora. Producent opisuje to narzędzie na stronie linkway.INTEGRATOR, a praktyczne zastosowania omawia tekst o integratorze GPS dla flot.

Dłonie obsługujące tablet z wykresem liniowym w pomarańczowo-niebieskiej tonacji na tle regałów magazynowych
Analiza danych z kilku źródeł na jednym ekranie - efekt mapowania pól w integratorze

Mapowanie urządzenia na pojazd

Najczęstszy błąd integracji dotyczy przypisania lokalizatora do pojazdu. Urządzenie ma własny identyfikator, a pojazd numer rejestracyjny, i po wymianie lokalizatora w serwisie stary identyfikator nadal figuruje w historii. Mapowanie z okresem ważności rozwiązuje ten kłopot bez przepisywania starych pozycji.

CREATE TABLE dbo.DeviceVehicle (
    DeviceId  int          NOT NULL,
    VehicleId int          NOT NULL,
    ValidFrom datetime2(0) NOT NULL,
    ValidTo   datetime2(0) NULL,
    CONSTRAINT PK_DeviceVehicle PRIMARY KEY (DeviceId, ValidFrom)
);

SELECT p.FixTimeUtc, dv.VehicleId
FROM dbo.GpsPosition AS p
JOIN dbo.DeviceVehicle AS dv
  ON dv.DeviceId = p.DeviceId
 AND p.FixTimeUtc >= dv.ValidFrom
 AND (dv.ValidTo IS NULL OR p.FixTimeUtc < dv.ValidTo);

Strefy czasowe i jednostki

Pozycje przychodzą w UTC, a okna dostaw są zapisane w czasie lokalnym. Przy zmianie czasu z letniego na zimowy godzina 02:30 występuje dwukrotnie, a przy zmianie w drugą stronę wcale, więc porównania okna z ETA wykonuje się na wartościach UTC, a konwersję stosuje dopiero przy wyświetlaniu. Podobnie z prędkością: mapowanie musi znać jednostkę źródła, bo część urządzeń raportuje w węzłach, a nie w km/h.

Architektura chmurowa (SaaS) upraszcza uruchomienie integracji, a zakres można rozszerzać o kolejne źródła w miarę potrzeb. Rozszerzenie oznacza nową konfigurację mapowania, nie zmianę procesów w firmie.

Dane GPS w raportach floty i kosztów

Po agregacji pozycje zamieniają się we wskaźniki, które porównuje się ze zleceniami i kosztami z linkway.FLEET. Przebieg z GPS zestawia się z kilometrami zleconymi, a różnica pokazuje puste przejazdy. Czas między wjazdem a wyjazdem ze strefy klienta pokazuje, ile trwa obsługa punktu, i daje argument w rozmowie o stawkach. Tego typu zestawienia omawia też artykuł o programie dla firmy transportowej łączącym dane i flotę.

WskaźnikSposób obliczeniaDane wejściowe
Puste przebiegikilometry bez ładunku podzielone przez kilometry łącznieGPS i zlecenia z TMS
Czas obsługi punktuwyjazd ze strefy minus wjazd do strefyzdarzenia geofencingu
Wykorzystanie pojazdugodziny z włączonym zapłonem podzielone przez godziny dostępnościstan zapłonu, grafik pojazdu
Punktualnośćwizyty w oknie dostawy podzielone przez wszystkie wizytyzdarzenia geofencingu, okna dostaw

Wskaźniki mają sens dopiero po ujednoliceniu definicji. Puste przebiegi liczone na dwa różne sposoby, raz z ładunkiem częściowym, raz bez, dadzą dwa wyniki i spór o to, który jest prawdziwy. Definicję ustala się przy wdrożeniu i zapisuje w dokumentacji raportów.

Wdrożenie integracji GPS i testy odbiorcze

Integracja z Hertz Systems zwykle nie wymaga wymiany floty, o ile pojazdy mają już lokalizatory. Koszt zależy od zakresu i liczby pojazdów, a wdrożenie prowadzi się bez zatrzymywania bieżących transportów. Ogólny przebieg wdrożenia Linkway przedstawia artykuł o czterech etapach wdrożenia linkway.TMS.

  • Audyt procesów - opis planowania i dyspozycji oraz rozliczeń z klientem przed konfiguracją.
  • Konfiguracja źródeł - połączenie lokalizatorów oraz definicja stref z mapowaniem pól.
  • Testy wymiany danych - sprawdzenie pozycji oraz statusów na realnych przejazdach.
  • Szkolenie i alerty - ustawienie progów oraz przeszkolenie dyspozytorów.

Testy odbiorcze mają konkretne scenariusze. Odtworzenie zapisanego przejazdu sprawdza geofencing bez wyjazdu pojazdu, a symulacja utraty zasięgu pokazuje, czy system oznacza lukę w danych, zamiast rysować prostą linię przez tunel. Po starcie obserwuje się terminowość oraz koszty, a reguły dopracowuje się na danych z pierwszych tygodni.

Zastosowanie danych lokalizacyjnych do pilnowania terminów dostaw do zakładu produkcyjnego opisuje osobny artykuł o monitoringu transportu dla produkcji, a pracę spedytora z tymi danymi przedstawia tekst o integratorze dla flot w pracy spedytora.