S0 email archiv

Z onlinetechnology.cz

Přejít na: navigace, hledání

Archivace záznamů z měřičů energie (S0).

Zařízení řady SDS (SDS MICRO DIN, SDS MICRO light) umožňují odečet a vhodnou prezentaci S0 impulsů z různých měřičů energie.

Ovšem ve svém základu, zařízení SDS nemají dlouhodobý archiv údajů (bude to až v SDS MACRO, ovšem to stále není v tuto dobu v prodeji), takže je na každém uživateli, jak si archivaci sám zařídí.

Poskytujeme několik možností, zde jsou:

  • webový portál pro archivaci a zobrazování záznamů měřené energie
  • program S0 LOG - velmi výhodné ve specifických aplikacích (rozsáhlé archivace), vyžaduje ale trvale zapnutý PC, na kterém je spuštěn
  • serverový odečet - software třetí strany, které přes XML nebo SNMP neustále vyčítá informace ze zařízení a archivuje to u sebe, popř. přes SDS-C/http_get jsou informace zasílany na server, vyžaduje trvale zapnutý server - nejčastěji se jedná o různé solární portály atd., zde záleží na prográtorovi portálu, zda-li doplní podporu pro zařízení (podklady poskytujeme zdarma)
  • využití emailové schránky, která je poskytována zdarma

Specifika pro solární elektrárny

Zařízení poskytuje tři S0 vstupy, takže je možné současně měřit elektroměr výroby a elektroměr spotřeby.

Pomocí převodníku Ethernet/RS232 je možné připojit datový výstup měniče, tzn. prodloužit linku RS232 přes Ethernet do vzdáleného PC, kde je spuštěn monitorovací program (převodník vytvoří nový COM port přímo na PC, tzn. je to jako kdyby byl měnič připojen přímo kabelem k počítači, i když je na druhé straně republiky). Nebo vzhledem k možnostem tohoto převodníku, lze data dálkově zaznamenávat pomocí serveru (různé solární portály, které umožňují komunikaci se vzdáleným měničem přes převodník RS232/Ethernet - praktická programová realizace, tj. případné doplnění takové funkčnosti do portálu, je obvykle velice snadné). Pokud má měnič výstup jako RS485, je možné pomocí jednoduchého doplňku převést RS485 na RS232 a opět provést připojení k zařízení.

Další funkce zařízení (měření teploty, zabezpečovací funkce, atd.) jsou uvedeny na jiných, příslušných stránkách.

Webový portál

Řešení je popsáno na příslušné stránce.

Řešení s emailovou schránkou

Toto další řešení je zdarma, je jednoduché, je pro uživatele přístupné odkudkoliv z Internetu (je to i bezpečné - stačí znát jméno a heslo), a umožňuje určitou dlouhodobou archivaci.

Protože zařízení SDS je malé PLC, lze jej uživatelsky programovat. Programování se provadí pomocí jazyka SDS-C, který je popsán na tomto webu. Vše potřebné je k dispozici zdarma.

Uživatel si může sám zvolit periodu archivace, formát obsahu ukládaných zpráv a tak dále - záleží na schopnosti uživatele naprogramovat si příslušný program v SDS-C.

Vzorový program, v SDS-C, je zde k dispozici - upravte si jej jak budete potřebovat.

Kompletní příklad instalace:

1. zřídíte si emailovou schránku (buď na vlastním firemním serveru, nebo zdarma např. na email.seznam.cz)

2. připojíte zařízení SDS do komunikační sítě, musí mít připojení k Internetu (nemusí mít veřejnou adresu)

3. nastavíte v administraci zařízení správné údaje pro SMTP server (jinak nelze odesílat emaily)

4. nahrajete do zařízení SDS vhodný program (SDS-C)

5. hotovo - případně provedete úpravu programu

Výhodou některých free emailů je i přístup k účtu přes Java aplikaci v mobilním telefonu (např. pro email.seznam.cz), popř. při využití POP3 protokolu můžete archiv stáhnout na svůj počítač.

Vzorový program

Zde je uveden vzorový program v SDS-C, který do zařízení nahrajete příslušnou utilitou (ke stažení z tohoto webu). Jedná se o výchozí program, a protože každý uživatel má své specifické připojení měřičů energií, bude potřeba program patřičně upravit.

Popis jazyka SDS-C naleznete zde, včetně nahrávacího postupu.

Nezapomeňte si nastavit v programu váš správný email, nenechte tam původní vzorový tests0@seznam.cz !

var S0_vstup_0, S0_vstup_1, S0_vstup_2;  
var S0_vstup_0_new, S0_vstup_1_new, S0_vstup_2_new;  
var S0_vstup_0_new_energy, S0_vstup_1_new_energy, S0_vstup_2_new_energy;  
var last_d, last_m, last_r;  
 
