TASK – Standardní úloha řídicího systému REXYGEN

Symbol blokuPotřebná licence: STANDARD
PIC

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 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ů Level0Level3 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 (factortickntick<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

2023 © REX Controls s.r.o., www.rexygen.com