logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Teltonika TRB142 i Novus NP785 - Modbus RTU 19200 8N1 timeout przez RS232/RS485

SataSolderhead 30 Lip 2026 15:06 129 2
REKLAMA
  • #1 21947449
    SataSolderhead
    Poziom 1  
    Posty: 1
    Cześć wszystkim,

    Buduję zdalny system telemetrii GSM do monitorowania floty pomp nadmuchu dla hal namiotowych i utknąłem na fizycznej warstwie komunikacji Modbus. Mimo spędzenia nad tym wielu godzin i weryfikacji ustawień urządzenia nie chcą ze sobą rozmawiać.

    Mój sprzęt:

    Master: Bramka Teltonika TRB142 (posiada fizyczny interfejs RS232).

    Slave: Przetwornik różnicy ciśnień Novus NP785 (posiada interfejs RS485).

    Konwerter: Zwykły konwerter RS232 na RS485 (zielona płytka z zaciskami śrubowymi, niestety bez diod sygnalizacyjnych RX/TX).

    Zasilanie: Zasilacz stabilizowany 12 V DC.

    Jak to wszystko połączyłem (warstwa fizyczna):

    Zasilanie: 12 V poprowadzone równolegle do zacisków zasilania w konwerterze oraz do Novusa (zacisk 1: +12 V, zacisk 2: GND). Masy (GND) zasilacza, bramki, konwertera i przetwornika są połączone.

    RS232 (Teltonika -> Konwerter): Podłączone na krzyż złącze z bramki do konwertera. TX z Teltoniki idzie na RX konwertera, a RX z Teltoniki na TX konwertera.

    RS485 (Konwerter -> Novus): Z wyjść A/B konwertera do zacisków 7 i 8 w Novusie. (Sprawdzałem też zamianę linii A z B miejscami - bez zmian).

    Do testów odłączyłem kabel konfiguracyjny USB od Novusa, żeby nie blokował portu.

    Konfiguracja programowa (Modbus RTU):
    W programie konfiguracyjnym NXperience od Novusa ustawiłem parametry i sprawdziłem je dwukrotnie:

    Baud rate: 19200

    Data bits: 8, Stop bits: 1, Parity: None

    Slave ID: 1

    W panelu WebUI Teltoniki (Narzędzia szeregowe) parametry portu RS232 są ustawione identycznie (19200, 8N1, brak kontroli przepływu).

    Co próbuję odczytać:
    Zgodnie z tabelą producenta Novus próbuję odczytać wartość Float (ciśnienie) pod adresem bazowym 6. W Teltonice jako Modbus Serial Client żądam odczytu 2 rejestrów typu Holding Registers (Funkcja 3), wpisując rejestr początkowy jako 7 (Teltonika dodaje offset +1) lub 6. Sprawdzałem różne formaty endianness dla Floata.

    Objawy i błędy:
    Przy każdej próbie wywołania testu z poziomu Teltoniki otrzymuję błąd: communication error: Operation timed out.
    Ponieważ na konwerterze RS232/RS485 nie ma żadnych diod LED, jestem całkowicie "ślepy" i nie wiem, czy Teltonika w ogóle cokolwiek wysyła na port RS232, czy ramka ginie w konwerterze, czy Novus nie odpowiada.

    Moje pytania do bardziej doświadczonych:

    Czy w przypadku bramki Teltonika TRB142 i taniego konwertera RS232/RS485 potrzebna jest jakaś dodatkowa sprzętowa kontrola przepływu (np. linie RTS/CTS), aby konwerter wiedział, kiedy przełączyć się na nadawanie w RS485?

    Jak najprościej bez oscyloskopu sprawdzić, czy z portu RS232 w Teltonice fizycznie wychodzi ramka Modbus po kliknięciu "Test"?

    Czy widzicie w tym zestawieniu jakiś ewidentny błąd, który popełniłem?

    Z góry dziękuję za wszelkie sugestie, bo powoli brakuje mi już pomysłów. Oczywiście jeśli ktoś wyrazi chęć pomocy, zapłacę za spięcie tego systemu.
  • REKLAMA
  • #3 21949666
    romulus73
    Poziom 28  
    Posty: 1225
    Pomógł: 96
    Ocena: 252
    A dlaczego Modbus Serial Clien w Teltonice? a nie Master i dlaczego Funkcja 3 a nie 4? Czyasz je jako Float czy Integer?

    Dodano po 11 [minuty]:

    OK doczytałem że Float, w teltonice zaznaczas Little Endian? i wedle instrukcji masz owszem 6 rejestr ale masz czytać go od lewej do prawe j, RO to zmień na Read input register
REKLAMA