main
{
 
 //prvni zapnuti  
 
 //start:  
 
 //zapisu si pocatecni hodnoty S0 pocitadel  
 S0_vstup_0 = sys[493];  
 S0_vstup_1 = sys[494];
 S0_vstup_2 = sys[495];
 
 //pockame 20 sekund, do te doby se chytne NTP
 wait(20000); 
 
 //zapisu si vstupni datum  
 last_d = sys[5]; last_m = sys[6]; last_r = sys[7];  
 
 
 smtp_send('tests0@seznam.cz', 'zaznamove zarizeni zapnuto',
           'Datum: ', sys[5], '.', sys[6], '.', sys[7],' \n\n',
           'Vychozi stav:\n\n',
           'S0: prvni vstup: impulsu = ',S0_vstup_0,'\n',  
           'S0: druhy vstup: impulsu = ',S0_vstup_1,'\n',  
           'S0: treti vstup: impulsu = ',S0_vstup_2,'\n');  
 
 //zapiseme na webove rozhrani informaci  
 echo('archiv: start');  
 
 //chvilku pockame, aby to pripadne neposlal dva emaily hned za sebou  
 wait(3000); 
 
 //odesilam jednou denne, presne ve 20:00  
 
label cekej_na_vhodny_cas:  
 if (sys[8] != 20) goto cekej_na_vhodny_cas;  
 
 //ok, prave je osma hodina
 
 //spocitam rozdil mezi aktualnim stavem a puvodnim stavem  
 S0_vstup_0_new = sys[493] - S0_vstup_0;  
 S0_vstup_1_new = sys[494] - S0_vstup_1;
 S0_vstup_2_new = sys[495] - S0_vstup_2;
 
 //zapisu si pocatecni hodnoty S0 pocitadel, hned   
 S0_vstup_0 = sys[493];  
 S0_vstup_1 = sys[494];
 S0_vstup_2 = sys[495];
 
 //prevedeme na Wh  
 S0_vstup_0_new_energy = (S0_vstup_0_new * 1000) / sys[559];  
 S0_vstup_1_new_energy = (S0_vstup_1_new * 1000) / sys[560];  
 S0_vstup_2_new_energy = (S0_vstup_2_new * 1000) / sys[561];  
 
 smtp_send('tests0@seznam.cz','prubezny zaznam energie',
           'Za dobu od: ',last_d,'.',last_m,'.',last_r,' 20:00 , do: ' sys[5], '.', sys[6], '.', sys[7], ' 20:00\n\n',
           'S0: prvni vstup:\n   impulsu = ',S0_vstup_0_new,',  energie = ',S0_vstup_0_new_energy,' Wh\n\n',
           'S0: druhy vstup:\n   impulsu = ',S0_vstup_1_new,',  energie = ',S0_vstup_1_new_energy,' Wh\n\n',
           'S0: treti vstup:\n   impulsu = ',S0_vstup_2_new,',  energie = ',S0_vstup_2_new_energy,' Wh\n\n');
 
 //zapiseme info na web  
 echo('archiv: poslan email (',sys[65],')');  
 
 //zapisu si datum posledniho odectu
 last_d = sys[5]; last_m = sys[6]; last_r = sys[7];  
 
 //pockam na dalsi hodinu (aby to neposlalo milion emailu)
label cekam_na_dalsi_hod:
 if (sys[8] == 20) goto cekam_na_dalsi_hod;  
 
 
 //a pokracuju s cekanim pro dalsi den...  
 goto cekej_na_vhodny_cas;  
 
} 

Jak tento program funguje:

Všímejte si komentářů v samotném programu. Nejprve je provedena inicializace po zapnutí, a jsou zapamatovány úvodní stavy měřidel. Pak následuje odeslání informačního emailu, o zapnutí zařízení a výchozím stavu měřidel.

Následuje čekací smyčka, kde se čeká na to, až bude aktuální hodina číslo 20 (tj. osm hodin večer). Jakmile to nastane, testovací smyčka se přestane opakovat a program přejde na výpočet rozdílu od poslední známé hodnoty (tj. poprvé od zapnutí, pak pokaždé od posledního uložení do archivu). Spočtené impulsy za poslední den jsou odeslány emailem (počet impulsů a přepočet na Wh).

Samozřejmě program je možno snadno změnit či doplnit, a to nejenom texty v emailech. Záleží jen na tom, jak jste schopní programátoři, popř. zda-li si seženete někoho kdo to udělá. Doporučeno je intensivně experimentovat, jen si dejte pozor na zahlcení SMTP serveru (může nastoupit antispam, pokud budete posílat emaily příliš často, podmínky viz konkrétní SMTP server).

Nejčastější úpravou bude změna textu v emailech, což je ale tak jednoduché, že to zde nebude blíže rozepsáno. Následuje požadavek na jinou hodinu, kdy jsou uloženy odečty - což je opět snadné. V původním vzorovém programu se email odesílá ve 20 hodině, takže stačí změnit číslo 20 (pozor!!! v programu je na více místech, musí to být všude stejně změněno) na hodnotu jinou, která bude více odpovídat (např. 23 hodina atd.). Pokud chcete email odesílat častěji než jednou denně, bude potřeba poněkud hlubší zásah do programu.

Osobní nástroje
Translate