SDS micro light E - měření výkonu
Automatizace pomocí jednotek SDS, programování, logování, připojení, montáž senzorů, rady, tipy, návody, praktické poznatky, zkušenosti.
-
- Příspěvky: 50
- Registrován: čtv kvě 12, 2016 9:38 am
SDS micro light E - měření výkonu
Ahoj kluci,
mám regulátor EPsolar, který když připojíte k PC, tak vidíte kolik je napětí, proud a výkon na panelech atd.
Protože mám rád každý watt, nechci aby dotyčný počítač stále běžel a ubíral mi cca 100W. PC je daleko a připojuji se na něj vzdálenou plochou.
Proto jsem si koupil SDS micro light E. Ale zjistil jsem až nyní, že sám od sebe dokáže měřit jen napětí. Proud pokud koupíte čidlo. Co mě ale nejvíce zajímá je, jestli existuje nějaké čidlo, které by dokázalo měřit výkon co dodávají panely.
Modul SDS micro light E má SNMP, ze kterého bych odečítal hodnoty výkonu, grafoval a měl ohromnou radost.
Nemáte s tím někdo zkušenost? Děkuji za každé nakopnutí.
Pepa
mám regulátor EPsolar, který když připojíte k PC, tak vidíte kolik je napětí, proud a výkon na panelech atd.
Protože mám rád každý watt, nechci aby dotyčný počítač stále běžel a ubíral mi cca 100W. PC je daleko a připojuji se na něj vzdálenou plochou.
Proto jsem si koupil SDS micro light E. Ale zjistil jsem až nyní, že sám od sebe dokáže měřit jen napětí. Proud pokud koupíte čidlo. Co mě ale nejvíce zajímá je, jestli existuje nějaké čidlo, které by dokázalo měřit výkon co dodávají panely.
Modul SDS micro light E má SNMP, ze kterého bych odečítal hodnoty výkonu, grafoval a měl ohromnou radost.
Nemáte s tím někdo zkušenost? Děkuji za každé nakopnutí.
Pepa
-
- Příspěvky: 50
- Registrován: čtv kvě 12, 2016 9:38 am
Re: SDS micro light E - měření výkonu
Asi jsem položil špatně otázku.
Dá se s SDS micro light E nějak měřit výkon? Pokud ano, tak jak.
Děkuji za odpovědi.
Pepa
Dá se s SDS micro light E nějak měřit výkon? Pokud ano, tak jak.
Děkuji za odpovědi.
Pepa
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: SDS micro light E - měření výkonu
Napaťový delič, aby som mal U.
Senzor prúdu, aby som mal I.
http://www.ostrovni-elektrarny.cz/index ... -50a-ac-dc
https://www.amazon.com/Sunkee-Current-S ... ent+Sensor
P = U.I alebo P = 1/2*Up*Ip* cos fi
https://en.wikipedia.org/wiki/Home_energy_monitor
http://wiki.merenienergie.cz/index.php/ ... %AD_strana
Senzor prúdu, aby som mal I.
http://www.ostrovni-elektrarny.cz/index ... -50a-ac-dc
https://www.amazon.com/Sunkee-Current-S ... ent+Sensor
P = U.I alebo P = 1/2*Up*Ip* cos fi
https://en.wikipedia.org/wiki/Home_energy_monitor
http://wiki.merenienergie.cz/index.php/ ... %AD_strana
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 50
- Registrován: čtv kvě 12, 2016 9:38 am
Re: SDS micro light E - měření výkonu
Děkuji za odpověď,
toto vše vím. P=U*I je jasný,
umí SDS ve webovém rozhraní přímo ukázat výkon?
Díky
toto vše vím. P=U*I je jasný,
umí SDS ve webovém rozhraní přímo ukázat výkon?
Díky
-
- Příspěvky: 2680
- Registrován: úte úno 04, 2014 9:06 am
- Bydliště: Neďaleko Košic (SR)
Re: SDS micro light E - měření výkonu
Podla mna sds je hlupa masinka, dnes uz existuju omnoho lepsie a lacnejsie a hlavne modularne veci... Kludne aj mescontrol.sk ...
Odoslané z Lenovo Vibe Z2 Pro.
Odoslané z Lenovo Vibe Z2 Pro.
Najprv sa učíme chodiť a hovoriť, neskôr sa učíme sedieť a držať hubu... :stupidme:
Hybridná FVE dom: 6,3kWp, Victron Energy, 12kWh Pylontech+GB-Aku
On-Grid FVE dom: 3,6kWp, FRONIUS AC Coupling+VB
OFF-Grid FVE chata: 1,5kWp, Axpert, PCM, 200Ah/24V 18650
Hybridná FVE dom: 6,3kWp, Victron Energy, 12kWh Pylontech+GB-Aku
On-Grid FVE dom: 3,6kWp, FRONIUS AC Coupling+VB
OFF-Grid FVE chata: 1,5kWp, Axpert, PCM, 200Ah/24V 18650
-
- Příspěvky: 834
- Registrován: pon led 21, 2013 6:36 pm
- Lokalita: Doubravička
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8700
- Kapacita baterie [kWh]: 25
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Doubravička
Re: SDS micro light E - měření výkonu
Ano, umí. Co se takhle podívat na podpůrné stránky výrobce a jejich wiky?Peroslav píše:Děkuji za odpověď,
toto vše vím. P=U*I je jasný,
umí SDS ve webovém rozhraní přímo ukázat výkon?
Díky
fórum http://forum.merenienergie.cz/
moje řešení (překonáno jest)
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
http://95.85.214.80, viewtopic.php?t=4809
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: SDS micro light E - měření výkonu
Ak som si istý, že bude podpora zo strany dodávateľa HW a SW, tak záleží len na cene systému
a spotrebe, príp- možnostiach upgrade-u, update-u v budúcnosti.
A mi stačí 16 vstupov a 50 výstupov a spotreba 1 W, tak Arduino s vlastným serverom je bezkonkurenčné,
lebo nový modul si tam dorobím za 5 min a stojí ma to 0.0 €.
A ak mám pevnú IP alebo najakú službu / no-ip.com /, tak to mám aj s dátami kdekoľvek
a možem diaĺkovo sledovať a ovládať x Arduín.
Ono to pojde aj na Rasp. Pi, ale tam už napísať vlastný derivát OS nie je triviálna vec na 5 min. roboty.
a spotrebe, príp- možnostiach upgrade-u, update-u v budúcnosti.
A mi stačí 16 vstupov a 50 výstupov a spotreba 1 W, tak Arduino s vlastným serverom je bezkonkurenčné,
lebo nový modul si tam dorobím za 5 min a stojí ma to 0.0 €.
A ak mám pevnú IP alebo najakú službu / no-ip.com /, tak to mám aj s dátami kdekoľvek
a možem diaĺkovo sledovať a ovládať x Arduín.
Ono to pojde aj na Rasp. Pi, ale tam už napísať vlastný derivát OS nie je triviálna vec na 5 min. roboty.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 50
- Registrován: čtv kvě 12, 2016 9:38 am
Re: SDS micro light E - měření výkonu
Díky Frenky,
tvůj výtvor by mě úplně stačil. Nemůžeš sem prosím dát presně tu stránku diskuze?
Nemohu to na foru SDS najít.
Děkuji Pepa
tvůj výtvor by mě úplně stačil. Nemůžeš sem prosím dát presně tu stránku diskuze?
Nemohu to na foru SDS najít.
Děkuji Pepa
-
- Příspěvky: 834
- Registrován: pon led 21, 2013 6:36 pm
- Lokalita: Doubravička
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8700
- Kapacita baterie [kWh]: 25
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Doubravička
Re: SDS micro light E - měření výkonu
Tam přesně tvůj problém není, je to o programování v kódu SDS-ka a html stránky, dále o pochopení činnosti SDS, jeho omezeních apod.Peroslav píše:Díky Frenky,
tvůj výtvor by mě úplně stačil. Nemůžeš sem prosím dát presně tu stránku diskuze?
Nemohu to na foru SDS najít.
Děkuji Pepa
Jak tady psali jiní, dnes bych asi do SDS nešel. Je mnoho daleko sofistikovanějších krabiček, které toho umějí daleko více.
- arduino s Rapsberry
- SIEMENS logo
- SIEMENS S1200
Záleží na tom, zda umíš, či neumíš programovat. A taky v čem. Pak také záleží na tom jaké komponenty (jakých výrobců) máš v systému
Existuje také celá řada hotových řešení.
1) microlog zde na fóru, včetně logování zde na fóru (pro přenos dat se musí pomocí SZ kontaktovat admin). Pracuje se se zařízením arduino MEGA 2560
2) Systém VALC od uživatelky VATA kontaktuj http://vati.cz/eshop/index.php?route=pr ... ry&path=62. Pracuje se zařízením SDS.
Určitě jsem si na všechny řešení nevzpomněl.
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
http://95.85.214.80, viewtopic.php?t=4809
-
- Příspěvky: 50
- Registrován: čtv kvě 12, 2016 9:38 am
Re: SDS micro light E - měření výkonu
Už asi rozumím,
a nemohl bys sem dát zdrojový kod toho tvého print screenu?
Takto by mi to úplně stačilo.
a nemohl bys sem dát zdrojový kod toho tvého print screenu?
Takto by mi to úplně stačilo.
-
- Příspěvky: 834
- Registrován: pon led 21, 2013 6:36 pm
- Lokalita: Doubravička
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8700
- Kapacita baterie [kWh]: 25
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Doubravička
Re: SDS micro light E - měření výkonu
Tak tohle je hlavní program do sdsPeroslav píše:Už asi rozumím,
a nemohl bys sem dát zdrojový kod toho tvého print screenu?
Takto by mi to úplně stačilo.
Kód: Vybrat vše
/*
Program pro ovladani a dohled male FVE
Verze pro SDS MACRO s komunikaci RS232 pro releovou desku QUIDO od Papouch + ovladani a dohled FV systemu
Datum otestovani programu: 29.5.2016 16:00 hod
*********** obsahuje **************
1) Program pro odesilani informaci na portal eportal.merenienergie.cz (autor viz portal)
2) Uprava pro merení napeti a proudu na AD1-AD4, proudy pomoci cidel Amploc (autor Ing. Lastovicka Jaromir)
3) Uprava pro ctení promennych pro html pres ram (autor Ing. Lastovicka Jaromir)
4) Ovladani releove desky QUIDO od papouch přes RS232 a WEB stranku (autor diskuzni forum mereni energie)
5) Oprava ovladani releove desky QUIDO. (verze z fora posilala instrukce pro neexistujici rele "0")
6) Uvolneni RAM(0-100) prechod na "TEXT" (TEXT[400-420])
7) Posilani hodnot ram na uzivatelsky WEB
8) Posilani hlaseni o vykonech na elektromerech do konzole
9) Statistiky (Ing. Nešvara)
10) Vypis hodnot na LCD displej s prepinanim obrazovek pomoci volnych opto vstupu opto1-opto4.
11) Ovladani ventilatoru rozvadece dle teplotnich cidel jednotlivych komponentu (XTS, VT-80, cidlo rozvadec)
12) Ovladani spotreby (zapinani XTS) pres rele Re3 dle napeti AKU LiFePo
13) Posilani dat na server raspberry
//------------------------------------------ obsazení RAM ------------------------------------------------------------
RAM[60-63] prenos statistik
RAM[101-104] prenos statistik
RAM[180-194] prenos statistik
RAM[111-130] rs232 - (16 pozic)
RAM[131] prenos informace o vybijeni/nabijeni baterie na uzivatelsky WEB
RAM[135-138] prenos AD1-AD4 na uzivatelsky WEB
RAM[139-145] prenos vypocitanych udaju na uzivatelsky WEB
RAM[148-149] vypocty proudu (AD3 a AD4)
RAM[150-155] lcdtime a echotime pouziva
RAM[156-161] lcddate a echodate pouziva
RAM[162-165] stanoveni hodnot systemu RAM[162-165] misto povodnich SYS[140-147]
RAM[190-195] vypocty elektromeru do konzole
RAM[201-219] vypocty teploty s teplomeru na displej
RAM[220-225] vypocty elektromeru na displej
pokud se bude pouzivat dalsi http_get, e-mail, atd., pozor na timeouty pro dobehnuti GETu
pozor na pouzivani sys[64] odpocitavani casu - muze dojit k omezeni funkce portalu
*/
//----------------------------- promenne define -----------------------------------------------
#define ODPOCITAVAC_SEKUND sys[64]
#define POCET_MERENI 10 // mereni napeti Baterie na AD1-AD4
#define CYKLUS_TEPLOTA 1 // mereni teploty
#define REL_DEL 5 //1-155 a 0.5 s // stanoveni casoveho spozdeni rele (QUIDO)
#define SEC2MIN 166
#define SEC2HR 2777
#define MAXPAGE 5 // pocet stranek hlavniho menu
#define MAXPAGERELE 22 // pocet stranek rele (pocet rele 16 + 5)
#define STOZAP 267 // Hladina napeti Ubat LiFePo kdy sepne Re3 (Vystup ze stridace STUDER) (267 = 26,7V)
#define STOVYP 250 // Hladina napeti Ubat LiFePo kdy vypne Re3 (Vystup ze stridace STUDER) (264 = 25,0V)
//----------------------------- promenne k odesilani udaju na portal ----------------------------
var _portal_vstup; //index S0 vstupu
var _portal_konst; //prepoctova konst S0 vstupu
var _portal_ram; //index ram pole
var _portal_pom; //pomocna
var _portal_dns; //je dostupny preklad dns
var _portal_data; //typ odesilanych dat
var _portal_timeout; //timeout pro odesilani dat
var _portal_timeoutget; //timeout pro chybu serveru
var _portal_timeoutdns; //timeout pro dns_resolve
var _disp; //display sds macro ano/ne
var _PHP_timeout, _PHP_timeout1, _teploty_timeout;
//----------------------------- promenne FVE -----------------------------------------------
var PV_volt_a, PV_volt_b, PV_curr_a, PV_curr_b;
var b1_volt_a, b1_volt_b, b2_volt_a, b2_volt_b, b3_amp_v, b4_amp_v;
var b3_amp_a, b3_amp_b, b4_amp_a, b4_amp_b;
var PV_volt, PV_curr, b1_volt, b2_volt, batt_chrg, b3_amp, b4_amp;
var batwat, panelbat;
var last_volt;
var nabijim, vybijim, stav;
var znak,_text;
var c, i, ct;
var _pruchod, _val, _rs232in, _ram, _ram2, _sys, _txt, _pom, _rs232s, _relspo, H, _rele, _va;
var relst1, relst2, relst3, relst4, D0;
var _consoletime, _consoletime2, _consoletime3, _consoletime4, _termostattime, _raspberrytime;
var sec2Hr; //Prevod wat-sekunda na kWh
var _beh_min; //probihajici minuta
var _beh_min24; //probihajici minuta 1x za 24hod
var VDC, DCB, DCP, SDC, SDCm, NBAT, SBAT;
var VDCmin, SDCmin, NBATmin, sec2min, VDCm1, SDCm1, NBATm1;
var VDC24h, SDC24h, NBAT24h, VDC24, SDC24, VDCd, SDCd;
var page, maxpage, pageindex, pagerele, maxpagerele, _r, _q, SoC, _a, automat;
var teplotaStuder, teplotaTristar, teplotaRozvadec, email1, email2, email3, email4;
//-------------------- procedury ziskani analogovych hodnot AD1-AD4 ----------------------------------------
//------------------------------------------ AD1 ------------------------------------------------------------
nacti_hodnoty
{
// snimani z cidel 0-30V , sejmuta hodnota je 0-1023
//pri deleni je nutne desetinna mista doplnovat po jednom (delit 10)!
b1_volt = 0;
c = POCET_MERENI; //mereni napeti baterie LiFePo 24V na AD1
label cyklus1:
b1_volt += sys[431]; //secteni x vzorku (pocet mereni)
wait(1);
c--;
if(c > 0) goto cyklus1;
b1_volt = b1_volt / POCET_MERENI; //prumerovani
b1_volt_a = sys[431] * 100 / sys[436]; //vypocet pred desetinnou teckou
b1_volt_b = (((sys[431] * 100) % sys[436]) * 100) / sys[436]; //vypocet za desetinnou teckou
ram[135] = sys[431] * 100000 / sys[436]; //vypocet napeti pro WEB
//------------------------------------------ AD2 ------------------------------------------------------------
b2_volt = 0;
c = POCET_MERENI; //mereni napeti baterie Pb 12V na AD2
label cyklus2:
b2_volt += sys[432]; //secteni x vzorku (pocet mereni)
wait(1);
c--;
if(c > 0) goto cyklus2;
b2_volt = b2_volt/POCET_MERENI; //prumerovani
b2_volt_a = (sys[432] * 100) / sys[440]; //vypocet pred desetinnou teckou
b2_volt_b = ((sys[432] * 100) % sys[440])*100) / sys[440]; //vypocet za desetinnou teckou
ram[136] = sys[432] * 100000 / sys[440]; //vypocet napeti pro WEB
//------------------------------------------ AD3 ------------------------------------------------------------
b3_amp = 0;
c = POCET_MERENI; //mereni proudu FV panelu na AD3
label cyklus3:
b3_amp += sys[433]; //secteni x vzorku (pocet mereni)
wait(1);
c--;
if(c > 0) goto cyklus3;
b3_amp = b3_amp / POCET_MERENI; //prumerovani
b3_amp_v = sys[433] * 100000 / sys[444] - 2500; //vypocet napeti cidla (odecteni půlky (5V))
ram[137] = sys[433] * 100000 / sys[444]; //vypocet napeti cidla pro WEB
ram[142] = (b3_amp_v * 1000) / 37; //vypocet proudu cidla (37 mV = Amploc 25A)
ram[148] = (b3_amp_v * 100) / 37;
b3_amp_a = ram[148] / 100; //vypocet pred desetinnou teckou
b3_amp_b = ram[148] % 100; //vypocet za desetinnou teckou
if (b3_amp_b >= 0) goto minuss; // osetreni zaporneho cisla desetinne tecky
b3_amp_b = 0 - b3_amp_b; // rucni doplneni cisla 0 pokud hodnota je 0-9
label minuss:
//------------------------------------------ AD4 ------------------------------------------------------------
b4_amp = 0;
c = POCET_MERENI; //mereni proudu baterie LiFePo 24V na AD4
label cyklus4:
b4_amp += sys[434]; //secteni x vzorku (pocet mereni)
wait(1);
c--;
if(c > 0) goto cyklus4;
b4_amp = b4_amp / POCET_MERENI; //prumerovani
b4_amp_v = (sys[434] * 100000) / sys[448] - 2500; //vypocet napeti cidla
ram[138] = sys[434] * 100000 / sys[448]; //vypocet napeti cidla pro WEB
ram[143] = (b4_amp_v * 10000) / 95; //vypocet proudu cidla (9,5 mV = Amploc 100A)
ram[149] = (b4_amp_v * 1000) / 95;
b4_amp_a = ram[149] / 100; //vypocet pred desetinnou teckou
b4_amp_b = ram[149] % 100; //vypocet za desetinnou teckou
if (b4_amp_b >= 0) goto minus; // osetreni zaporneho cisla desetinne tecky
b4_amp_b = 0 - b4_amp_b; // rucni doplneni cisla 0 pokud hodnota je 0-9
label minus:
//------------------------------------------ vypocty ------------------------------------------------------------
batwat = ((ram[135]) * (ram[143] / 100)) / 10000; //vypocet vykonu baterie pro displej
panelbat = ((ram[135]) * (ram[142] / 100)) / 10000;
ram[139] = (ram[135] / 1000) * (ram[143] /10 ; //vypocet vykonu baterie pro WEB
ram[140] = (ram[135] / 1000) * (ram[142] /10 ; //vypocet vykonu panelu pro WEB
// vypocet teploty procesoru (matematicka kouzla dle dokumentace na Wiky)
ram[213] = 879 * sys[46]; //1426910
ram[214] = 590000 - ram[213]; //16192700
ram[215] = 5 * ram[214]; //80963500
ram[216] = ram[215] / 2; //40481750
ram[217] = ram[216] / 10000;
ram[218] = ram[215] / 200;
ram[219] = ram[218] % 100;
ram[146] = ram[216] / 100;
}
//------------------------------------------ globalni procedury --------------------------------------------------
echorele
{
echo('stav rele QUIDO: ',ram[111],',',ram[112],',',ram[113],',',ram[114],',',ram[115],',',ram[116],',',ram[117],',',ram[118],','
,ram[119],',',ram[120],',',ram[121],',',ram[122],',',ram[123],',',ram[124],',',ram[125],',',ram[126]);
}
echotime // cas do konzole
{
ram[150] = sys[8] / 10;
ram[151] = sys[8] % 10;
ram[152] = sys[9] / 10;
ram[153] = sys[9] % 10;
ram[154] = sys[10] / 10;
ram[155] = sys[10] % 10;
echo (ram[150], ram[151]':', ram[152], ram[153]':', ram[154], ram[155]);
}
//------------------------------------------ procedury portalu ------------------------------------------------------------
portal_ad
{
_portal_vstup = 431;
_portal_konst = 436;
_portal_ram = 101;
label portal_ad_1:
//AD
_portal_pom = sys[_portal_vstup]*100000/sys[_portal_konst]; //3205 jako 3.205 V
ram[_portal_ram] = _portal_pom; //schovat akt.napeti
_portal_vstup++;
_portal_konst += 4;
_portal_ram++;
if (_portal_vstup < 435) goto portal_ad_1;
}
odesli_data_na_portal
{
if (_portal_timeoutget == 0) goto odesli_data_na_portal_get; //odeslat data
//pred odeslanim dat zkontrolovat zda nebezi predchozi pozadavek
if (sys[65] == 0 && _portal_timeoutget >= sys[3]) goto odesli_data_na_portal_end; //jeste bezi, ale mam cas delam neco jineho
if (_portal_timeoutget < sys[3]) goto odesli_data_na_portal_chyba; //uz neni cas - chyba
if ((sys[65] != 1024) || (sys[75] != 200)) {
goto odesli_data_na_portal_chyba;
} else {
if (_portal_data == 1) {
echotime();
echo('S0 odeslano na server, OK.');
}
if (_portal_data == 2) {
echo('Temp A odeslano na server, OK.');
}
if (_portal_data == 3) {
echo('AD odeslano na server, OK.');
// echo('FVE panely: ',b3_amp_a,'.',b3_amp_b,' A');
// echo('Baterie: ',b4_amp_a,'.',b4_amp_b,' A');
echo('MPPT: Napeti ',b1_volt_a,'.',b1_volt_b,' V',' Proud ',b3_amp_a,'.',b3_amp_b,' A',' Vykon ',panelbat,' W',' Energia za 1 den ',VDCd,' Wh');
echo('Baterie: Napeti ',b1_volt_a,'.',b1_volt_b,' V',' Proud ',b4_amp_a,'.',b4_amp_b,' A',' Vykon ',batwat,' W',' Energia za 1 den ',SDCd,' Wh');
}
_portal_data++;
_portal_timeoutget = 0;
if (_portal_data > 3) {
_portal_timeout=sys[3] + 90000; //90000 = 15 min interval mereni
_portal_data = 0; //vynulovat
goto odesli_data_na_portal_end;
}
}
label odesli_data_na_portal_get:
if (_portal_dns == 1) {
//mam dns
if (_portal_data == 1) {
http_get(sys[66], sys[67], sys[68], sys[69], 'eportal.merenienergie.cz', '/datas0.php?ver=1&devid=', 'tady nahraj tvuj kod od eportal', '&t0v1=', sys[493], '&t0v2=', sys[494], '&t0v3=', sys[495], '&t0v4=', sys[496], '&t0v5=', sys[497], '&t0v6=', sys[498], '&t0v7=', sys[499], '&t0v8=', sys[500], '&t1v1=', sys[526], '&t1v2=', sys[527], '&t1v3=', sys[528], '&t1v4=', sys[529], '&t1v5=', sys[530], '&t1v6=', sys[531], '&t1v7=', sys[532], '&t1v8=', sys[533], '&av1=', sys[592], '&av2=', sys[593], '&av3=', sys[594], '&av4=', sys[595], '&av5=', sys[596], '&av6=', sys[597], '&av7=', sys[598], '&av8=', sys[599], '&tt=', sys[459]);
}
if (_portal_data == 2) {
http_get(sys[66], sys[67], sys[68], sys[69], 'eportal.merenienergie.cz', '/datatemp.php?ver=1&line=a&devid=', 'tady nahraj tvuj kod od eportal', '&t1=', sys[310], '&t2=', sys[311], '&t3=', sys[312], '&t4=', sys[313], '&t5=', sys[314], '&t6=', sys[315], '&t7=', sys[316], '&t8=', sys[317], '&t9=', sys[318], '&t10=', sys[319], '&t11=', sys[320], '&t12=', sys[321], '&t13=', sys[322], '&t14=', sys[323], '&t15=', sys[324], '&t16=', sys[325]);
}
if (_portal_data == 3) {
portal_ad();
http_get(sys[66], sys[67], sys[68], sys[69], 'eportal.merenienergie.cz', '/dataad.php?ver=1&devid=', 'tady nahraj tvuj kod od eportal', '&ad1=', ram[101], '&ad2=', ram[102], '&ad3=', ram[142], '&ad4=', ram[143]);
}
} else {
//nemam dns
if (_portal_data == 1) {
http_get(77, 93, 211, 207, 'eportal.merenienergie.cz', '/datas0.php?ver=1&devid=', 'tady nahraj tvuj kod od eportal', '&t0v1=', sys[493], '&t0v2=', sys[494], '&t0v3=', sys[495], '&t0v4=', sys[496], '&t0v5=', sys[497], '&t0v6=', sys[498], '&t0v7=', sys[499], '&t0v8=', sys[500], '&t1v1=', sys[526], '&t1v2=', sys[527], '&t1v3=', sys[528], '&t1v4=', sys[529], '&t1v5=', sys[530], '&t1v6=', sys[531], '&t1v7=', sys[532], '&t1v8=', sys[533], '&av1=', sys[592], '&av2=', sys[593], '&av3=', sys[594], '&av4=', sys[595], '&av5=', sys[596], '&av6=', sys[597], '&av7=', sys[598], '&av8=', sys[599], '&tt=', sys[459]);
}
if (_portal_data == 2) {
http_get(77, 93, 211, 207, 'eportal.merenienergie.cz', '/datatemp.php?ver=1&line=a&devid=', 'tady nahraj tvuj kod od eportal', '&t1=', sys[310], '&t2=', sys[311], '&t3=', sys[312], '&t4=', sys[313], '&t5=', sys[314], '&t6=', sys[315], '&t7=', sys[316], '&t8=', sys[317], '&t9=', sys[318], '&t10=', sys[319], '&t11=', sys[320], '&t12=', sys[321], '&t13=', sys[322], '&t14=', sys[323], '&t15=', sys[324], '&t16=', sys[325]);
}
if (_portal_data == 3) {
portal_ad();
http_get(77, 93, 211, 207, 'eportal.merenienergie.cz', '/dataad.php?ver=1&devid=', 'tady nahraj tvuj kod od eportal, '&ad1=', ram[101], '&ad2=', ram[102], '&ad3=', ram[142], '&ad4=', ram[143]);
}
}
_portal_timeoutget=sys[3] + 1500; //15 s pro potvrzeni ze serveru
goto odesli_data_na_portal_end;
label odesli_data_na_portal_chyba:
echo('Chyba komunikace s www serverem, http: ', sys[75]);
_portal_timeout = sys[3] + 90000; //90000 = 5 min interval
_portal_data = 0; //vynulovat
_portal_timeoutget = 0; //vynulovat
_portal_timeoutdns = 0; //vynulovat
label odesli_data_na_portal_end:
}
portal_nastav
{
_portal_timeout = 0; //zrovna se odesilaji data
_portal_timeoutget = 0; //vynulovat timeout predchozich get pozadavku
_portal_timeoutdns = 0; //vynulovat timeout predchoziho dns resolveru
_portal_dns = 0; //nemam dns
_portal_data = 1;
}
portal_dns
{
if (_portal_timeoutdns == 0) {
echotime();
echo('dns_resolv()');
dns_resolv('eportal.merenienergie.cz');
_portal_timeoutdns = sys[3] + 1500; //15 s timeout
}
if (sys[65] == 512) {
echotime();
echo ('dns_resolv() OK:', sys[65]);
_portal_dns = 1;
return;
}
if (_portal_timeoutdns < sys[3] ) {
echotime();
echo ('dns_resolv() chyba:', sys[65]);
_portal_dns = 2;
}
}
//---------------------------- procedury pro ovladani rele QUIDO po sbernici RS232 ------------------------------------
// rs232 pouziva TEXT[400-420] pro prijem dat po serial_text_out
// rs232 pouzivá RAM[111-126] pro stav rele 1-16
//*B$OS1H zapnuti 1.Rele
//*B$OS1L vypnuti 1.Rele
//*B$OT1L2 vypnuti 1.Rele se spozdenim 1s (1-255 a 0,5s)
//0x48 je hexa H
//0x4c je hexa L
//0x30 je hexa 0
//0x31 je hexa 1
rs232
{
_pruchod = 0;
rs232_0:
// serial_text_out('*B$OS1H', 0x0D); //sepnuti 1.rele pred HW zmenou (rozpinaci rele)
// serial_text_out('*B$OS2H', 0x0D); //sepnuti 2.rele pred HW zmenou (rozpinaci rele)
// serial_text_out('*B$OS3H', 0x0D); //sepnuti 3.rele pred HW zmenou (rozpinaci rele)
// wait(50);
ram[111] = 0; //ovladani barvy tlacitka 1.rele na panelu v user.htm
ram[112] = 0; //ovladani barvy tlacitka 2.rele na panelu v user.htm
ram[113] = 0; //ovladani barvy tlacitka 3.rele na panelu v user.htm
if (_val > 0 && _val < 4) { //ovladani 1. - 3. rele <RESTART>
_rs232in=0x30+_val; //stanoveni tlacitka 1-16 0+sys[141] (user.htm)
_relspo=0x30+REL_DEL; //0+DEFINE=delka spozdeni rele pri restartu
H=0x48;
serial_text_out('*B$OT', _rs232in, H, _relspo, 0x0D);
}
if (_val > 3 && _val < 10) { //ovladani 4. - 9. rele <ZAP/VYP>
_rs232in = 0x30 + _val; //stanoveni tlacitka 1-16 0+sys[141] (user.htm)
serial_text_out('*B$OS', _rs232in, _rs232s, 0x0D);
}
if (_val >= 10 && _val <= 16) {//ovladani 10. - 16. rele <ZAP/VYP>
_rs232in = 0x30 + _val - 10; //stanoveni tlacitka 1-16 0+sys[141] (user.htm)
serial_text_out('*B$OS', 0x31, _rs232in, _rs232s, 0x0D);
}
wait(50); //dat mu cas na odezvu
_txt = 400;
//celou odpoved do pole
if(sys[48] == 0) { // pokud je nejaky znak prijaty ze seriove sbernice
rs232_1:
text[_txt] = sys[49]; // prevezmi prijaty znak ze seriove sbernice do urcene pozice pole text[]
_txt++; // dalsi pozice v text[], kam se zapise dalsi znak
if (sys[48] == 0 && _txt < 420) goto rs232_1; //at se odpoved nedostane do text[420] !!!
}
text[_txt] = 0x00; //konec pro echo
//potvrzeni OK - porovnej prijate znaky ulozene v ram[]
if (text[400] == 42 && text[401] == 66 && text[402] == 49 && text[403] == 48 && text[404] == 13) {
_pom= _val + 110;
// zpracuj hodnotu
if (_rs232s == 0x48) { //hexa H
if (_val > 0){ //odstraneni automatickeho vysilani "0 zapnuto"
// echotime();
echo (_val, ' Zapnuto');
lcd_echo(1, 400, 0, 'Rele QUIDO ', _val, ' ZAP');
wait(1000);
lcd_echo(1, 400, 0, ' ');
ram[_pom]=1;
}
} else {
if (_val > 0){ //odstraneni automatickeho vysilani "0 vypnuto"
// echotime();
echo (_val, ' Vypnuto');
lcd_echo(1, 400, 0, 'Rele QUIDO ', _val, ' VYP');
wait(1000);
lcd_echo(1, 400, 0, ' ');
ram[_pom] = 0;
}
}
goto rs232_end;
}
//akce se nezdarila opakuju
wait(50);
_pruchod++;
if (_pruchod > 5) {
if (_rs232s == 0x48) { //hexa H
if (_val > 0){ //odstraneni automatickeho vysilani "0 zapnuti se nezdarilo!"
echotime();
echo ('Zapnuti se nezdarilo!');
}
} else {
if (_val > 0){ //odstraneni automatickeho vysilani "0 vypnuti se nezdarilo!"
echotime();
echo ('Vypnuti se nezdarilo!');
}
}
goto rs232_end;
}
goto rs232_0;
label rs232_end:
}
nastav232
{
_val = sys[141]; //1-16
if (_val == 0 || _val > 16) goto nastav232_end; //zadna zmena
echotime();
echo ('Pozadavek na rs232 sepni/vypni rele - ', _val);
_pom = 110 + _val;
if (ram[_pom] == 0) {
_rs232s = 0x48; //zap hexa H
rs232();
} else {
_rs232s = 0x4c; //vyp hexa L
rs232();
}
sys[141] = 0; //vynulovat prikaz
//Vypis stavu rele QUIDO, nesouvisi s predchozim kodem
echotime();
echorele();
label nastav232_end:
}
//Pozn. sys[141] je pouzit pro ovladani tohoto programu - je to hodnota tzv. uzivatelske promenne nastavitele pres web (viz webove rozhrani vyrobku SDS - stranka SDS-C - odkaz uzivatelske promenne
//------------------------ procedury pro zobrazování stavu akumulátoru ------------------------------------------
akustav
{
// if (ram[131] == 0) { // if (ram[136] == 0) { // podminka kdyz zrovna nenebijim
if (sys[431] <= 809) { stav = 0; ram[141] = stav; } // 804/3370=0,2385 to je 23,85 V
if (sys[431] == 810) { stav = 1; ram[141] = stav; } // 806/3370=0,2391 to je 23,91 V
if (sys[431] == 811) { stav = 2; ram[141] = stav; }
if (sys[431] == 812) { stav = 3; ram[141] = stav; }
if (sys[431] == 813) { stav = 4; ram[141] = stav; }
if (sys[431] == 814) { stav = 5; ram[141] = stav; }
if (sys[431] == 815) { stav = 6; ram[141] = stav; }
if (sys[431] == 816) { stav = 7; ram[141] = stav; }
if (sys[431] == 817) { stav = 8; ram[141] = stav; }
if (sys[431] == 818) { stav = 9; ram[141] = stav; }
if (sys[431] == 819) { stav = 10; ram[141] = stav; }
if (sys[431] == 820) { stav = 11; ram[141] = stav; }
if (sys[431] == 821) { stav = 12; ram[141] = stav; }
if (sys[431] == 822) { stav = 13; ram[141] = stav; }
if (sys[431] == 823) { stav = 14; ram[141] = stav; }
if (sys[431] == 824) { stav = 15; ram[141] = stav; }
if (sys[431] == 825) { stav = 16; ram[141] = stav; }
if (sys[431] == 826) { stav = 17; ram[141] = stav; }
if (sys[431] == 827) { stav = 18; ram[141] = stav; }
if (sys[431] == 828) { stav = 19; ram[141] = stav; }
if (sys[431] == 829) { stav = 20; ram[141] = stav; } // 808/3370=0,2397 to je 23,97 V
if (sys[431] == 830) { stav = 21; ram[141] = stav; }
if (sys[431] == 831) { stav = 22; ram[141] = stav; }
if (sys[431] == 832) { stav = 23; ram[141] = stav; }
if (sys[431] == 833) { stav = 24; ram[141] = stav; }
if (sys[431] == 834) { stav = 25; ram[141] = stav; }
if (sys[431] == 835) { stav = 26; ram[141] = stav; }
if (sys[431] == 836) { stav = 27; ram[141] = stav; }
if (sys[431] == 837) { stav = 28; ram[141] = stav; }
if (sys[431] == 838) { stav = 29; ram[141] = stav; }
if (sys[431] == 839) { stav = 30; ram[141] = stav; }
if (sys[431] == 840) { stav = 31; ram[141] = stav; }
if (sys[431] == 841) { stav = 32; ram[141] = stav; }
if (sys[431] == 842) { stav = 33; ram[141] = stav; }
if (sys[431] == 843) { stav = 34; ram[141] = stav; }
if (sys[431] == 844) { stav = 35; ram[141] = stav; }
if (sys[431] == 845) { stav = 36; ram[141] = stav; }
if (sys[431] == 846) { stav = 37; ram[141] = stav; }
if (sys[431] == 847) { stav = 38; ram[141] = stav; }
if (sys[431] == 848) { stav = 39; ram[141] = stav; }
if (sys[431] == 849) { stav = 40; ram[141] = stav; }
if (sys[431] == 850) { stav = 41; ram[141] = stav; }
if (sys[431] == 851) { stav = 42; ram[141] = stav; }
if (sys[431] == 852) { stav = 43; ram[141] = stav; }
if (sys[431] == 853) { stav = 44; ram[141] = stav; }
if (sys[431] == 854) { stav = 45; ram[141] = stav; }
if (sys[431] == 855) { stav = 46; ram[141] = stav; }
if (sys[431] == 856) { stav = 47; ram[141] = stav; }
if (sys[431] == 857) { stav = 48; ram[141] = stav; }
if (sys[431] == 858) { stav = 49; ram[141] = stav; }
if (sys[431] == 859) { stav = 50; ram[141] = stav; }
if (sys[431] == 860) { stav = 51; ram[141] = stav; }
if (sys[431] == 861) { stav = 52; ram[141] = stav; }
if (sys[431] == 862) { stav = 53; ram[141] = stav; }
if (sys[431] == 863) { stav = 54; ram[141] = stav; }
if (sys[431] == 864) { stav = 55; ram[141] = stav; }
if (sys[431] == 865) { stav = 56; ram[141] = stav; }
if (sys[431] == 866) { stav = 57; ram[141] = stav; }
if (sys[431] == 867) { stav = 58; ram[141] = stav; }
if (sys[431] == 868) { stav = 59; ram[141] = stav; }
if (sys[431] == 869) { stav = 60; ram[141] = stav; }
if (sys[431] == 870) { stav = 61; ram[141] = stav; }
if (sys[431] == 871) { stav = 62; ram[141] = stav; }
if (sys[431] == 872) { stav = 63; ram[141] = stav; }
if (sys[431] == 873) { stav = 64; ram[141] = stav; }
if (sys[431] == 874) { stav = 65; ram[141] = stav; }
if (sys[431] == 875) { stav = 66; ram[141] = stav; }
if (sys[431] == 876) { stav = 67; ram[141] = stav; }
if (sys[431] == 877) { stav = 68; ram[141] = stav; }
if (sys[431] == 878) { stav = 69; ram[141] = stav; }
if (sys[431] == 879) { stav = 70; ram[141] = stav; }
if (sys[431] == 880) { stav = 71; ram[141] = stav; }
if (sys[431] == 881) { stav = 72; ram[141] = stav; }
if (sys[431] == 882) { stav = 73; ram[141] = stav; }
if (sys[431] == 883) { stav = 74; ram[141] = stav; }
if (sys[431] == 884) { stav = 75; ram[141] = stav; }
if (sys[431] == 885) { stav = 76; ram[141] = stav; }
if (sys[431] == 886) { stav = 77; ram[141] = stav; }
if (sys[431] == 887) { stav = 78; ram[141] = stav; }
if (sys[431] == 888) { stav = 79; ram[141] = stav; }
if (sys[431] == 889) { stav = 80; ram[141] = stav; }
if (sys[431] == 890) { stav = 81; ram[141] = stav; }
if (sys[431] == 891) { stav = 82; ram[141] = stav; }
if (sys[431] == 892) { stav = 83; ram[141] = stav; }
if (sys[431] == 893) { stav = 84; ram[141] = stav; }
if (sys[431] == 894) { stav = 85; ram[141] = stav; }
if (sys[431] == 895) { stav = 86; ram[141] = stav; }
if (sys[431] == 896) { stav = 87; ram[141] = stav; }
if (sys[431] == 897) { stav = 88; ram[141] = stav; }
if (sys[431] == 898) { stav = 89; ram[141] = stav; }
if (sys[431] == 899) { stav = 90; ram[141] = stav; }
if (sys[431] == 900) { stav = 91; ram[141] = stav; }
if (sys[431] == 901) { stav = 92; ram[141] = stav; }
if (sys[431] == 902) { stav = 93; ram[141] = stav; }
if (sys[431] == 903) { stav = 94; ram[141] = stav; }
if (sys[431] == 904) { stav = 95; ram[141] = stav; }
if (sys[431] == 905) { stav = 96; ram[141] = stav; }
if (sys[431] == 906) { stav = 97; ram[141] = stav; }
if (sys[431] == 907) { stav = 98; ram[141] = stav; }
if (sys[431] == 908) { stav = 99; ram[141] = stav; }
// if (sys[431] > 902 && sys[431] < 905) { stav = 90; ram[141] = stav; } // 852/3370=0,2528 to je 25,28 V
// if (sys[431] > 907 && sys[431] < 911) { stav = 95; ram[141] = stav; } // 856/3370=0,2540 to je 25,24 V
if (sys[431] > 905) { stav = 100; ram[141] = stav; } // 860/3370=0,2551 to je 25,51 V
// zmena barvy napisu Proud Baterie v user html
if (ram[143] >= 0) { //stanoveni nabijim-vybijim pro USER.htm
ram[131] = 1;
} else {
ram[131] = 0;
}
}
//------------------------ ovladani rele SDS ------------------------------------------
releon
{
sys[_rele] = 255;
_pom = _rele - 230;
if (_disp == 1) { // pokud je zapnuty displej
lcd_echo(1, 400, 0, 'Rele ', _pom, ' ZAP');
wait(1000);
lcd_echo(1, 400, 0, ' ');
}
echotime();
echo('Rele ', _pom, ' ZAP');
if (_pom == 2) {
lcd_echo(1, 400, 0, 'Vetrak zapnut');
wait(1000);
lcd_echo(1, 400, 0, ' ');
}
}
releoff
{
sys[_rele] = 0;
_pom = _rele - 230;
if (_disp == 1) { // pokud je zapnuty displej
lcd_echo(1, 400, 0, 'Rele ', _pom, ' VYP');
wait(1000);
lcd_echo(1, 400, 0, ' ');
}
echotime();
echo('Rele ', _pom, ' VYP');
if (_pom == 2) {
lcd_echo(1, 400, 0, 'Vetrak vypnut');
wait(1000);
lcd_echo(1, 400, 0, ' ');
}
}
nastavrele
{
_va = sys[143]; //1-4 rele, 5 D0
if (_va == 0 || _va > 5) goto nastavrele_end; //zadna zmena
echo ('Pozadavek na rele - ', _va);
if (_va == 5) {
echo ('Pozadavek na S0');
_rele = 301;
if (sys[_rele] == 0) {
sys[_rele] = 1;
echotime();
echo ('S0 sepnut');
lcd_echo(1, 400, 0, 'S0 ZAP ');
wait(1000);
lcd_echo(1, 400, 0, ' ');
} else {
sys[_rele] = 0;
echotime();
echo ('S0 vypnut') ;}
lcd_echo(1, 400, 0, 'S0 VYP ');
wait(1000);
lcd_echo(1, 400, 0, ' ');
} else {
_rele = 230 + _va;
if (sys[_rele] == 0) { releon(); } else { releoff(); }
}
sys[143] = 0; //vynulovat prikaz
label nastavrele_end:
}
//------------------------------- posilani mailu pri akcich ---------------------------------------------------
posli_email1
{ // odesilani poplacove informace o zapnuti ventilatoru
email1 = 1; // pamatuj si ze si to poslal
echotime();
echo('Vetrak zapnut - email poslan');
lcd_echo(1, 400, 0, 'Vetrak zapnut');
wait(1000);
lcd_echo(1, 400, 0, ' ');
smtp_send('jaromir.lastovicka@centrum.cz', 'hlaseni', '"VENTILATOR ZAPNUT"\n'ram[150], ram[151]':' ,ram[152], ram[153]':', ram[154], ram[155]' hod\nTeplota Stridace XTS = ' ram[201] ,'.', ram[202], ' st. C\nTeplota MPPT VT-80 = ' ram[205], '.',ram[206], ' st. C\nTeplota ROZVADEC = ' ram[203], '.',ram[204], ' st. C');
}
posli_email2
{ // odesilani poplacove informace o zapnuti ventilatoru
email2 = 1; // pamatuj si ze si to poslal
echotime();
echo('Vetrak vypnut - email poslan');
lcd_echo(1, 400, 0, 'Vetrak vypnut');
wait(1000);
lcd_echo(1, 400, 0, ' ');
smtp_send('jaromir.lastovicka@centrum.cz', 'hlaseni', '"VENTILATOR VYPNUT"\n'ram[150], ram[151]':' ,ram[152], ram[153]':', ram[154], ram[155]' hod\nTeplota Stridace XTS = ' ram[201] ,'.', ram[202], ' st. C\nTeplota MPPT VT-80 = ' ram[205], '.',ram[206], ' st. C\nTeplota ROZVADEC = ' ram[203], '.',ram[204], ' st. C');
}
posli_email3
{ // odesilani poplacove informace o zapnuti ventilatoru
email3 = 1; // pamatuj si ze si to poslal
echotime();
echo('Vystup stridace zapnut - email poslan');
lcd_echo(1, 400, 0, 'Vystup stridace zapnut');
wait(1000);
lcd_echo(1, 400, 0, ' ');
smtp_send('jaromir.lastovicka@centrum.cz', 'hlaseni', '"VYSTUP STŘÍDAČE ZAPNUT"\n');
}
posli_email4
{ // odesilani poplacove informace o zapnuti ventilatoru
email4 = 1; // pamatuj si ze si to poslal
echotime();
echo('Vystup stridace vypnut - email poslan');
lcd_echo(1, 400, 0, 'Vystup stridace vypnut');
wait(1000);
lcd_echo(1, 400, 0, ' ');
smtp_send('jaromir.lastovicka@centrum.cz', 'hlaseni', '"VYSTUP STŘÍDAČE VYPNUT"\n');
}
//--------------------------------------------- procedura termostatu ---------------------------------------------------
termostat
{
// if (_termostattime>=sys[4]) return;
teplotaStuder = (sys[310] / 100);
teplotaRozvadec = (sys[311] / 100);
teplotaTristar = (sys[312] / 100);
// kdyz teplota kterehokoli prvku presahne stanovene meze, tak zapni ventilator
if (teplotaStuder > sys[147] || teplotaRozvadec > sys[147] || teplotaTristar > sys[147]) {
sys[232] = 255;
if (email1 == 0) posli_email1();
email2 = 0;
}
// kdyz vsechny prvky budou mit stanovenou teplotu "MINTEPLOTA", tak vypni ventilator
if (teplotaStuder < sys[146] && teplotaRozvadec < sys[146] && teplotaTristar < sys[146]) {
sys[232] = 0;
if (email2 == 0) posli_email2();
email1 = 0;
}
}
//------- procedura pro ovladani rele Re3 (vystup ze studeru) -----------------------------------------------
ovlrele
{
ram[144] = STOZAP*100;
ram[145] = STOVYP*100;
// kdyz napeti presahne napeti 27,7V (27700) zapne Re3 (vystup ze studeru)
if (ram[135] > ram[144]) {
sys[233] = 255;
if (email3 == 0) posli_email3();
email4 = 0;
}
// kdyz napeti presahne napeti 26,0V (26000) vypne Re3 (vystup ze studeru)
if (ram[135] < ram[145]) {
sys[233] = 0;
if (email4 == 0) posli_email4();
email3 = 0;
}
}
//------------------------ procedury pro cteni stavu rele astavu D0 ------------------------------------------
ctirele
{
if (sys[231] == 255) { relst1 = 1; } else { relst1 = 0; }
if (sys[232] == 255) { relst2 = 1; } else { relst2 = 0; }
if (sys[233] == 255) { relst3 = 1; } else { relst3 = 0; }
if (sys[234] == 255) { relst4 = 1; } else { relst4 = 0; }
if (sys[301] == 255) { D0 = 1; } else { D0 = 0; }
if (automat == 1) { _a = 1; } else { _a = 0; }
}
//------------------------ procedury pro zobrazování na displeji ------------------------------------------
ShowScreen1 // uvodni obrazovka
{
// lcd_clear(0);
lcd_echo(22, 100, 1, '1');// cislo obrazovky
lcd_echo(0, 100, 0, ' Poloostrovni FVE ');
lcd_echo(0, 200, 0, ' Mlada Boleslav ');
lcd_echo(0, 300, 0, ' V.04-23 2015 ');
lcd_echo(0, 400, 0, ' SDS MACRO + QUIDO ');
}
ShowScreen2 // hodnoty FVE
{
// lcd_clear(0);
ram[226] = ram[182] / 10000;
ram[227] = ram[183] / 10000;
lcd_echo(22, 100, 1, '2');// cislo obrazovky
ram[150] = sys[8] / 10;
ram[151] = sys[8] % 10;
ram[152] = sys[9] / 10;
ram[153] = sys[9] % 10;
ram[154] = sys[10] / 10;
ram[155] = sys[10] % 10;
lcd_echo(12, 100, 0, ram[150], ram[151]':', ram[152], ram[153]':', ram[154], ram[155]);
ram[156] = sys[5] / 10;
ram[157] = sys[5] % 10;
ram[158] = sys[6] / 10;
ram[159] = sys[6] % 10;
ram[160] = sys[7] / 10;
ram[161] = sys[7] % 10;
lcd_echo(1, 100, 0, ram[156], ram[157], '.', ram[158], ram[159], '.', ram[160], ram[161], ' ');
lcd_echo(1, 2, 0, 'B ', b1_volt_a, '.', b1_volt_b, 'V', ' ', b4_amp_a, '.', b4_amp_b, 'A ', batwat,'W');
// lcd_echo(1,200,0,text[0];
lcd_echo(1, 3, 0, 'MPPT ', b3_amp_a, '.', b3_amp_b, 'A ', panelbat,'W');
// lcd_echo(1, 4, 0, 'V ', VDCd, 'Wh ', 'S ' ,SDCd, 'Wh');
lcd_echo(1, 4, 0, 'V ', ram[226], 'Wh ', 'S ' ,ram[227], 'Wh');
}
ShowScreen3 // rele
{
lcd_echo(22, 100, 1, '3');// cislo obrazovky
lcd_echo(1, 100, 0, 'RELE QUIDO SDS');
lcd_echo(1, 200, 0, '1234567890123456 12345');
lcd_echo(1, 300, 0, ram[111], ram[112], ram[113], ram[114], ram[115], ram[116], ram[117], ram[118], ram[119], ram[120], ram[121], ram[122], ram[123], ram[124], ram[125], ram[126]);
lcd_echo(18, 300, 0, relst1, relst2, relst3, relst4, sys[301];
lcd_echo(1, 400, 0, _a, ' ');
}
PageRele
{
// RELE na SDS-ku
if (pagerele == 1) { _r = 1; lcd_echo(18, 400, 0, 'r=', _r); } // 1.rele SDS
if (pagerele == 2) { _r = 2; lcd_echo(18, 400, 0, 'r=', _r); } // 2.rele SDS
if (pagerele == 3) { _r = 3; lcd_echo(18, 400, 0, 'r=', _r); } // 3.rele SDS
if (pagerele == 4) { _r = 4; lcd_echo(18, 400, 0, 'r=', _r); } // 4.rele SDS
// RELE na vstupu D0
if (pagerele ==5) { _r = 5; lcd_echo(18, 400, 0, 'r=', _r); } // rele na S0
// RELE v sade QUIDO
if (pagerele == 6) { _q = 1; lcd_echo(18, 400, 0, 'q=', _q); } // 1.rele QUIDO
if (pagerele == 7) { _q = 2; lcd_echo(18, 400, 0, 'q=', _q); } // 2.rele QUIDO
if (pagerele == 8) { _q = 3; lcd_echo(18, 400, 0, 'q=', _q); } // 3.rele QUIDO
if (pagerele == 9) { _q = 4; lcd_echo(18, 400, 0, 'q=', _q); } // 4.rele QUIDO
if (pagerele == 10) { _q = 5; lcd_echo(18, 400, 0, 'q=', _q); } // 5.rele QUIDO
if (pagerele == 11) { _q = 6; lcd_echo(18, 400, 0, 'q=', _q); } // 6.rele QUIDO
if (pagerele == 12) { _q = 7; lcd_echo(18, 400, 0, 'q=', _q); } // 7.rele QUIDO
if (pagerele == 13) { _q = 8; lcd_echo(18, 400, 0, 'q=', _q); } // 8.rele QUIDO
if (pagerele == 14) { _q = 9; lcd_echo(18, 400, 0, 'q=', _q); } // 9.rele QUIDO
if (pagerele == 15) { _q = 10; lcd_echo(18, 400, 0, 'q=', _q); } // 10.rele QUIDO
if (pagerele == 16) { _q = 11; lcd_echo(18, 400, 0, 'q=', _q); } // 11.rele QUIDO
if (pagerele == 17) { _q = 12; lcd_echo(18, 400, 0, 'q=', _q); } // 12.rele QUIDO
if (pagerele == 18) { _q = 13; lcd_echo(18, 400, 0, 'q=', _q); } // 13.rele QUIDO
if (pagerele == 19) { _q = 14; lcd_echo(18, 400, 0, 'q=', _q); } // 14.rele QUIDO
if (pagerele == 20) { _q = 15; lcd_echo(18, 400, 0, 'q=', _q); } // 15.rele QUIDO
if (pagerele == 21) { _q = 16; lcd_echo(18, 400, 0, 'q=', _q); } // 16.rele QUIDO
if (pagerele == 22) { automat = 1; lcd_echo(18, 400, 0, 'a=', _a); } //
}
ShowScreen4 // Teploty
{
lcd_echo(22, 100, 1, '4'); // cislo obrazovky
// 1.teplomer (stridac STUDER XTS)
ram[201] = sys[310] / 100;
ram[202] = sys[310] % 100;
// 2.teplomer (ROZVADEC)
ram[203] = sys[311] / 100;
ram[204] = sys[311] % 100;
// 3.teplomer (regulator MPPT VT-80)
ram[205] = sys[312] / 100;
ram[206] = sys[312] % 100;
// 5.teplomer (BATERIE)
ram[207] = sys[314] / 100;
ram[208] = sys[314] % 100;
// 6.teplomer (VENKOVNI)
ram[209] = sys[315] / 100; // pred desetinou tecko
ram[210] = sys[315] % 100; // za desetinou tecko
if (ram[210] >= 0) goto celsius1; // osetreni zaporneho cisla desetinne tecky
ram[210] = 0 - ram[210]; // rucni doplneni cisla 0 pokud hodnota je 0-9
label celsius1:
// 7.teplomer (FV Panel)
ram[211] = sys[316] / 100;
ram[212] = sys[316] % 100;
if (ram[212] >= 0) goto celsius2; // osetreni zaporneho cisla desetinne tecky
ram[212] = 0 - ram[212]; // rucni doplneni cisla 0 pokud hodnota je 0-9
label celsius2:
// vypocet teploty procesoru
// ram[213] = 879 * sys[46]; //1426910
// ram[214] = 590000 - ram[213]; //16192700
// ram[215] = 5 * ram[214]; //80963500
// ram[216] = ram[215] / 2; //40481750
// ram[217] = ram[216] / 10000;
// ram[218] = ram[215] / 200;
// ram[219] = ram[218] % 100;
lcd_echo(0, 100, 0, 'TEPLOTY ', email1, ' ');
lcd_echo(12, 100, 0, 'SDS ', ram[217], '.', ram[219], 'C', ' ');
lcd_echo(0, 2, 0, 'XTS ', ram[201], '.', ram[202], 'C VT ', ram[205], '.', ram[206], 'C ');
lcd_echo(0, 3, 0, 'BAT ', ram[207], '.', ram[208], 'C ROZ ', ram[203], '.', ram[204], 'C ');
lcd_echo(0, 4, 0, 'OUT ', ram[209], '.', ram[210], 'C FVP ', ram[211], '.', ram[212], 'C ');
}
ShowScreen5 // Cteni hodnot z elektromeru
{
//lcd_clear(0);
lcd_echo(22, 100, 1, '5'); // cislo obrazovky
lcd_echo(0, 100, 0, 'ELEKTROMERY ');
ram[220] = 360000000 / (sys[592] * (sys[559]/10));
ram[221] = sys[493] / 1000;
lcd_echo(0, 2, 0, 'DS P=', ram[220], 'W E=', ram[221], 'kWh ');
ram[222] = 360000000 / (sys[593] * (sys[560]/10));
ram[223] = sys[494] / 1000;
lcd_echo(0, 400, 0, '?? P=', ram[222], 'W E=', ram[223], 'kWh ');
ram[224] = 360000000 / (sys[594] * (sys[561]/10));
ram[225] = sys[495] / 1000;
lcd_echo(0, 300, 0, 'FV P=', ram[224], 'W E=', ram[225], 'kWh ');
}
LCD2
{
if (_disp == 0) {
lcd_echo(1, 100, 0, 'NEMAS ZAPNUTY DISPLEJ');
echo('NEMAS ZAPNUTY DISPLEJ');
} else {
// rolovani menu obrazovky
//if((ODPOCITAVAC_SEKUND == 0 || sys[151] == 0) && automat == 1) {
if(sys[151] == 0) {
page++;
if (page > MAXPAGE){
page = 1;
}
}
// ZAP/VYP rele na SDS-ku+D0
if (pagerele > 0 && pagerele < 6) {
if(sys[152] == 0) {
sys[143] = _r;
}
}
if (pagerele > 6 && pagerele < 22) {
if(sys[152] == 0) {
sys[141] = _q;
}
}
if (pagerele == 23) {
if(sys[152] == 0) {
_a = 0;
}
}
// rolovani cisel rele
if (sys[153] == 0) {
pagerele++;
if (pagerele > MAXPAGERELE){
pagerele = 1;
}
}
if (sys[154] == 0) {
pagerele--;
if (pagerele < 1){
pagerele = MAXPAGERELE; // MAXPAGERELE = 21 16 rele quido + 4 rele SDS + D0
}
}
}
}
RefreshLCD
{
if (page == 1) { ShowScreen1();}
if (page == 2) { ShowScreen2();}
if (page == 3) { ShowScreen3(); PageRele(); }
if (page == 4) { ShowScreen4();}
if (page == 5) { ShowScreen5();}
LCD2();
nastavrele();
ctirele();
}
//------------------------ procedury pro zobrazování stavu elektromeru do konzole ---------------------------------------
writeconsole
{
if (_consoletime>=sys[4]) return;
ram[190] = 360000000 / (sys[592]* (sys[560]/10));
ram[191] = sys[493] / 1000;
echotime();
echo('OPTO 1 Verejna sit: ' 'imp.time=', sys[592], 'msec, konstanta (imp./kWh)=', sys[559], ', akt.vykon=', ram[190], 'W, energie=' ram[191], 'kWh');
ram[192] = 360000000 / (sys[593] * (sys[561]/10));
ram[193] = sys[494] / 1000;
echo('OPTO 2 Zaloha: ' 'imp.time=', sys[593], 'msec, konstanta (imp./kWh)=', sys[560], ', akt.vykon=', ram[192], 'W, energie=' ram[193], 'kWh');
ram[194] = 360000000 / (sys[594] * (sys[562]/10));
ram[195] = sys[495] / 1000;
echo('OPTO 3 FVE: ' 'imp.time=', sys[594], 'msec, konstanta (imp./kWh)=', sys[561], ', akt.vykon=', ram[194], 'W, energie=' ram[195], 'kWh');
_consoletime=sys[4] + 3600; //dalsi kontrola za x vterin
}
raspberry // popdprogram na odesilani dat do raspberry
{
if (_raspberrytime>=sys[4]) return;
sys[77]=2; //nastaveni modu http_get
http_get(192,168,1,4,'192.168.1.4','/sdsmacro.php?&t1=',sys[310],'&t2=',sys[311],'&t3=',sys[312],'&t4=',sys[313],'&t5=',sys[314],'&t6=',sys[315],'&t7=',sys[316],'&t8=',sys[317],'&t9=',sys[318],'&t10=',sys[319],'&t11=',sys[320],'&t12=',sys[321],'&t13=',sys[322],'&t14=',sys[323],'&t15=',sys[324],'&t16=',sys[325],
'&tov1=',sys[493],'&tov2=',sys[494],'&tov3=',sys[495],'&kon1=',sys[559],'&kon2=',sys[560],'&kon3=',sys[561],'&av1=', sys[592],'&av2=', sys[593],'&av3=', sys[594],'&tsds=',sys[46]);
// echotime();
// echo('Teploty odeslany na raspberry, OK.');
_raspberrytime = sys[4] + 60; //dalsi kontrola za x vterin
}
//********* kazdou minutu zobrazeni aktualnich vykonu do konzole *************
minuta
{
if (_consoletime4>=sys[4]) return;
VDCm1 += ram[140]; // Soucet DC energie panelu za minutu
SDCm1 += ram[139]; // Soucet energie baterie +/- za minutu
ram[60] = VDCm1;
ram[61] = SDCm1;
_consoletime4 = sys[4] + 10; //dalsi kontrola za x vterin
VDCmin = VDCm1 / 45; // Energie panel za 60 s
if (SDCm1 < 0) {
SDCmin = SDCm1 / 45; // 7 puvodne, Energie baterie za 60 s
} else {
SDCmin = 0;
}
if (_consoletime2>=sys[4]) return;
// if (sys[10] == 30 || sys[10] == 34){
VDC24h += VDCmin / 60; // Soucet DC energie panelu
SDC24h += SDCmin / 60; // 36 puvodne, Soucet energie baterie +/-
ram[62] = VDC24h;
ram[63] = SDC24h;
VDCd = VDC24h / 10;
SDCd = SDC24h / 10;
_consoletime2=sys[4] + 60; //dalsi kontrola za x vterin
VDCm1 = 0; // nuluj kazdou minutu
SDCm1 = 0;
NBATm1 = 0;
// }
}
mam_24_hod //nulovani pocitadel kdyz je dany cas
{
if ( sys[8] == 0 && (sys[9] == 0 || sys[9] == 2)) { // kazdy den o pulnoci
sys[140] = sys[493] ; // stav v pulnoci SPOTREBA 220 CEZ
echo('zapis den SPOTREBA 220V') ;
sys[142] = sys[495] ; // stav v pulnoci VYROBA 220 STRIDAC
echo('zapis den VYROBA 220V stridac') ;
sys[144] = VDC24h ; // stav v pulnoci VYROBA DC za MPPT
echo('zapis den VYROBA DC za MPPT') ;
sys[145] = SDC24h ; // stav v pulnoci SPOTREBA DC BATERIE
echo('zapis den SPOTREBA DC z BATERIE') ;
// sys[147] = NBAT24h ; // stav v pulnoci SPOTREBA dohledu FVE
// echo('zapis den SPOTREBA DC dohledu FVE') ;
VDCd = 0;
SDCd = 0;
}
if ( sys[5] == 1 && sys[8] == 0 && (sys[9] == 0 || sys[9] == 2) ) { // kazdého 1 v mesici
sys[100] = sys[493] ; // 1 v mesici stav v pulnoci SPOTREBA 220 CEZ
echo('zapis mesic SPOTREBA 220V') ;
sys[101] = sys[495] ; // 1 v mesici stav v pulnoci VYROBA 220 STRIDAC
echo('zapis mesic VYROBA 220V stridac') ;
sys[102] = VDC24h ; // 1 v mesici stav v pulnoci VYROBA DC za MPPT
echo('zapis mesic VYROBA DC za MPPT') ;
sys[103] = SDC24h ; // 1 v mesici stav v pulnoci SPOTREBA DC BATERIE
echo('zapis mesic SPOTREBA DC z BATERIE') ;
sys[104] = NBAT24h ; // 1 v mesici stav v pulnoci SPOTREBA dohledu FVE
echo('zapis mesic SPOTREBA DC dohledu FVE') ;
}
if ( sys[5] == 1 && sys[6] == 1 && sys[8] == 0 && (sys[9] == 0 || sys[9] == 2) ) // kazdeho 1 v roce S I L V E S T R A
{
sys[105] = sys[493] ; // 1.1 v roce stav v pulnoci SPOTREBA 220 CEZ
echo('zapis rok SPOTREBA 220V') ;
sys[106] = sys[495] ; // 1.1 v roku stav v pulnoci VYROBA 220 STRIDAC
echo('zapis rok VYROBA 220V stridac') ;
sys[107] = VDC24h ; // 1.1 v roce stav v pulnoci VYROBA DC za MPPT
echo('zapis rok VYROBA DC za MPPT') ;
sys[108] = SDC24h ; // 1.1 v roce stav v pulnoci SPOTREBA DC BATERIE
echo('zapis rok SPOTREBA DC z BATERIE') ;
sys[109] = NBAT24h ; // 1.1 v roce stav v pulnoci SPOTREBA dohledu FVE
echo('zapis rok SPOTREBA DC dohledu FVE') ;
}
_beh_min24 = sys[9]; // naplneni promenne pro zajisteni neopakovani funkce v teze sekunde
}
//------------------------------------ startovaci procedury ------------------------------------------------------
init
{
sys[146] = 45; // vychozi teplota vypnuti vetraku
sys[147] = 50; // vychozi teplota zapnuti vetraku
echotime();
echo('Start programu');
if (_disp == 1) {
lcd_clear(0);
lcd_echo(1, 400, 1, 'vitej v SDS');
}
// sys[77]=0; //http_get odpovet nechci do ram[]
// sys[78]=0; //http_get odpovet nechci do ram[]
_portal_timeout = 1; //odeslat data ihned
// ******* uzivatelsky nastavitelne promenne ***********
_disp=1; //display na sds macro (0-vypnuty, 1-zapnuty)
sys[140] = sys[493];
sys[142] = sys[495];
// ------- vase promenne sem -------
serial_set(9600, 8, 1, 0);
ShowScreen2();
}
//------------------------------------ H L A V N I P R O G R A M -----------------------------------------------
main
{
//statistiky
_beh_min = -1; // naplneni promenne pro zajisteni neopakovani funkce v teze sekunde po zacatku programu
_beh_min24 = -1; // naplneni promenne pro zajisteni neopakovani funkce v teze sekunde po zacatku programu
//odeslani dat na portal v nastaveny interval
if (_portal_timeout > 0 && _portal_timeout < sys[3]) {
portal_nastav();
}
// if (_portal_timeout > 0) {
// php();
// }
if (_portal_dns == 0) portal_dns();
if (_portal_dns != 0 && _portal_data > 0) odesli_data_na_portal();
// ------- volani vlastnich procedur sem -------
rs232();
nastav232();
akustav();
writeconsole();
minuta();
termostat();
ovlrele();
raspberry;
ODPOCITAVAC_SEKUND = 2;
cekej_dale:
nacti_hodnoty();
RefreshLCD();
// label cekej:
if (sys[8] == 0 && (sys[9] == 0 || sys[9] == 2) && sys[10] == 0 && sys[9] != _beh_min24 ) mam_24_hod(); //každy den v 00 a 02 hod NES + zajisteni neopakovani funkce v teze sekunde po zacatku programu
// (jen pro jistotu jeste navic v 02, ponevadz se to obcas neprovedlo)
if (sys[10] == 40 && sys[9] != _beh_min ) //každou minutu ve čtyřicáté sekundě NES + zajisteni neopakovani funkce v teze sekunde po zacatku programu
{
ram[180] = 1000 * (sys[493] - sys[140] ) / sys[559]; // do ram[180] se zapise 24 hod SPOTREBA 220V od CEZ
ram[181] = 1000 * (sys[495] - sys[142] ) / sys[561]; // do ram[181] se zapise 24 hod VYROBA 220V STRIDAC
ram[182] = 1000 * (VDC24h - sys[144] ); // do ram[182] se zapise 24 hod VYROBA DC za MPPT
ram[183] = 1000 * ((SDC24h - sys[145]) * (-1)); // do ram[183] se zapise 24 hod SPOTREBA DC BATERIE
// ram[184] = 1000 * (NBAT24h - sys[147] ); // do ram[184] se zapise 24 hod SPOTREBA dohledu FVE
ram[185] = 1000 * (sys[493] - sys[100] ) / sys[559]; // do ram[185] se zapise mesicni SPOTREBA 220V od CEZ
ram[186] = 1000 * (sys[495] - sys[101] ) / sys[561]; // do ram[186] se zapise mesicni VYROBA 220V STRIDAC
ram[187] = 1000 * (VDC24h - sys[102] ); // do ram[187] se zapise mesicni VYROBA DC za MPPT
ram[188] = 1000 * ((SDC24h - sys[103]) * (-1)); // do ram[188] se zapise mesicni SPOTREBA DC BATERIE
ram[189] = 1000 * (NBAT24h - sys[104] ); // do ram[189] se zapise mesicni SPOTREBA dohledu FVE
ram[190] = 1000 * (sys[493] - sys[105] ) / sys[559]; // do ram[190] se zapise rocni SPOTREBA 220V od CEZ
ram[191] = 1000 * (sys[495] - sys[106] ) / sys[561]; // do ram[191] se zapise rocni VYROBA 220V STRIDAC
ram[192] = 1000 * (VDC24h - sys[107] ); // do ram[192] se zapise rocni VYROBA DC za MPPT
ram[193] = 1000 * ((SDC24h - sys[108]) * (-1)); // do ram[193] se zapise rocni SPOTREBA DC BATERIE
ram[194] = 1000 * (NBAT24h - sys[109] ); // do ram[194] se zapise rocni SPOTREBA dohledu FVE
_beh_min = sys[9]; // zajisteni neopakovani funkce v teze sekunde po zacatku programu - dalsi krok
_beh_min24 = sys[9]; // zajisteni neopakovani funkce v teze sekunde po zacatku programu - dalsi krok
}
if (ODPOCITAVAC_SEKUND > 0) goto cekej_dale;
//konec - main bude spusteno automaticky znovu
}
Kód: Vybrat vše
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<TITLE>SDS-MACRO RS485 control panel</TITLE>
<TITLE>Verze 4.1 ze dne 13.4.2013 19:00 hod</TITLE>
<META content="text/html; charset=windows-1250" http-equiv=Content-Type>
<META content="jaromir.lastovicka" name=author>
<META content="sds-macro, sds-micro, sds, macro, micro, onlinetechnology, csphone" name=keywords>
<META content="sds-macro, sds-micro, sds, macro, micro, onlinetechnology, csphone" name=description>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<STYLE title=currentStyle type=text/css media=screen>
body {
font-family:verdana, arial, sans-serif; font-size:12px;
word-wrap:break-word; background:#000; padding:20px;
}
a {text-decoration:none;color:#FEFEA3;}
a:hover {text-decoration:none;color:#FEFEA3;}
#toppanel {}
#webcam {background:#222; width:640px; height:480px;}
#control {float:right; width:450px;}
#outputs {background:#aaa; float:right; width:450px;}
#bottpanel {background:#000000; width:640px; margin:10px 0px 0px 0px;}
#tempa {width:360px; float:left; margin:0px 0px 0px 0px;}
#tempb {width:310px; float:right; margin:0px 0px 0px 10px;}
#header {color:#aaa}
#footer {clear:both; padding-top:30px;}
#footer p {color:#3366CC;}
#footer a {color:#FEFEA3;}
#footer a:hover {text-decoration:none;}
h1 {font-size:18px; margin:0; padding-bottom:10px; color:#ddd;}
h2 {font-size:15px; margin:0; padding-bottom:5px; color:#3366CC;}
fieldset.rs232 {
border:1px solid #777;
margin: 0px 0px 2px 0px;
padding: 0px 0px 10px 10px;
color:#fff;
text-align:right;
}
fieldset {
border:1px solid #777;
margin: 0px 0px 10px 0px;
padding: 0px 0px 10px 10px;
color:#fff;
text-align:left;
}
legend {
margin-left: 0px;
padding: 0.2em 0.5em;
border:1px solid #777;
color:#0cc;
font-size:14px;
font-weight:bold;
}
.tlacitko{
margin: 10px 10px 0px 0px;
padding: 5px;
color:#FEFEA3;
text-align:left;
width:60px;
height:15px;
display:block;
border:1px solid #777;
float:left;
text-align:center;
}
.cislo0, .cislo1{
margin: 10px 0px 0px 0px;
padding: 5px 0px 5px 0px;
color:#0cc;
text-align:center;
width:25px;
height:15px;
border-width: 1px 0px 1px 1px;
border-style: solid;
border-color: #777;
float:left;
background:#FF3300;
}
.cislo0{
color:#777;
background:#000;
}
.cislo1{
color:#000;
background:#33FF33;
}
.cislo10, .cislo11{
width:200px;
color:#000;
line-height:20x;
margin: 0px 0px 0px 0px;
background:#000;
}
.cislo10{
color:#FF0000;
background:#000;
}
.cislo11{
color:#33CC00;
background:#000;
}
.col1, .col5 {
color:#ccc;
line-height:20px;
margin: 3px 0px 0px 0px;
}
.col1{
color:#ccc;
background:#000;
}
.col5{
width:200px;
color:#000;
text-align:center;
line-height:20x;
margin: 0px 0px 0px 150px;
background:#33FF33;
}
.col2 {
width:250px;
color:#ccc;
line-height:20x;
float:right;
}
.col23 {
width:145px;
color:#ccc;
line-height:20px;
float:right;
}
.col3 {
width:50px;
color:#FEFEA3;
line-height:20px;
float:right;
}
.col1t {
color:#ccc;
line-height:20px;
margin: 3px 0px 0px 0px;
}
.col2t {
width:120px;
color:#ccc;
line-height:20px;
float:right;
}
input{
height:17px;
}
.pwm {
width:30px;
}
</STYLE>
<!--[if lte IE 7]>
<style type="text/css">
body {word-wrap:break-word;}
#outer2 {float:left; display:inline; margin-left:10px; margin-right:10px;}
#wrapper {display:inline-block;}
</style>
<![endif]-->
<!--
sys141 - ovládání RS232
rb1, rb2, rb3, rb4, db0 - ovládací tlačítka na rele a D0
rs1, rs2, rs3, rs4, ds0 - label pro zobrazeni stavu rele a D0
sys146 - kmitičet PWM
d0 - ovládání PWM
a1, c1, a2, c2, a3, c3, a4, c4 - aktuální, celková spotřeba kwh
o1, o2, o3 - cena za energii
ad1, ad2, ad3, ad4 - napěťové vstupy
cas - aktuální čas
ip - adresa watchdog (EGON)
temp1...temp32 - čidla teploty
t1 .... t16 - čidla teploty z druhého SDS
-->
<script type="text/javascript">
var tt;
var pom;
var req232=false; //rs232
var reqRele=false; //rele
var reqS0=false; //vykony
var reqAD=false; //AD a cas
var reqTemp=false; //D0 a teploty
var reqProud=false; //Uzivatelske promenne sys[140]- sys[147]
var reqRam=false; //Hodnoty ram[137] - ram[141]
var reqDENMESROK=false; //statistiky
var firstTime=true; //jen poprve nastavit
var dc; //dc hodnoty
//Ovladani rele QUIDO tlacitky pres RS 232 rele 1 - rele 3 (RESTART)
function req232aComplete(){
if(req232a.readyState == 4){
if(req232a.status == 200){
var rE=req232a.responseText.split("|");
if (rE.length==3) {
for (i=0;i<3;i++) {
if (rE[i]==0) {
document.getElementById("cis"+(i+1)).className="cislo0";
document.getElementById("btn"+(i+1)).innerHTML="RESTART";
} else {
document.getElementById("cis"+(i+1)).className="cislo1";
document.getElementById("btn"+(i+1)).innerHTML="DELAM";
}
}
}
}
}
}
//Ovladani rele QUIDO tlacitky pres RS 232 rele 4 - rele 16 (ZAP/VYP)
function req232bComplete(){
if(req232b.readyState == 4){
if(req232b.status == 200){
var rE=req232b.responseText.split("|");
if (rE.length==16) {
for (i=3;i<16;i++) {
if (rE[i]==0) {
document.getElementById("cis"+(i+1)).className="cislo0";
document.getElementById("btn"+(i+1)).innerHTML="ZAPNI";
} else {
document.getElementById("cis"+(i+1)).className="cislo1";
document.getElementById("btn"+(i+1)).innerHTML="VYPNI";
}
}
}
}
}
}
//Změna barvy tlacitka Nabijeni Baterie v závislosti na hodnote ram[131]
function reqIbComplete(){
if(reqIb.readyState == 4){
if(reqIb.status == 200){
var rE=reqIb.responseText.split("|");
if (rE[0]==0) {
document.getElementById("Icis").className="cislo10";
document.getElementById("Ibtn").innerHTML="NABIJIM";
} else {
document.getElementById("Icis").className="cislo11";
document.getElementById("Ibtn").innerHTML="VYBIJIM";
}
}
}
}
//Hodnoty ram[139] - ram[146]
function reqRamComplete(){
if(reqRam.readyState == 4){
if(reqRam.status == 200){
var rE=reqRam.responseText.split("|");
document.getElementById("ram139").innerHTML=rE[0]/100+" W";
document.getElementById("ram140").innerHTML=rE[1]/100+" W";
document.getElementById("ram141").innerHTML=rE[2]+" %";
document.getElementById("ram142").innerHTML=rE[3]/1000+" A";
document.getElementById("ram143").innerHTML=rE[4]/1000+" A";
document.getElementById("ram144").innerHTML=rE[5]/1000+" V";
document.getElementById("ram145").innerHTML=rE[6]/1000+" V";
document.getElementById("ram146").innerHTML=rE[7]/100+" °C";
}
}
}
//rele
function reqReleComplete(){
if(reqRele.readyState == 4){
if(reqRele.status == 200){
var rE=reqRele.responseText.split("|");
for (i=1;i<=4;i++) {
if (rE[i-1]==0) {
document.getElementById("rs"+i).className="cislo0";
document.getElementById("rb"+i).innerHTML="ZAPNI";
} else {
document.getElementById("rs"+i).className="cislo1";
document.getElementById("rb"+i).innerHTML="VYPNI";
}
}
}
}
}
//ventilator
function reqVENComplete(){
if(reqVEN.readyState == 4){
if(reqVEN.status == 200){
var rE=reqVEN.responseText.split("|");
document.getElementById("sys146").value=rE[0];
document.getElementById("sys147").value=rE[1];
}
}
}
//vykony
function reqS0Complete(){
if(reqS0.readyState == 4){
if(reqS0.status == 200){
var rE=reqS0.responseText.split("|");
document.getElementById("p1a").innerHTML=rE[5];
document.getElementById("p1c").innerHTML=rE[5];
document.getElementById("p1d").innerHTML=rE[5];
document.getElementById("a1").innerHTML=rE[8];
document.getElementById("c1").innerHTML=rE[6];
document.getElementById("o1").innerHTML=rE[9];
document.getElementById("p2a").innerHTML=rE[12];
document.getElementById("p2c").innerHTML=rE[12];
document.getElementById("p2d").innerHTML=rE[12];
document.getElementById("a2").innerHTML=rE[15];
document.getElementById("c2").innerHTML=rE[13];
document.getElementById("o2").innerHTML=rE[16];
document.getElementById("p3a").innerHTML=rE[19];
document.getElementById("p3c").innerHTML=rE[19];
document.getElementById("p3d").innerHTML=rE[19];
document.getElementById("a3").innerHTML=rE[22];
document.getElementById("c3").innerHTML=rE[20];
document.getElementById("o3").innerHTML=rE[23];
document.getElementById("p4a").innerHTML=rE[26];
document.getElementById("p4c").innerHTML=rE[26];
document.getElementById("a4").innerHTML=rE[29];
document.getElementById("c4").innerHTML=rE[27];
}
}
}
//AD + cas + IP
function reqADComplete(){
if(reqAD.readyState == 4){
if(reqAD.status == 200){
var rE=reqAD.responseText.split("|");
document.getElementById("ad1").innerHTML=rE[12];
document.getElementById("ad2").innerHTML=rE[13];
document.getElementById("ad3").innerHTML=rE[14];
document.getElementById("ad4").innerHTML=rE[15];
document.getElementById("cas").innerHTML=rE[17];
document.getElementById("ip").innerHTML=rE[16];
}
}
}
//D0 + teploty
function reqTempComplete(){
if(reqTemp.readyState == 4){
if(reqTemp.status == 200){
if (reqTemp.responseText!='') {
var rE=reqTemp.responseText.split("|");
if (rE[0]==0) {
document.getElementById('ds0').className="cislo0";
document.getElementById('db0').innerHTML="ZAPNI";
} else {
document.getElementById('ds0').className="cislo1";
document.getElementById('db0').innerHTML="VYPNI";
}
var cidlo='';
for (i=1;i<=16;i++) {
cidlo='temp'+i;
pom=rE[i+8]/100;
if (pom>200) {
document.getElementById(cidlo).innerHTML="";
} else {
pom=pom.toFixed(2)
document.getElementById(cidlo).innerHTML=pom+" °C";
}
}
}
}
}
}
//Statistiky
function reqDENMESROKComplete(){
if(reqDENMESROK.readyState == 4){
if(reqDENMESROK.status == 200){
var rE=reqDENMESROK.responseText.split("|");
document.getElementById("sp_den_cez").innerHTML=rE[0]/1000+" kWh";
document.getElementById("vy_den_st").innerHTML=rE[1]/1000+" kWh";
document.getElementById("vy_den_mppt").innerHTML=rE[2]/10000000+" kWh";
document.getElementById("sp_den_bat").innerHTML=rE[3]/10000000+" kWh";
document.getElementById("sp_den_do").innerHTML=rE[4]/1000000+" kWh";
document.getElementById("sp_mes_cez").innerHTML=rE[5]/1000+" kWh";
document.getElementById("vy_mes_st").innerHTML=rE[6]/1000+" kWh";
document.getElementById("vy_mes_mppt").innerHTML=rE[7]/10000000+" kWh";
document.getElementById("sp_mes_bat").innerHTML=rE[8]/10000000+" kWh";
document.getElementById("sp_mes_do").innerHTML=rE[9]/1000000+" kWh";
document.getElementById("sp_rok_cez").innerHTML=rE[10]/1000+" kWh";
document.getElementById("vy_rok_st").innerHTML=rE[11]/1000+" kWh";
document.getElementById("vy_rok_mppt").innerHTML=rE[12]/10000000+" kWh";
document.getElementById("sp_rok_bat").innerHTML=rE[13]/10000000+" kWh";
document.getElementById("sp_rok_do").innerHTML=rE[14]/1000000+" kWh";
}
}
}
//smycka pro nacitani hodnot - timeout 2000
function sdsps(){
req232a=false;
req232b=false;
reqIb=false;
reqRele=false;
reqS0=false;
reqAD=false;
reqTemp=false;
reqRam=false;
reqVEN=false;
regDENMESROK=false;
if(window.XMLHttpRequest){
req232a=new XMLHttpRequest();
req232b=new XMLHttpRequest();
reqIb=new XMLHttpRequest();
reqRele=new XMLHttpRequest();
reqS0=new XMLHttpRequest();
reqAD=new XMLHttpRequest();
reqTemp=new XMLHttpRequest();
reqRam=new XMLHttpRequest();
reqVEN=new XMLHttpRequest();
reqDENMESROK=new XMLHttpRequest();
}
else if (window.ActiveXObject){
req232a=new ActiveXObject("Microsoft.XMLHTTP");
req232b=new ActiveXObject("Microsoft.XMLHTTP");
reqIb=new ActiveXObject("Microsoft.XMLHTTP");
reqRele=new ActiveXObject("Microsoft.XMLHTTP");
reqS0=new ActiveXObject("Microsoft.XMLHTTP");
reqAD=new ActiveXObject("Microsoft.XMLHTTP");
reqTemp=new ActiveXObject("Microsoft.XMLHTTP");
reqRam=new ActiveXObject("Microsoft.XMLHTTP");
reqVEN=new ActiveXObject("Microsoft.XMLHTTP");
reqDENMESROK=new ActiveXObject("Microsoft.XMLHTTP");
}
//rs232a - 3 pozic
if (req232a){
req232a.open("GET", "get_ram[111]?rn=3&rand="+Math.random(), true);
req232a.onreadystatechange = req232aComplete;
req232a.send(null);
}
//rs232b - 4 - 16 pozice
if (req232b){
req232b.open("GET", "get_ram[111]?rn=16&rand="+Math.random(), true);
req232b.onreadystatechange = req232bComplete;
req232b.send(null);
}
//Tlacitko mereni proudu
if (reqRam){
reqIb.open("GET", "get_ram[131]?rn=1&rand="+Math.random(), true);
reqIb.onreadystatechange = reqIbComplete;
reqIb.send(null);
}
//Hodnoty ram[139] - ram[146]
if (reqRam){
reqRam.open("GET", "get_ram[139]?rn=8&rand="+Math.random(), true);
reqRam.onreadystatechange = reqRamComplete;
reqRam.send(null);
}
//rele
if (reqRele){
reqRele.open("GET", "get_sys[231]?rn=4&rand="+Math.random(), true);
reqRele.onreadystatechange = reqReleComplete;
reqRele.send(null);
}
//ventilator
if (firstTime) {
firstTime=false;
if (reqVEN){
reqVEN.open("GET", "get_sys[146]?rn=2&rand="+Math.random(), true);
reqVEN.onreadystatechange = reqVENComplete;
reqVEN.send(null);
}
}
//vykony
if (reqS0){
reqS0.open("GET", "cgi_dyeA?rand="+Math.random(), true);
reqS0.onreadystatechange = reqS0Complete;
reqS0.send(null);
}
//AD
if (reqAD){
reqAD.open("GET", "cgi_dys?rand="+Math.random(), true);
reqAD.onreadystatechange = reqADComplete;
reqAD.send(null);
}
//D0 a teploty
if (reqTemp){
//301 je D0, 310 jsou teploty
reqTemp.open("GET", "get_sys[301]?rn=26&rand="+Math.random(), true);
reqTemp.onreadystatechange = reqTempComplete;
reqTemp.send(null);
}
//Statistiky
if (reqDENMESROK){
reqDENMESROK.open("GET", "get_ram[180]?rn=15&rand="+Math.random(), true);
reqDENMESROK.onreadystatechange = reqDENMESROKComplete;
reqDENMESROK.send(null);
}
t=setTimeout("sdsps()",1000);
}
var sub=false;
function getSub(){
sub=false;
if(window.XMLHttpRequest){
sub=new XMLHttpRequest();
}
else if(window.ActiveXObject){
sub=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function reqSetComplete(){
if(sub.readyState==4){
if(sub.status==200){;}
}
}
function sdsc_S(sysn,val){
if (!sub){getSub();};
sub.open("GET", "sdscep?sys"+sysn+"="+val, true);
sub.onreadystatechange=reqSetComplete;
sub.send(null);
firstTime=true; //po vypnuti nacist data
}
function sdsc_S_ev(sysn){
if (!sub){getSub();};
aa=document.getElementById("sys"+sysn).value;
sub.open("GET", "sdscep?sys"+sysn+"="+aa, true);
sub.onreadystatechange=reqSetComplete;
sub.send(null);
firstTime=true; //po vypnuti nacist data
}
</script>
</head>
<body onLoad="sdsps();">
<div id="toppanel">
<div id="header">
<h1>Laštovičkova ostrovní fotovoltaická elektrárna s SDS-MACRO a panelem QUIDO ovládaným přes RS485</h1>
</div>
<div id="control">
<fieldset class="rs232">
<legend>Ovládaní relé modulu QUIDO</legend>
<span id="cis1" class="cislo0">upc</span><a id="btn1" class=tlacitko href="JavaScript:void(0);" title="Restart 12V Modem UPC" onclick="javascript:sdsc_S(141,'1');">RESTART</a>
<span id="cis2" class="cislo0">rou</span><a id="btn2" class=tlacitko href="JavaScript:void(0);" title="Restart 12V Router ZyXEL" onclick="javascript:sdsc_S(141,'2');">RESTART</a>
<span id="cis3" class="cislo0">sds</span><a id="btn3" class=tlacitko href="JavaScript:void(0);" title="<Restart 12V SDS>" onclick="javascript:sdsc_S(141,'3');">RESTART</a>
<span id="cis4" class="cislo0">swi</span><a id="btn4" class=tlacitko href="JavaScript:void(0);" title="12V Switch" onclick="javascript:sdsc_S(141,'4');">ZAPNI</a>
<span id="cis5" class="cislo0">rel</span><a id="btn5" class=tlacitko href="JavaScript:void(0);" title="12V IP Relé" onclick="javascript:sdsc_S(141,'5');">ZAPNI</a>
<span id="cis6" class="cislo0">EEE</span><a id="btn6" class=tlacitko href="JavaScript:void(0);" title="<12V PC-EEE>" onclick="javascript:sdsc_S(141,'6');">ZAPNI</a>
<span id="cis7" class="cislo0">B1</span><a id="btn7" class=tlacitko href="JavaScript:void(0);" title="<Hlavni Baterie>" onclick="javascript:sdsc_S(141,'7');">ZAPNI</a>
<span id="cis8" class="cislo0">B2</span><a id="btn8" class=tlacitko href="JavaScript:void(0);" title="<Zalozni Baterie>" onclick="javascript:sdsc_S(141,'8');">ZAPNI</a>
<span id="cis9" class="cislo0">TV</span><a id="btn9" class=tlacitko href="JavaScript:void(0);" title="<12V Televize>" onclick="javascript:sdsc_S(141,'9');">ZAPNI</a>
<span id="cis10" class="cislo0">stri</span><a id="btn10" class=tlacitko href="JavaScript:void(0);" title="Zapni Střídač" onclick="javascript:sdsc_S(141,'10');">ZAPNI</a>
<span id="cis11" class="cislo0">za2</span><a id="btn11" class=tlacitko href="JavaScript:void(0);" title="<220V Záloha 2>" onclick="javascript:sdsc_S(141,'11');">ZAPNI</a>
<span id="cis12" class="cislo0">lam</span><a id="btn12" class=tlacitko href="JavaScript:void(0);" title="<220V Lampička>" onclick="javascript:sdsc_S(141,'12');">ZAPNI</a>
<span id="cis13" class="cislo0">pc</span><a id="btn13" class=tlacitko href="JavaScript:void(0);" title="<220V PC>" onclick="javascript:sdsc_S(141,'13');">ZAPNI</a>
<span id="cis14" class="cislo0">mo</span><a id="btn14" class=tlacitko href="JavaScript:void(0);" title="220V Monitor" onclick="javascript:sdsc_S(141,'14');">ZAPNI</a>
<span id="cis15" class="cislo0">hdd</span><a id="btn15" class=tlacitko href="JavaScript:void(0);" title="220V Externí HDD" onclick="javascript:sdsc_S(141,'15');">ZAPNI</a>
<span id="cis16" class="cislo0">zas</span><a id="btn16" class=tlacitko href="JavaScript:void(0);" title="220V Zásuvka" onclick="javascript:sdsc_S(141,'16');">ZAPNI</a>
</fieldset>
<fieldset>
<legend>Ovládaní relé SDS a D0</legend>
<span id="rs1" class="cislo0">WD</span><a id="rb1" class=tlacitko href="JavaScript:void(0);" title="WATCHDOG PCDUINO" onclick="javascript:sdsc_S(143,'1');">ZAPNI</a>
<span id="rs2" class="cislo0">Ven</span><a id="rb2" class=tlacitko href="JavaScript:void(0);" title="Ventilátor rozvadec" onclick="javascript:sdsc_S(143,'2');">ZAPNI</a>
<span id="rs3" class="cislo0">StO</span><a id="rb3" class=tlacitko href="JavaScript:void(0);" title="Studer výstup" onclick="javascript:sdsc_S(143,'3');">ZAPNI</a>
<span id="rs4" class="cislo0">StI</span><a id="rb4" class=tlacitko href="JavaScript:void(0);" title="Studer vstup (DS)" onclick="javascript:sdsc_S(143,'4');">ZAPNI</a>
<span id="ds0" class="cislo0">D0</span><a id="db0" class=tlacitko href="JavaScript:void(0);" title="Ovládání d0" onclick="javascript:sdsc_S(143,'5');">ZAPNI</a>
<p class=col1 >_______________ StO Zapne při <label class=col1 id="ram144">0.00 V</label></p>
<p class=col1 >_______________ StO Vypne při <label class=col1 id="ram145">0.00 V</label></p>
</fieldset>
<fieldset>
<legend>Nastaveni spínání ventilátoru dle teploty</legend>
<br>
<p class=col1>
<label>Ventilátor při</label>
<input class=pwm type="text" id="sys147" name="sys147" value="" maxlength="2" onChange="javascript:sdsc_S_ev(147)">°C
<input type="hidden" value="">
<a href="JavaScript:void(0);" title="ventilátor zapni" onclick="javascript:sdsc_S_ev(147);">ZAPNI</a>
<label>. .</label>
<input class=pwm type="text" id="sys146" name="sys146" value="" maxlength="2" onChange="javascript:sdsc_S_ev(146)">°C
<input type="hidden" value="">
<a href="JavaScript:void(0);" title="ventilátor vypni" onclick="javascript:sdsc_S_ev(146);">VYPNI</a>
</p>
</fieldset>
<fieldset>
<legend>Spotřeba energie</legend>
<p class=col1><label id="p1a">Elektroměr 1.</label>-Aktuální:<label class=col2 id="a1">0.000 kW</label></p>
<p class=col1><label id="p1c">Elektroměr 1.</label>-Celková:<label class=col2 id="c1">0.000 kWh</label></p>
<p class=col1><label id="p1d">Elektroměr 1.</label>-Cena:<label class=col2 id="o1">00.00 Kč</label></p>
<hr />
<p class=col1><label id="p3a">Elektroměr 3.</label>-Aktuální:<label class=col2 id="a3">0.000 kW</label></p>
<p class=col1><label id="p3c">Elektroměr 3.</label>-Celková:<label class=col2 id="c3">0.000 kWh</label></p>
<p class=col1><label id="p3d">Elektroměr 3.</label>-Cena:<label class=col2 id="o3">00.00 Kč</label></p>
<hr />
<p class=col1><label id="p2a">Elektroměr 2.</label>-Aktuální:<label class=col2 id="a2">0.000 kW</label></p>
<p class=col1><label id="p2c">Elektroměr 2.</label>-Celková:<label class=col2 id="c2">0.000 kWh</label></p>
<p class=col1><label id="p2d">Elektroměr 2.</label>-Cena:<label class=col2 id="o2">00.00 Kč</label></p>
</fieldset>
<fieldset>
<legend>Statistiky FVE</legend>
<p class=col1>Spotřeba-ČEZ za 24 hod: <label class=col2 id="sp_den_cez">0.000 kWh</label></p>
<p class=col1>Spotřeba-DC za 24 hod: <label class=col2 id="sp_den_bat">0.000 kWh</label></p>
<p class=col1>Výroba-střídač za 24 hod: <label class=col2 id="vy_den_st">0.000 kWh</label></p>
<p class=col1>Výroba-DC (MPPT) za 24 hod: <label class=col2 id="vy_den_mppt">0.000 kWh</label></p>
<p class=col1>Nepoužito za 24h: <label class=col2 id="sp_den_do">0.000 kWh</label></p>
<hr />
<p class=col1>Spotřeba-ČEZ za měsíc: <label class=col2 id="sp_mes_cez">0.000 kWh</label></p>
<p class=col1>Spotřeba-DC za měsíc: <label class=col2 id="sp_mes_bat">0.000 kWh</label></p>
<p class=col1>Výroba-střídač za měsíc: <label class=col2 id="vy_mes_st">0.000 kWh</label></p>
<p class=col1>Výroba-DC (MPPT) za měsíc: <label class=col2 id="vy_mes_mppt">0.000 kWh</label></p>
<p class=col1>Nepoužito za měsíc: <label class=col2 id="sp_mes_do">0.000 kWh</label></p>
<hr />
<p class=col1>Spotřeba-ČEZ za rok: <label class=col2 id="sp_rok_cez">0.000 kWh</label></p>
<p class=col1>Spotřeba-DC za rok: <label class=col2 id="sp_rok_bat">0.000 kWh</label></p>
<p class=col1>Výroba-střídač za rok: <label class=col2 id="vy_rok_st">0.000 kWh</label></p>
<p class=col1>Výroba-DC (MPPT) za rok: <label class=col2 id="vy_rok_mppt">0.000 kWh</label></p>
<p class=col1>Nepoužito za rok: <label class=col2 id="sp_rok_do">0.000 kWh</label></p>
</fieldset>
<fieldset>
<legend>Aktuální čas + Stav IP Watchdog EGON</legend>
<p class=col1>Aktuální čas: <label class=col2 id="cas">00:00:00 00.00.0000</label></p>
<p class=col1>Watchdog na server: <label class=col2 id="ip">000.000.000.000 : 000</label></p>
</fieldset>
</div> <!-- control -->
</div> <!-- toppanel -->
<div id="bottpanel">
<div id="tempa">
<fieldset>
<legend>Předpověď počasí</legend>
<p class=col1t>
<a href="http://www.slunecno.cz/meteoradar/">
<img src="http://www.slunecno.cz/predpoved-na-web.php?obr=2&m=68&p1=0D0D0D&t1=FFFFFF&p2=BAD6FF&t2=0F0F0F&v=2" alt="Počasí radar" style="border: 0px;" />
</a></p>
</fieldset>
<fieldset>
<legend>Teplota procesoru SDS</legend>
<p class=col1>Teplota procesoru SDS<label class=col2t id="ram146">0.00 °C</label></p>
</fieldset>
<fieldset>
<legend>Teplotní čidla (sběrnice A)</legend>
<p class=col1>1. STUDER XTS 1200-24<label class=col2t id="temp1">0.00 °C</label></p>
<p class=col1>2. Rozvaděč<label class=col2t id="temp2">0.00 °C</label></p>
<p class=col1>3. STUDER VT-80<label class=col2t id="temp3">0.00 °C</label></p>
<p class=col1>4. Baterie<label class=col2t id="temp5">0.00 °C</label></p>
<hr />
<p class=col1>5. Pracovna<label class=col2t id="temp4">0.00 °C</label></p>
<hr />
<p class=col1>6. Venku<label class=col2t id="temp6">0.00 °C</label></p>
<p class=col1>7. FV Panel<label class=col2t id="temp7">0.00 °C</label></p>
<hr />
<p class=col1>8.<label class=col2t id="temp8">0.00 °C</label></p>
<p class=col1>9.<label class=col2t id="temp9">0.00 °C</label></p>
<p class=col1>10.<label class=col2t id="temp10">0.00 °C</label></p>
<p class=col1>11.<label class=col2t id="temp11">0.00 °C</label></p>
<p class=col1>12.<label class=col2t id="temp12">0.00 °C</label></p>
<p class=col1>13.<label class=col2t id="temp13">0.00 °C</label></p>
<p class=col1>14.<label class=col2t id="temp14">0.00 °C</label></p>
<p class=col1>15.<label class=col2t id="temp15">0.00 °C</label></p>
<p class=col1>16.<label class=col2t id="temp16">0.00 °C</label></p>
</fieldset>
<fieldset>
<legend>Analogové hodnoty FVE</legend>
<p class=col1>AD1-Napětí baterie LiFeYPO4 <label class=col2t id="ad1">0.00 V</label></p>
<p class=col1>AD2-Napětí baterie Pb <label class=col2t id="ad2">0.00 V</label></p>
<p class=col1>AD3-Napětí čidla MPPT <label class=col2t id="ad3">0.00 V</label></p>
<p class=col1>AD4-Napětí čidla LiFeYPo4 <label class=col2t id="ad4">0.00 V</label></p>
<hr />
<p class=col1>Dobíjecí Proud za MPPT <label class=col2t id="ram142">000 W </label></p>
<span id="Icis" class=cislo10>Proud Baterie LiFeYPo4 <label class=col2t id="ram143" >NABIJENI</span>
<hr />
<p class=col1>Pmppt-Výkon za MPPT (AD1*Ifv) <label class=col2t id="ram140">000 W </label></p>
<p class=col1>Pbat-Výkon baterie (AD1*Ibat) <label class=col2t id="ram139">000 W </label></p>
<hr />
<p class=col1>Kapacita Baterie podle U bat (SOC) <label class=col2t id="ram141">000 %</label></p>
<hr />
</fieldset>
</div>
</div> <!-- bottpanel -->
<div id="footer">
<div class="content">
<p>Copyright ©2012 onlinetechnology <a href="http://192.168.1.253:333/user.htm" title="sds-micro">SDS-MAKRO</a></p>
<p>Copyright ©2012 onlinetechnology <a href="http://www.onlinetechnology.cz" title="sds-micro">onlinetechnology.cz</a></p>
<p>Copyright ©2012 onlinetechnology <a href="http://www.merenienergie.cz" title="sds-micro">merenienergie.cz</a></p>
<p>Copyright ©2012 onlinetechnology <a href="http://www.eportal.merenienergie.cz" title="eportal.merenienergie">grafy a výsledky měření na eportal.merenienergie.cz</a></p>
<p>Ostrovní elektrárny <a href="http://www.ostrovnielektrarny.cz" title="ostrovnielektrarny">Materiál na ostrovní elektrárny</a></p>
<p>PAPOUCH <a href="http://www.papouch.com"title="papouch">I/O zařízení, převodníky</a></p>
</div>
</div>
<!-- end footer -->
</body>
</html>
24x Solární panel JINKO SOLAR 225 Pmpp=225W, 2x Regulátor STUDER VT-80, 2x Střídač Studer XTM 4000-48, BSP, RCC, 1x AKU 48V LFP200Ah 1x AKU 48 V LFP280Ah. Řizení a dohled, SDS, vlastní vyčítání arduinem DUE v krabičce (ARMOSY), export dat do RPi s databází a html stránkou.
http://95.85.214.80, viewtopic.php?t=4809
http://95.85.214.80, viewtopic.php?t=4809
-
- Příspěvky: 50
- Registrován: čtv kvě 12, 2016 9:38 am
Re: SDS micro light E - měření výkonu
Děkuji Ti Frenky,
moc jsi mi pomohl, jdu si hrát.
Pepa
moc jsi mi pomohl, jdu si hrát.
Pepa
-
- Příspěvky: 87
- Registrován: stř bře 29, 2017 8:42 am
- Lokalita: Bruntál
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Bruntál
Re: SDS micro light E - měření výkonu
Dobrý den pánové nechci zakládat nové téma...a tohle k tomu mělo blízko.Za nedlouho se stanu majitelem PLC Vision 120 ... nicméně prodávající mi doporučil,abych měl vstupní čidla napětí a proudu (vše DC) - galvanicky oddělená.No a já ať hledám jak hledám,krom asi 5ti několika tisícových hotových řešení nenašel vůbec nic. Nejsem úplný lempl co se elektroniky týče,nicméně jsem spíše mechanik ručně zručný....je mi trapné se takhle ptát, vím, že je to někomu úplně jasné a tak bych chtěl poprosit o polopatické navedení.Díky moc,ať to září.
Bez připojení k ds. Cca 8,6kwp (rozšiřuji průběžně) sys.napětí 60V, bat li ion 16s cca 1300Ah, el.peugeot 106 cca 40kWh, mppt regl 2xeasun 80a, 1x epever 60A, 1x midnite 200. 2x měnič čína à 4000 w (peak vyšší). Pořád ve výstavbě, pořád styl pavoučí hnízdo)
-
- Příspěvky: 87
- Registrován: stř bře 29, 2017 8:42 am
- Lokalita: Bruntál
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Bruntál
Re: SDS micro light E - měření výkonu
Díky pánové, asi to byl natolik hloupý dotaz, že nikdo neoodpověděl,řešení jsem tedy našel sám, (x hodin) opět na mém oblíbeném ALI.Hezký večer všem
Bez připojení k ds. Cca 8,6kwp (rozšiřuji průběžně) sys.napětí 60V, bat li ion 16s cca 1300Ah, el.peugeot 106 cca 40kWh, mppt regl 2xeasun 80a, 1x epever 60A, 1x midnite 200. 2x měnič čína à 4000 w (peak vyšší). Pořád ve výstavbě, pořád styl pavoučí hnízdo)
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 8 Odpovědi
- 2655 Zobrazení
-
Poslední příspěvek od Peroslav
-
- 3 Odpovědi
- 373 Zobrazení
-
Poslední příspěvek od JirkaE
-
- 18 Odpovědi
- 4791 Zobrazení
-
Poslední příspěvek od skybor
-
- 7 Odpovědi
- 1451 Zobrazení
-
Poslední příspěvek od beethowen
-
-
Cerbo GX a měření výkonu FV panelů s obecným regulátorem
od stucel » » v Victron
Cerbo GX a měření výkonu FV panelů s obecným regulátorem
- 5 Odpovědi
- 598 Zobrazení
-
Poslední příspěvek od stucel
-