Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Huawei SUN2000 modbus TCP

cegreg 01 Sep 2021 21:35 4608 28
  • #1
    cegreg
    Level 10  
    Podmieniłem dzisiaj inwerter na Huawei sun2000 6ktl m1 i jedyne co mi w nim brakuje to modbusa TCP.
    Niby jest TCP ale tylko przy podłaczeniu p2p przez wifi falownika, a to jest nieprzydatne.
    Pytanie czy ktoś może stosował jakiś konwerter rs485 na lan z tym inwerterm tak aby uzyskać modbus TCP?
  • Helpful post
    #2
    lizak1983
    Level 14  
    Przy firmware z końcówka 120 lub 122 w smart dongle można też użyć kabla LAN do połączenia poprzez MODBUS TCP.
  • Helpful post
    #3
    gmacko
    Level 14  
    Dokładnie, jest w tym donglu port Ethernet, trzeba zapiąć kablem routera i można do niego dzwonić.
  • #4
    cegreg
    Level 10  
    Dzięki.
    Wczoraj testowałem właśnie przez LAN i niestety mi się nie udało nic wyciągnać z tego inwertera. Z Froniusa bez problemu mi działało. Później doczytałem się, że przy połaczeniu przez wifi inwertera tylko działa i faktycznie działało.

    Wieczorem sprawdzę soft, może to kwestia aktualizacji.
  • Helpful post
    #5
    lizak1983
    Level 14  
    Nie wiem czym pobierasz przez LAN, ale oprócz firmware w SMART DONGLE powyżej 120 (nie falownik) to jeszcze trzeba zaznaczyć slave address: 1.
  • #6
    cegreg
    Level 10  
    lizak1983 wrote:
    Nie wiem czym pobierasz przez LAN, ale oprócz firmware w SMART DONGLE powyżej 120 (nie falownik) to jeszcze trzeba zaznaczyć slave address: 1.


    Dzięki za pomoc.
    Faktycznie wersja softu dongla była 119. Zaktualizowałem do najnowszej 136.
    Jeszcze prośba o podpowiedź gdzie zmienić adres modbus. Znalazłem tylko taką opcję w zakładce komunikacji 485 i tam mam 1. Ale nadal nie mogę nic wyciągnąć z rejestrów modbus. Adres IP i port mam wpisany poprawny, także domyślam się, że może być problem z adresem modbus slave w huawei.
  • Helpful post
    #7
    lizak1983
    Level 14  
    cegreg wrote:
    Zaktualizowałem do najnowszej 136

    Jeszcze raz napiszę, że nie chodzi o wersję softu w falowniku a w Smart Dongle, Tam najnowsza wersja ma końcówkę 123. Czym próbujesz pobierać te dane, masz jakiś specjalny program czy w pythonie?
  • Helpful post
    #8
    gmacko
    Level 14  
    Huawei SUN2000 modbus TCP

    Dokładnie o to chodzi. Falownik ma soft v136. Klucz sprzętowy nie.
  • #9
    cegreg
    Level 10  
    Przeprasza, mój błąd. Faktycznie 123.

    Dane pobieram systemem automatyki domowej, który jest mega prosty. W parametach komunikacji podaję ip i port oraz nr slave modbus.
    IP adres mam ustawiony stały, a portu modbus 502 chyba jest wpisany fabryznie. Slave mam ustawiony na 1, ale w komunikacji RS485. Chyba, że gdzieś jeszcze trzeba to zrobić. Drugi inwerter froniusa mam ustawiony na 2. Także nie ma kolizji.

    W danych podaję typ rejestru, numer rejestru i typ zmiennej. Działa to mi z pracującym froniusem i wcześniejszym z sma.

    Jeszcze spróbuję zrestartować po aktualizacjach, być może to rozwiąże problem.

    ****
    Działa :)
    Dziękuję wszystkim!
  • #10
    migod
    Level 21  
    Próbuję uruchomić modbus dla Sun2000 i wifi dongle (najnowszy firmware na obu, aktualnie nie mam profilu instalatora na nim, ale przed uruchomieniem w paz'21 zaktualizowałem do najnowszych ..). Wtedy w konfiguracji widziałem opcję modbus na RS486 (i była włączona), ale nie było czegoś takiego dla wifi.. Urządzenie jest online, dane dostępne w FusionSolar i wysyłane do chmury, odpowiada lokalnie na ping, widzę otwarty port 502/tcp, mogę się z nim połączyć netcat, ale mbpoll zwraca błędy..

    * Jakie powinny być parametry tej komunikacji ? Jakaś autoryzacja ?

    * Względnie, czy łatwiej podejść do tematu po RS486 lub po ethernet zamiast wifi ?

    Docelowo chcę to zintegrować z Openhab, ale moduł modbus i skrypty dla OH też bez powodzenia .. logi poniżej.

    Code:

    mbpoll 192.168.105.50 -v
    debug enabled
    Set device=192.168.105.50
    Connecting to [192.168.105.50]:502
    Set response timeout to 1 sec, 0 us
    Protocol configuration: Modbus TCP
    Slave configuration...: address = [1]
                            start reference = 1, count = 1
    Communication.........: 192.168.105.50, port 502, t/o 1.00 s, poll rate 1000 ms
    Data type.............: 16-bit register, output (holding) register table

    -- Polling slave 1... Ctrl-C to stop)
    [00][01][00][00][00][06][01][03][00][00][00][01]
    Waiting for a confirmation...
    ERROR Connection reset by peer: read
    Read output (holding) register failed: Connection reset by peer
    -- Polling slave 1... Ctrl-C to stop)
    [00][02][00][00][00][06][01][03][00][00][00][01]
    ERROR Broken pipe
    Read output (holding) register failed: Broken pipe
    -- Polling slave 1... Ctrl-C to stop)


    Code:

    [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint@6be33655[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=40122,length=6,maxTries=3]). Will try again soon. Error was I/O error, so reseting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: ModbusIOException Premature end of stream (Header truncated). [operation ID c08ef938-306c-4d3a-9be1-5f520cbbd3db]
  • #11
    gmacko
    Level 14  
    Nie ma zadnej autentykacji. W najnowszym sofcie dongla działa i po WiFi i przez Ethernet.
    Podłącz się pod wifi falownika i sprawdź aplikacja sun2000 ustawienia połączenia równoległego rs485, czy jest włączone, jaki masz bitrate. Tam są ze 4 parametry tylko.
    Huawei SUN2000 modbus TCP
  • #12
    livekiller
    Level 16  
    Panowie,
    Doszedłem do miejsca w fusion solar gdzie zaktualizować firmware w donglu (nie falowniku) ale jest tam tylko opcja instalacji z pliku. Skąd pobrać firmware w wersji 123? Na stronie huawei logując się jako instalator mam do ściągnięcia tylko wersje 110 :( A dongle ma obecnie wersje 115

    Edit: Ok, udało mi się zaktualizować firmware. Falownik SUN2000-5KTL-M0 - firmware SPC139, dongle firmware SPC124. Sytuacja wygląda tak, że komunikacja Modbus nie działa w żadnym wypadku, ani po Ethernecie, ani przy połączeniu Wifi z routerem, ani poprzez AP udostępniany przez dongle. Różnica jest tylko taka, że poprzez AP z dongla dostaję informację, że port 502 jest otwarty (przy Ethernet lub Wifi z routera już nie), ale nie dostaję żadnej odpowiedzi zwrotnej na zapytanie o Read register. Czy w ustawieniach falownika trzeba gdzieś włączyć dostępność Modbus?
  • #13
    migod
    Level 21  
    Walczyłem z tematem ze 2 tygodnie, bez skutku. SDongle ma FW SmartMBusV100R001C00SPC300, falownik też była aktualizowany na początku października. Dzięki gmacko za pomoc i konsultacje ! ;-)

    Finalnie dzisiaj udało mi sie uruchomić kod https://gitlab.com/Emilv2/huawei-solar.git po wifi wystawionym przez falownik SSID=SUN2000-**** oraz domyslne haslo=Changeme. Ten sam kod odpalony na sdongle po WLAN rzuca błędami "braku" połączenia.

    Originalny kod z repozytorium (klasa HuaweiSolar.py) wymaga niestety kilku poprawek (brak typowania) i przynajmniej u mnie na Python3 i Debianie się to sypało. Ttrochę naprawiłem, ale dalej są błędy (np. zmienne alarm_* lub state_*). Wrzucam w załączniku. Wymagane są pakiety pymodbus oraz pytz (timezone).

    W pliku run.py znajdziesz listę rejestrów oraz IP falownika (chyba ma być 192.168.200.1) i odkomentuj sobie te rejestry, które Cię interesują.
    Pilotażowo postawię raspberry i po wifi zapnę się do falownika po SUN2000-***, a po ethernet do infrastruktury w domu, ale to dodatkowe urządzenie do utrzymywania ..

    Jeśli ktoś z Forum ma wiedzę co ustawić w konfiguracji falownika, aby to zaczęło działać po sdongle, to chętnie skorzystam.

    PS. Widzę, że wyszła aktualizacja firmware w listopadzie, ale przezornie - odczekam .. ;-) https://www.elektroda.pl/rtvforum/topic3721385-300.html
  • #14
    lizak1983
    Level 14  
    Przypuszczam że może być zablokowana komunikacja w tym firmware podobnie jak jest to w wersjach z końcówką mniejszą niż spc120. Do ustawiania komunikacji w menu falownika jest tam naprawdę niewiele opcji (przynajmniej u mnie). Próbowałeś może testować również na slave=2 lub wyżej? Ostatnio jedna osoba też nie mogła odpalić po sdongle a miała go przepiętego z innego falownika i zmiana na 2 pomogła. U ciebie ta wersja firmware też jest jakaś nietypowa, jaki to model falownika? Sdongle ma wyjście na kabelek sieciowy? Jeśli tak to testowałeś komunikację poprzez LAN? Ogólnie dane z mojego falownika 8ktl zczytuje już od ponad 1,5 roku i przy połączeniu do wbudowanego AP nigdy nie miałem żadnych błędów i problemów z niestabilnym działaniem. Przy podłączeniu do sdongle komunikację miałem dużo wolniejszą i czasem zdarzały się przekłamania w odczytach.
  • #15
    migod
    Level 21  
    Model: SUN2000-10KTL-M1
    firmware i konfiguracja jak na screenach.

    Więcej opcji konfiguracji parametrów nie widzę. Mam na nim profil instalatora.

    Próbuję z parametrami slave od 0 do 3, bez skutku.

    Jakim softem/ skryptami czytacie dane z falownika?

    Huawei SUN2000 modbus TCP Huawei SUN2000 modbus TCP
  • #16
    lizak1983
    Level 14  
    Czy z poziomu portalu https://eu5.fusionsolar.huawei.com/pvmswebsite/assets/build/index.html#/settings/device/pv widać klucz sprzętowy smart dongle? Bo logując się bezpośrednio do falownika nie pokazuje jego wersji, przynajmniej u mnie. Ja odczytuje dane przy pomocy integracji z poziomu Home Assistant, działa zarówno integracja MODBUS (czyli czytanie poszczególnych rejestrów), jak również od Emilv2.
  • #17
    migod
    Level 21  
    Z poziomu portalu (zalogowany jako instalator) nie mam widocznych żadnych urządzeń.

    Kontekst:
    *początkowo monter instalacji nie skonfigurował mi falownika (było po zmroku), poprosił o skonfigurowanie wifi z pomocą appki FusionSolar; aby tego dokonać musiałem przejść przez ekran konfiguracji 'firmy' i na huawei mam chyba taki właśnie profil z użyciem adresu email1; nie przechodziłem na nim jednak żadnej weryfikacji jako podmiot-firma
    * następnie ekipa monterska dokonała zdalnie rekonfiguracji falownika, wysłała mi zaproszenie do konta użytkownika (na mój dodatkowy adres email2)
    * na moją prośbę pozostawili mi profil instalatora na koncie email1
    * appki FusionSolar używam z adresem email2 (użytkownik) - mam dostępne wszystkie funkcje w aplikacji
    * do falownika FusionHome loguję się na konto email1 (instalator)

    Pomijając te w/w przygody, przed przekazaniem falownika do monterów (poczytawszy to i inne fora), zaktualizowałem firmware falownika oraz sdongle-a do najnowszych, w których modbus tcp miał być wspierany i poustawiałem w konfiguracji komunikacji zgodnie ze screen-ami.

    Czy wobec tego powinienem coś weryfikować z ekipą monterską ? Czy oni mogą widzieć/ mieć inną konfigurację tego samego urządzenia?
  • #18
    lizak1983
    Level 14  
    W takim razie w jaki sposób aktualizowałeś sdongle i w jaki sposób sprawdzasz jaki jest firmware wgrane. Bo wydaje mi się że to z końcówką spc130 to nie jest sdongle. Po wypięciu tego sdongle z falownika i wpięciu go ponownie na działającym falowniku powinna się ukazać nowa sieć wifi która działa przez kilka minut do której łączymy się w podobny sposób jak do wbudowanego AP w falownik i tam można sprawdzić wersję firmware sdongle.
    Pisałeś że firma utworzyła ci konto użytkownika, więc dostałeś od nich login i hasło które używasz do połączenia się z
    https://eu5.fusionsolar.huawei.com/ i tam nie potrzeba mieć uprawnień administratora aby widzieć swoje urządzenia.
  • #19
    migod
    Level 21  
    Chyba naprowadziłeś mnie na źródło problemu:
    * sdongle - po wyjęciu i ponownym podpięciu do falownika AP sie pojawia, ale z pomocą FusionHome nie udaje mi sie zalogować ani domyślnym 00000a ani moim hasłem instalatora; po http pod IP 192.168.200.1 nie ma żadnej usługi
    * patrząc na moje screen-y z upgrade-u widzę, że zaktualizowałem FW magistrali MBUS do ver. SPC300 oraz główny FW falownika do ver. SPC135
    * najwyraźniej NIE(?) zaktualizowałem FW dongle-a (nie widziałem takiej opcji, chociaż od początku był on wpięty w falowniku i aktywny) i chyba mylnie założyłem (lub raczej wyczytałem gdzieś), że do uruchomienia modbus to TCP to jest ta aktualizacja, którą należy wykonać

    * będąc podpietym do AP falownika (SUN2000-**) w podmenu Upgrade device mam dostępne 2 opcje - Inverter upgrade oraz PLC upgrade. Czy w tym miejscu powinien być również sdongle?

    Czy mam jeszcze możliwość coś zdziałać sam zanim pójdę do monterów?

    OK - po pelnej weryfikacji konta dotarlem do info w portalu: dongle ma FW V100R001C00SPC119; szukam jak go podniesc
  • #20
    lizak1983
    Level 14  
    Z tego co pamiętam nie ma informacji o wersji oraz możliwości aktualizacji firmware dongle. Jednie łącząc się bezpośrednio do sdongle lub za pomocą portalu z uprawnieniami instalatora można dokonać takiej aktualizacji. Próbowałeś może aplikacji sun2000 do łączenia się z tym sdongle?
  • #21
    migod
    Level 21  
    1. Podniosłem FW SDongle do V100R001C00 SPC124
    2. Na falowniku mam: V100R001C00 SPC135; tego nie ruszam na razie
    3. Wykonałem power cycle falownika (zdjęte DC i AC), odczekałem ze 30sek przed ponownym uruchomieniem.
    4. Po restarcie, według portalu wersje FW są takie jak chciałem
    5. Wylogowalem sie z portalu i powylaczalem appki mobilne; w teorii nic nie powinno być do falownika podpięte (bo gdzieś czytałem, że nie obsługuje dwóch klientów na raz)

    6. IP SDongla w WLAN to 192.168.105.50; odpowiada na pingi
    7. Dla Android 11 w Play Store jest dostepna archaiczna wersja Sun2000 w wersji 2.2.00.050; życzliwy uczestnik forum pokazał mi, że jest nowsza 3.2.00.015. Nie widzę jej do pobrania z https://solar.huawei.com/eu/Services#downloadcenter . Jest natomiast FusionSolar i to z niej korzystam. Modyfikacja parametrów RS485 z jej użyciem (jakkolwiek wprowadzona w aplikacji bez błędów), nie ma zastosowania w praktyce (np. zmiana baud z 9600 na 19200 lub protokołu z modbus na sunspec), gdyż po zapisaniu i przelogowaniu do aplikacji jak bumerang wraca default w postaci modbus/9600/1.

    Przed upgrade FW do SPC124
    Code:

    $ mbpoll 192.168.105.50 -v
    debug enabled
    Set device=192.168.105.50
    Connecting to [192.168.105.50]:502
    Set response timeout to 1 sec, 0 us
    Protocol configuration: Modbus TCP
    Slave configuration...: address = [1]
                            start reference = 1, count = 1
    Communication.........: 192.168.105.50, port 502, t/o 1.00 s, poll rate 1000 ms
    Data type.............: 16-bit register, output (holding) register table

    -- Polling slave 1... Ctrl-C to stop)
    [00][01][00][00][00][06][01][03][00][00][00][01]
    Waiting for a confirmation...
    ERROR Connection reset by peer: read
    Read output (holding) register failed: Connection reset by peer
    -- Polling slave 1... Ctrl-C to stop)
    [00][02][00][00][00][06][01][03][00][00][00][01]
    ERROR Broken pipe
    Read output (holding) register failed: Broken pipe
    -- Polling slave 1... Ctrl-C to stop)


    Z kolei po upgrade do SPC124
    Code:

    $ mbpoll 192.168.105.50 -v
    Connecting to [192.168.105.50]:502
    mbpoll: Connection failed: Connection refused.


    A lekko ponaprawiany kod od Emilv2 i dopisany debug rzuca teraz błędem jak niżej. Próbowałem Slave = 0 - 5
    Code:

    pi@rmn:/opt/sun2000/huawei-solar $ python3 run.py
    HuaweiSolar init 192.168.105.50 port= 502 tout= 5 wait= 2 slave= 1
    failed to connect to device, is the host correct?
    Traceback (most recent call last):
      File "/opt/sun2000/huawei-solar/src/huawei_solar/huawei_solar.py", line 305, in read_register
        register, length, unit=self._slave
      File "/usr/lib/python3/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers
        return self.execute(request)
      File "/usr/lib/python3/dist-packages/pymodbus/client/sync.py", line 107, in execute
        raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
    pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.105.50:502)]
    Traceback (most recent call last):
      File "/opt/sun2000/huawei-solar/src/huawei_solar/huawei_solar.py", line 305, in read_register
        register, length, unit=self._slave
      File "/usr/lib/python3/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers
        return self.execute(request)
      File "/usr/lib/python3/dist-packages/pymodbus/client/sync.py", line 107, in execute
        raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
    pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.105.50:502)]


    Pomyślałem więc, że może po LAN będzie lepiej. Po skrętce dostał IP = 192.168.1.20 (inna podsieć), ale zachowuje się tak samo jak po wifi.

    Na poniższym forum ktoś napisał, że zadziałało mu na SPC123. Więc zrobiłem downgrade FW. I tu niespodzianka - mbpoll wrócił do pierwszego błędu (conn reset by peer), zaś kod Emilv2 rzuca generyczny błąd braku połączenia..
    Code:

    [..]
    src.huawei_solar.huawei_solar.ReadException: could not read register value, is an other device already connected?


    Czy wobec tego ktoś z Was mógłby podesłać kompletną konfigurację poszczególnych elementów firmware-u, względnie parametrów wywołania klasy HuaweiSolar (t/out, wait, slave) ? Wygląda trochę tak, jakby nowsze wersje nie do końca były lepszym wyborem..

    PS. forum, gdzie ten temat wałkują https://forum.huawei.com/enterprise/en/sun200...modbus-tcp-issues/thread/675885-100027?page=3
    Kawałek kodu klienta z tego forum też już wypróbowalem .. wynik negatywny.
  • #22
    lizak1983
    Level 14  
    Moja rada aby testować na sprawdzonym już spc123, osobiście nie aktualizowałem do spc124 ale jedna oosoba pisała mi że po aktualizacji do 124 miała problemy i wróciła do 123.
    Co do samej komunikacji możesz spróbować tak:
    sudo pip3 install huawei-solar==1.1.0
    python3
    import huawei_solar
    inverter = huawei_solar.HuaweiSolar('192.168.105.50',502,5,3,1)
    inverter.get("model_name")
    Oczywiście wersja 1.1.0 jest starsza ale ostatnio co chwilę się coś zmienia a na tej raczej powinno działać. Tak z ciekawości jaka była wcześniej wersja firmware w sdongle?
  • #23
    migod
    Level 21  
    Dzięki za szybką odpowiedź. Doinstalowałem pakiet w starszej wersji z repo, zamiast aktualną z gitlab-u zgodnie z Twoją sugestią.

    Sukces, bo teraz działa po LAN. Po WLAN (poprzez SDongle) - nadal nie działa ;-)
    Idealnie byłoby mieć separację galwaniczną od falownika ..

    Wielkie podziękowania za pomoc !

    PS. Pierwotnie miałem FW = V100R001C00SPC119, aktualnie SPC123. Więc chyba na starcie były 2 źródła problemów.
  • #24
    lizak1983
    Level 14  
    Skoro działa po LAN więc powinno również działać po wlan na spc123. Możliwe że coś jednak przyblokowało port i proponuję restart falownika i wtedy sprawdzić. Zaraz zainstaluję najnowszy pakiet z repo i dam znać jak to wygląda u mnie. Ogólnie jeśli chodzi o smart dongle to wszędzie w huawei używany jest ten sam model i wydaje mi się że rodzaj falownika nie powinien mieć to znaczenia i jeśli jednemu działa to innemu powinno również.

    edit:
    sprawdziłem u siebie połączenie ze smart dongle po wifi na spc123 i nowszej bibliotece, poniżej wynik z terminala windows;
    Code:
    PS C:\Users\Legion> py -m pip install huawei-solar
    
    Collecting huawei-solar
      Downloading huawei_solar-1.2.0-py3-none-any.whl (13 kB)
    Collecting pytz>=2019.3
      Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB)
         |████████████████████████████████| 503 kB 1.6 MB/s
    Collecting pymodbus<3.0,>=2.4.0
      Downloading pymodbus-2.5.3-py2.py3-none-any.whl (154 kB)
         |████████████████████████████████| 154 kB ...
    Collecting pyserial>=3.4
      Using cached pyserial-3.5-py2.py3-none-any.whl (90 kB)
    Collecting six>=1.15.0
      Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
    Installing collected packages: six, pyserial, pytz, pymodbus, huawei-solar
      WARNING: The scripts pyserial-miniterm.exe and pyserial-ports.exe are installed in 'C:\Python39\Scripts' which is not on PATH.
      Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
      WARNING: The scripts pymodbus.console.exe and pymodbus.server.exe are installed in 'C:\Python39\Scripts' which is not on PATH.
      Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
    Successfully installed huawei-solar-1.2.0 pymodbus-2.5.3 pyserial-3.5 pytz-2021.3 six-1.16.0
    PS C:\Users\Legion> py
    Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import huawei_solar
    >>> inverter = huawei_solar.HuaweiSolar('192.168.5.34',502,5,3,1)
    >>> inverter.get("model_name")
    Result(value='SUN2000-8KTL-M0', unit=None)
    >>>
  • #25
    migod
    Level 21  
    Dziękuję, teraz też zadziałało i u mnie. Trzecim problemem okazała się być brakująca regułka pomiędzy VLAN-ami.

    Serdecznie dziękuję za pomoc.
  • #26
    jamzed
    Level 5  
    Potwierdzam, Modbus po ethernecie na SPC124 już nie działa, port 502 jest zamknięty.
  • #28
    jamzed
    Level 5  
    lizak1983 wrote:
    Czytałem na forum huawei że doszła opcja w ustawieniach że można wybrać czy ma być otwarty, zamknięty lub jakie adresy ip mogą się łączyć. Oczywiście wymagane są najnowsze aktualizacje w falowniku i dongle.
    źródło:
    https://forum.huawei.com/enterprise/en/modbus-tcp-guide/thread/789585-100027


    Faktycznie w nowym sofcie jest opcja do włączenia Modbus TCP i wszystko działa też na SPC124. Dzięki @lizak1983 za hint.
  • #29
    pompadom
    Level 9  
    To co udało mi się ustalić na moim
    inwerterze Huawei SUN2000-10KTL-M1 wersja softu V100R001C00SPC135
    SDongleA-05 wersja softu V100R001C00SPC123

    Wygląda na to że w sieci LAN (FE i WiFi) falownik ma unit-id =1 a nie 0 jak to czytałem w wielu postach.
    # !!!!!!!! chwyt polega na wpisaniu unit_id=1 nie w funkcji ModbusClient() ale w funkcji czytania rejestrów client.read_holding_registers()
    poniżej przykład kodu w Python do weryfikacji tezy. Działa zarówno po FE LAN jak i po WiFi domowym ( nie tym z AP z Inwertera)

    #!/usr/bin/python
    from pymodbus.client.sync import ModbusTcpClient as ModbusClient
    import time
    #your inverter ip
    ip_inverter=‘192.168.XXX.XXX’

    client = ModbusClient(ip_inverter, port=502)
    client.connect()
    time.sleep(1)
    if client.connect():
    request = client.read_holding_registers(address=40000,count= 2, unit=1)
    print (request.registers[0])
    print (request.registers[1])
    else:
    print (‘if you are conected via LAN something is wrong with IP or port’)

    Tezę tę można też sprawdzać narzędziami systemowymi do MODBUS wpisując unit_id=1
    dla Windows
    ModbusMaster lub mbpoll lub qModMaster ( https://github.com/zhanglongqi/qModMaster )
    dla Linux
    mbpoll ( https://github.com/epsilonrt/mbpoll )

    Pozdrawiam