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í.
program test var inp: lib.mervis.v1_0.IncrementalCounter; end_var inp(); end_program
Jméno | Datový typ | Retain | Nutno připojit | Význam | |
In | udint | Ne | Ano | Vstupní hodnota čítače | |
Set | bool | Ne | Ne | Vynulování čítače | |
Overflow | udint | Ne | Ne | Maximální hodnota vstupního čítače pro zpracování přetečení (pokud je =0 nevyužívá se) | |
Step | udint | Ne | Ne | ||
PulseWeight | real | 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 |
Jméno | Datový typ | Význam | |
Out | udint | Výstup | |
Weighted | real | Výstup přepočtený pomocí PulseWeight a Offset na fyzikální hodnotu | |
OverflowFlag | bool | Příznak přetečení | |
OverflowCount | udint | Poč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:
Výstup Weighted se počítá jako lineární transformace vnitřní stavu čítače, tedy Weighted = PulseWight * Out + Offset