EXEC – Exekutiva reálného času

Symbol blokuPotřebná licence: STANDARD
Qt SVG Document Exported by REXYGEN Studio Modules Drivers Archives QTask Level0 Level1 Level2 Level3 EXEC

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!

Na zařízeních s více CPU je možné využít parametry cpu_rt a cpu_other, které umožňují rezervovat jádro pro real-time úlohy (např. Drivers a Levels) a jádro pro ostatní REXYGEN úlohy (např. diagnostika nebo webový server). Po vyplnění parametru na daném CPU poběží výhradně definované REXYGEN úlohy. Dále lze pomocí parametrů cpu0 cpu3 určit jádro pro daný Level. CPU jsou číslovány od 0, přičemž -1 označuje výchozí nastavení. Parametry cpu0-3 jsou prioritní vůči cpu_rt a cpu_other.

Tento blok nepropaguje kvalitu signálu. Více informací je uvedeno v sekci 1.4.

Parametr

target

 Generic target device

String

tick

Základní perioda runtime jádra [s]  0.05

Double (F64)

ntick0..ntick3

Perioda úloh v úrovni 0 (tick*ntick0)   1 10

Long (I32)

pri0..pri3

Priorita úloh v úrovni 0   3  31 5

Long (I32)

cpu_rt

Výchozí jádro procesoru přiřazené k časově kritickým úlohám (-1=výchozí, 0=jádro 0, 1=jádro 1, ...)   -1  127 -1

Long (I32)

cpu_other

Výchozí jádro procesoru přiřazené k nekritickým úlohám (-1=výchozí, 0=jádro 0, 1=jádro 1, ...)   -1  127 -1

Long (I32)

cpu0..cpu3

Jádro procesoru přiřazené k úrovni 0 (-1=výchozí, 0=jádro 0, 1=jádro 1, ...)   -1  127 -1

Long (I32)

Výstup

Modules

Výstup pro připojení rozšiřujících modulů

Long (I32)

Drivers

Výstup pro připojení I/O ovladačů

Long (I32)

Archives

Výstup pro připojení archivů

Long (I32)

QTask

Výstup pro připojení rychlé úlohy

Long (I32)

Level0..Level3

Výstup pro připojení úloh úrovně 0

Long (I32)

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