====== Řízení trojbodového ventilu (v1.4) ====== {{:cs:mervis-ide:35-help:threepointvalve.png}} ==== 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 ===== [[..:..:generic_usagelimits.htm|**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é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 |[[..:valvestatetype_v1.3.htm|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//. ===== Verze ===== {{indexmenu>.005-threepointvalve#2}}