Stránka 3 z 18

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: pon dub 22, 2019 9:00 am
od brumlaj
z jednoho manuálu vyříznutý stručný diagram jak se anglicky cykluje akumulátor.
aku_nab_faze.png
no a v napětí to vypadá takto:
napeti_pri_nabijeni.png

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: pon dub 22, 2019 9:08 am
od rottenkiwi
Málo ľudí používa reduced floating a tak si zničí baterky, málo používa EQ u PB a tiež si zničí baterky,
lebo absorption je u rozhodených článkov nedostatočná na vyrovnanie.

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: pon dub 22, 2019 11:31 am
od vlkazajac
To antoni:
Citaj pozorne papiere od Fiamm. Je tam jasne napisane 2,27 V pri 20 stupnoch. Regulator sa nastavuje pre 25 stupnov. Kde si vycital, ze mas pouzit ekvalizaciu ? Su to baterie VRLA, citlive na prebijanie vysokym napatim. Tu sa ekvalizacia vypusta, preto je dolezite nastavit pozorne absorpciu, ako som pisal vyssie.

Cinski sudruhovia zjednotili nespravne fazu bulk s absorpciou. Spravne ma byt absorption duration namiesto bulk duration. Tot vsio.
Vrat nastavenie ekv. duration na 0.

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: pon dub 22, 2019 11:51 am
od rottenkiwi
Ja tu píšem všeobecne k tomu obrázku hore, nie ku GEL či AGM baterkám.
Mnoho ľudí má vysoký FLOAT u Pb a zničí im to baterku, podobne vysoký FLOAT u LiFE ich zničí za pár mesiacov.

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: pon dub 22, 2019 11:56 am
od vlkazajac
OK, ja som pisal antonimu, mal som to tam pripisat hned.
:-)

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: úte dub 23, 2019 7:14 am
od antoni_sk
Dík všetkým za príspevky.
pre VLKAZAJAC:
Info priamo z baterky:
float fiamm.jpg

77°F je 25°C. 13,56 V x 2 = 27,12 V takže FLOAT mám nastavené OK
Kde som vyčítal equalizáciu ?
A prečo ju má teda regulátor v prednastavenom móde SEALED zahrnutú? Nemá ju pre GEL baterky, ale toto sú AGM baterky a nie GEL, teda pre nich by mal byť režim SEALED nie ?
Ale OK, však jeden deň som mal všetky nabíjacie napätia nastavené na hodnotu FLOAT.
Lenže výrobca k týmto baterkám píše:
nabíjanie fiamm.jpg

Takže 2,27 V x 12 = 27,24 V
a pre hlboké vybitie až 28,8 V.

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř dub 24, 2019 7:14 pm
od vlkazajac
Davas sem udaje ako z chlpatej deky. Dal si sem autenticke foto z baterie, tak niet pochyb, ze mas float nastaveny dobre. Ale predtym si dal screen nastavenia regulatora, kde mas -3 mV/K, s cim som pocital aj ja. Takze oprav si nastavenie na -2 mV/K.
Ak mas AGM, tak nespekuluj a ziadnu ekvalizaciu nedavaj. Je to detto, ako keby si mal gel.

Ake hlboke vybitie??? Hovorime o cyklickej prevadzke, kde musis pouzit absorpcne napatie po kazdom vybiti. S koeficientom -2 mV/K nebude 28,8 V, ale 28,56V pri 25 stupnoch, ak sa nemylim.

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř dub 24, 2019 9:32 pm
od vla
Čas od času se zde objeví jak některé regulátory zpravidla ukazují jinak než voltmetry, většinou se zdají být na vině ty regulátory, má pak smysl řešit nějaké 2 mV /k :?:

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: čtv dub 25, 2019 10:07 am
od antoni_sk
vlkazajac píše:Vypočítanú hodnotu absorpcie 28,62 V by som pre istotu znížil o 0,2 V. Tu je tá kritická doba, kedy VRLA vysychajú .....


OK, môže to byť teda takto ? :
nastavenie 25,4,2019.JPG

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: čtv dub 25, 2019 7:11 pm
od vlkazajac
Vyzera to uspokojivo.....
Najvacsia hodnota napatia Overvolt.Disconnect 32 V by sa nemusela pacit menicu, asi postaci aj 30,5 V. Sam neviem, ako to mam presne, nie som doma.
Boost Recon. Charg.. Volt. urcuje, ako casto sa Ti bude regulator vracat kazdy den znova do bulk konciacim absorpciou. Ak to bude pricasto, treba znizit hodnotu. Odsledujes a upravis.
Ako pise vla, pre FV-ika je potrebny spolahlivy multimeter, hlavne pre kontrolu napatia absorpcie, ale aj float. Samozrejme, 2 mV krat 12 clankov a odchylky teplot nemozno ignorovat.

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 6:54 am
od antoni_sk
Prvá verzia vizualizácie:
Vizualizacia FV v.1.JPG


Ešte musím dorobiť nejaké detaily, ukladanie do histórie, grafy a tabuľky...

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 8:38 am
od youda
V té vizualizaci je zásadní chyba:

Scarpa vs Carspa

Asi zafungovala automatická korekce ;)
scarpa.png

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 10:20 am
od vlkazajac
Hlaskova presmycka by mi az tak nevadila. Pridal by som prepojenie stredov 2S/2S, nech niekto nekopiruje neuplnu schemu.
Neslo by zobrazit este :
1/ aktualnu fazu nabijania
2/ info, ci uz v aktualny den prebehla absorpcia ?

Ked vo vizualizacii vysvietis konskym pismom napatie baterie, poslem Ti bod za technicke prevedenie.
:-)

Vykon/ napatie/ prud do bateriek by som oznacil "z regulatora". Mas tam predsa aj menic.......

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 7:44 pm
od antoni_sk
YOUDA:
Áno, kedže občas chodím v zime šlapať na pásoch tak sa mi tie dva pojmy zmiešali do jedného - opravím ak sa mi bude chcieť ;)
VLKAZAJAC:
Aktuálna fáza by nebola problém keby si súdruhovia z číny nedali do jednej 16-bitovej adresy údaje ktoré popisujú viac stavov - stav nabíjania, stav vstupu FV, stav regulátora, chyby regulátora a podobne - vid obrázok:
problem.adresy.JPG

Niekto skúsenejší by mi mohol pomôcž nakopnúť ako to interpretovať v systéme RELIANCE.
Ako alebo podľa čoho zistiť či prebehla "absorpcia" ? Ako ste už mnohí písali stav SOC je viec menej nepoužiteľný, a u mňa dokým si regulátor nejako nezistí že je SOC 100% tak nabíja BOOSTom, a potom nastane FLOAT. Značí toto že prebehla Absorpcia ?

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 8:03 pm
od rottenkiwi
ABSORBCIA prebehla vtedy, keď články absorbovali max. náboj, ergo keď sú všetky
na rovnakom napatí a keď je kyselina na rovnakej hodnote.
Ono keď sa nedostatočná ABS., tak to sa prejaví veľmi skoro, zničením baterky
a potom vymýšľame nepotrebné veci, ako desulfátory.

Mne to pripadá, ako keď si niekto ničí zdravie, má vysoký chol, trigliceridy, zlý pomer dobrého
a zlého chol., ničí mu vysoký tlak srdce a obličky, začína cukrovka a ten človek si povie,
šak mám ešte čas, potom použijem "desulfátor". :)

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 9:56 pm
od vlkazajac
antoni_sk, v tom programe je v okienku fáza nabíjania vždy vysvietená, aktuálne napätie batérie tiež. Nedá sa to preniesť aj do Tvojho zobrazenia ako zvýraznené informácie ? Mrknem okom a idem ďalej....

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: stř kvě 01, 2019 10:06 pm
od youda
Antoni_sk,

Nevim jestli to tak pujde i v tom Reliance, ale pokud nejake zarizeni predava vice stavu a hodnot pomoci jedne vetsi promenne (napriklad 16bit) tak se to da vyresit cca tako:

Nadefinujes si novy datovy typ, ktery je slozena "struktura", napriklad:

bool
bool
bool
bool
bool
bool
bool
bool
sint

Potom pomoci toho typu deklarujes promenou nazvanou treba "status" a to puvodni 16ti bit cislo do ni bud nakopirujes, nebo pointerem nastavis, ze ta promena je primo na te adrese, co je tech 16bitu.

Tim se ty bitove stavy nasypou do te struktury a ty je muzes jednoduse pouzivat, napriklad jako "if status.absorb == true then xx"

Pokud by Reliance neumelo delat struktury, da se pouzit array of bool. Struktura je lepsi v tom, ze muzes kombinovat bool a int, byte atd.

Kdyz potrebujes z 16ti bitoveho pole vytahnout treba 11ti bitove cislo, pricemz v hornich bitech toho pole muze byt nejaka menici se nesouvisejici informace, tak se to da udelat takto:

16bitu zkopirujes do 16ti bit promene.
Pak na to pouzijes logicky AND kde ty horni bity budou 0, dolnich 11 bitu bude 1. (0000 0111 1111 1111)
Tim odmazes ten "bordel" nahore a v promene ti zustane jen ta 11ti bit cast, kterou potrebujes.

Snad jsem to popsal nejak srozumitelne...

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: čtv kvě 02, 2019 5:58 am
od antoni_sk
Ahojte, zatiaľ len v krátkosti:
Rottenkiwi - áno tvojmu popisuje rozumiem, ale ako to viem zo stavov ktoré ukazuje regulátor zistiť ?
Vlkazajac - samozrejme dá, len to potrebujem z regulátora z tej blbej adresy dekodovať
Youda - dobré nápady, vyskúšam niektorú z metód, lenže tým informáciam čo je v dokumente Epeveru k Modbus komunikácii sú tam nejaké nejasnosti a nezrovnalosti, pretože:
Na tej adrese 3201 by mali byť informácie o:
* stav od FV panelov (normal, žiadny vstup, vysoké U, chyba U)
* chybové stavy
* status nabíjania (nenabíja, Float, Boost, Equal)
* asi stav regulátora (normal, chyba, beží, standby)
Mne teraz program Epever Solar Monitor ukazuje - FV Input, Boost charging, working state Normal (regulátor)

Lenže ja teraz čítam z adresy 3201 číslo 11 (dekadicky) čo je 0000 0000 0000 1011 čo by malo značiť:
FV normal - OK
Boost - OK
D1 je ale 1 čo by značilo "FAULT" - ale Solar Monitor ukazuje stav "Normal" ! :dontknow:
D0 je 1 - Running - OK

