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 REXYGEN, 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 REXYGEN Compiler pro sestavení celé aplikace řídicího systému
REXYGEN.
Konfigurace systému REXYGEN 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 REXYGEN Compiler 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 REXYGEN.
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 REXYGEN. Poznamenejme, že systém REXYGEN 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 REXYGEN 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 REXYGEN 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!
U zařízení s více CPU je možné přiřadit různé úrovně různým CPU. Přiřazení CPU se provádí pomocí parametrů cpu0 až cpu3. CPU jsou číslovány od 0, přičemž -1 označuje výchozí nastavení.
Výstupy
Modules | Výstup pro připojování rozšiřujících modulů systému REXYGEN, viz blok MODULE | Long (I32) |
Drivers | Výstup pro připojování vstupně výstupních ovladačů systému REXYGEN, viz bloky IODRV a TIODRV | Long (I32) |
Archives | Výstup pro konfiguraci archivů, viz blok ARC | Long (I32) |
QTask | Výstup pro připojení rychlé úlohy (tzv. quick task) s nejvyšší prioritou a s nejkratší periodou, viz blok QTASK | Long (I32) |
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 (I32) |
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 (I32) |
Level2 | Výpočetní úroveň pro zařazování úloh s nízkou prioritou pri2 a dlouhou periodou určenou parametrem ntick2 | Long (I32) |
Level3 | Výpočetní úroveň pro zařazování úloh s nejnižší prioritou pri3 a nejdelší periodou určenou parametrem ntick3 | Long (I32) |
Parametry
target | Cílové zařízení Generic target device | String |
|
|
|
tick | Základní perioda (tik) jádra řídicího systému REXYGEN a současně též perioda rychlé úlohy QTASK (zadávaná ve vteřinách) 0.05 | Double (F64) |
ntick0 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick0 1 10 | Long (I32) |
ntick1 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick1 ntick0+1 50 | Long (I32) |
ntick2 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick2 ntick1+1 100 | Long (I32) |
ntick3 | Určuje základní periodu úloh zařazených do úrovně Level0 podle vztahu tick*ntick3 ntick2+1 1200 | Long (I32) |
pri0 | Priorita všech úloh zařazených do úrovně Level0 3 31 5 | Long (I32) |
pri1 | Priorita všech úloh zařazených do úrovně Level1 pri0+1 31 9 | Long (I32) |
pri2 | Priorita všech úloh zařazených do úrovně Level2 pri1+1 31 13 | Long (I32) |
pri3 | Priorita všech úloh zařazených do úrovně Level3 pri2+1 31 18 | Long (I32) |
cpu0 | Jádro procesoru přiřazené k úrovni 0 (-1=standardní, 0=jádro 0, 1=jádro 1, ...) -1 127 -1 | Long (I32) |
cpu1 | Jádro procesoru přiřazené k úrovni 1 (-1=standardní, 0=jádro 0, 1=jádro 1, ...) -1 127 -1 | Long (I32) |
cpu2 | Jádro procesoru přiřazené k úrovni 0 (-1=standardní, 0=jádro 0, 1=jádro 1, ...) -1 127 -1 | Long (I32) |
cpu3 | Jádro procesoru přiřazené k úrovni 0 (-1=standardní, 0=jádro 0, 1=jádro 1, ...) -1 127 -1 | Long (I32) |
[Předchozí] [Na začátek] [Výše] [Další]
2024 © REX Controls s.r.o., www.rexygen.com