Aplikace reálného času
Pokud požadujete deterministické časování aplikace, chcete zaručit spouštění akcí v přesných časových
okamžicích nebo potřebujete zaručit posloupnost jednotlivých akcí, zvolte mód reálného času. Takové požadavky
jsou zpravidla spojeny s aplikacemi pro přímé řízení strojů, pro řízení laboratorních experimentů apod.
U aplikací reálného času je dobré mít na paměti, že:
- Systém sám o sobě nic nedělá. Veškerá aktivita pochází od jednotlivých virtuálních přístrojů. Až když
je nějaký virtuální přístroj aktivován, teprve informuje systém, o jaké vstupně/výstupní kanály má zájem.
Kanály vyžadované jednotlivými přístroji v daném časovém kroku jsou načteny a virtuální přístroje
data zpracují.
- Systém se vždy bude snažit maximálně dodržet vámi naprogramované časování, a to i pokud je aplikace
navržena tak, že na daném hardware a komunikačních rychlostech to není možné. V takovém případě je na vás,
abyste rozhodli o způsobu urychlení aplikace. To je možné celou řadou způsobů -- snížením počtu přístrojů
nebo prodloužením časování, nečasováním přístrojů které to nepotřebují, nahrazením časování aktivací od
události, posílením hardware (zrychlením procesoru, přidáním paměti), zrychlením komunikací apod.
- Pro aplikace reálného času mají zcela zásadní význam ovladače vstupně/výstupních zařízení. Naneštěstí
celá řada těchto ovladačů (zejména ovladačů průmyslových automatů) není pro práci v reálném čase
uzpůsobena. Jejich autoři často nezvládnou událostmi řízený návrh a vypomohou si periodickým čtením hodnot
z automatu. Sebelepší aplikace pak nemůže v reálném čase pracovat, protože ovladač jí v reálném čase
není schopen poskytnout data.
- Automatická komunikace s periferiemi může být na překážku u špatně napsaných ovladačů (nebo u špatně
navržených průmyslových automatů), kdy nelze přenášet jednotlivé údaje nebo jen určité části datových
oblastí. Pokud po dotazu na jediný byte ovladač nebo automat vždy pošle celý blok délky několika KB po sériové
lince, výkon celého systému prudce klesá. V takovém případě je lépe přesunout data z automatu do proměnných
a v ostatních přístrojích pracovat jen s proměnnými.
- Pro ladění aplikací reálného času nabízí Control Web možnost zobrazení informací o
časování celé aplikace i jednotlivých přístrojů. Okno s těmito informacemi se otevře současně se startem
aplikace, pokud v sekci settings uvedete parametr show_timing_info = true;.
Aplikace řízené změnou dat
Pokud vaše aplikace má za úkol jen vizualizovat, nikoliv řídit nějaký proces (samozřejmě s možností hlídat
poruchové stavy, zapisovat archivní soubory, zobrazovat historické trendy apod.), mód datově řízené aplikace
vám může ušetřit starosti s návrhem, usnadnit ladění a zkrátit čas realizace vaší aplikace. Aplikace řízené
změnami dat se řídí následujícími pravidly:
- Žádná aktivita přístroje nikdy nezpůsobí komunikaci s periferiemi a čtení nebo zápis dat, a to ani když
je daný virtuální přístroj periodicky časován (například přístroj historického trendu).
- Systém sám periodicky vyčítá data ze vstupně výstupních zařízení a pokud se jejich hodnota od posledního
čtení změnila, aktivuje všechny přístroje tento kanál používající.
- Virtuální přístroje nejsou aktivovány jen při změně kanálu, ale i po změně použitých proměnných. Např.
pokud nějaký přístroj pracuje s nějakou proměnnou a sám tuto proměnnou mění, bude neustále periodicky
aktivován, protože jeho aktivace způsobí změnu proměnné, která způsobí další aktivaci.
- Minimální perioda aktivace, čas aktivace ani pořadí aktivace v tomto módu nelze zaručit.