W tym artykule wyjaśniono, w jaki sposób PredictWind DataHub konwertuje dane dotyczące poziomu wody w zbiorniku zgodne z protokołem NMEA 2000 na zdania XDR zgodne z protokołem NMEA 0183 , wykorzystując przykładową konfigurację dwóch zbiorników wody słodkiej i jednego zbiornika paliwa .
Przykłady pokazują, jak identyfikowane są poszczególne zbiorniki, jaki jest format zdań XDR i jak często przesyłane są dane.
Mimo że w tym przykładzie użyto trzech zbiorników, te same zasady dotyczą innych konfiguracji zbiorników i obsługiwanych typów płynów.
1. Niezależne czołgi i numery instancji
Każdy zbiornik jest identyfikowany na podstawie rodzaju cieczy oraz numeru instancji NMEA 2000 i każdy staje się osobną frazą XDR. Dwa zbiorniki z wodą słodką o numerach instancji 0 i 1 są oznaczone jako FRESHWATER#0 i FRESHWATER#1 . Zbiornik paliwa jest oznaczony jako FUEL#0 .
Dwie rzeczy, które należy sprawdzić podczas instalacji czujników:
Unikalne wystąpienia dla każdego rodzaju cieczy. Dwa zbiorniki z wodą słodką w tej samej instancji generowałyby identyczne identyfikatory i nie dałoby się ich rozróżnić. Liczba wystąpień cieczy w NMEA 2000 mieści się w zakresie od 0 do 15.
Prawidłowy typ płynu. DataHub mapuje typy płynu na nazwy identyfikatorów w następujący sposób:
Paliwo (olej napędowy lub benzyna) →
FUELWoda słodka →
FRESHWATERSzara woda/ścieki →
WASTEWATERCzarna woda →
BLACKWATERŻyj dobrze →
LIVEWELLWATEROlej →
OILDowolny inny typ →
FLUID
2. Format zdania
DataHub wykorzystuje konwencję NMEA 0183 v4.11 XDR, taką samą, z jakiej korzysta Panel sterowania silnika OpenCPN:
kod:
$IIXDR,E,<poziom>,P,<TYP>#<instancja>,V,<pojemność>,l,<TYP>#<instancja>*hh
E/P: poziom jako procent zapełnienia, 0–100, wysyłany z jednym miejscem po przecinkuV/l: pojemność zbiornika w litrach (małe litery L)Grupa pojemności jest uwzględniana tylko wtedy, gdy czujnik zgłasza prawidłową pojemność większą od zera. Jeśli czujnik zbiornika nie wyśle pojemności, zdanie kończy się po grupie poziomów.
Poniższe przykłady pokazują dokładny format z wartościami ilustracyjnymi:
kod:
$IIXDR,E,72.4,P,WODA SŁODKA#0,V,300.0,l,WODA SŁODKA#0*53
$IIXDR,E,55,0,P,WODA SŁODKA#1,V,150,0,l,WODA SŁODKA#1*55
$IIXDR,E,88,8,P,PALIWO#0,V,400,0,l,PALIWO#0*5D
Bez pojemności zdanie dotyczące paliwa wyglądałoby następująco:
kod:
$IIXDR,E,88.8,P,PALIWO#0*44
DataHub całkowicie pomija odczyt, jeśli poziom jest niedostępny lub typ płynu jest oznaczony jako błąd.
3. Częstotliwość transmisji
DataHub nie posiada własnego harmonogramu dla danych ze zbiornika. Wysyła jedną sentencję XDR na każdy komunikat PGN 127505, który czujnik wysyła do sieci. Dzięki temu szybkość transmisji jest zgodna z tym, co transmituje czujnik. Standardowa szybkość transmisji NMEA 2000 dla tego PGN wynosi 2,5 sekundy; Simarine może potwierdzić rzeczywistą szybkość transmisji STR2.
Czujniki wysyłają ten PGN okresowo, niezależnie od zmian, więc zdania powtarzają się nawet wtedy, gdy poziom się nie zmienia. W Home Assistant zobaczysz stały strumień aktualizacji, a nie aktualizacje tylko po zmianie.
Następne kroki: Konfigurowanie czujników zbiornika
Podczas podłączania zgodnych czujników zbiornika NMEA 2000 do DataHub :
Skonfiguruj czujniki zbiornika zgodnie z instrukcjami producenta, upewniając się, że każdy zbiornik ma właściwy typ cieczy i unikalny numer wystąpienia dla tego typu cieczy.
Podłącz czujniki do sieci NMEA 2000 i upewnij się, że DataHub jest podłączony do tej samej sieci.
Sprawdź, czy czujniki przesyłają dane o poziomie wody w zbiorniku za pomocą protokołu NMEA 2000 PGN 127505.
Podłącz swoją aplikację odbiorczą do lokalnego strumienia TCP NMEA 0183 DataHub , aby wyświetlić przekonwertowane zdania XDR.
Sprawdź odczyty zbiorników w aplikacji odbiorczej, upewniając się, że każdy zbiornik jest prawidłowo zidentyfikowany i że zgłaszane poziomy odpowiadają odczytom czujnika.
Uwaga: DataHub konwertuje komunikaty o poziomie w zbiorniku w miarę ich odbierania z sieci NMEA 2000. Częstotliwość aktualizacji zależy od czujników i ich ustawień transmisji. Połączenie internetowe nie jest wymagane do tej konwersji.
