B107_ANALOGUEINCREMENTALCOUNTER
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
LIB\CORE
V1.0
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.
Vstup | Typ | Význam | Výchozí hodnota |
IN | REAL | Vstupní signál (obvykle analogový čítač s možností přetečení) | 0 |
BSET | BOOL | Náběžnou hranou nastaví do počátečního stavu x0=x, add=0 a y začne na 0 | False |
STEP | REAL | Obvyklý krok vstupu x (obvykle step=1 pro x=1,2,3,…) | 1 |
OVERFL | REAL | Přetečení rozsahu (když x=0,…,65535 pak overfl=65536, když overfl ⇐ 0, pak se vstup přetečením nastaví automaticky) | 0 |
K | REAL | Koeficient | 1 |
KY0 | REAL | Přídavná konstanta výstupu Ky (Ky=K*y+Ky0) | 0 |
Výstup | Typ | Význam |
OUT | REAL | Výstupní signál (trvale inkrementovaný čítač bez horní hranice) |
KY | REAL | Vážený výstup Ky=K*y+Ky0 |
ADD | REAL | Př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 | REAL | Počáteční hodnota vstupu (když je náběžná hrana od bset, tak x0=x) |
BOVERFL | BOOL | Puls 1 s signalizuje přetečení vstupu x |
NOVERFL | INT | Počet vstupních přetečení (od posledního resetu bset) |
XLAST | REAL | Hodnota vstupu x v předchozím Fupla kroku (interně užitečné pro automatické nastavení přetečení) |
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.
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.
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.