Odczyt z licznika e...
 
Powiadomienia
Wyczyść wszystko

openHAB [Rozwiązany] Odczyt z licznika energii przez konwerter modbus eth

11 Wpisów
2 Użytkownicy
0 Likes
1,129 Wyświetleń
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 
Witam posiadam sublicznik f&f le-03mw i okazało się że posiada modbus więc postanowiłem skorzystać 😀
Kupiłem konwerter WaveShare RS485 TO ETH (B) połączyłem z moją siecią i próbuje wiązania MecMeter ale wysypuje mi same błędy przy tworzeniu połączenia.

Konwerter na usb komunikuje się z licznikiem bez problemu.

Sprawdzałem też na innym konwerterze którego używam i na pewno komunikuje się po modbus ale też bez sukcesu...

Czy próbie łączenia się bez wiązania mam też błędy ale jakby licznik się nie komunikował z konwerterem. Konwerter odpowiada na zapytanie OH miganiem portu ale chyba nic nie odczytuje. Może jest jakieś przesunięcie numeracji portów lub coś..

Początek tabeli licznika

tab

Obecne ustawienia mostu

 Bridge modbus:tcp:LicznikkWh [ host="192.168.86.199", port=4196, id=1, rtuEncoded="true", enableDiscovery="true", connectMaxTries=3 ] {
 
    Bridge poller coils [ start=13, length=4, refresh=300, type="coil" ] {
Thing data LicznikSn [ readStart="13", readValueType="bit" ]
}

    }   

Sprawdzałem też odczyty innych rejestrów bez powodzenia

 

 

Błędy z konsoli

09:21:05.546 [WARN ] [ort.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_COILS, start=13, length=4, maxTries=3]). Will try again soon. Error was I/O error, so resetting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: SocketTimeoutException Read timed out [operation ID e883d668-8338-421b-ab65-b0c55efb3d5a]

 

Konfiguracja obecnego konwertera

zlan

 

 

 

 
Dodane : 22/11/2022 8:07 pm
(@jaketherake)
Wpisów: 20
Praktykant Donator 2K24 Donator 2K22
 

Próbowałeś odczytać licznik przez konwerter za pośrednictwem zewnętrznego programu?

 
Dodane : 26/11/2022 9:00 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@jaketherake Dzięki za odzew 😉

próbowałem ModbusViewer obsługuje TCP i RTU. 

Próbowałem wszystkich 4 typów rejestrów przy odczycie i nic

Konfiguracja

mbus

 

Może coś pomoże taka ściagawka z grentona

https://support.grenton.pl/pl/support/solutions/articles/35000183947-integracja-z-licznikiem-energii-elektrycznej-f-f-le-03mw-ct

 

 
Dodane : 26/11/2022 10:09 pm
(@jaketherake)
Wpisów: 20
Praktykant Donator 2K24 Donator 2K22
 

pokaż odczyt licznika przez konwerter USB-RS485

 
Dodane : 26/11/2022 11:07 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@jaketherake 

Dlaczego float32? 

 

To działa 

