EXEC – Exekutiva reálného času
Symbol blokuPotřebná licence: STANDARD
Popis funkce
Blok EXEC tvoří základ tzv. hlavního souboru projektu ve formátu .mdl, kterým se
konfigurují jednotlivé subsystémy řídicího systému REX, a který nemá analogii
v systému Matlab-Simulink. Konfigurace bloku EXEC a na něj navázané bloky
nerealizují žádný výpočetní algoritmus, ale jsou zpracovány překladačem
RexComp pro sestavení celé aplikace řídicího systému REX.
Konfigurace systému REX se skládá z modulů (Modules), vstupně-výstupních ovladačů (Drivers), archivačního subsystému (Archives) a subsystému reálného času, obsahujícího rychlou výpočetní úlohu (blíže viz blok QTASK) a čtyři prioritní úrovně (Level0 až Level3) pro zařazování výpočetních úloh (blíže viz blok TASK).
Parametr tick určuje základní (nejkratší) periodu, se kterou bude možno spouštět jednotlivé úlohy. Zadaná hodnota je kontrolována překladačem RexComp podle zvoleného cílového zařízení. Obecně lze říci, že čím menší hodnota je zadána, tím je větší režie jádra řídicího systému REX.
Periody jednotlivých výpočetních úrovní Level0 až Level3 jsou určeny násobky parametrů ntick0 až ntick3 a základní periody tick. Parametry pri0 až pri3 jsou logickými prioritami odpovídajících výpočetních úrovní v systému REX. Poznamenejme, že systém REX používá 32 logických priorit, kterým jsou interně přiřazeny priority závislé na operačním systému cílového zařízení. Nejvyšší logická priorita systému REX je 0, nejnižšší má hodnotu 31, přičemž platí, že pokud mají běžet dvě úlohy s různými prioritami, bude úloha s nižší prioritou (vyšší hodnotou) přerušena úlohou s vyšší prioritou (nižší hodnotou). Řídicí systém REX vychází z obecně přijímané myšlenky, že „rychlé“ úlohy (s krátkou periodou vzorkování) je vhodné spouštět s vyšší prioritou než úlohy „pomalé“ (tzv. Rate monotonic scheduling). Proto přednastavené hodnoty priorit pri0 až pri3 není ve většině případů třeba měnit; neuvážená změna může vést k těžko předvídatelným důsledkům!
Výstupy
Modules | Výstup pro připojování rozšiřujících modulů systému REX, viz blok MODULE | long |
Drivers | Výstup pro připojování vstupně výstupních ovladačů systému REX, viz bloky IODRV a TIODRV | long |
Archives | Výstup pro konfiguraci archivů, viz blok ARC | long |
QTask | Výstup pro připojení rychlé úlohy (tzv. quick task) s nejvyšší prioritou a s nejkratší periodou, viz blok QTASK | long |
Level0 | Výpočetní úroveň pro zařazování úloh (viz blok TASK) s vysokou prioritou pri0 a krátkou periodou určenou parametrem ntick0 | long |
Level1 | Výpočetní úroveň pro zařazování úloh se střední prioritou pri1 a středně dlouhou periodou určenou parametrem ntick1 | long |
Level2 | Výpočetní úroveň pro zařazování úloh s nízkou prioritou pri2 a dlouhou periodou určenou parametrem ntick2 | long |
Level3 | Výpočetní úroveň pro zařazování úloh s nejnižší prioritou pri3 a nejdelší periodou určenou parametrem ntick3 | long |
Parametry
target | Cílové zařízení PC - Windows | string |
|
|
|
tick | Základní perioda (tik) jádra řídicího systému REX a současně též perioda rychlé úlohy QTASK (zadávaná ve vteřinách) 0.05 | double |
ntick0 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick0 1 10 | long |
ntick1 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick1 ntick0+1 50 | long |
ntick2 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick2 ntick1+1 100 | long |
ntick3 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick3 ntick2+1 1200 | long |
pri0 | Priorita všech úloh zařazených do úrovně Level0 3 31 5 | long |
pri1 | Priorita všech úloh zařazených do úrovně Level1 pri0+1 31 9 | long |
pri2 | Priorita všech úloh zařazených do úrovně Level2 pri1+1 31 13 | long |
pri3 | Priorita všech úloh zařazených do úrovně Level3 pri2+1 31 18 | long |
[Předchozí] [Na začátek] [Výše] [Další]