Rozhodla jsem si vyzkoušet ten pocit, mít vlastní elektřinu. Říkala jsem si – snad se dá přirovnat k pocitu, dát si na oběd na vlastní zahrádce a vlastníma rukama vypěstovanou zeleninu, nebo na snídani vajíčka od vlastních slepic.

Toto je díl 3 z 13 seriálu Projekt fotovoltaické elektrárny

Nový regulátor nepřinesl jen možnost naplno využít veškerou kapacitu fotovoltaického pole a snížení ztrátového výkonu na vodičích od panelů k regulátoru. Tento regulátor totiž měří a data si nenechává pro sebe – zveřejňuje je na svém webovém rozhraní a zpřístupňuje je přes Modbus protokol v místní ethernetové síti.

Znalost dat může leccos napovědět o chování systému a může taky dále podpořit automatizaci. Jak už jsem psala, dosavadní automatizace byla vlastně jen nouzová, přepínání spotřeby mezi sluncem a veřejnou sítí prováděla obsluha podle svého uvážení a podle počasí. A to jistě není záživná činnost pro každého. Časem začalo být velmi zjevné, že fotovoltaická elektrárna může být pouze tak užitečná, jak dobře se dokáže sama o sebe postarat, jak spolehlivá automatizace je, nesmí po obsluze cokoliv chtít a v případě poruchy se musí automaticky přepnout do bezpečného režimu.

PLC

Nastal čas na další rozšíření – na programovatelnou automatizaci a na sběr dat. Opět jsem si nejdříve utříbila své požadavky: programovatelný automat by měl být napájený v DC, přímo z baterie elektrárny. Měl by zvládat měření napětí a proudů, měl by mít několik výstupů poskytujících řídící signály, měl by svá data zpřístupňovat v lokální ethernetové sítí. Jo, a vzhledem k mému konstrukčnímu “umu” by měl být jednoduše instalovatelný na DIN lištu.

Arduino se mi nelíbilo, sympatičtější mi bylo Raspberry. O obou těchto strojů by ale bylo nutné řešit nějaké upevnění do DIN lišty a shánění a programování A/D a releových shieldů, taky konverzi napájecího napětí. U komerčních PLC, jako třeba Siemes Logo, mě zase odrazovalo to specifické “programování” – spíše skládání předdefinovaných funkcí. Narazila jsem na strojky české firmy Laznet – PLC řady SDS. Některé modely jsou v DIN krabičce, má to releové výstupy, AD vstupy, optické vstupy, PWM výstup, 1W sběrnici, programuje se to v c like scriptovacím jazyce a datově to komunikuje přes ethernetové rozhraní. A stojí nejméně o polovinu méně než Loga, což byl taky argument.

Pořídila jsem si od nich jejich model SDS Macro, LCD displejem vybavený model se čtveřicí relé a AD vstupů, a s osmi optickými vstupy a dalšími výstupy jako PWM a logický výstup za N Fetem.

SDS Macro

Architektura

Architektonicky jsem celou koncepci automatizace navrhla takto:

Architektura

Směrnost šipek podle syntaxe UML znázorňuje vzájemnou závislost komponent: PLC a regulátor o sobě neví, nejsou na sobě závislé. Logger je závislý na PLC i regulátoru a na databázi, vizualizační software je závislé na databázi, a klient si bez webového software taky neškrtne.

Definovat si závislosti je věc důležitá, protože toto rozhodnutí ovlivňuje autonomnost jednotlivých funkcí: například logger je nejzranitelnější, protože v případě, že vypadne databáze, PLC nebo regulátor, nastane v něm nějaká výjimka, kterou je třeba nějak ošetřit. Na druhou stranu – kritické komponenty, jako regulátor nebo PLC, nejsou závislé na ničem, a tedy jsou schopny úplně autonomně fungovat.

