Obsah

Řízení trojbodového ventilu (v1.4)

Celé jméno

Lib.Mervis.v1_4.ThreePointValve

Popis

Blok slouží pro řízení trojbodové ventilu generováním povelů pro otevření resp. zavření.

Potřebné reference projektu

Omezení použití bloku

**Test**

Použití v ST

program test
    var
        valve: lib.mervis.v1_4.ThreePointValve;
    end_var

    valve();
end_program

Popis vstupů a výstupů

Vstupy JménoDatový typRetainNutno připojit Význam
x real Ne Ano Požadovanápoloha ventilu
CalibrateMin bool Ne Ne Provede kalibraci na stav zavřeno
CalibrateMax bool Ne Ne Provede kalibraci na stav otevřeno
Tmin time Ne Ne Minimální doba generovaného pulsu
Trunopen time Ne Ne Doba potřebná k plnému otevření ventilu
Trunclose time Ne Ne Doba pořebná k plnému zavření ventilu
Overrun real Ne Ne Korekce času při dojezdu do krajních poloh, povolený rozsah od 0 do 1
EnableEdgePulsingbool Ne Ne Povoluje generování periodických otevíracích resp. zavíracích pulsů
Výstupy Jméno Datový typ Význam
Open bool Povel na otevírání
Close bool Povel na zavírání
Position real Aktuální vypočtená pozice ventilu
ValveState Lib.Mervis.v1_3.ValveStateTypeAktuální stav bloku
CompositeStateuint Bitové pole popisující celkový stav

BitČísloVýznam
0 1 Plné zavření
1 2 Plné otevření
2 4 Ventil v pohybu
3 8 Aktivní kalibrace

Podrobný popis funkce

Blok generuje na základě definovaný parametrů a požadavku na polohu impulsy pro otevírání resp. zavírání trojbodového ventilu. Generování pulsů se odvíjí od vypočtené polohy. Poloha se vypočítává na základě délek generovaných pulsů. Pro potřeby dalšího výkladu se dobou přejezdu rozumí větší hodnota z Trunopen nebo Trunclose.

Pokud se žádaná poloha nemění je blok ve stavu Idle. Blok počítá s minimálním krokem žádané polohy dle minimální doby pulsu a celkové doby přejezdu, pokud se žádaná změní o více než tento krok, přechází blok do stavu Moving a generuje pulsy na Open a Close až do doby dosažení požadované polohy. Pokud je požadovanou polohu plně otevřeno resp. zavřeno generuje se ještě ochranný puls délky (blok je ve stavu MovingOverrun) vypočtenou jako násobek doby přejezdu a parametru Overrun.
Při požadavku na krajní polohy dochází při nastavení parametru EnableEdgePulsing na true ke generování dodatečných otevíracích resp. zavíracích impulsů a to s dobou sepnuti rovnou čtyřnásobku Tmin (minimálně však 10s) a dobou vypnutí rovnou jedné čtvrtině doby přejezdu (maximálně však 20 s), v době generování sepnutí je blok ve stavu Safe.

Mimo bezpečnostní pulsy je možné vyžádat kalibraci polohy pomocí vstupů CalibrateMin a CalibrateMax. Spuštění kalibrace způsobí generování pulsu na Close (při CalibrateMin) resp. Open (při CalibrateMax) délky rovné době přejezdu zvětšené o 20s a patřičné nastavení vypočtené polohy. Během této kalibrace je blok ve stavu CalibrationMin resp. CalibrationMax a nereaguje na změny požadované pozice až do doby skončení kalibrace. Poté se vrací do běžné funkce a stavů Idle nebo Moving.

Verze