Integrator dla flot jako warstwa zbierająca dane z wielu źródeł
Firma transportowa rzadko korzysta z jednego dostawcy lokalizacji. Część pojazdów ma lokalizator zamontowany przez producenta, część własny, dokupiony później, a pojazdy podwykonawców raportują pozycję do systemów, do których spedytor nie ma dostępu. Każdy ma osobny panel i konto, a układ danych bywa inny. Integrator dla flot zbiera te informacje w jednym miejscu i udostępnia je w ujednoliconej postaci.
Według opisów na stronie producenta Linkway.INTEGRATOR łączy dane GPS i telematyki z różnych systemów w jednej platformie, niezależnie od dostawcy lokalizatorów. Ta warstwa nie zastępuje systemu TMS. Dostarcza mu pozycje pojazdów, a TMS wykorzystuje je do planowania i rozliczeń, o czym pisze artykuł o programie TMS Linkway.
| Źródło danych | Co zwykle dostarcza | Na co uważać |
|---|---|---|
| Lokalizator własnego pojazdu | pozycję z prędkością i czasem zdarzenia | zakres pól zależy od dostawcy urządzenia |
| System GPS podwykonawcy | pozycję wybranych pojazdów udostępnioną partnerowi | zgoda na udostępnianie i zakres danych |
| Telematyka producenta pojazdu | dane z pojazdu, jeśli producent je udostępnia | różne nazwy parametrów przy różnych markach |
| Aplikacja mobilna kierowcy | pozycję z telefonu i statusy zleceń | zasięg oraz ustawienia energooszczędne telefonu |
Czego integrator nie robi
Integrator nie poprawia jakości danych, które dostaje. Jeśli lokalizator raportuje pozycję co kilka minut, warstwa zbierająca nie odtworzy dokładniejszej trasy. Nie zastępuje też decyzji o tym, które dane naprawdę są potrzebne, bo im więcej pól, tym więcej trzeba mapować i kontrolować.
Normalizacja danych z różnych systemów GPS
Normalizacja polega na sprowadzeniu danych z wielu źródeł do jednego modelu. Bez niej dwa pojazdy tej samej firmy mają w raporcie różne jednostki oraz strefy czasowe, a do tego inne sposoby identyfikacji. Porównanie ich lub sumowanie przebiegów daje wtedy wyniki, które wyglądają poprawnie, choć nie są.
| Różnica między źródłami | Przykład | Sposób normalizacji |
|---|---|---|
| Strefa czasowa | jedno źródło podaje czas lokalny, inne UTC | zapis w jednej strefie z zachowaniem oryginału |
| Identyfikator pojazdu | numer rejestracyjny w jednym systemie, numer urządzenia w innym | tabela mapowania urządzenia na pojazd |
| Jednostki | kilometry lub metry, prędkość w różnych jednostkach | przeliczenie przy zapisie do jednostek modelu |
| Brakujące pola | część źródeł nie przekazuje prędkości albo stanu zapłonu | wartość pusta zamiast zera, żeby nie zafałszować średniej |
Reguła: brak danych zapisuje się jako pustą wartość, nigdy jako zero, ponieważ zero jest wynikiem pomiaru, a brak pomiaru nim nie jest.
Przeliczenie czasu należy do najprostszych, a zarazem najczęściej pomijanych kroków. Poniższa funkcja w C# zamienia czas lokalny zapisany bez strefy na wartość z jawnym przesunięciem UTC. Dokumentacja konwersji między strefami czasowymi opisuje pułapki związane z czasem letnim.
public record Pozycja(int PojazdId, DateTimeOffset CzasUtc, double Szerokosc, double Dlugosc, double? PredkoscKmh);
static DateTimeOffset DoUtc(DateTime czasLokalny, TimeZoneInfo strefa)
{
// czasLokalny ma Kind = Unspecified, bo źródło nie podaje strefy
var utc = TimeZoneInfo.ConvertTimeToUtc(czasLokalny, strefa);
return new DateTimeOffset(utc, TimeSpan.Zero);
}
Pole PredkoscKmh jest typu nullable z tego samego powodu, dla którego brak danych zapisuje się jako pustą wartość. Kod przykładowy nie jest fragmentem produktu, tylko ilustracją mechanizmu, który każdy integrator musi w jakiś sposób realizować.
Mapowanie urządzeń na pojazdy
Identyfikator z zewnętrznego systemu nie zawsze pasuje do numeru rejestracyjnego. Lokalizator można przenieść do innego pojazdu, a wtedy stare pozycje przypisane do numeru urządzenia trafiają do niewłaściwego auta. Dlatego mapowanie ma okres obowiązywania, a nie jest zwykłą parą wartości.
CREATE TABLE dbo.MapowanieUrzadzenia (
ZrodloId INT NOT NULL,
UrzadzenieId VARCHAR(40) NOT NULL,
PojazdId INT NOT NULL,
ObowiazujeOd DATETIME2 NOT NULL,
ObowiazujeDo DATETIME2 NULL,
CONSTRAINT PK_MapowanieUrzadzenia PRIMARY KEY (ZrodloId, UrzadzenieId, ObowiazujeOd)
);
Przechowywanie surowych danych
Obok znormalizowanej pozycji opłaca się zachować oryginalną wiadomość ze źródła, przynajmniej przez ustalony okres. Gdy okaże się, że reguła przeliczenia była błędna, na przykład źle zinterpretowano strefę czasową, wystarczy przetworzyć surowe rekordy ponownie. Bez nich poprawka wymaga ponownego pobrania danych, a dostawcy często udostępniają tylko krótką historię.
Koszt tej praktyki to miejsce na dysku, które przy pozycjach rejestrowanych co kilka minut jest niewielkie w porównaniu z kosztem utraty danych historycznych. Okres przechowywania należy ustalić razem z zasadami ochrony danych osobowych, bo pozycje pojazdów mogą wskazywać konkretnego kierowcę.
Częstotliwość odczytu i opóźnienie danych
Integrator pobiera dane z systemów zewnętrznych na dwa sposoby. Może odpytywać je w ustalonym interwale albo przyjmować powiadomienia wysyłane przez dostawcę, gdy pojawi się nowa pozycja. Pierwsza metoda jest prostsza, ale wprowadza opóźnienie równe interwałowi. Druga skraca opóźnienie, lecz wymaga, by dostawca ją obsługiwał.
Częstotliwość ogranicza także sam dostawca. Interfejsy systemów GPS zwykle mają limity liczby zapytań, więc zbyt częste odpytywanie kończy się odrzuceniem albo blokadą konta. Interwał dobiera się do zastosowania, a nie do wartości, którą technicznie da się ustawić.
| Zastosowanie | Potrzebna świeżość danych | Skutek zbyt rzadkiego odczytu |
|---|---|---|
| Mapa pojazdów dla spedytora | rzędu sekund lub minut | pojazd na mapie stoi tam, gdzie był kilka minut temu |
| Prognoza czasu dotarcia | rzędu minut | opóźnienie zauważone po fakcie |
| Rozliczenie przebiegów | dzień lub okres rozliczeniowy | rozbieżność sum przy brakach w danych |
| Przegląd techniczny | dzień lub tydzień | brak wpływu, o ile dane są kompletne |
Opóźnienie danych powinno być widoczne dla użytkownika. Spedytor patrzący na pozycję sprzed piętnastu minut podejmuje decyzję na podstawie nieaktualnych danych, choć ekran wygląda tak samo jak przy pozycji sprzed kilku sekund. Zapytanie poniżej wskazuje pojazdy, których ostatnia pozycja jest starsza niż zadany próg.
SELECT p.Rejestracja,
DATEDIFF(MINUTE, o.CzasUtc, SYSUTCDATETIME()) AS MinutOdOstatniejPozycji
FROM dbo.Pojazd AS p
JOIN dbo.OstatniaPozycja AS o ON o.PojazdId = p.PojazdId
WHERE DATEDIFF(MINUTE, o.CzasUtc, SYSUTCDATETIME()) > @ProgMinut
ORDER BY MinutOdOstatniejPozycji DESC;
Ta sama lista bywa sygnałem problemu ze źródłem, a nie z pojazdem. Gdy wszystkie pojazdy jednego dostawcy znikną naraz, przyczyną jest zwykle awaria interfejsu lub wygasłe uprawnienia, a nie jednoczesny postój całej floty.

