EXEC – Exekutiva reálného času

Symbol blokuPotřebná licence: STANDARD
PIC

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 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 Level3 jsou určeny násobky parametrů ntick0 ntick3 a základní periody tick. Parametry pri0 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 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 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

Obecné cílové zařízení 

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)

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