Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Diskuze na téma regulátorů TriStar Morningstar
-
- Příspěvky: 999
- Registrován: čtv črc 28, 2011 12:01 pm
Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Zde je kód pod GNU GPL pro vyčítání dat z Tristaru. Je to jen rychle a didakticky načrtnuto.
je třeba mít libmodbus5 knihovnu
upravit IP adresu a zkompilovat (je-li program uložen jako mppt.c):
např. z cronu lze spouštět takto:
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);
}
Kód: Vybrat vše
apt-get update
apt-get install libmodbus5 libmodbus-dev
Kód: Vybrat vše
gcc -o mppt -lmodbus mppt.c
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
-
- Příspěvky: 390
- Registrován: čtv říj 13, 2011 10:45 am
- Bydliště: Příbor
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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
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
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Je nastavená správne IP adresa a port?
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 999
- Registrován: čtv črc 28, 2011 12:01 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.
-
- Příspěvky: 11
- Registrován: čtv bře 17, 2011 9:55 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Muzu mit prozbicku na autora nebo kohokoliv kdo tomu rozumi, pridat do tohoto programku neco jako
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
Dekuju.
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);
nemuzu prijit nato jak to napsat aby to fungovalo, protoze vlastne nevim co delam
Dekuju.
-
- Příspěvky: 1586
- Registrován: pát bře 15, 2013 7:53 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Já čtu Tristar v Linuxu perl skriptem přes http pomocí MBCSV.cgi, třeba nabíjecí proud je
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.
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");
Kdyby to někoho zajímalo, stačí říct.
-
- Příspěvky: 999
- Registrován: čtv črc 28, 2011 12:01 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Před printf dodat:
Kód: Vybrat vše
if(Ibattery > 158)
{
Ibattery=0;
}
-
- Příspěvky: 999
- Registrován: čtv črc 28, 2011 12:01 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.solárník píše:Já čtu Tristar v Linuxu perl skriptem přes http pomocí MBCSV.cgi, třeba nabíjecí proud jeAle 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á.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");
Kdyby to někoho zajímalo, stačí říct.
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.
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.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 2783
- Registrován: sob zář 08, 2012 10:40 pm
- Lokalita: Šternberk
- Systémové napětí: 48V
- Výkon panelů [Wp]: 15000
- Kapacita baterie [kWh]: 40
- Bydliště: v údolí mezi kopci
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + 4 x nabíječka 1,2 kW (DELTA) Start: 2012
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Ide mi hlavne o režim night, mppt, float. Tie fungujú ok myslím.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
Vedel by to ktosi prosím vás vytiahnúť z regulátora? Ďakujem.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 1403
- Registrován: pon zář 12, 2011 11:32 am
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.kybos píše:Tyto stavy jsou u Tristaru zhola k ničemu, ...
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
-
- Příspěvky: 2783
- Registrován: sob zář 08, 2012 10:40 pm
- Lokalita: Šternberk
- Systémové napětí: 48V
- Výkon panelů [Wp]: 15000
- Kapacita baterie [kWh]: 40
- Bydliště: v údolí mezi kopci
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.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.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + 4 x nabíječka 1,2 kW (DELTA) Start: 2012
-
- Příspěvky: 2783
- Registrován: sob zář 08, 2012 10:40 pm
- Lokalita: Šternberk
- Systémové napětí: 48V
- Výkon panelů [Wp]: 15000
- Kapacita baterie [kWh]: 40
- Bydliště: v údolí mezi kopci
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + 4 x nabíječka 1,2 kW (DELTA) Start: 2012
-
- Příspěvky: 1095
- Registrován: sob zář 15, 2012 8:53 pm
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
-
- Příspěvky: 2783
- Registrován: sob zář 08, 2012 10:40 pm
- Lokalita: Šternberk
- Systémové napětí: 48V
- Výkon panelů [Wp]: 15000
- Kapacita baterie [kWh]: 40
- Bydliště: v údolí mezi kopci
Re: Aplikace na vyčítání dat z TS MPPT 60 pod *NIXem
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.
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.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + 4 x nabíječka 1,2 kW (DELTA) Start: 2012
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 0 Odpovědi
- 633 Zobrazení
-
Poslední příspěvek od TadeasD
-
- 10 Odpovědi
- 1439 Zobrazení
-
Poslední příspěvek od cipis
-
- 30 Odpovědi
- 2911 Zobrazení
-
Poslední příspěvek od z.karas
-
-
Četnost vyčítání dat ze snímačů výkonu
od rva » » v HomeAssistant
Četnost vyčítání dat ze snímačů výkonu
- 1 Odpovědi
- 768 Zobrazení
-
Poslední příspěvek od PavlikT
-
-
- 37 Odpovědi
- 4131 Zobrazení
-
Poslední příspěvek od dusanmsk