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

[AVR][C] Uruchamianie protokołu FreeModBus.

08 Lip 2011 05:33 3024 6
REKLAMA
  • #1 9694787
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #2 9694867
    Slawek_K
    Poziom 12  
    Witam,

    Proponuję przesłać zapytanie o rejestry typu Input Register od rejestru 1000 maksymalnie 4 rejestry. W przykładzie demo.c został właśnie taki obszar do odczytu ustawiony. Z tego co zauważyłem jednostka Slave odpowiada kodem błędu, który informuje, że zapytanie jest o obszar pamięci nie obsługiwany przez niego. Standardowo w projekcie demo.c obsługa obejmuje tylko Input Registers. Obsługę innych obszarów pamięci typu Holding Registers, Coils trzeba samemu dopisać.

    pozdrawiam

    Sławek
  • REKLAMA
  • #3 9694993
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #4 9695320
    Slawek_K
    Poziom 12  
    Witam,

    No niestety jest to darmowa biblioteka i nie zawiera wszystkiego. Wbrew pozorom nie jest to takie trudne. Poniżej mój przykład obsługi Holding Register

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    pozdrawiam
    Sławek
  • REKLAMA
  • #5 9697492
    Konto nie istnieje
    Poziom 1  
  • #6 9714526
    Slawek_K
    Poziom 12  
    Witam,

    Jeśli chodzi o obsługę zdarzeń to można sprawdzać rejestry Holding. Ja to robię w ten sposób, że porównuję zawartość rejestrów Holding z rejestrami, które zawierają odpowiednie parametry jeśli są różne to podejmuję odpowiednią akcję (zapisuje w pamięci EEPROM, aktualizuje inne parametry).
    Inną możliwością jest operowanie w programie na rejestrach typu Holding Register.
    Do testowania używam oprogramowania Modscan32 lub ComTest Pro. Można również używać oprogramowania typu SCADA, np. Adroit. Wersja demo pozwala na uruchomienie skanowania do 1 godziny.

    pozdrawiam

    Sławek
  • #7 9715080
    Pituś Bajtuś
    Poziom 28  
    Do testowania modbusa można również wykorzystać program Link, chociaż posiada jeszcze pewne niedociągnięcia, ale wydaje się być dobrą alternatywą dla komercyjnych w większości tego typu aplikacji.
REKLAMA