Ří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
- Lib.Mervis
Omezení použití bloku
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éno | Datový typ | Retain | Nutno 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 | |
EnableEdgePulsing | bool | 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.ValveStateType | Aktuální stav bloku | |||||||||||||||||||||
CompositeState | uint | Bitové pole popisující celkový stav | Bit | Číslo | Vý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.