Čítač s hlídáním přetečení

Lib.Mervis.v1_0.IncrementalCounter

Pomocný blok sloužící pro ošetření čítačových vstupů, u kterých hrozí riziko přetečení.

  • Lib.Mervis
program test
    var
        inp: lib.mervis.v1_0.IncrementalCounter;
    end_var

    inp();
end_program
Vstupy JménoDatový typRetainNutno připojit Význam
In udintNe Ano Vstupní hodnota čítače
Set bool Ne Ne Vynulování čítače
Overflow udintNe Ne Maximální hodnota vstupního čítače pro zpracování přetečení (pokud je =0 nevyužívá se)
Step udintNe Ne
PulseWeightreal Ne Ne Váha pulsu, použito na přepočet hodnoty čítače na fyzikální hodnotu
Offset real Ne Ne Offset počtu pulsů, použito na přepočet hodnoty čítače na fyzikální hodnotu
Výstupy JménoDatový typ Význam
Out udintVýstup
Weighted real Výstup přepočtený pomocí PulseWeight a Offset na fyzikální hodnotu
OverflowFlag bool Příznak přetečení
OverflowCountudintPočet přetečení čítače

Blok se používá pro ošetření hodnoty z čítače, který často přetéka. Blok uvnitřn obsahuje 32bitový čítač, který vždy inkrementuje o daný počet příchozích pulsů (rozdíl oproti minulému výpočetnímu cyklu). Pokud je tento rozdíl záporný, bere se toto jako přetečení a chování závisí od hodnoty parametru Overflow:

  • Overflow = 0 → změna se ignoruje a stav vnitřního čítače se nemění.
  • Overflow > 0 → čítač přetekl, k vnitřnímu stavu se přičte rozdíl Overflow - Předposlední vstupní hodnota a také současný stavu čítače

Výstup Weighted se počítá jako lineární transformace vnitřní stavu čítače, tedy Weighted = PulseWight * Out + Offset

  • © Energocentrum Plus, s.r.o. 2017 - 2024