Určení jednotlivých komponent je taky docela přímočaré: PLC se na základě měření proudů a napětí a na základě svého nastavení rozhoduje o režimu zátěže, a pomocí silových přepínacích prvků ji směruje buďto na baterii, měnič, záložní DC zdroj či na veřejnou síť. Všechna naměřená data zveřejňuje na svém datovém rozhraní k dispozici loggeru.

Regulátor – jednoduše podle stavu fotovoltaického pole a baterie nabíjí baterii a naměřená data taky zveřejňuje.

Logger bude data sbírat a ukládat do databáze, odkud se na ně bude dívat program, který je bude všelijak agregovat a vizualizovat a zveřejňovat. Na tyto tři zmíněné komponenty poslouží běžný LAMP server.

Automatizační program

V první etapě vývoje měřilo SDS Macro pouze napětí baterie a napětí na výstupu záložního DC zdroje. Na některé jeho optické vstupy jsem připojila přepínače, pomocí kterých jsem zamýšlela volit přímo v rozvaděči základní provozní režimy elektrárny: provoz s prioritou na FVE či na veřejnou síť. SDS si přes malé relé s AC cívkou zjišťovalo, zda je veřejná elektrická síť funkční, takže se mohlo při provozu na veřejnou síť rozhodnout o režimu UPS. Skrze svá výstupní relátka SDS řídilo přepínače DC a AC sítě, zapínalo a vypínalo záložní DC zdroj a měnič.

Program tedy základní funkcí relativně jednoduchý, nicméně programovací jazyk, které SDS používá, má některá nepříjemná omezení, která z jednoduchého programu dělá relativně dlouhý a ne úplně ergonomický kód. Asi nejhorší je jediný datový typ, čtyřbajtový signed int, takže veškerá data je potřeba zobrazovat s pevnou desetinnou čárkou, a při výpočtech s ní ještě dále hýbat, aby byly výpočty dostatečně přesné. A druhá vážná nepříjemnost je fakt, že SDC (označení SDS jazyka), neumí lokální proměnné, všechno je globální. V kombinaci s tím, že SDC taky neumí návratové hodnoty funkcí to u delších programů časem nevyhnutelně vede ke zmatkům a k nepřehlednosti. Psaní programu tedy bylo pomalé, protože u programu tohoto typu je potřeba všechno velmi dobře otestovat – vymýšlet si metodu unit testů, které budou simulovat vstupy a stavy a koukat se na chování. Opět všechno v prostředí SDC.

Možná to zní jako stížnost, ale ve skutečnosti jsem za SDS samozřejmě velmi vděčná, i s jeho mouchami je dodnes považuju za dobrý a velmi užitečný strojek. S odstupem času taky musím konstatovat, že je velmi spolehlivé – automatizační software, který jsem si napsala, provozuji na stále stejném kousku SDS už sedmý rok, a nevybavuju si mnoho selhání, které jsem mohla přisoudit jeho firmware, a žádné, za které by mohlo jeho hardware.

Program jsem začala psát po částech, jeho jádrem je vlastně jednoduchý stavový automat zátěže, přechody mezi stavy jsou spouštěné naměřeným napětím, a jsou stabilizované napěťovou a časovou hysterezí. Ostatní funkcionalita pak časem přirůstala a rozšiřovala toto jádro.

Svému automatizačnímu SW pro SDS jsem časem začala říkat VALC.

Změny v rozvaděči

schema níže je sice trochu mladší, obsahuje už i připojení proudových čidel a připojení vytěžovače, které popíšu až později, ale názorně ukazuje, jak pěkně se schéma rozvaděče vyjasnilo, když bylo možné schovat dříve zadrátovanou logiku za fasádu úhledného DIN přístroje, do jeho software. V zásadě jde ale o stejnou funkcionalitu jako dříve: zapínání měniče, záložního DC zdroje a přepínače DC sítí.

Rozvaděč s PLC

Další díly seriálu<< FVE 2: rozšířeníFVE 4: dohledový systém >>