Dobrý den, nedaří se mi nikde najít nějaký totalizér - potřebuji z analogového měření (např. okamžitý průtok) načíst celkové protečené množství. Existuje v nějaké knihovně jednoduché řešení? Děkuji, Dvořáček
Odpovědi 3
V knihovně EnergyLib jsou funkční bloky fbFlowMeterPulse a fbFlowMeterCounter, které z počtu impulsů počítají okamžitý průtok i celkovou spotřebu. Podobně i fbMeterCounter z knihovny ConvertLib.
Dobrý den,
děkuji, ale tyto bloky řeší průtokoměry s pulsním výstupem. V mém případě potřebuji zpracovat analogovou hodnotu, kdy je na AI připojen snímač s hodnotou okamžitého průtoku např v jednotkách kg/h, a požadováno je proteklé množstvé média např. za celý den, popř. celkové proteklé množství, než operátor totalizér zresetuje.
Dobrý den,
aktualizovali jsme knihovnu EnergyLib na verzi 2.6, která obsahuje blok fbFlowTotaliser, který by měl řešit Vaše zadání. Popis bloku:
Funkční blok fbFlowTotaliser
Knihovna : EnergyLib
Funkční blok fbFlowTotaliser slouží k měření celkového proteklého množství z hodnoty průtoku měřené analogovým průtokoměrem. Průtok z měřidla se přivede na vstup Flow. Předpokládané jednotky jsou m3/h. Hodnota celkového proteklého objemu je vracena na výstupu Volume v m3..
Celkový proteklý objem je uchováván celočíselně v proměnné na vstupu VolumeCnt jako počet proteklých litrů. Tato proměnná by měla být založena jako RETAIN, aby se proteklý objem zachoval i po restartu PLC. Maximální proteklé množství je 2147483647 litrů. Po dosažení této hodnoty dojde k zastavení čítání na této hodnotě a nastavení příznaku OverflowVol.
Blok je možné použít i pro jiné jednotky. Například pro kg/h bude výstup vracet počet proteklých kilogramů a hodnota bude uchována jako celé číslo v gramech.
Popis proměnných :
|
Proměnná |
Typ |
Význam |
VAR_INPUT |
|||
ResetVol |
BOOL R_EDGE |
Nulování počítadla proteklého množství |
|
Flow |
REAL |
Objemový průtok [m3/h] |
|
VAR_OUTPUT |
|||
OverflowVol |
BOOL |
Přetečení čítače pulzů, nastavte reset do logické 1 |
|
Volume |
REAL |
Celkový objem [m3] |
|
VAR_IN_OUT |
|||
VolumeCnt |
DINT |
Počítadlo pulzů celkového průtoku [l] (musí být RETAIN!) |
Příklad použití funkčního bloku pro vstup z jednotky C-AM-0600I. Dělení měřené hodnoty konstantou 0,06, převádí litry za minutu na kubické metry za hodinu.
PROGRAM prgExampleFlowTotaliser
VAR
FlowTotaliser : fbFlowTotaliser;
END_VAR
VAR RETAIN
VolumeCnt : DINT;
END_VAR
VAR_TEMP
END_VAR
FlowTotaliser(Flow := C_AM_0600I_IN.AV23.FLOW / 0.06,
VolumeCnt := VolumeCnt);
END_PROGRAM
Tento dotaz je vyřešený.