Skocz do zawarto┼Ťci

ESP + Epever + Modbus = problem z czytaniem wiecej niz jednego rejestru.


marcom

Pomocna odpowied┼║

Czesc.

Nie uzywalem wczesnie biblioteki ModbusMaster i nie wiem czy w niej szukac problemow, czy raczej w sobie ­čśë

Zakladam te 2 opcje, ale od rzeczy.

Esp8266 z SoftwareSerial na pinach D1 i D2 + regulator PV Epever Tracer 2210AN.

Tutaj jest opis rejestrow:

https://www.developpez.net/forums/attachments/p196506d1451307310/systemes/autres-systemes/automation/probleme-com-modbus-pl7-pro/controllerprotocolv2.3.pdf/

Dziwne zachowanie, bo jesli czytam konkretny rejestr Modbus, jakis pojedynczy, to mam poprawne wartosci, ale jesli chce przeczytac kilka za jednym razem, to pozniej odczytuje z bufora bledne wartosci.

Probowalem wszystkiego, bo nie bylem pewny, czy zapis nie musi byc w HEX, a moze jednak w DEC, a moze liczy od 0, a moze od 1...i nadal to samo.

 Taki kod dziala, czytam parametr Battery SOC:

  node.clearResponseBuffer();
  result = node.readInputRegisters(0x311A, 0x01); // czytam dane z jednego rejestru, adres 0x311A
  Serial.println(node.getResponseBuffer(0)); // wyswietlam dane z bufowa, spod adresu 0

Ale juz taki kod jak ponizej, zwraca glownie wartosc 0x00, a co jakis czas dane, ale tez nie z tego miejsca w buforze, w ktorym spodziewalbym sie je miec:

node.clearResponseBuffer();
result = node.readInputRegisters(0x3111, 4); // pytam o 4 rejestry
Serial.println(node.getResponseBuffer(0));
Serial.println(node.getResponseBuffer(1));
Serial.println(node.getResponseBuffer(2));
Serial.println(node.getResponseBuffer(3));
 

Na wyjsci mam same wartosci 0.

Ale jesli zapytam tylko o jeden rejestr:

 node.clearResponseBuffer();
result = node.readInputRegisters(0x3111, 1); // pytam tylko o 1 rejestr, a wyswietlam 4
Serial.println(node.getResponseBuffer(0));
Serial.println(node.getResponseBuffer(1));
Serial.println(node.getResponseBuffer(2));
Serial.println(node.getResponseBuffer(3));

To pierwsza wartosci jest poprawna, a 3 nastepne sa zerami.

Pewnie, ze moge przekopac te biblioteki i sprawdzic co sie tam dzieje, ale moze ktos mnie naprowadzi, bo ogladam przyklady i funkcja readInputRegisters() jako paramter przyjmuje adres rejestru poczatkowego i ilosc rejestrow do przeczytania.

Rejestry "maja dzury", nie sa po kolei, np. po 0x3107 jest 0x310c i  myslalem juz, ze moze zwracane sa 0, ale po odpytywaniu w petli o 20 danych z bufora-sytuacja jest bez zmian.

Może to jeszcze byc problem programowego RS-a i musiałbym to przerzucić na STM-a, z 3 portami sprzętowymi, ale to zostawiam na koniec.

Czy kto┼Ť mia┼é taki problem ?
 

Pozdrawiam,

Mariusz

 

P.S.

Zamiana portów, czyli modbus ma sprzętowym UART, a do debug-owania mam programowy - nic nie dała.

P.S.

Zrobilem tablice z adresami rejestrow i  pytam po kolei o kazdy. Dziala ok, ale zeby bylo ciekawiej, pojawiaja sie czesto bledy CRC.

Zmienie konwerter TTL<>RS485, bo mam taki z automatycznym przelaczaniem nadawanie-odbior, a w necie wszyscy uzywaja tych z recznym sterowaniem.

Pozniej jeszcze podmienie ten regulator PV,  bo jest uzywany i moze byc uszkodzony, a na koncu zaczne podsluchiwac transmisje i te sumy kontrolne.

Moze do czegos dojde, moze komus sie ta walka do czegos przyda ­čśë

 

Edytowano przez marcom
  • Lubi─Ö! 1
Link do komentarza
Share on other sites

Do┼é─ůcz do dyskusji, napisz odpowied┼║!

Je┼Ťli masz ju┼╝ konto to zaloguj si─Ö teraz, aby opublikowa─ç wiadomo┼Ť─ç jako Ty. Mo┼╝esz te┼╝ napisa─ç teraz i zarejestrowa─ç si─Ö p├│┼║niej.
Uwaga: wgrywanie zdj─Ö─ç i za┼é─ůcznik├│w dost─Öpne jest po zalogowaniu!

Anonim
Do┼é─ůcz do dyskusji! Kliknij i zacznij pisa─ç...

×   Wklejony jako tekst z formatowaniem.   Przywr├│─ç formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Tw├│j link b─Ödzie automatycznie osadzony.   Wy┼Ťwietla─ç jako link

×   Twoja poprzednia zawarto┼Ť─ç zosta┼éa przywr├│cona.   Wyczy┼Ť─ç edytor

×   Nie mo┼╝esz wklei─ç zdj─Ö─ç bezpo┼Ťrednio. Prze┼Ťlij lub wstaw obrazy z adresu URL.

×
×
  • Utw├│rz nowe...

Wa┼╝ne informacje

Ta strona u┼╝ywa ciasteczek (cookies), dzi─Öki kt├│rym mo┼╝e dzia┼éa─ç lepiej. Wi─Öcej na ten temat znajdziesz w Polityce Prywatno┼Ťci.