Čítač s hlídáním přetečení
Celé jméno
Lib.Mervis.v1_0.IncrementalCounter
Potřebné reference projektu
- Lib.Mervis
Popis
Pomocný blok sloužící pro ošetření čítačových vstupů, u kterých hrozí riziko přetečení.
Použití v ST
program test var inp: lib.mervis.v1_0.IncrementalCounter; end_var inp(); end_program
Vstupy
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 |
Výstupy
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 |
Podrobný popis funkce
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