TASK – Standardní úloha řídicího systému REXYGEN
Symbol blokuPotřebná licence: STANDARD
Popis funkce
Algoritmy řídicích úloh (task) jsou do systému REXYGEN zařazovány pomocí
bloků typu TASK. Aplikace řídicího systému může obsahovat několik úloh, které
se v konfiguraci systému zařazují do jednotlivých výpočetních úrovní
připojením na výstupy Level0 až Level3 bloku EXEC. Vstup
prev první úlohy dané úrovně <i> se propojí s výstupem Level<i> bloku
EXEC. Další úlohy této úrovně se přidávají propojováním vstupu
prev s výstupem next předchozí úlohy. Na každý výstup next smí být připojen
nejvýše jeden vstup prev následující úlohy stejné úrovně, u poslední úlohy
zůstává výstup next nepřipojen. Vzniklá posloupnost úloh dané úrovně
určuje pořadí inicializace a spouštění úloh této úrovně v řídicím
systému REXYGEN. Jednotlivé úrovně se inicializují v pořadí od Level0
do Level3 (rychlá úloha QTASK se inicializuje před úrovní
Level0).
Všechny úlohy na dané úrovni <i> jsou prováděny se stejnou prioritou, která je určena parametrem pri<i> bloku EXEC. Doba provádění úlohy je vypočítána jako násobek parametru factor a základní periody úrovně ntick<i>tick v bloku EXEC.
Čas vyhrazený pro provádění úlohy začíná v tiku start a končí v tiku stop. Hodnoty start a stop mohou být pevné nebo automaticky určovány RexCore. Pro automatické určování RexCore lze parametry vyplnit následovně:
- start = -1: Provádění začíná ihned po skončení předchozí úlohy.
- start = -2: Provádění začíná v následujícím tiku po dokončení předchozí úlohy.
- stop = -1: Provádění úlohy musí skončit před koncem ntick<i>*tick.
- stop = -2: Provádění úlohy musí skončit v následujícím tick.
Pro pevné doby provádění by měly být hodnoty start a stop nezápornými celými čísly.
Kompilátor REXYGEN Compiler dodatečně ověřuje, že hodnota parametru stop předchozí úlohy je menší nebo rovna hodnotě parametru stop následující úlohy. To zajistí, že přidělené časové intervaly pro jednotlivé úlohy se nepřekrývají. Pokud časování jednotlivých úrovní není vhodné, úlohy mohou být přerušeny úlohami a jinými událostmi s vyšší prioritou. V takových případech provádění není zastaveno, ale pouze zpožděno (na rozdíl od bloku QTASK). Sekce Diagnostics programu REXYGEN Studio hodnotí, zda je zpoždění provádění příležitostné nebo trvalé (karty Level a Task).
Vstup
prev | Vstup sloužící pro k připojení první úlohy na některý z výstupů Level0 až Level3 bloku EXEC nebo k připojení na výstup next předchozí úlohy dané úrovně | Long (I32) |
Výstup
next | Výstup sloužící pro zřetězování úloh dané úrovně připojením na vstup prev následující úlohy téže úrovně | Long (I32) |
Parametry
factor | Faktor spouštění, násobek periody tickntick<i> bloku i-té výpočetní úrovně bloku EXEC určující periodu úlohy (ntick<i>) 1 | Long (I32) |
start | Číslo tiku periody dané výpočetní úrovně, na kterém má být úloha spuštěna 0 ntick<i> | Long (I32) |
stop | Číslo tiku periody dané výpočetní úrovně, do kterého má být úloha dokončena start+1 ntick<i> | Long (I32) |
stack | Velikost zásobníku (v bytech) 10240 | Long (I32) |
filename | Jméno souboru s příponou .mdl obsahující algoritmus úlohy. Není-li jméno zadáno, je jméno souboru určeno jménem tohoto bloku (v hlavním souboru projektu) doplněným příponou .mdl. | String |
[Předchozí] [Na začátek] [Výše] [Další]
2023 © REX Controls s.r.o., www.rexygen.com