• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z odczytem modbus rtu
#2
Powinieneś się tu pochwalić źródłem tego programu C#, bo z Twojej wypowiedzi zrozumiałem, że on nadaje ciąg znaków "01 10 7d 00 00 16 59 ab" jako tekst, to pewnie że nie można tego zrobić jako proste rzutowanie, bo zamiast bajtu 01 do arduino przylatują dwa bajty dla znaków char '0' i '1' czyli w sumie to już liczba 16 bitowa, a spacja jest kolejną liczbą byte.
buffor[i]+=mySerial.read(); Tu nie wiem po co jest +, przecież jak przylatuje nowy znak to go tu wpisujesz = a nie dodajesz do poprzedniego który siedzi w buffor[i]?
Jak jednak nadaje z C# komendą analogicznie write z tablicy wartości bajtów to też rzutowanie nie jest potrzebne na byte.
Jak to ma być głupi przekaźnik to tylko powinno być odbierz/wyślij, żadnego for dla 8 bajtów. Bo ucieknie Ci jakiś bajt i już żadna ramka RTU nie będzie się kleić. Albo można weryfikować w programie, że zbierasz taką wybraną ramkę, sprawdzasz czy jest kompletna, czy CRC się zgadza i nadajesz ją dalej. Musisz wykrywać gdzie jest początek, gdzie jest koniec, zweryfikować, nadać. Chyba prościej wywalić wszystko i zostawić tylko 2 linijki, jak coś przyleciało z 1 to write na 2 i to samo z 2 do 1.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
Problem z odczytem modbus rtu - przez Adrian - 15-08-2022, 09:32
RE: Problem z odczytem modbus rtu - przez kaczakat - 20-08-2022, 18:12

Skocz do:


Przeglądający: 1 gości