Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

SimpleModbusSlave Arduino - Obsługa , komendy do biblioteki SimpleModbusSlave

endurasek 19 Sty 2017 21:57 588 7
  • #1 19 Sty 2017 21:57
    endurasek
    Poziom 14  

    Witam
    Mam taki problem z biblioteką SimpleModbusSlave dla arduino.
    Arduino Uno z wyświetlaczem LCD(slave) wyświetla dane przesyłane z PC (master) po RS485(modbus), wszystko fajnie działa ale w momencie kiedy odłączę arduino od magistrali rs485 lub wyłączę program na PC którym wysyłam dane do sterownika to dane na wyświetlaczu pozostają bez zmian (zapamiętuje) ostatnią wartość .
    W jaki sposób można wyczyścić ten bufor lub w jaki sposób można sprawdzać czy PC nadal wysyła a dane na wyświetlaczu nie są pozostałościami ???

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 7
  • #2 19 Sty 2017 23:18
    2675900
    Użytkownik usunął konto  
  • #3 20 Sty 2017 07:54
    endurasek
    Poziom 14  

    No właśnie w jakie sposób zrobić ten time-out ??? bo ja nie wiem kiedy on nie wysyła .
    PLC wysyła wartość do wyświetlacza (wyświetlacz to arduino uno + wyświetlacz tft + rs485 gdzie podłączony jest tylko na odbiór danych)
    I teraz to wygląda tak że dane które odbiera trafiają do bufora jakiegoś który je przetrzymuje i tylko nowe dane są nadpisywane i jeśli będę sprawdzać sam bufor to tam zawsze coś jest... nie potrafię znaleźć komendy która by sprawdzała czy nowe dane spłyneły.

    0
  • #4 20 Sty 2017 08:59
    2675900
    Użytkownik usunął konto  
  • #5 20 Sty 2017 13:41
    ditomek
    Poziom 20  

    Przy każdej poprawnej komunikacji zapamiętuj w zmiennej pomocniczej liczbę millis. Następnie w każdej pętli sprawdzaj o ile większa od bieżącej wartości millis jest ta Twoja, zapamiętana. Jeśli przekroczy ona założoną wartość wykonaj jakąś akcję: np czyszczenie ekranu i wyświetlanie napisu timeout. To naprawdę prosta sprawa.

    0
  • #7 21 Sty 2017 09:44
    2675900
    Użytkownik usunął konto  
  • #8 23 Sty 2017 10:23
    endurasek
    Poziom 14  

    Więc zrobiłem to za pomocą komendy millis() ale dalej borykam się z problemem że co jakiś czas komunikacja się traci a wiem że jest oki a drugi problem jest taki że sam wyświetlacz TFT sobie delikatnie pulsuje, wydaje mi się że jest to związane z komunikacją bo jak odpinam przewód z RX gdzie podpiętego mam rs485 to ta częstotliwość spada ale dalej coś tam sobie miga .

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  Szukaj w 5mln produktów