Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Pytania, kody i porady dotyczące nie tylko Bascom.
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: niveasoft » 08 cze 2026, 21:23

Nie jest najgorzej. Jednak gada. 01 adres, 03 odczyt danych, 04 zamówione bajty....

Chyba powinieneś sobie zwiększyć na razie tablicę Rx(10) i tę Twoją logike przesunąć o jeden

Czyli If Rx(3) = 3 And Rx(4) = 4 Then .... i tak dalej. Ogólnie to ciekawe dlaczego dodaje te zero.
Zbyszek
Posty: 96
Rejestracja: 30 lis 2017, 17:12

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: Zbyszek » 08 cze 2026, 21:24

Kazałeś mu wpisać w 2 linii a on nadpisuj na pierwszej 2 pierwsze znaki na 00
Powalczymy jutro.
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: niveasoft » 08 cze 2026, 21:26

Zacznij od Locate 1, 1 a potem napisz w tej pętli "If i = 8 then Lowerline" i przejdzie do drugiej :D
Na razie sobie daruj ten napis początkowy.
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: niveasoft » 09 cze 2026, 18:43

Patrzyłem na Twój schemat i widzę że masz wolny pin na PB2.
Gdybyś miał przejściówkę USB<>USART taką jak CH340G, CP210x, FTDI232 albo Profilic (ten nie działa na Win10) to byś sobie mógł podglądać całą tę komunikację i bardzo szybko rozwiązać problemy.
  1. Open "COMB.2, 9600, 8 , n, 1" For Output As #2
I potem zamiast używać wyświetlacza to sobie to wysyłasz co dostał albo co obliczył itp...
  1.   Rx(i) = Waitkey(#1)
  2. Print #2 ,Hex(Rx(i))
Zbyszek
Posty: 96
Rejestracja: 30 lis 2017, 17:12

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: Zbyszek » 09 cze 2026, 19:27

Większą część dnia z tym walczyłem bo nie wiedziałem o co chodzi. Twoje diody nie świeciły. Założyłem diody tak jak mówiłeś na RxD i TxD przez rezystor 470R i wychodzi na to że Atmega wysyła sygnał i nie nie dostaje odpowiedzi. Po resecie Atmegi mrugnie tylko Txd i cisza ... ale jak założę rezystor terminujący między piny A i B oraz jeden z nich czyli A albo B dodatkowo przez rezystor 510R do masy to wtedy Rxd i TxD zaczynają mrugać ale na wyświetlaczu pokazują się przypadkowe liczby i tylko w górnej linii. Mówiłem że mam wersję z Timeout i Modbus Error. Jak odepnę przewody od A i B to wyświetla się Timeout, a jak podłączę to Modbus Error. Wg. mnie z tego wynika że problem leży pomiędzy Maxem a licznikiem, co ... niedopasowane poziomy ? Wszystkie przemysłowe urządzenia mają MAX 487 i taki w nocy zamówię, ale jutro jeszcze spróbuję rano podejść na wydział pomiarowy żeby mi pożyczyli przetwornik parametrów sieci nasz Lumelowski P43, położę go obok i zobaczę czy z nim się skomunikuję. Odezwę się jak coś będę wiedział. Jak mi to będzie normalnie czytać to wtedy powalczymy z programem ... nochyba że coś innego ci przychodzi do głowy. A i coś pisałeś o Windows 10 ... ja mam Windows 7 i innego niezabardzo chcę. :P
Zbyszek
Posty: 96
Rejestracja: 30 lis 2017, 17:12

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: Zbyszek » 09 cze 2026, 19:40

Myślę że fusebity są dobrze. Ustawione są na Kwarc zewnętrzny powyżej 8MHz i wewnętrzny podział zegara przez 8 jest wyłączony. Kwarc wsadzony 16 MHz i w programie też 16 MHz
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: niveasoft » 09 cze 2026, 19:44

Gdybyś zainwestował 7zł-9zł to byś mógł podglądać na komputerze co ta Atmega próbuje zrobić albo czy w ogóle próbuje. Mógłbyś też z komputera puscić ramkę do licznika i sprawdzić czy odpowie .... Mam taki i działa.

https://allegro.pl/produkt/konwerter-us ... 9349556295

Oczywiście mam tez lepsze...ale więcej niż 50zł to nie ma co przepłacać.
Zbyszek
Posty: 96
Rejestracja: 30 lis 2017, 17:12

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: Zbyszek » 09 cze 2026, 20:15

Mam takie coś ... i to nawet 2. Tylko jaki program do tego ? Może do d... bibliotekę modbus.lbx ?
Zbyszek
Posty: 96
Rejestracja: 30 lis 2017, 17:12

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: Zbyszek » 09 cze 2026, 20:15

Bartek tu nie chodzi o takie grosze ....
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Atmega Bascom odczyt rejestru po RS485 Modbus RTU

Post autor: niveasoft » 09 cze 2026, 20:44

Domyślam się że nie chodzi o grosze...
Popatrz jakie to proste i że nie trzeba być aż tak pomysłowym...
Piszesz sobie prosty program na Atmegę żeby przechwycić to jak wygląda ramka zbudowana przez Bascom.
  1. $regfile = "m328pdef.dat"
  2. $crystal = 16000000
  3. $hwstack = 64
  4. $swstack = 32
  5. $framesize = 128
  6.  
  7. $lib "modbus.lbx"
  8.  
  9. Config Com1 = 9600 , Parity = None , Stopbits = 1 , Databits = 8
  10.  
  11. Open "COM1:" For Binary As #1
  12.  
  13. Wait 3
  14.  
  15. Print #1 , Makemodbus(1 , 3 , &H2012 , 4)
  16.  
  17. End
Wrzucasz to na Atmege i ściągasz program HTerm.
Atmege podłączasz przejściówką USB<>SERIAL do kompa i podglądasz ramkę.
Program najlepiej ustawić tak jak na obrazku czyli na pokazywanie HEX.
Tu masz juz tę ramke pokazaną więc możesz odgapić i krok pominąć...
01 03 20 12 00 02 FF CE
Podłączasz się bezpośrednio do licznika tą przejściówką USB<>RS485
Przepisujesz tę ramkę niżej tam gdzie pisze "Type HEX" i wciskasz ENTER
Jak licznik odpowie to coś zobaczysz. Jak nie no to szukaj w połączeniach.

W sumie jak masz taką przejściówkę USB<>RS485 to mogłeś się na stole próbować połączyć z Atmegą i sprawdzić czy ona coś wysyła. Sprawdziłbyś transceiver. To naprawdę nieskomplikowane....
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
ODPOWIEDZ