# maximum_graph

### Funkce:

Graficky zobrazí maximum, technické maximum, okamžitý výkon a průměrný výkon v probíhajícím maximu. Zároveň zobrazí předpoklad průměrného výkonu za dobu trvání celého maxima.

### Syntax:

      maximum_graph maximum_graph_name;
        timer = timer_name;
        owner = owner_name;
        position = integer, integer, integer, integer;
        win_disable = win_disable_list;
        win_title = string;
        access = integer;
        tab_select = integer;
        input_section
          kWh = expression;
          kW = expression;
          maximum_kW = expression;
          t_maximum_kW = expression;
          sync = boolean_expression;
          time = expression;
        end_input_section;
        range_to = real;
        duration = cardinal;
        length = cardinal;
        history = cardinal;
        look = look_list;
        frame = integer;
      end_maximum_graph

### Specifické parametry přístroje:

- input_section a end_input_section
  jsou klíčová slova uzavírající vstupní parametry přístroje.
- kWh
  obsahuje numerický výraz, který udává odběr v probíhající čtvrthodině, resp. hodině. V okamžiku příchodu synchronizačního impulsu musí výraz obsahovat hodnotu celkového odběru v právě uplynulé čtvrthodině, resp. hodině. (Tento údaj poskytuje přístroj supply_meter na výstupu kWh_15m, resp. kWh_1h)
- kW
  obsahuje numerický výraz, který udává okamžitý výkon. (Tento údaj poskytuje přístroj supply_meter na výstupu kW_output)
- maximum_kW
  obsahuje numerický výraz, který udává hodnotu maximálního průměrného výkonu (čtvrthodinového maxima). Výraz se vyhodnocuje při zachycení náběžné hrany signálu vyhodnocovaného výrazem sync, a po dobu trvání maxima zůstává stejný. (Tento údaj poskytuje přístroj diagram na výstupu maximum)
- t_maximum_kW
  obsahuje numerický výraz, který udává hodnotu technického maxima. Výraz se vyhodnocuje při zachycení náběžné hrany signálu vyhodnocovaného výrazem sync a po dobu trvání maxima zůstává stejný. (Tento údaj poskytuje přístroj diagram na výstupu t_maximum)
- sync
  obsahuje logický výraz, který odpovídá čtvrthodinovému, resp. hodinovému synchronizačnímu impulsu. Přístroj reaguje na náběžnou hranu signálu. (Tento údaj poskytuje přístroj energetic_time na výstupu sync_15m, resp. sync_1h)
- time
  obsahuje numerický výraz, který udává čas v setinách sekundy od začátku sledovaného maxima. (Tento údaj poskytuje přístroj energetic_time na výstupu time_15m pro čtvrthodinu, resp. time_1h pro hodinu).
- range_to
  numerická hodnota udávající maximální rozsah stupnice.
- duration
  numerická hodnota udávající rozsah časové stupnice v sekundách. Musí odpovídat zvolenému synchronizačnímu impulsu. Počátek nového maxima je vždy odstartován náběžnou hranou synchronizačního impulsu.
- length
  udává počet vzorků, které budou po dobu trvání maxima zaznamenány a zobrazeny v grafu.
- history
  počet hodnot, ze kterých bude počítán předpoklad odběru za celou dobu trvání maxima.
- look
  obsahuje seznam zobrazovaných částí přístroje. Seznam je tvořen následujícími klíčovými slovy oddělenými čárkami:
    h_ruler - horizontální stupnice
    v_ruler - vertikální stupnice
    display - číselné zobrazení údajů
- frame
  určuje v kladných hodnotách hloubku a v záporných výšku okraje. Pokud frame není zadán, zobrazí se přístroj bez okraje.

### Poznámky:

- Vzhled přístroje:
- Je–li přístroj v okně, lze pomocí menu měnit vzhled přístroje za běhu programu.
- Odkazy na parametry jiných přístrojů uvedené v závorkách platí pro standardní zapojení energetických přístrojů. Při jiném zapojení je nutné dbát na zajištění správných hodnot parametrů a správnou synchronizaci energetických přístrojů.
- Implicitně jsou nastaveny parametry:
    duration = 900;
    length = 300;
    history = 4;
    look = h_ruler, v_ruler, display;
    frame = 0;

### Příklad:

Příklad nastavení parametrů přístroje maximum_graph:

      window maximum_graph MaxGr;
        timer = 1;
        owner = background;
        position = 10, 10, 390, 287;
        win_title = 'Maximum graph';
        input_section
          kWh = kWh15m;
          kW = kW1;
          maximum_kW = Maximum;
          t_maximum_kW = TMaximum;
          sync = Sync;
          time = Time15m;
        end_input_section;
        look = h_ruler, v_ruler, display;
        colors
          paper = dgray;
          maximum_graph = green;
        end_colors;
      end_maximum_graph;

### Nativní procedury přístroje

    Init()

Pro zajištění inicializace přístroje v přesně určeném pořadí mezi ostatními energetickými přístroji. Před inicializací přístroje musí být nastavena potřebná vstupní data přístroje (přístroje, které tato data nastavují, musí být inicializovány dříve). Ve standardním zapojení je volána pro všechny energetické přístroje přístrojem energetic_time podle pořadí uvedeného v seznamu sync_list. Pořadí přístrojů v seznamu sync_list je blíže vysvětleno v popisu přístroje energetic_time.

    Sync()

Pro zajištění reakce přístroje na synchronizační impuls v přesně určeném pořadí mezi ostatními energetickými přístroji. Před zavoláním nativní procedury `Sync()` musí být nastaven synchronizační impuls (Metoda `Sync()` synchronizační impuls nenastavuje! ). Před reakcí přístroje na synchronizační impuls musí být nastavena potřebná vstupní data přístroje (přístroje, které tato data nastavují, musí být zavolány dříve). Ve standardním zapojení je volána pro všechny energetické přístroje, podle pořadí uvedeného v seznamu sync_list, přístrojem energetic_time, který také předtím nastaví příslušný synchronizační impuls. Pořadí přístrojů v seznamu sync_list je blíže vysvětleno v popisu přístroje energetic_time.

### Událostní procedury přístroje

Přístroj může volat standardní událostní procedury:

    OnActivate()
    OnShow()
    OnHide()
    OnNewPosition( RectX, RectY, RectW, RectD : integer )
    OnWindowMinimize()
    OnWindowMaximize()
    OnWindowRestore( WasMinimized, WasMaximized : boolean )
    OnWindowClose()

Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.