Obsah

Analogový inkrementální čítač

Název bloku

B107_ANALOGUEINCREMENTALCOUNTER

Volání v ST

PROGRAM B107 TEST
  VAR
 REAL1, REAL2: REAL;
 RESET: BOOL;
    FB: LIB.CORE.V1_0.B107_ANALOGUEINCREMENTALCOUNTER;
  END_VAR
 FB(IN:=REAL1, STEP:=1, OVERFL :=0, BSET:=RESET, OUT=>REAL2); 
END_PROGRAM

Knihovna

LIB\CORE

Verze

V1.0

Popis

Blok slouží jako čítač pulsů, který je schopen eliminovat přetečení. Blok zvládá počítat vážený výstup. Využívá se při počítání pulzů od elektroměru.

Vstupy

Vstup Typ Význam Výchozí hodnota
IN REALVstupní signál (obvykle analogový čítač s možností přetečení) 0
BSET BOOLNáběžnou hranou nastaví do počátečního stavu x0=x, add=0 a y začne na 0 False
STEP REALObvyklý krok vstupu x (obvykle step=1 pro x=1,2,3,…) 1
OVERFLREALPřetečení rozsahu (když x=0,…,65535 pak overfl=65536, když overfl ⇐ 0, pak se vstup přetečením nastaví automaticky)0
K REALKoeficient 1
KY0 REALPřídavná konstanta výstupu Ky (Ky=K*y+Ky0) 0

Výstupy

Výstup Typ Význam
OUT REALVýstupní signál (trvale inkrementovaný čítač bez horní hranice)
KY REALVážený výstup Ky=K*y+Ky0
ADD REALPřidaná hodnota k výstupu y zamezující přetečení (y=x+add-x0). To je zvýšení při zadání přetečení.
X0 REALPočáteční hodnota vstupu (když je náběžná hrana od bset, tak x0=x)
BOVERFLBOOLPuls 1 s signalizuje přetečení vstupu x
NOVERFLINT Počet vstupních přetečení (od posledního resetu bset)
XLAST REALHodnota vstupu x v předchozím Fupla kroku (interně užitečné pro automatické nastavení přetečení)

Funkce

Blok implementuje čítač pulsů, který je schopen eliminovat přetečení. Dejme tomu, že vstup x se zvyšuje takto: 0,1,2,3,…,65534,65535,0,1,2,… - pak je výstup y 0,1,2,3,…,65534,65535,65536,65537,65538,….atd. Blok také obsahuje vážený výstup Ky=K*y+Ky0, kde K a Ky0 jsou libovolně nastavitelné parametry. Například pokud jeden impuls znamená 0.2 kWh na připojeném elektroměru, pokud jste nastavili K=0.2, Ky0=3000 pak hodnota Ky měří energii v kWh a začíná na hodnotě 3000 kWh.

Parametr step, který je přírůstkem vstupu: Když se vstup x zvýší o jeden (tj. vstup vypadá takto 1,2,3,4,…) pak step=1. Když se vstup x zvýší o desetinu (např. 0.1, tj. vstup je 0.1,0.2,0.3,0.4,…) pak step=0.1 atd. Tento parametr definuje hodnotu prahu – když vstup x poklesne vice než o 5*step, pak se předpokládá, že došlo k přetečení. Mohou nastat dva scénáře:

Výstupní hodnota y může být resetována vstupem bset – když přijde náběžná hrana, pak y=0. Není možné nastavit výstupní hodnotu y na jinou hodnotu. Když potřebujete přesunout jinou hodnotu, použijte výstup Ky místo výstupu y a přesuňte ji parametrem Ky0.

Když dojde k přetečení, logický výstup boverfl bude true na jednu sekundu a výstup noverfl (počet přetečení) se zvýší o jednu. Když je blok resetován vstupem bset, pak noverfl je nastaven na nulu.

Existuje více výstupů s doplňujícími informacemi: x0, bset a bset, viz výše uvedená tabulka s popisem.

Poznámka

Důrazně doporučujeme nastavit parametr overfl podle přetečení zařízení připojeného ke vstupu x, například overfl=65536. Blok je pak schopen zvládnout přetečení, i když je FUPLA na chvíli vypnuta (například při výpadku napájení), a stále dává správnou hodnotu výstupu y, viz obrázek 3.

Funkce v případě špatného nastavení

Když overfl<0, pak se předpokládá, že overfl=0.

B107 Analogový inkrementální čítač.

B107 Analogový inkrementální čítač – když overfl =0. Blok poskytuje nepravdivou hodnotu, když je FUPLA vypnuta.

B107 Analogový inkrementální čítač – když overfl > 0. Blok obsahuje správnou hodnotu, když je FUPLA vypnuta.

Příklad použití

Funkce čítá vstupní hodnotu real1, při nastavení step=1, overfl=1. Nulování čítače se provádí náběžnou hranou proměnné reset.