====== Čtvrthodinové maximum ====== {{:cs:mervis-ide:35-help:t34.png}} ===== Název bloku ===== T34_E_MAX ===== Volání v ST ===== PROGRAM TEST_T34 VAR REAL1,REAL2,REAL3,REAL4,REAL5: REAL; BOOL1,BOOL2: BOOL; UDINT1,UDINT2:UDINT; ARRAYOFUDINT1,ARRAYOFUDINT2,ARRAYOFUDINT3: ARRAY[0..7] OF UDINT; ARRAYOFBOOL1: ARRAY[0..7] OF BOOL; ARRAYOFREAL1: ARRAY[0..7] OF REAL; FB: LIB.HVAC.V1_0.T34_E_MAX; END_VAR FB(TIN:=UDINT1, EIN:= REAL1, BGRP:=ARRAYOFBOOL1, EMAX:=REAL2, TPERIOD:=UDINT2, TNMIN:=ARRAYOFUDINT1, TFMIN:=ARRAYOFUDINT2, TFMAX:=ARRAYOFUDINT3, DOFF:= REAL3, D:=ARRAYOFREAL1, BWARN=>BOOL1, BCRIT=>BOOL2, BYGRP=>ARRAYOFBOOL1, ESOLL=>REAL4, EEST=>REAL5); END_PROGRAM ===== Knihovna ===== LIB\HVAC ===== Verze ===== V1.0 ===== Popis ===== Blok reguluje čtvrthodinové maximum (el. energii spotřebovanou během 15 minut) odpínáním až 8 skupin spotřebičů. ===== Vstupy ===== |Vstup |Typ |Význam |Výchozí hodnota | |TIN |UDINT |Aktuální čas periody ve vteřinách |0 | |EIN |REAL |Kumulovaná energie, spotřebovaná během aktuální periody |0 | |BGRP |ARRAY[0..7] OF BOOL |Signály o chodu skupin, pokud jsou k dispozici (jinak musí být vstup nastaven na true) |[False,...,False]| |EMAX |REAL |Hodnota čtvrthodinového maxima; max. množství energie, které se smí spotřebovat během periody, viz pozn. níže |100 | |TPERIOD|UDINT |Měřená perioda, obvykle 900 s (= 15 min) |900 | |TNMIN |ARRAY[0..7] OF UDINT|Minimální povolená doba provozu skupiny |[0,0,...,0] | |TFMIN |ARRAY[0..7] OF UDINT|Minimální doba vypnutí po odstavení skupiny (např. pro chladicí kompresory) |[0,0,...,0] | |TFMAX |ARRAY[0..7] OF UDINT|Maximální povolená doba odstavení skupiny (po jejím uplynutí se skupina povolí, i když by došlo k překročení maxima)|[0,0,...,0] | |DOFF |REAL |Diference pro bezpečné připínání skupin |0 | |D |ARRAY[0..7] OF REAL |Diference pro odpínání jednotlivých skupin (odpovídá příkonům skupin, tj. spotřeba dané skupiny za periodu) |[10,10,...,10] | ===== Výstupy ===== |Výstup|Typ |Význam | |BWARN |BOOL |Signál varování - aktuální spotřeba překročila hodnotu //ESOL// | |BCRIT |BOOL |Signál alarmu - aktuální spotřeba překročila hodnotu //EMAX// | |BYGRP |ARRAY[0..7] OF BOOL|Výstupy pro povolení nebo odepnutí jednotlivých skupin spotřebičů| |ESOL |REAL |Ideální spotřeba k aktuálnímu času (pro info) | |EEST |REAL |Predikovaná spotřeba ke konci periody (pro info) | ===== Funkce ===== Blok čte ze vstupního modulu M710 dvě hodnoty: spotřebu el. energie v aktuální čtvrthodině (počet impulsů elektroměru násobený konstantou na impuls, což odpovídá spotřebované energii) a čas aktuální čtvrthodiny v sekundách (tento čas je nulován synchronizačním impulsem z elektroměru, přivedeným na modul M710). Blok počítá podle zadané maximální spotřeby pro čtvrthodinu (//EMAX//) ideální spotřebu //ESOL// k aktuálnímu času, což je hodnota lineárně vzrůstající od 0 v čase 0 po //EMAX// v čase ke konci čtvrthodiny. Dále je počítána predikovaná spotřeba //EEST//, tedy energie spotřebovaná ke konci čtvrthodiny za předpokladu, že spotřeba bude růst stejným tempem jako dosud. Ideální spotřeba je porovnávána s aktuální spotřebou a pokud je ideální spotřeba překročena, tedy hrozí překročení //emax// ke konci čtvrthodiny, dochází k postupnému odpínání skupin spotřebičů. Pakliže se během dalšího průběhu čtvrthodiny aktuální spotřeba dostává pod přímku //ESOL//, skupiny se postupně opět připínají. Diference d určují oblasti odpínání a připínání jednotlivých skupin, //DOFF// je bezpečnostní oblast, za níž začíná zpětné připínání. Místo modulu M710 je možné použít softwarovou strukturu, která na vstup //TIN// přivede aktuální čas periody ve vteřinách (tedy postupně vzrůstající hodnotu 0...900 pro případ čtvrthodiny) a na vstup //EIN// spotřebovanou práci (neboli energii) od začátku periody (čtvrthodiny). {{:cs:mervis-ide:35-help:t34_1.png}} Výstupy pro povolování skupin spotřebičů jsou k dispozici v podobě pole binárních hodnot //BYGRP//. Vstupní pole //BGRP// slouží k zadání informace o tom, které skupiny jsou právě aktivní a tedy jejich odepnutí má smysl. Neaktivní skupiny jsou přeskakovány. Vektory s časovými parametry //TNMIN//, //TFMIN// a //TFMAX// umožňují zadat omezení pro max. a min. dobu vypnutí a minimální dobu běhu (//TNMIN//, tedy když je skupina povolena, neodstaví se před uplynutím této doby, ani kdyby to algoritmus vyžadoval). **Poznámka:** Hodnota //emax// je zadávána v kWh za (typicky) 15 minut. Jedná se o energii, práci, nikoli o příkon. Ačkoli je udávána v **kilowatthodinách**, tato energie je spotřebována během periody, tedy např. patnácti minut. Pokud máme budovu se sjednaným příkonem 1000 kW, maximální práce spotřebovaná za čtvrthodinu je 250 kWh. Hodnota //emax// tedy není průměrný příkon (v kW), hodnota průměrného příkonu by byla rovna //emax// pouze v případě, že by perioda byla jedna hodina. ===== Příklad použití ===== {{:cs:mervis-ide:35-help:t34_example.png}} Dvě proměnné, které snímají počet impulsů energie a čas čtvrthodiny v modulu M710, jsou přivedeny na vstupy //TIN// a //EIN//. Proměnná //E_MAX// je hodnota //MAX//. čtvrthodinové spotřeby. Povely k odpínání skupin jsou ve výstupní proměnné //BYGRP//, což je pole s osmi hodnotami typu bool. Blok //HELPER_MULTIOUTBOOL8// slouží jako “dekodér” pole na 8 binárních proměnných, aby bylo možné strukturu použít i v jazyce FUPLA; v ST by se odkázalo přímo na //BYGRP[INDEX]//, tedy na prvek pole. Na vstupu //BGRP// je vektor skupin, které jsou právě v provozu; pole je sestaveno z proměnných //OPER_CHILLERS//, //OPER_DHW_EL_1// a //OPER_DHW_EL_2//. Signály chodu máme tedy pouze u skupin 1, 4 a 5; ostatní skupiny 2, 3, 6, 7 a 8 signál o chodu nemají k dispozici (nejspíše se jedná o větší množství malých zařízení, spojených do skupin).