Pokročilé definování úloh kontroléru
Systém Mervis umožňuje definovat úlohy, které má kontrolér (RT) vykonávat. Úloha je definice podmínek pro spuštění vybraného, neboli mapovaného programu, či více různých programů ve stanoveném pořadí.
Ve zjednodušeném módu sestavy je vždy definována jedna úloha, která opakovaně vykonává program main.program.fbd a není možné toto nastavení změnit. Pokud vznikne potřeba mít více kontrolerů v jedné sestavě, spouštět více různých programů, nebo spuštění některého programu podmínit, je nutné mít sestavu v plném módu.
V tomto návodu je popsáno, jak a kde úlohy definovat, jaké existují kategorie a typy úloh, vč. toho, jak optimalizovat vykonávání programu, ošetřit a zaznamenat chybové stavy, popř. i automatickou opravu.
Popis vlastností úlohy
Dvojklikem na název regulátoru v levém panelu sestavy se zobrazí seznam definovaných úloh s jejich vlastnostmi.
Seznam úloh regulátoru ve výchozím stavu (založení ve Zjednodušeném módu) vypadá takto:
Úlohy mají následující vlastnosti:
Vlastnosti | Význam |
---|---|
ID | Identifikační číslo úlohy |
Kategorie | Kategorie úlohy, vizte sekci Kategorie úloh |
Task | Vlastní pojmenování úlohy |
Priorita | Priorita, s jako bude úloha vykonána, nula je nejvyšší priorita |
Mapování programu | Přiřazení konkrétního programu do úlohy |
Typ | Typ běhu úlohy, popsáno v sekci Typy úloh |
Parametry | Parametry se různí podle použitého typu |
Kategorie úloh
Existují čtyři kategorie úloh, ale používají se pouze dvě:
NormalOperationTask - Normální operace, výchozí nastavení každé úlohy, úloha se vykonává podle zvoleného typu a definovaných parametrů.
ExecutionError - Úloha se spouští pouze v případě, kdy dojde ke kritické chybě úlohy NormalOperationTask (např. dělení nulou). V případě vytvoření úlohy s touto kategorií se ID úlohy automaticky změní na poslední (nejvyšší) ID. Úloha s touto kategorií může být pouze jedna.
Mervis IDE umožňuje vytvoření více úloh kategorie NormalOperationTask za předpokladu, že první bude typu Freewheeling, nebo Cyclic a další úlohy této kategorie budou pouze typu Event. Typy úloh jsou podrobně popsány níže.
Mapování programu
Dvojklikem do kolonky pod Mapování programu se zobrazí okno:
V tomto okně se označením myší vybere požadovaný program a přidá kliknutím na tlačítko Přidat →.
Pokud se v seznamu nezobrazí požadovaný program, je nutné zkompilovat sestavu!
Typy úloh
Typ úlohy určí způsob jejího vykonávání.
Typ | Význam |
---|---|
Freewheeling | Normální vykonávání, pauza mezi cykly podle % nastavení |
Cyclic | Spuštění úlohy se provádí periodicky dle definovaného intervalu v ms |
Event | Úloha se vykoná v případě splnění definované podmínky |
1. Freewheeling
Nastavení typu Freewheeling znamená, že zvolená úloha se bude vykonávat neustále dokola, podle možností kontroléru.
Parametr Poměr doby neaktivity udává dobu čekání na další výpočetní cyklus. Doba se udává jako podíl z doby posledního výpočetního cyklu. Příklad: bude-li jeden výpočetní cyklus trvat 10 ms a poměr doby neaktivity bude nastaven na 30 %, regulátor spustí další cyklus až po 3 ms.
2. Cyclic
Při nastavení typu Cyclic bude úloha prováděna každou pevně nastavenou periodu [ms].
Při delších periodách je výhodné využít syntaxe ST, například při nastavení periody 2 h a 30 min napíšeme namísto čísla 8400000 hodnotu t#2h30m (datový typ TIME).
3. Event
Nastavení typu Event nabízí podmíněné vykonání úlohy, která se může vykonávat buď jednorázově, nebo opakovaně v reakci na zvolenou proměnnou. Celkem existují 4 možnosti:
Podmínka spuštění | Význam |
---|---|
Náběžná hrana | Jednorázové vykonání úlohy při náběžné hraně |
Sestupná hrana | Jednorázové vykonání úlohy při sestupné hraně |
Vysoká úroveň | Nepřetržité vykonávání úlohy při hodnotě TRUE |
Nízká úroveň | Nepřetržité vykonávání úlohy při hodnotě FALSE |
Po rozkliknutí parametru proměnná se objeví okno se seznamem proměnných, požadovanou proměnnou lze přidat výběrem a kliknutím na tlačítko Přidat →.
Definování úlohy
Po vygenerování sestavy ve zjednodušeném módu je pro kontrolér automaticky vytvořena úloha s namapovaným programem main. Při založení sestavy v plném módu je nutné vytvořit program a úlohu a namapovat.
Pro přidání úlohy stačí kliknout do libovolného místa v otevřeném okně pravým tlačítkem myši a vybrat možnost Přidat task v kontextovém menu.
Vytvoření úlohy a jiné změny je třeba potvrdit kliknutím na OK v červené liště.
POZOR!
Všechny změny úlohy je vždy nutné potvrdit kliknutím na OK v červené liště.
Příklad použití
Nastavení bezpečného stavu ovládaného zařízení
Bezpečnými hodnotami se rozumí takové, které nemohou ohrozit zdraví pracovníků a poškodit zařízení. Pokud dojde při běhu programu k výjimce (např. k dělení nulou), NormalOperation se zastaví a spustí se úloha ExecutionError.
1. Příklad bezpečného stavu zařízení "pila"
Zařízení obsluhující pilu. V situaci, kdy nastane chyba programu, úloha NormalOperation se zastaví, úloha ExecutionError se spustí a zastaví list pily a posuv. Díky tomuto ošetření chybového stavu se předejde možným zraněním pracovníků, nebo poškození pily.
2. Příklad bezpečného stavu zařízení "cementárna"
Zařízení obsluhující plnič v cementárně. V situaci, kdy nastane chyba programu, úloha NormalOperation se zastaví, úloha ExecutionError se spustí a uzavře klapky zásobníků. Díky tomuto ošetření chybového stavu se předejde zbytečným ztrátám materiálu.
UPOZORNĚNÍ Je dobrým zvykem nastavit výchozí hodnoty vstupů a výstupů na bezpečné hodnoty.
Pro opětovné spuštění úlohy NormalOperation po ošetření chybového stavu je nutné dát do úlohy ExecutionError funkci RESUMENORMALTASK.
Informování e-mailem, SMS, popř. optická signalizace poruchy na ULED
O chybovém stavu je vhodné informovat příslušné osoby e-mailem, či SMS a tento stav zaznamenat vyvoláním alarmu. Detailní popis nastavení hlášení lze nalézt v samostatných článcích věnovaných odesílání e-mailů a SMS.
Pro názornost lze přidat optickou signalizaci např. na uživatelskou LED diodu X1, nebo sepnout výstup DO/RO s připojeným signalizačním zařízením.
Použití typu Event
1. Spuštění jednorázové akce
Při náběžné hraně DI se vyvolá jednorázová akce - ovlivnění parametru programu, odeslání hlášení, či výpočet nové hodnoty v závislosti na událost.
2. Přepínání mezi programy
Podle hodnoty DI se provádí dva různé programy (false program1 a true program2). Toto je výhodné zejména ve FBD, v ST lze stejného chování podmínkou IF.
3. Spouštění programů s danou periodou
Blok BD2 (pulzní generátor) bude generovat pulzy, které mohou spouštět další program. Výhodné je to v případech, kdy potřebujeme spouštět jiný program opakovaně, ale je nežádoucí jej spouštět každý výpočetní cyklus (pro úsporu výpočetního výkonu).