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

Modbus RTU - wybiórcza komunikacja z miernikiem tablicowym, timeouty w innych programach

Goodman18 20 Sie 2014 07:28 1842 6
REKLAMA
  • #1 13891729
    Goodman18
    Poziom 9  
    Posty: 8
    Mam za zadanie połączyć miernik tablicowy z komputerem by zbierać dane w czasie. Problem polega na tym, że komunikacja działa dość wybiórczo. Znalazłem już kilka programów służących do akwizycji, lecz miernik łączy się tylko i wyłącznie z Modbus Pool. Łączenie z dowolnym innym oprogramowaniem zwraca timeouty, z modbus pool działa bez zarzutu mogę odczytywać, zapisywać, robić data logi. Niestety nie mogę wykorzystać wymienionego oprogramowania ponieważ wersja trialowa umożliwia zapis tylko przez 10 min i 30 dni. Sprawdzałem już nawet ramki i wysyłam dokładnie to samo, za jednym razem działa bez problemu a za drugim nieustający timeout. Gdzie leży problem?
  • REKLAMA
  • #2 13893882
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Jakiej długości masz kabel do połączenia i czy użyłeś terminatorów na końcach?
    Może jesteś na granicy skonfigurowanego timeout'u?
    Do szybkiego podglądania RTU używam Modbus tester, można zobaczyć ramki i nie trzeba instalować.
    CAS Modbus Scanner też jest całkiem fajny.

    Kiedyś pobieżnie bawiłem się pvbrowser i miał sterownik modbus. Na licencji GPL i ma dobrą dokumentację, więc może coś z tego wykorzystasz.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • REKLAMA
  • #3 13894013
    Goodman18
    Poziom 9  
    Posty: 8
    Przewód połączeniowy póki co testowo ma nie więcej jak 30 cm i nie założyłem terminatorów, jutro postaram się je założyć. Najdziwniejsze dla mnie jest to, że jeden program bez problemu działa bez żadnych timeout`ów, a reszta leży. Zastanawiam się czy nie jest to wina błędnej w moim przypadku implementacji drivera modbus tzn. brak odpowiedniego delay`a między wysłaniem a odbiorem. Modbus pool jak wiadomo jest płatną aplikacją, więc raczej sami opracowali driver nie korzystając z bibliotek freemodbus czy modbuslib. W darmowym oprogramowaniu raczej nikt się tym nie zajmował.
  • REKLAMA
  • Pomocny post
    #4 13894094
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Goodman18 napisał:
    Zastanawiam się czy nie jest to wina błędnej w moim przypadku implementacji drivera modbus tzn. brak odpowiedniego delay`a między wysłaniem a odbiorem.
    Pojedyncze zapytania działają prawidłowo? Raz miałem problem z przełączaniem się konwertera 232/485 z odbierania na wysyłanie, więc czas o którym piszesz musiał być minimum 500ms. Pomijam fakt, że odstęp między ramkami musi wynosić >3.5 znaku.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #5 13894165
    Goodman18
    Poziom 9  
    Posty: 8
    Na modbus pool działa dosłownie wszystko, wysłanie własnego ciągu hex`ów oraz logowanie danych do excela. Każde inne oprogramowanie odpowiada timeout`ami. Sprawdzałem w obu przypadkach co wysyłam i hex`y są dokładnie takie same. Natomiast driverów z niedziałających programów niestety nie ma możliwości, ani obejrzeć, ani zmodyfikować musiałbym posiadać kod źródłowy.
  • REKLAMA
  • Pomocny post
    #6 13897075
    gervee
    Specjalista Automatyk
    Posty: 1077
    Pomógł: 100
    Ocena: 94
    1. Czy miernik obsługuje Modbus RTU czy Modbus ASCII?
    2. Czy parametry transmisji poprawnie ustawione w programie do odczytu?
    3. Czy czytasz właściwe urządzenie (adres Modbus)?
    4. Czy czytasz właściwe zasoby?
    5. Czy nie przekraczasz ilości zasobów w pojedynczym zapytaniu (np. czytasz nie więcej niż x-rejestrów - do sprawdzenia w dokumenctacj imiernika tablicowego)?
  • #7 13897155
    Goodman18
    Poziom 9  
    Posty: 8
    Problem rozwiązany. Głupia sprawa, winowajcą są sterowniki modbus kilku z używanych programów niekompatybilne z konwerterem 232/485 zasilanym z portu COM. Po wysłaniu danych wyłączały zasilanie, wiec nie mogłem nasłuchiwać. Nie zauważyłem tego ponieważ podczas testów nie sposób jednocześnie patrzeć w ekran i tył laptopa oraz po jednej błędnej próbie odczytu port COM się zawieszał i wracał do normy dopiero po restarcie. Dziękuję za pomoc.

Podsumowanie tematu

✨ Użytkownik miał problem z komunikacją między miernikiem tablicowym a komputerem za pomocą protokołu Modbus RTU, gdzie inne programy zwracały timeouty, podczas gdy Modbus Pool działał bez zarzutu. Po analizie problemu, zasugerowano sprawdzenie długości kabla, użycie terminatorów oraz poprawność ustawień transmisji. Ostatecznie okazało się, że przyczyną problemów były niekompatybilne sterowniki Modbus w używanych programach, które powodowały wyłączenie zasilania konwertera 232/485, co uniemożliwiało nasłuch. Po rozwiązaniu problemu użytkownik mógł korzystać z Modbus Pool do odczytu i logowania danych.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA