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

[Rozwiązano] Komunikacja RS485 pomiędzy Steca 5513 a Orno OR-WE-517 MID

nero541 08 Kwi 2020 11:31 3387 26
  • #1 18599531
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Cześć

    Chciałbym uruchomić wewnętrzny monitoring produkcji/zużycia energii. Mam instalację 3f, 5,76 kW na Steca Grid 5513. Jako podlicznik w domu planuję Orno OR-WE-517 MID. Instalacja PV znajduje się na budynku gospodarczym więc połączenie musi być po WiFi.
    Wg specyfikacji Steca, falownik ma protokół Modbus RTU, jednak po zalogowaniu do falownika widzę Modbus Sunspec TCP, licznik ORNO ma Modbus RTU.

    Połączenie planuję zrealizować po 2 konwerterach ZLAN5143D (RS485 na Ethernet, ma funkcję konwersji Modbus TCP na Modbus RTU) dostępnych na AliExpress.

    Mam w związku z tym pytanie, czy ktoś ma może jakieś doświadczenia z połączeniem falownika Steca z nie dedykowanym licznikiem (firma, która montowała PV sugeruje Solar Loga ale cena zabija), czy sprzęt w tej konfiguracji ma w ogóle szanse zadziałać ?
  • #2 18599565
    theo33
    Poziom 27  
    Posty: 849
    Pomógł: 78
    Ocena: 321
    Na pewno po modbusie?
    Steca grid SEM ale na pewno po SO i to współpracowało z 3203
  • #3 18599586
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Zrzut ze strony falownika:

    Komunikacja RS485 pomiędzy Steca 5513 a Orno OR-WE-517 MID
  • #4 18600009
    Adam1988
    Poziom 26  
    Posty: 916
    Pomógł: 49
    Ocena: 161
    Raczej nie zadziała - liczniki musiały by mieć identyczną 'mapę' zmiennych.
  • #5 18891969
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Witam po przerwie - trochę trwało zanim zakupy dotarły.

    Informację o licznikach współpracujących z moim inwerterem (raptem 2 modele) dostałem od dystrybutora:
    1) B-Control EM 300 LR
    2) B+G E-Tech SDM630.
    Poszperałem i okazało się, że ten E-Tech SDM630 to nic innego jak EASTRON SDM630, który zakupiłem za 360 zł. Konwertery 2 sztuki USR-DR302 kosztowały 180 zł i one dotarły dopiero po 2 miesiącach.

    Ale do rzeczy. Mam problem z realizacją mojego celu.

    Podłączyłem licznik do inwertera PV. Połączenie jest zrealizowane przez lokalną sieć z wykorzystaniem 2 konwerterów USR-DR302 (w trybie klient TCP – serwer TCP). Niestety inwerter nie widzi licznika.
    Przetestowałem:
    1) bezpośrednie połączenie kablowe SDM630 - Steca – inwerter odczytuje licznik, praca prawidłowa;
    2) zestawiłem połączenie SDM630 - USR-DR302 – LAN – USR-DR302 – konwerter RS485 na USB – PC, oprogramowanie na PC odczytuje licznik, praca prawidłowa;
    3) zestawiłem połączenie SDM630 - USR-DR302 – LAN – USR-DR302 – Steca, inwerter nie widzi licznika.
    Inwerter oprócz opcji wyboru modelu licznika i aktywacji / deaktywacji protokołu Modbus/Sunspec TCP nie ma opcji konfigurowania portu RS485. Otrzymałem od infolinii Steca wymaganą konfigurację licznika SDM630: 9600, 8N1, adres 1, która jest prawidłowa przy wyżej opisanych pkt 1 i 2 i przy zdeaktywowanej opcji Modbus/Sunspec TCP.

    W załącznikach konfiguracja obu USR-DR302.
    Komunikacja RS485 pomiędzy Steca 5513 a Orno OR-WE-517 MID
    Komunikacja RS485 pomiędzy Steca 5513 a Orno OR-WE-517 MID

    Prośba o pomoc w rozgryzieniu problemu.
  • #6 18901817
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Koncepcja jest dobra, wdrażałem podobne rozwiązania na konwerterach od Moxy i Advantecha. Czasami trzeba było ustawić wysyłanie przez Ethernet po każdym znaku odebranym z portu szeregowego, a czasem działało na domyślnych ustawieniach.

    Obejrzyj Wiresharkiem transmisje Ethernet pomiędzy konwerterami, porównaj przypadki 2 i 3.

    Podejrzewam że pojawiły się przerwy między znakami na rs485 po przejściu przez oba konwertery. Modbus RTU definiuje max. przerwę między znakami, ale niektóre urządzenia mają ostrzejsze wymagania.
  • #7 18909121
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Nie mogę ujarzmić Wiresharka (nie miałem z nim wcześniej do czynienia) - nie widzę transmisji pomiędzy konwerterami mimo, że pracują. Adresy konwerterów pojawiają się jedynie gdy je pinguję.

    Użyłem Advanced Serial Data Logger by podejrzeć komunikację od strony RS485:
    1) bezpośrednio przed falownikiem, plik log_1
    2) po przejściu przez oba konwertery, przed licznikiem - plik log_0

    Pojawiają się różnice ale nie wiem jak to zinterpretować.

    W międzyczasie pytałem wsparcie techniczne Steca o problem z komunikacją i twierdzą, że licznik do falownika może być podłączony tylko bezpośrednio, a inne połączenie jest niemożliwe ?
    Załączniki:
    • log_1.txt (126.02 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • log_0.txt (33.59 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 18909228
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Falownik wysyła żądania 01 04 xx xx yy yy crc
    To znaczy "odczytaj Input Registers od adresu xx xx, liczba rejestrów yy yy"

    Licznik odpowiada 01 84 01 crc
    To oznacza: odebrałem poprawne (format Modbus, crc jest ok) żądanie "read input registers", ale ta funkcja nie jest obsługiwana.

    Czyli sama komunikacja Modbus działa, ale falownik wysyła nieobsługiwane rozkazy.

    Czy falownik sam wykrywa typ przyłączonego licznika? Może da się to jakoś wymusić z menu?

    Złap transmisję przy połączeniu bezpośrednim falownik-licznik:
    - sam falownik bez licznika, po restarcie - zobaczymy jak próbuje wykryć licznik
    - po przyłączeniu licznika
    - po restarcie falownika z przyłączonym licznikiem.

    Wsparcie techniczne rożnych firm to temat na rozmowę przy piwie ;-)
  • #9 18909876
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    To nie jest odpowiedź licznika - to program. Byłem zapięty przejściówką RS485-USB w pierwszym przypadku bezpośrednio do rs-a inwertera, a w drugim przypadku do rs-a konwertera.

    Tak jak pisałem wcześniej (post #5) licznik połączony bezpośrednio kablem z inwerterem działa bezproblemowo. W menu falownika można tylko wybrać 1 z 2 typów liczników, wybór B-Control EM 300 LR powoduje błąd 6006 - brak komunikacji z czujnikiem. Ten sam błąd jest przy wybraniu SDM630 i połączeniu przez konwertery.

    Jak fizycznie zrealizować 2 i 3 test (1 według mnie jest w pliku log_1) - podpiąć się równolegle do falownika ?
  • #10 18910322
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    W pliku log_1 są zapisane żądania i odpowiedzi, komunikacja dwóch urządzeń.
    Falownik wysyła żądania, a co odpowiada?
    Program do monitorowana ruchu nie powinien niczego odsyłać, tylko słuchać.
    Musisz zidentyfikować co generuje krótkie pakiety 01 84 01 82 C0. Ich nie powinno być, gdy falownik pracuje sam.

    Rs485 (dwa przewody) pozwala na przyłączenie kilku urządzeń do jednej magistrali - łączysz urządzenia "równolegle" D+ z D+, D- z D-.
    Konwerter Rs485/usb jest widziany przez komputer jako port COM - program monitora (lub dowolny terminal który wyświetla odebrane znaki w hex) ma słuchać. Komputer nie może nic wysyłać.

    Zrób komplet testów 1-3 powyżej przy połączeniu bezpośrednim i przez konwertery na Ethernet.
  • #11 18910538
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Ten program ma tryb sondowania z opcją "Użyj słowo zdarzenia", poza tym falownik był spięty na krótko z laptopem.

    Jutro po pracy rzucę kabel i wykonam testy.
  • #12 18912206
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Pakiet 01 84 01 82 C0 generował program - odpowiadała za to włączona opcja "tryb interfejsu RS485".

    Wykonałem 4 testy:
    1) "inverter.txt" - tylko falownik
    2) "inverter_licznik.txt" - falownik z licznikiem połączony kablem
    3) "inverterlicznikrestart.txt" - falownik z licznikiem połączony kablem po restarcie
    4) "invlicznikkonwerter.txt" - falownik z licznikiem połączony przez konwertery USR-DR302.
    Załączniki:
    • invlicznikkonwerter.txt (43.27 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • inverterlicznikrestart.txt (34.19 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • inverter_licznik.txt (34.19 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • inverter.txt (10.29 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #13 18912387
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Inwerter odpytuje kolejno po 2 rejestry, przeplatając odczytem 2 rejestrów 0x34 i 0x35.
    
    #01#04#00#00#00#02#71#CB
    #01#04#00#34#00#02#30#05
    #01#04#00#02#00#02#D0#0B
    #01#04#00#34#00#02#30#05
    #01#04#00#04#00#02#30#0A
    #01#04#00#34#00#02#30#05
    #01#04#00#06#00#02#91#CA
    #01#04#00#34#00#02#30#05
    #01#04#00#08#00#02#F0#09
    #01#04#00#34#00#02#30#05
    #01#04#00#0A#00#02#51#C9
    #01#04#00#34#00#02#30#05
    #01#04#00#0C#00#02#B1#C8
    #01#04#00#34#00#02#30#05
    #01#04#00#0E#00#02#10#08
    #01#04#00#34#00#02#30#05
    #01#04#00#10#00#02#70#0E
    #01#04#00#34#00#02#30#05
    #01#04#00#12#00#02#D1#CE
    #01#04#00#34#00#02#30#05
    #01#04#00#14#00#02#31#CF
    #01#04#00#34#00#02#30#05
    #01#04#00#16#00#02#90#0F
    #01#04#00#34#00#02#30#05
    #01#04#00#18#00#02#F1#CC
    #01#04#00#34#00#02#30#05
    #01#04#00#1A#00#02#50#0C
    #01#04#00#34#00#02#30#05
    #01#04#00#1C#00#02#B0#0D
    #01#04#00#34#00#02#30#05
    #01#04#00#38#00#02#F0#06
    #01#04#00#34#00#02#30#05
    #01#04#00#3C#00#02#B1#C7
    


    Przy połączeniu przez konwertery, licznik zazwyczaj odpowiada - ale czasami nie.

    
    #01#04#00#00#00#02#71#CB
    #01#04#04#43#74#C5#3C#FD#5B
    #01#04#00#34#00#02#30#05
    #01#04#04#44#5B#01#7E#1F#17
    #01#04#00#02#00#02#D0#0B
    #01#04#04#43#76#E5#34#44#9D
    #01#04#00#34#00#02#30#05
    #01#04#04#44#56#ED#2A#C3#EB
    #01#04#00#04#00#02#30#0A
    #01#04#04#43#76#48#32#B8#0F
    #01#04#00#34#00#02#30#05
    #01#04#04#44#57#B3#3D#EA#45
    #01#04#00#06#00#02#91#CA
    #01#04#04#40#22#5F#78#77#9C
    #01#04#00#34#00#02#30#05
    #01#04#04#44#54#B8#FE#5D#24
    #01#04#00#08#00#02#F0#09
    #01#04#04#3F#28#60#81#9F#F8
    #01#04#00#34#00#02#30#05
    #01#04#04#44#53#02#44#1E#36
    #01#04#00#0A#00#02#51#C9
    #01#84#04#3F#8A#53#D5#2B#15
    #01#04#00#0C#00#02#B1#C8
    #01#04#04#44#19#82#D8#5E#49
    #01#04#00#34#00#02#30#05
    #01#04#04#44#53#27#80#05#35
    #01#04#00#0E#00#02#10#08
    #01#04#04#42#4E#40#AE#3F#97
    #01#04#00#34#00#02#30#05
    #01#04#04#44#54#55#C7#D0#66
    #01#04#00#10#00#02#70#0E
    #01#04#04#43#35#75#BE#58#EE
    #01#04#00#34#00#02#30#05
    #01#04#04#44#50#79#A7#8D#4F
    #01#04#00#12#00#02#D1#CE
    #01#04#04#44#18#8A#C9#C8#45
    #01#04#00#34#00#02#30#05
    #01#04#04#44#51#97#6A#50#BA
    #01#04#00#14#00#02#31#CF
    #01#04#04#43#22#E7#54#04#05
    #01#04#00#34#00#02#30#05
    #01#04#04#44#4F#2F#7E#42#B3
    #01#04#00#16#00#02#90#0F
    #01#04#04#43#85#1C#B2#77#5C
    #01#04#00#34#00#02#30#05
    #01#04#04#44#4E#A4#DA#74#38
    #01#04#00#18#00#02#F1#CC
    #01#04#04#C2#BC#1D#83#4F#29
    #01#04#00#34#00#02#30#05
    #01#04#04#44#4F#06#C3#9D#52
    #01#04#00#1A#00#02#50#0C
    #01#04#04#C3#1A#7D#AF#87#2B
    #01#04#00#34#00#02#30#05
    #01#04#04#44#4F#95#6B#F0#1C
    #01#04#00#1C#00#02#B0#0D
    #01#04#04#C3#48#1D#3B#0F#55
    #01#04#00#34#00#02#30#05
    #01#04#04#44#52#26#98#55#6F
    #01#04#00#38#00#02#F0#06
    #01#04#04#44#6D#12#D4#72#56
    #01#04#00#34#00#02#30#05
    #01#04#04#44#51#2C#28#A2#7B
    #01#04#00#3C#00#02#B1#C7
    #01#04#04#C3#DE#FE#90#E7#F6
    #01#04#00#34#00#02#30#05
    #01#04#04#44#51#F3#8A#7B#F2
    #01#04#00#3E#00#02#10#07
    #01#04#04#3F#61#B7#7E#51#9E
    #01#04#00#46#00#02#90#1E
    Brak odpowiedzi - licznik odebrał transmisję z błędem i ją zignorował
    
    #01#04#42#47#99#6A#B5#96
    Brak odpowiedzi - jak wyżej
    
    Cykl odczytu od początku
    #01#04#00#00#00#02#71#CB
    #01#04#04#43#74#C1#5F#BF#B2
    #01#04#00#34#00#02#30#05
    #01#04#04#44#4F#35#F6#49#B5
    #01#04#00#02#00#02#D0#0B
    #01#04#04#43#76#AA#99#B1#10
    #01#04#00#34#00#02#30#05
    #01#04#04#44#4F#58#ED#25#2E
    #01#04#00#04#00#02#30#0A
    #01#04#04#43#76#2D#D7#52#D4
    #01#04#00#34#00#02#30#05
    #01#04#04#44#53#58#8A#A5#02
    #01#04#00#06#00#02#91#CA
    Brak odpowiedzi
    #01#04#00#3C#22#22#32#56#10#E1#EE
    Błędna transmisja możliwe nałożenie odpowiedzi na poprzednie żądanie z nowym żądaniem odczytu słowa 0x34
    
    #01#04#00#08#00#02#F0#09
    #01#04#04#3F#28#90#F1#DA#1C
    Itd
    


    Wracam do pierwszej hipotezy: problem jest związany z czasem transmisji, treść żądań i odpowiedzi jest w miarę poprawna.

    Konwertery odbierają dane z rs485 i muszą zadecydować, kiedy zebrane dane przesłać po ethernecie. Jeśli zdecydują źle, to transmisja nie będzie spełniać wymagań czasowych protokołu Modbus RTU. Konwertery od Moxy mają możliwość konfiguracji czasu transmisji - zobacz jakie możliwości ma Twój konwerter. Ew. załącz pdfa / link do instrukcji.

    Żeby to potwierdzić, trzeba przeanalizować komunikację w czasie. Analiza TCP/IP między konwerterami jest najłatwiejsza. Twoje problemy ze złapaniem ramek mogły wynikać z faktu użycia switcha - one kierują ruch między urządzeniami, nie rozsyłają ramek to wszystkich. Można użyć starego huba (nie switcha) Ethernet. Alternatywnie - są w sprzedaży routery lub switche z portem "diagnostycznym" na który jest transmitowany cały ruch.
  • #14 18912459
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Dzięki za analizę. Załączam instrukcję do konwertera.

    Zerknąłem na cenę konwertera MOXA i na mój prywatny użytek to trochę za dużo.
    Załączniki:
    • [User Manual] USR-DR302-User-Manual.pdf (2.33 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #15 18912596
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Spróbuj po kolei, może coś zadziała.

    1. W zakładce Expand Function załącz "Modbus TCP" na obydwu konwerterach.
    W ten sposób obydwa będą tłumaczyć Modbus RTU na TCP, nie wiedząc że dalej TCP jest tłumaczony na RTU. Może zadziała.

    2. Na stronie 39 piszą o ustawianiu Packaging Time - tylko nie widzę gdzie to ustawić :-/
    Zacznij od 4ms, jesli nie będzie działać zmniejszaj aż do 0,5 ms. Próby rób na przewodowym Ethernecie, nie WiFi - to ew. później. Spróbuj zarówno z załączoną i wyłączoną konwersją na Modbus TCP

    3. Przestaw konwertery na tryb UDP zamiast TCP, powtórz próby 1 i 2 z transmisją po UDP.

    Chińczyki zwykle mają marne oprogramowanie, z błędami itd; więc coś co powinno działać czasem nie chce.
  • #16 18912800
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Włącz / wyłącz "Modbus TCP" i tryb UDP było już ćwiczone - tyle, że na WiFi.

    O "Packing Time " myślałem, że ustawia się komendami AT, dopytam Chińczyka.
  • #17 18913092
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Sprawdź na kablu i złap transmisje, może się dowiemy dlaczego nie działa.
  • #18 18915713
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Nie wiem jak w Wiresharku zapisać zawartość ekranu. W pliku export podglądu.
    Połączenie: licznik - konwerter - kabel - hub - konwerter - inwerter.

    Chińczyk - producent odpisał, że w tym typie konwerterów nie ma możliwości zmiany "packing time".
    Załączniki:
    • logg12.txt (661.54 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #19 18915923
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Zapisz dane z Wiresharka przez File->Save As w formacie *.pcapng
    Ethernet w formacie tekstowym ciężko analizować ;-)
  • #20 18917299
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Dane w lepszej formie :D .
    Usuń rozszerzenie.txt, elektroda nie puszcza pcapng.
    Załączniki:
    • log_pcapng.txt (524.78 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #21 18931654
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Dane wysyłane od 192.168.192.198 do 192.168.182.197 to poprawne żądania Modbus RTU (nie sprawdzałem CRC, ale skoro licznik odpowiada, to musi być poprawne)

    Kolejno żądanie odczytu słów parami spod adresów (dziesiętnie)
    0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 56, 60, 62, 70
    19 różnych żądań, przeplatanych żądaniami odczytu pary słów spod adresu 52 (hex 34)
    Pełny cykl liczy 76 transmisji: 19x(żądanie, odpowiedź, żądanie z adresu 52, odpowiedź).
    Odpowiedzi wysyłane są od 192.168.182.197 do 192.168.182.198.

    W pierwszym cyklu jest nieregularność: po żądaniu odczytu z adresu 62 (hex 3e) [pakiet 143 w pliku pcapng], przychodzi odpowiedź, po czym następne żądanie dotyczy adresu 70 (hex 46) [pakiet 148].
    Pomiędzy nimi pominięte jest żądanie odczytu spod adresu 52 (hex 34)

    Kolejne 37 pełne cykle po 76 transmisji każdy są zupełnie regularne i bez zakłóceń.

    Czas odpowiedzi na żądanie jest rzędu 40-60 ms, kolejne żądania są wysyłane niemal dokładnie co 90 ms. Jedyne zawirowanie jest przy tym pominiętym żądaniu odczytu.

    Dane wysyłane od 192.168.192.198 do 192.168.192.200 zawierają tylko żądania Modbus RTU (kopie żądań wystyłanych do 192.168.192.197 w tym samym czasie); domyślam się że .200 to komputer.

    Porównując to wszystko z danymi z pliku inverter_licznik.txt (transmisja działająca) mamy te same dane, przesyłane niemal w tym samym czasie (7 transmisji przez konwertery to 630 ms; 7 transmisji bezpośrednio to 593 ms) - mniej niż 10 % różnicy. To teoretycznie może mieć wpływ, ale - szczerze - nie powinno.

    Wygląda że wszystko jest super. Technicznie powinno działać.

    Protokół transmisji to Modbus RTU nie Modbus TCP, czyli nie działa funkcja konwerterów zamieniająca RTU na TCP.

    Komunikacja RS485 pomiędzy Steca 5513 a Orno OR-WE-517 MID
  • #22 18932805
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Adres .200 to faktycznie komputer.

    Czy konwersja może być tylko jednokierunkowa, tzn. tylko z RTU na TCP a w drugą stronę już nie ? Po włączeniu tej funkcji na obu konwerterach, nie ma transmisji.

    W inwerterze jest opcja aktywacji Modbus TCP ale przy bezpośrednim połączeniu kablowym z licznikiem czy jest aktywna czy nie, falownik i tak "czyta" licznik.

    Czy problem nie wynika z fizycznego niedopasowania, np. niewłaściwy poziom sygnału na wyjściu konwertera ?
  • #23 18971916
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Witam po przerwie.

    W tym czasie trochę pisałem z chińskim producentem tych konwerterów, przeglądali logi i skończyło się tym, że udostępniłem zdalny pulpit i gość na bieżąco podglądał transmisję, i po konwerterach i po kablu. Efektem jest diagnoza (cyt./tłumaczenie z Googla): Opóźnienie sieciowe jest zbyt duże, dane 485 kolidują z pakietami, a czas odpytywania falownika musi zostać zwiększony. Nie możemy tego rozwiązać. Zwróć się do producenta falownika.

    Mam w związku z tym pytanie, czy ten czas nie jest normowany w specyfikacji Modbus-a ?
  • #24 18974410
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Co powiedział producent bez tłumaczenia Google ? ;-)

    jestam napisał:
    (7 transmisji przez konwertery to 630 ms; 7 transmisji bezpośrednio to 593 ms) - mniej niż 10 % różnicy. To teoretycznie może mieć wpływ, ale - szczerze - nie powinno.


    Wyszło na to, że jednak ma to wpływ. Normalnie mastera Modbus pisze się tak, żeby tolerował wahania czasu odpowiedzi slave - następna ramka żądania jest wysyłana po odebraniu odpowiedzi lub po timeout, który jest rzędu 2-5x czas odpowiedzi. Być może programiści falownika poszli na skróty i odpytują co stały okres. Może mieli jakiś powód, może nie. Raczej tego nie zmienią - u nich działa ;-)

    Widzę jedną drogę z tego miejsca: znajdź arduino z rs485 i drugim portem szeregowym;
    Napisz program, który:
    1 - odpytuje licznik w większych porcjach bez odczytu z 0x34 co drugi pakiet (czytaj to rzadziej), zapamiętaj odpowiedzi
    2 - nasłuchuje żądań z falownika i odpowiada odpowiednio szybko danymi z pamięci
    3 - przestaje odpowiadać do falownika gdy dane z licznika nie przychodzą.
  • #25 18977495
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Niestety z Arduino nie miałem do czynienia.
    Jaki byłby szacunkowy koszt modułu + programu, gdybym chciał to zlecić komuś ?
  • Pomocny post
    #26 18978464
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Arduino powstało aby ułatwić naukę programowania uC. Na pewno dasz radę.

    Kup jakiegoś klona Arduino Mega za 50 zł, dwa konwertery UART TTL/RS 485 po 5 zł sztuka, zainstaluj IDE i pobaw się ;-)

    Modbus Master jest wsród przykładów w IDE, odpytaj sobie licznik, a pózniej zrób Modbus slave na drugim porcie szeregowym.

    Na forum pytaj w dziale Mikrokontrolery.
  • #27 19147070
    nero541
    Poziom 15  
    Posty: 294
    Pomógł: 1
    Ocena: 21
    Położyłem kabel pomiędzy falownikiem a licznikiem.
    Konwertery najprawdopodobniej pójdą do sprzedaży

Podsumowanie tematu

✨ Użytkownik planuje zrealizować monitoring produkcji i zużycia energii w instalacji PV z falownikiem Steca Grid 5513 oraz licznikiem Orno OR-WE-517 MID, z połączeniem przez WiFi. Wskazano, że falownik obsługuje protokół Modbus RTU, podczas gdy licznik korzysta z Modbus RTU. Użytkownik zamierza użyć konwerterów ZLAN5143D do konwersji sygnału. W dyskusji pojawiły się problemy z komunikacją, w tym różnice w mapach zmiennych oraz opóźnienia w transmisji. Użytkownik testował różne konfiguracje połączeń, w tym bezpośrednie oraz przez konwertery, jednak napotkał trudności w odczycie danych z licznika przez falownik. Wskazano na możliwość problemów z czasem odpowiedzi oraz konieczność dostosowania ustawień konwerterów. Ostatecznie użytkownik zdecydował się na bezpośrednie połączenie kablowe między falownikiem a licznikiem, co przyniosło pozytywne rezultaty.
Wygenerowane przez model językowy.
REKLAMA