things

 Bridge modbus:tcp:LicznikkWh [ host="192.168.86.199", port=4196, id=1] {
 

    Bridge poller holding [ start=0, length=53, refresh=3000, type="holding" ] {
        Thing data NapiecieL1 [ readStart="14", readValueType="float32", writeStart="14", writeValueType="float32", writeType="holding" ]
        Thing data NapiecieL2 [ readStart="16", readValueType="float32", writeStart="16", writeValueType="float32", writeType="holding" ]
        Thing data NapiecieL3 [ readStart="18", readValueType="float32", writeStart="18", writeValueType="float32", writeType="holding" ]
        Thing data Hz         [ readStart="20", readValueType="float32", writeStart="20", writeValueType="float32", writeType="holding" ]
        Thing data PradL1     [ readStart="22", readValueType="float32", writeStart="22", writeValueType="float32", writeType="holding" ]
        Thing data PradL2     [ readStart="24", readValueType="float32", writeStart="24", writeValueType="float32", writeType="holding" ]
        Thing data PradL3     [ readStart="26", readValueType="float32", writeStart="26", writeValueType="float32", writeType="holding" ]
        Thing data mCzynna    [ readStart="28", readValueType="float32", writeStart="28", writeValueType="float32", writeType="holding" ]
        Thing data mCzynnaL1  [ readStart="30", readValueType="float32", writeStart="30", writeValueType="float32", writeType="holding" ]
        Thing data mCzynnaL2  [ readStart="32", readValueType="float32", writeStart="32", writeValueType="float32", writeType="holding" ]
        Thing data mCzynnaL3  [ readStart="34", readValueType="float32", writeStart="34", writeValueType="float32", writeType="holding" ]
        Thing data mBierna    [ readStart="36", readValueType="float32", writeStart="36", writeValueType="float32", writeType="holding" ]
        Thing data mPozorna   [ readStart="44", readValueType="float32", writeStart="44", writeValueType="float32", writeType="holding" ]
        Thing data mWspolczynnik  [ readStart="52", readValueType="float32", writeStart="52", writeValueType="float32", writeType="holding" ]
  } 
items
  Number NapiecieL1           "Napięcie [%.1f V]"     { channel="modbus:data:LicznikkWh:holding:NapiecieL1:number" } 
  Number NapiecieL2           "Napięcie [%.1f V]"     { channel="modbus:data:LicznikkWh:holding:NapiecieL2:number" }
  Number NapiecieL3           "Napięcie [%.1f V]"     { channel="modbus:data:LicznikkWh:holding:NapiecieL3:number" }  
  Number Hz             "Częstotliwość [%.1f Hz]"     { channel="modbus:data:LicznikkWh:holding:Hz:number" }  
  Number PradL1                   "Prąd [%.1f A]"     { channel="modbus:data:LicznikkWh:holding:PradL1:number" }
  Number PradL2                   "Prąd [%.1f A]"     { channel="modbus:data:LicznikkWh:holding:PradL2:number" }
  Number PradL3                   "Prąd [%.1f A]"     { channel="modbus:data:LicznikkWh:holding:PradL3:number" }
  Number mCzynna                  "Moc [%.1f kW]"     { channel="modbus:data:LicznikkWh:holding:mCzynna:number" }
  Number mCzynnaL1                "Moc [%.1f kW]"     { channel="modbus:data:LicznikkWh:holding:mCzynnaL1:number" }
  Number mCzynnaL2                "Moc [%.1f kW]"     { channel="modbus:data:LicznikkWh:holding:mCzynnaL2:number" }
  Number mCzynnaL3                "Moc [%.1f kW]"     { channel="modbus:data:LicznikkWh:holding:mCzynnaL3:number" }
  Number mBierna                 "Moc [%.1f Var]"     { channel="modbus:data:LicznikkWh:holding:mBierna:number" }
  Number mPozorna                 "Moc [%.1f VA]"     { channel="modbus:data:LicznikkWh:holding:mPozorna:number" }
  Number mWspolczynnik         "Moc [%.1f cos φ]"     { channel="modbus:data:LicznikkWh:holding:mWspolczynnik:number" }

sitemap

Frame label="kWh" {
	Group	label="L1"		item=NapiecieL1  {
			Default item=NapiecieL1
			Default item=PradL1
			Default item=mCzynnaL1
	}
	Group	label="L2"		item=NapiecieL2	{
			Default item=NapiecieL2
			Default item=PradL2
			Default item=mCzynnaL2
	}
	Group	label="L3"		item=NapiecieL3 {
			Default item=NapiecieL3
			Default item=PradL3
			Default item=mCzynnaL3
	}
	Default item=Hz
	Default item=mCzynna
	Default item=mBierna
	Default item=mPozorna
	Default item=mWspolczynnik

Muszę jeszcze rozczytać różnice między np moc całkowiat a moc pobrana itp 😉

 
Dodane : 27/11/2022 12:21 am
(@jaketherake)
Wpisów: 20
Praktykant Donator 2K24 Donator 2K22
 

@szpila86

zgodnie z instrukcją taki jest typ zmiennych w tabeli licznika 🙂

 
Dodane : 27/11/2022 11:45 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@jaketherake 

A dlaczego nie 16 tam nie ma tak dużych liczb.

 

 
Dodane : 28/11/2022 6:36 am
(@jaketherake)
Wpisów: 20
Praktykant Donator 2K24 Donator 2K22
 

energia czynna,bierna,pozorna to są standardowo float'y, tam mogą być bardzo duże liczby

bieżące odczyty parametrów sieci to 16 bit wystarczy, ale pewniej prościej im było zrobić wszystko na float

 
Dodane : 28/11/2022 2:13 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

Znalazłem jeszcze jeden i chyba ostatni błąd

W logach nie ma problemu a przez stronę UI zgłasza błąd konfiguracji

Out-of-bounds: Poller is reading from index 0 to 52 (inclusive) but this thing configured to read 'float32' starting from element 52. Exceeds polled data bounds.

Co tu może być źle ?

Thing data mWspolczynnik  [ readStart="52", readValueType="float32", writeStart="52", writeValueType="float32", writeType="holding" ]

 

Things

    Bridge poller holding1 [ start=0, length=54, refresh=1000, type="holding" ] {
        Thing data mWspolczynnik  [ readStart="52", readValueType="float32", writeStart="52", writeValueType="float32", writeType="holding" ]

 

 

 
Dodane : 16/12/2022 11:16 am
(@jaketherake)
Wpisów: 20
Praktykant Donator 2K24 Donator 2K22
 

A nie próbujesz odczytać 52 bity do zmiennej 32bitowej?

 
Dodane : 16/12/2022 3:13 pm
(@szpila86)
Wpisów: 330
Weteran Patron Strony Donator 2K22, Donator 2K23, Donator 2K24
Autor tematu
 

@jaketherake 

52 ma niby 2 rejestry zwiększyłem zakres odczytu z 54 do 60 i chyba jest stabilnie sprawdzam

OK działa bez problemów 😀

 

 
Dodane : 16/12/2022 3:16 pm
Udostępnij: