Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je sob čer 24, 2017 2:50 pm


Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Diskuze na téma regulátorů TriStar Morningstar

Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod drama » pon lis 26, 2012 8:19 pm

Zde je kód pod GNU GPL pro vyčítání dat z Tristaru. Je to jen rychle a didakticky načrtnuto.
Kód: Vybrat vše
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <modbus/modbus.h>
#include <time.h>

int
main (void)
{
  modbus_t *mb;
  time_t timer;
  uint16_t Vhi=0, Vlo=0, Vbat=0, Ihi=0, Ilo=0, Ibat=0, Varr=0, Pout=0, Vtar=0, Wh=0;
  float Vscale, Vbattery, Iscale, Ibattery, Varray, Poutput, Vtarget, Whdaily;

  mb = modbus_new_tcp ("192.168.23.26", 502);
  modbus_set_slave (mb, 0x01);
  if (modbus_connect (mb) == -1)
    {
      fprintf (stderr, "Primary connection failed: %s\n", modbus_strerror (errno));
      exit (1);
    }
  timer=time(NULL);
  if (modbus_read_input_registers (mb, 0x0000, 0x01, &Vhi) == -1)
    {
      fprintf (stderr, "Connection failed (Vhi): %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x0001, 0x01, &Vlo) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x0018, 0x01, &Vbat) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x001B, 0x01, &Varr) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x0002, 0x01, &Ihi) == -1)
    {
      fprintf (stderr, "Connection failed (Vhi): %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x0003, 0x01, &Ilo) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x001C, 0x01, &Ibat) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x003A, 0x01, &Pout) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x0033, 0x01, &Vtar) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  if (modbus_read_input_registers (mb, 0x0044, 0x01, &Wh) == -1)
    {
      fprintf (stderr, "Connection failed: %s\n", modbus_strerror (errno));
    }
  modbus_close (mb);
  modbus_free (mb);

  Iscale = Ihi + Ilo / (2 ^ 16);
  Ibattery = Ibat * Iscale / 32768;
  Vscale = Vhi + Vlo / (2 ^ 16);
  Vbattery = Vbat * Vscale / 32768;
  Varray = Varr * Vscale / 32768;
  Poutput = Pout * Vscale * Iscale / 131072;
  Vtarget= Vtar * Vscale / 32768;
  printf ("unix=%d&u_in=%f&i_in=%f&u_bat=%f&u_tgt=%f&p_bat=%f&e_dly=%d\n", timer,Varray,Ibattery,Vbattery,Vtarget,Poutput,Wh);


  return (0);
}


je třeba mít libmodbus5 knihovnu
Kód: Vybrat vše
apt-get update
apt-get install libmodbus5 libmodbus-dev

upravit IP adresu a zkompilovat (je-li program uložen jako mppt.c):
Kód: Vybrat vše
gcc -o mppt -lmodbus mppt.c

např. z cronu lze spouštět takto:
Kód: Vybrat vše
# m h  dom mon dow   command
*   *  *   *   *     URL="http://log.mypower.cz/?fveid=VASEFVEID&"$(/plna/cesta/k/vasemu/tsmppt); wget -q -O -  $URL >/dev/null
drama
 
Příspěvky: 966
Registrován: čtv črc 28, 2011 11:01 am
Reputation: 9

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod rimi » ned úno 24, 2013 6:42 pm

pri kompilaci mi hlasi neco jako:

root@raspberrypi:/home/pi# gcc -o mppt -lmodbus mppt.c
mppt.c: In function ‘main’:
mppt.c:10:1: error: stray ‘\302’ in program
mppt.c:10:1: error: stray ‘\240’ in program
mppt.c:11:1: error: stray ‘\302’ in program
mppt.c:11:1: error: stray ‘\240’ in program
mppt.c:12:1: error: stray ‘\302’ in program


netusi nekdo, co je spatne?
dik
rimi
 
Příspěvky: 261
Registrován: čtv říj 13, 2011 9:45 am
Bydliště: Příbor
Reputation: 3

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod 007ToMMaS » ned úno 24, 2013 6:57 pm

Je nastavená správne IP adresa a port?
Polykryštalické panely o výkone 1760W, Tristar MPPT60A, 24V/1100Ah, menič 2,5kW
007ToMMaS
 
Příspěvky: 821
Registrován: sob zář 15, 2012 7:53 pm
Bydliště: Slovakia
Reputation: 10

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod drama » ned úno 24, 2013 8:08 pm

Je to odsud špatně zkopírovaný text. Jsou tam znaky, které by tam být neměly. Např. pevná mezera. Proto to hlásí tu chybu.
drama
 
Příspěvky: 966
Registrován: čtv črc 28, 2011 11:01 am
Reputation: 9

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod EdaSky » úte lis 19, 2013 3:45 pm

Muzu mit prozbicku na autora nebo kohokoliv kdo tomu rozumi, pridat do tohoto programku neco jako

Kód: Vybrat vše
printf ("unix=%d&u_in=%f,i_in=%f&u_bat=%f&u_tgt=%f&p_bat=%f&e_dly=%d\n", timer,Varray,Ibattery,Vbattery,Vtarget,Poutput,Wh);

if(Ibattery > 158)
        {
         (0);
        }


  return (0);



aby se v dobe kdy tristar pri prechodu ze dne na noc (a opacne) vraci 159A proud vracela nula?

nemuzu prijit nato jak to napsat aby to fungovalo, protoze vlastne nevim co delam :cry:

Dekuju.
EdaSky
 
Příspěvky: 11
Registrován: čtv bře 17, 2011 9:55 pm
Reputation: 1

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod solárník » úte lis 19, 2013 4:19 pm

Já čtu Tristar v Linuxu perl skriptem přes http pomocí MBCSV.cgi, třeba nabíjecí proud je
Kód: Vybrat vše
$request=HTTP::Request->new(GET => "http://10.0.0.3/MBCSV.cgi?ID=1&F=4&AHI=0&ALO=39&RHI=0&RLO=1");

Ale to jsem musel zpětně rozkódovat ten jejich software v Tristaru, než jsem to objevil. Ten jejich www server v Tristaru to takhle získává.
Kdyby to někoho zajímalo, stačí říct.
solárník
 
Příspěvky: 1239
Registrován: pát bře 15, 2013 7:53 pm
Reputation: 46

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod drama » úte lis 19, 2013 4:24 pm

Před printf dodat:
Kód: Vybrat vše
if(Ibattery > 158)
        {
         Ibattery=0;
        }
drama
 
Příspěvky: 966
Registrován: čtv črc 28, 2011 11:01 am
Reputation: 9

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod drama » úte lis 19, 2013 4:35 pm

solárník píše:Já čtu Tristar v Linuxu perl skriptem přes http pomocí MBCSV.cgi, třeba nabíjecí proud je
Kód: Vybrat vše
$request=HTTP::Request->new(GET => "http://10.0.0.3/MBCSV.cgi?ID=1&F=4&AHI=0&ALO=39&RHI=0&RLO=1");

Ale to jsem musel zpětně rozkódovat ten jejich software v Tristaru, než jsem to objevil. Ten jejich www server v Tristaru to takhle získává.
Kdyby to někoho zajímalo, stačí říct.

Na fóru je použití MBCSV.cgi popsáno již dlouho. Perl může být pro někoho kanón na vrabce, odkažme proto pro pořádek zde na příkaz wget.
drama
 
Příspěvky: 966
Registrován: čtv črc 28, 2011 11:01 am
Reputation: 9

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod 007ToMMaS » sob črc 30, 2016 4:31 pm

Prosím vás vedel by ktosi pridať do programu aby vyčítal aj stav nabíjania? či je v mppt alebo float...?
Na webe som našiel že je to adresa 0X0032 a hodnoty pre stav sú: 0 START
1 NIGHT_CHECK
2 DISCONNECT
3 NIGHT
4 FAULT
5 MPPT
6 ABSORPTION
7 FLOAT
8 EQUALIZE
9 SLAVE

Ďakujem.
Polykryštalické panely o výkone 1760W, Tristar MPPT60A, 24V/1100Ah, menič 2,5kW
007ToMMaS
 
Příspěvky: 821
Registrován: sob zář 15, 2012 7:53 pm
Bydliště: Slovakia
Reputation: 10

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod kybos » sob črc 30, 2016 8:27 pm

Tyto stavy jsou u Tristaru zhola k ničemu, jelikož je hlásí předčasně. například oznámí stav Absorption a evidentně ještě pracuje v režimu MPPT (neomezuje vstupní výkon). Daleko lépe a přesněji lze určit vnitřní stav z napětí Sweep Vmp, Array Voltage a Battery Voltage. Pokud je ve stavu, kdy je Sweep Vmp totožné s Array Voltage, je ve stavu MPPT. Pokud je napětí Array Voltage vyšší, než Sweep Vmp, dochází k omezování výstupního výkonu a nějaká část výroby zůstává nevyužita.
8x3 Renesola Virtus 250W +2x Tristar MPPT60 (>20 MWh) + 48V VRLA 540 Ah + LiFePO 300 Ah + UPS 6kW
Uživatelský avatar
kybos
 
Příspěvky: 1091
Registrován: sob zář 08, 2012 9:40 pm
Reputation: 66

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod 007ToMMaS » sob črc 30, 2016 9:39 pm

Ide mi hlavne o režim night, mppt, float. Tie fungujú ok myslím.
Polykryštalické panely o výkone 1760W, Tristar MPPT60A, 24V/1100Ah, menič 2,5kW
007ToMMaS
 
Příspěvky: 821
Registrován: sob zář 15, 2012 7:53 pm
Bydliště: Slovakia
Reputation: 10

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod 007ToMMaS » pon srp 01, 2016 7:00 pm

Vedel by to ktosi prosím vás vytiahnúť z regulátora? Ďakujem.
Polykryštalické panely o výkone 1760W, Tristar MPPT60A, 24V/1100Ah, menič 2,5kW
007ToMMaS
 
Příspěvky: 821
Registrován: sob zář 15, 2012 7:53 pm
Bydliště: Slovakia
Reputation: 10

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod vata » pon srp 01, 2016 10:06 pm

kybos píše:Tyto stavy jsou u Tristaru zhola k ničemu, ...

To bych netvrdila. Do absorpce se TS dostává v případě, že se napětí baterie blíží absorpčnímu napětí, a v tom stavu se pak příliš nezabývá hledáním MPP a koncentruje se pouze na proud a je v tom patrně dost rychlý, určitě rychlejší než vyřizuje požadavky na data. Midnite to má řešené mírně jinak, má vedle takto pojatého stavu absorpce a floatu navíc stavy Absorpce MPPT a Float MPPT, ale pro uživatele je to jedno, navenek to má stejný efekt.
Stav night check můj logger zachytí jen občas, ve faultu jsem TS ještě neviděla (krom toho vyvolaného změnou parametrů před resetem), podobně stav disconnect. Stav slave je záhada, kéž by bylo možné jej nějakým způsobem vyvolat..
Loguju přes Modbus, čili přes dokumentované rozhraní, to je pak jednoduché se ke stavu dostat.
Inteligentní ostrov - www.vati.cz
Uživatelský avatar
vata
 
Příspěvky: 1317
Registrován: pon zář 12, 2011 10:32 am
Reputation: 49

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod kybos » úte srp 02, 2016 6:33 am

vata píše:To bych netvrdila. Do absorpce se TS dostává v případě, že se napětí baterie blíží absorpčnímu napětí, a v tom stavu se pak příliš nezabývá hledáním MPP a koncentruje se pouze na proud a je v tom patrně dost rychlý, určitě rychlejší než vyřizuje požadavky na data.

Problém je v tom, co si představujeme pod pojmem absorpce. Já osobně si pod tímto pojmem představuji stav, kdy již bylo dosaženo absopčního napětí a nabíječ je ve stavu, kdy snižuje výkon nabíjení (oproti předcházejícímu stavu bulk, kdy jej udržoval na maximální možné velikosti), aby toto absorpční napětí udržel. Tristar ale oznamuje stav absorpce již v okamžiku, kdy se napětí baterie k absorpčnímu napětí zdaleka blíží a měnič ještě stále pracuje na plný výkon v režimu bulk. To může být z hlediska řízení vytěžovaže dost podstatná informace. Tato skutečnost může v podstatě znemožnit řízení vytěžování na základě stavu nabíjení oznamovaných Tristarem.
8x3 Renesola Virtus 250W +2x Tristar MPPT60 (>20 MWh) + 48V VRLA 540 Ah + LiFePO 300 Ah + UPS 6kW
Uživatelský avatar
kybos
 
Příspěvky: 1091
Registrován: sob zář 08, 2012 9:40 pm
Reputation: 66

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod kybos » úte srp 02, 2016 11:09 am

Tento jev mohu doložit stavem, který probíhá právě teď. Absorpční napětí tristaru je nastaveno na 54,4 V (Target Voltage). Tristar běží na plný výkon (Array voltage = Sweep Vmp) a na dosažení absorpčního napětí zbývá ještě 360mV. Přesto již ohlašuje stav absorpce ale ve skutečnosti je ještě ve stavu bulk a nějakou tu hodinku mu ještě potrvá, než baterie nabije do hodnoty absorpčního napětí a začne omezovat výstupní výkon, aby toto napětí udržel po stanovenou dobu. Ve skutečnosti ale dojde k tomu, že doba, která byla nastavena pro setrvání na hodnotě absorpčního napětí nebude dodržena, jelikož ji Tristar začne odpočítávat podstatně dřív, než baterii na absorpční napětí nabije.
Předčasná absorpce.jpg
ustálený stav předčasné absorpce
8x3 Renesola Virtus 250W +2x Tristar MPPT60 (>20 MWh) + 48V VRLA 540 Ah + LiFePO 300 Ah + UPS 6kW
Uživatelský avatar
kybos
 
Příspěvky: 1091
Registrován: sob zář 08, 2012 9:40 pm
Reputation: 66

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod 007ToMMaS » úte srp 02, 2016 12:57 pm

Kyblos: neviem prečo tu riešite to či je to presné alebo nie. Pre potreby automatizácie stačí to aby som vedel v akom stave je regulátor. Ako som spomínal ide mi o stavy MPPT a float a tie fungujú spoľahlivo.
Polykryštalické panely o výkone 1760W, Tristar MPPT60A, 24V/1100Ah, menič 2,5kW
007ToMMaS
 
Příspěvky: 821
Registrován: sob zář 15, 2012 7:53 pm
Bydliště: Slovakia
Reputation: 10

Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem

Příspěvekod kybos » úte srp 02, 2016 5:22 pm

To se tu právě snažím dokumentovat, že Tristar nezobrazuje správně stav MPPT. Na uvedeném obrázku je zdokumentován stav, kdy je měnič ve stavu MPPT (ve fázi nabíjení Bulk) a přitom zobrazuje stav Absorption.
Jinými slovy i když vyčtete stav, který Tristar zveřejňuje, nebudete vědět v jakém stavu ve skutečnosti je.
8x3 Renesola Virtus 250W +2x Tristar MPPT60 (>20 MWh) + 48V VRLA 540 Ah + LiFePO 300 Ah + UPS 6kW
Uživatelský avatar
kybos
 
Příspěvky: 1091
Registrován: sob zář 08, 2012 9:40 pm
Reputation: 66


Zpět na TriStar Morningstar

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

Reputation System ©'