Jakość danych i kontrola poprawności
Dane z zewnętrznych systemów wymagają kontroli, zanim trafią do raportów. Lokalizator potrafi zgłosić pozycję z błędnymi współrzędnymi, a łączność bywa przerywana, więc zaległe rekordy przychodzą partiami i w innej kolejności niż powstały. Integrator, który przyjmuje wszystko bez kontroli, przenosi te błędy do każdego systemu, który z niego korzysta.
- Kontrola zakresu - szerokość geograficzna poza przedziałem od -90 do 90 stopni albo długość poza przedziałem od -180 do 180 jest odrzucana.
- Kontrola skoku pozycji - przesunięcie o setki kilometrów w kilka minut wskazuje błąd źródła, a nie ruch pojazdu.
- Usuwanie duplikatów - ta sama pozycja pobrana dwa razy nie może zwiększać przebiegu ani liczby zdarzeń.
- Kolejność zdarzeń - dane spóźnione trafiają w odpowiednie miejsce osi czasu według czasu zdarzenia, nie według czasu odbioru.
Duplikaty najłatwiej zablokować w samej bazie. Unikalny indeks na trzech kolumnach z opcją ignorowania powtórzeń powoduje, że ponowny zapis tego samego zdarzenia jest po cichu pomijany, a pozostałe wiersze partii są zapisywane. Składnię i ograniczenia opisuje dokumentacja instrukcji CREATE INDEX.
CREATE UNIQUE INDEX UX_Pozycja_Zdarzenie
ON dbo.Pozycja (ZrodloId, UrzadzenieId, CzasUtc)
WITH (IGNORE_DUP_KEY = ON);
Do pozycji z lokalizatorów dochodzą statusy zgłaszane przez kierowców w aplikacji mobilnej, opisane w artykule o aplikacji dla kierowcy. Oba strumienie łączy się według zlecenia i czasu, więc kontrola kolejności zdarzeń dotyczy obu. Praktyczne zestawienie danych telematycznych z innego źródła zawiera tekst o korzyściach z T Comm Telematics.
Integracje z konkretnymi źródłami danych
Producent publikuje osobne opisy integracji z wybranymi systemami. Integracja z systemem Jarmu.kovetes przekazuje dane telemetryczne pojazdów do wspólnej platformy, co według opisu ogranicza potrzebę pracy w wielu aplikacjach. Podobnie opisana jest integracja z GPS-Poloha oraz integracja z Tracesharing, dzięki której spedytor widzi transporty przewoźników w jednym programie.
Przed decyzją o zakupie warto sprawdzić, czy system GPS, z którego korzysta flota, jest na liście integracji. Opis możliwości integratora zawiera także tekst o linkway.INTEGRATOR, a szersze omówienie roli integratora w pracy floty przedstawia artykuł o integratorze GPS dla flot.
Integrator w pracy spedytora
Dla spedytora najważniejsza jest jedna lista pojazdów z aktualną pozycją, bez konieczności otwierania kolejnych paneli. Ten wątek rozwija tekst o tym, jak integrator dla flot ułatwia pracę spedytora. Z kolei współpraca z systemami podwykonawców wymaga zgody na udostępnianie danych, którą warto zapisać w umowie.
Przykładem źródła sprzętowego są lokalizatory Hertz Systems, których pozycje trafiają do modułów Linkway. Drogę pojedynczej pozycji od urządzenia do ekranu dyspozytora opisuje artykuł o Hertz GPS i Linkway.
Co można policzyć na zintegrowanych danych
Zintegrowane dane dają materiał do kilku obliczeń, które w rozproszonych systemach są niewygodne albo niemożliwe. Zakres zależy od tego, co przekazuje każde ze źródeł. Poniższe cztery zastosowania przedstawiono jako możliwości do sprawdzenia w danym wdrożeniu, a nie jako gwarantowane funkcje.
- Wybór najbliższego wolnego pojazdu - porównanie pozycji z miejscem załadunku ogranicza dojazd bez ładunku.
- Włączenie pojazdów podwykonawców - flota mieszana widoczna na jednej mapie, o ile podwykonawca udostępnia dane.
- Analiza przebiegów - suma kilometrów z różnych źródeł w jednym zestawieniu, jeśli dane są znormalizowane.
- Parametry pracy pojazdu - przebieg i inne dane telematyczne, o ile źródło je przekazuje, jako materiał do planowania przeglądów.
Pierwsze zastosowanie da się zilustrować zapytaniem z użyciem typu przestrzennego SQL Server. Funkcja STDistance zwraca odległość w linii prostej, więc wynik służy do wstępnej selekcji, a nie do planowania trasy.
DECLARE @Zaladunek geography = geography::Point(52.4064, 16.9252, 4326);
SELECT TOP (5)
p.Rejestracja,
@Zaladunek.STDistance(geography::Point(o.Szerokosc, o.Dlugosc, 4326)) / 1000.0 AS OdlegloscKm
FROM dbo.Pojazd AS p
JOIN dbo.OstatniaPozycja AS o ON o.PojazdId = p.PojazdId
WHERE p.WolnyDoZlecenia = 1
ORDER BY OdlegloscKm;
Odległość w linii prostej bywa myląca, gdy między pojazdem a załadunkiem jest rzeka albo zamknięty odcinek drogi. Dopiero planowanie trasy po siatce dróg pokazuje rzeczywisty dojazd, dlatego wynik ten uzupełnia plan, a go nie zastępuje. Planowanie tras dla różnych typów pojazdów omawia artykuł o flotach mieszanych.
Kryteria oceny zwrotu z inwestycji w integrator dla flot
Integrator dla flot bywa przedstawiany jako inwestycja, która przynosi oszczędności. Sama obietnica nie wystarcza do decyzji, bo wynik zależy od liczby źródeł oraz wielkości floty, a także sposobu pracy spedytorów. Ocena zwrotu wymaga własnych danych z okresu przed wdrożeniem, inaczej każda późniejsza oszczędność pozostaje deklaracją.
Reguła: okres zwrotu to koszt wdrożenia i utrzymania podzielony przez miesięczną korzyść netto, przy czym korzyść mierzy się na danych zebranych przed uruchomieniem integratora.
| Pozycja | Czego dotyczy | Jak zmierzyć przed wdrożeniem |
|---|---|---|
| Liczba systemów GPS w użyciu | tyle paneli i kont do obsługi, ile dostawców | inwentaryzacja dostawców i kosztów abonamentów |
| Czas przełączania się między panelami | praca spedytora na ustalenie pozycji pojazdów | pomiar czasu w kilku dniach roboczych |
| Puste przebiegi | kilometry bez ładunku dojazdowe do załadunku | zestawienie z ewidencji przebiegów |
| Błędy z ręcznego zestawiania danych | korekty rozliczeń przewoźników i klientów | liczba poprawek w miesiącu |
Im więcej różnych dostawców GPS działa we flocie, tym większy jest potencjał konsolidacji. Firma z jednym dostawcą i jednym panelem ma niewiele do skonsolidowania, więc zwrot będzie wolniejszy albo go nie będzie. Warto to policzyć przed zakupem, a nie po nim.
Koszty po stronie wdrożenia i utrzymania
Do kosztu wchodzą licencje lub abonament, konfiguracja integracji z każdym źródłem oraz praca administratora. Dochodzi obsługa zmian po stronie dostawców GPS. Interfejsy zewnętrzne się zmieniają, więc integracja wymaga utrzymania. Warto zapytać dostawcę, kto odpowiada za dostosowanie połączenia po zmianie interfejsu i w jakim czasie.
Ograniczeniem jest także prywatność. Pozycja pojazdu prowadzonego przez konkretnego kierowcę jest daną, którą można powiązać z osobą, więc firma musi mieć podstawę prawną przetwarzania i poinformować pracowników o zakresie monitoringu. Ma to wpływ na to, jakie dane integrator ma w ogóle zbierać.

Wyniki integratora trafiają dalej do systemów, które je wykorzystują. Ogólny obraz wymiany danych z systemami ERP i WMS przedstawia artykuł o integracji TMS z ERP i WMS, a temat monitoringu floty pod kątem kosztów rozwija tekst o monitoringu transportu a koszty floty.