No a teraz kde je chyba ? :?: U mňa (zle interpretujem ?), alebo inde ?

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: čtv kvě 02, 2019 8:15 am
od rottenkiwi
Ja z Tracera cez RS232 vyčítavam dáta takto: / Neviem či pod. štruktúru majú aj nové regle. /
Kód: Vybrat vše
 Serial.println("Reading Tracer");
  myserial.write(start, sizeof(start));
  myserial.write(id);
  myserial.write(cmd, sizeof(cmd));
  int read = 0;
  for (int i = 0; i < 255; i++){
    if (myserial.available()) {
      buff[read] = myserial.read();
      read++;
    }
  }
  Serial.print("Read ");  Serial.print(read);  Serial.println(" bytes");
  for (int i = 0; i < read; i++){
      Serial.print(buff[i], HEX);
      Serial.print(" ");
  }
  Serial.println();
    battery = to_float(buff, 9);
  pv = to_float(buff, 11);
  //13-14 reserved
  load_current = to_float(buff, 15);
  over_discharge = to_float(buff, 17);
  battery_max = to_float(buff, 19);
  // 21 load on/off   // 22 overload yes/no   // 23 load short yes/no   // 24 reserved   // 25 battery overload
  // 26 over discharge yes/no
  full = buff[27];
  charging = buff[28];
  battery_temp = buff[29] - 30;
  charge_current = to_float(buff, 30);

  Serial.print("Load is ");
  Serial.println(buff[21] ? "on" : "off");

  Serial.print("Load current: ");
  Serial.println(load_current);

  Serial.print("Battery level: ");
  Serial.print(battery);
  Serial.print("/");
  Serial.println(battery_max);

  Serial.print("Battery full: ");
  Serial.println(full ? "yes " : "no" );

  Serial.print("Battery temperature: ");
  Serial.println(battery_temp);

  Serial.print("PV voltage: ");
  Serial.println(pv);

  Serial.print("Charging: ");
  Serial.println(charging ? "yes" : "no" );

  Serial.print("Charge current: ");
  Serial.println(charge_current);

  if ( charge_current < 42.0 )
  {
    ch_curr_arr [ch_arr_index] = charge_current;
    ch_arr_index = ch_arr_index + 1;
    ch_arr_index = ch_arr_index % buffer_max;
  }

  float avr_current = 6.0;
  if ( ch_arr_index == buffer_max - 1 )
  {
    float sum = 0;
    for ( int i = 0; i < buffer_max ; i++ )
    {
       sum = sum + ch_curr_arr [i];
    }
    avr_current = sum / float ( buffer_max );
    if ( ( pv > 55.0 ) && ( pv < 73.0) )
    {
      if ( ( avr_current > 11.9 ) && ( avr_current < 39.0) )
      {
        if ( ( LED_state[3] == 0 ) && ( ( battery / battery_max ) < 1.0 ) )
        {
           LED_state[3] = 1;  // save LED state
           digitalWrite(8, LOW);
           off_intervall = millis ();
        }
      }
    }
  }

  if ( ch_arr_index == buffer_max - 1 )
  {
    if ( ( pv > 50.0 ) && ( pv < 69.0) )
    {
      if ( ( avr_current > 0.2 ) && ( avr_current < 3.0) )
      {
        if ( ( LED_state[3] == 1 ) && ( ( battery / battery_max ) < 1.1 ) )
        {
          if ( ( LED_state[4] == 1 ) )
          {
            LED_state[3] = 0;  // save LED state
            digitalWrite(8, HIGH);
          }
        }
      }
    }
  }

  if ( ch_arr_index == buffer_max - 1 )
  {
    if ( ( pv > 60.0 ) || ( pv < 18.0) )
    {
      if ( ( avr_current > 0.5 ) && ( avr_current < 3.0) )
      {
        if ( ( LED_state[3] == 1 ) && ( ( battery / battery_max ) < 1.1 ) )
        {
          if ( ( LED_state[4] == 1 ) )
          {
            LED_state[3] = 0;  // save LED state
            digitalWrite(8, HIGH);
          }
        }
      }
    }
  }



 
  if ( ch_arr_index == buffer_max - 1 )
  {
    if ( ( pv > 5.0 ) && ( pv < 15.0) )
    {
      if ( ( avr_current > 0.01 ) && ( avr_current < 1.0) )
      {
        if ( ( LED_state[0] == 0 ) && ( ( battery / battery_max ) < 1.1 ) )
        {
          if ( ( LED_state[4] == 1 ) )
          {
            LED_state[0] = 1;  // save LED state
            digitalWrite(5, LOW);
          }
        }
      }
    }
  }

  if ( ch_arr_index == buffer_max - 1 )
  {
    if ( ( pv > 51.0 ) && ( pv < 71.0) )
    {
      if ( ( avr_current > 0.5 ) && ( avr_current < 1.2) )
      {
        if ( ( LED_state[0] == 1 ) && ( ( battery / battery_max ) < 1.1 ) )
        {
          if ( ( LED_state[4] == 1  ) )
          {
            LED_state[0] = 0;  // save LED state
            digitalWrite(5, HIGH);
          }
        }
      }
    }
  }

   String dataString = "";

Re: Môj pokus o nízkorozpočtovú malú FVE

PříspěvekNapsal: sob kvě 04, 2019 8:31 am
od antoni_sk
Ahojte,
no zatiaľ som sa vykašlal na kompletné dekódovanie adresy 3201 a vyhodnocujem len stav nabíjania.
Co som zistil z adries a dokumentu Epeveru je:
- štand. nastavenie peródy equalizácie je 30 dní
- sú tam nastaviteľné položky - percentá vybitia, percentá nabitia - nabitiu rozumiem, ale ako funguje a či vôbec nejako funguje nastavenie percentá vybitia to teda neviem
Pridal som do vizualizácie možnosť nastavenia hodnoty (modro podfarbené položky) - časť funguje, ale prestavenie napätí float, boost a equal. nefunguje - síce akože zapíše ale o moment sa tam znovu objavia pôvodné hodnoty - nevadí budem nastavovať cez solar station.
Takže verzia 2:
Vizualizacia FV v.2.JPG