# Shrnutí

Jedním ze základních cílů návrhu systému Control Web byla snaha učinit běžné věci snadnými a komplikované věci možnými. To znamená, že k úspěšné práci se systémem není zapotřebí znát všechny jeho vlastnosti do nejmenších detailů. U systému s tak rozsáhlými možnostmi, jako je Control Web, to ani není dost dobře možné. Málokdo je současně expertem na řízení a regulaci, na návrh rozhraní člověk-stroj, na distribuované zpracování, na objektově-orientované programování, na numerickou matematiku, digitální zpracování signálu a neuronové sítě, na databázové a informační systémy, na počítačové sítě, Internet a intranet, na návrh WWW serverů apod. Přesto je ale příjemné vědět, že pracujete se systémem, který je dostatečně mocný a flexibilní, aby vám vyhověl i pokud požadavky vašich zákazníků poněkud vybočí ze zavedených kolejí. Pak stačí podrobněji se seznámit s konkrétní oblastí a využít dalších možností systému.

Přesto ale existuje určitá množina znalostí, které je dobré mít na paměti. Zde je jejich shrnutí.

## Co to je aplikace

- Aplikace systému Control Web je tvořena především množinou virtuálních přístrojů. Virtuální přístroj je programová komponenta sama o sobě schopná pracovat — vykonávat nějakou činnost. Virtuální přístroj si tedy pamatuje nějaká data (jaká data a kolik jich je, to závisí na typu přístroje) a taktéž je schopen s těmito daty manipulovat (způsob manipulace je opět závislý na typu virtuálního přístroje). Samozřejmě je možné v aplikaci použít mnoho výskytů (instancí) virtuálních přístrojů jediné třídy (typu) a data, která si jednotlivé instance pamatují se mohou lišit.
- Každý virtuální přístroj je určité třídy (určitého typu). Třída přístroje jej předurčuje ke specifickému účelu, neboť v sobě zahrnuje velké množství funkcí zaměřených na dané použití. Právě schopnosti již obsažené v jednotlivých třídách virtuálnich přístrojů vám ušetří velké množství práce. V každé instalaci vývojového prostředí je v "Paletě přístrojů" nabídka všech tříd virtuálních přístrojů, které jsou momentálně k dispozici (to znamená nainstalovány ve vývojovém prostředí). Každá záložka palety přístrojů reprezentuje jednu knihovnu přístrojů, která může obsahovat jednu či více tříd přístrojů.

Paleta přístrojů

- Užitečnost virtuálních přístrojů by byla velmi malá, pokud by jejich funkčnost byla určena výhradně jejich třídou. Proto má každý virtuální přístroj množinu vlastností (parametrů), které modifikují jeho činnost. Takovým parametrem může být například pozice přístroje na obrazovce a jeho barva, ovlivňující jeho vzhled, zápis matematického výrazu, který bude virtuální přístroj vyhodnocovat a jehož výsledek bude zobrazovat nebo perioda, s jakou má být virtuální přístroj aktivován. I pokud vytvoříte více instancí virtuálních přístrojů stejné třídy, jejich vlastnosti definujete u každé instance zvlášť. Jednotlivé instance se tak mohou lišit nejen vzhledem, ale částečně i funkčností danou např. zadaným matematickým výrazem.
- Míra, do jaké lze funkčnost virtuálních přístrojů modifikovat jejich vlastnostmi, velmi závisí na typu přístroje. Např. u přístroje meter lze pomocí parametru zcela změnit jeho vzhled a zobrazení přístroje draw je téměř kompletně určeno pouze jeho parametry.

Ukázka některých módů přístroje meter

- Modifikace virtuálních přístrojů není omezena jen na jejich vlastnosti (parametry). Určovat lze i chování jednotlivých přístrojů, a to pomocí procedur. K použití procedur je ale nutno znát alespoň základy programování. Podrobněji je použití procedur popsáno ve druhém dílu v kapitole Programování a procedury.

## Předávání dat a komunikace z okolím

- Prakticky nikdy nelze celou aplikaci realizovat jediným přístrojem, vždy je potřeba použít více spolupracujících virtuálních přístrojů. Aby mohly virtuální přístroje spolupracovat, musí být schopny nějakým způsobem si předávat data. K uschování i předávání dat v systému slouží proměnné a kanály, společně nazývané datové elementy. Datový element je vyhrazené místo v paměti počítače, na kterém je umístěna nějaké hodnota. Všechny datové elementy je v rámci aplikace nutné nejprve deklarovat (zapsat jejich jméno, typ, apod.) a teprve poté je možno je používat. Hodnoty datových elementů je možno číst i zapisovat. Virtuální přístroje si tedy mohou předávat data prostě tak, že jeden virtuální přístroj hodnotu datového elementu zapíše a druhý ji přečte.
- Každá proměnná je svázána s nějakým datovým typem — druhem dat v proměnné uchovávaným. Dvoustavovou logickou hodnotu nelze ukládat do číselné proměnné a číselnou proměnnou zase nelze ukládat to do proměnné uchovávající text. O proměnných, jejich typech a výrazech se více dočtete v kapitole Datové elementy a výrazy.
- Práce s kanály se podobá práci s proměnnými s tím rozdílem, že zápis do kanálu způsobí přenos zapsané hodnoty přes ovladač do periferie a čtení z kanálu naopak přenese hodnotu z periferie přes ovladač do aplikace. Vzhledem k tomu, že operace čtení a zápisu do periferií je ve srovnání s rychlostí procesoru počítače velmi nízká, nelze při každém přístupu ke kanálu vyvolávat komunikaci. Proto se vždy shromažďují požadavky od všech přístrojů aktivovaných v rámci jednoho časového kroku. Komunikace s periferiemi má ovšem řadu dalších aspektů, podrobněji se o ní můžete dočíst v kapitolách Podrobněji o časování, aplikacích reálného času a datově řízených aplikacích, Běh datově řízené aplikace, Časování aplikací reálného času a Komunikace, ovladače a kanály.
- Práce s kanály je zcela nezávislá na tom, s jakou vstupně/výstupní jednotkou je kanál spojen. Izolační vrstvu mezi aplikací a vstupně/výstupními zařízeními zprostředkovávají ovladače. Více se o ovladačích dočtete v kapitole Komunikace, ovladače a kanály.
- Aplikace systému Control Web je tedy tvořena množinou virtuálních přístrojů, které komunikují prostřednictvím datových elementů. Pokud aplikace komunikuje s vnějším světem, je nutno použít zvláštní typ datových elementů zvaných kanály, které pomocí ovladačů předávají data mezi aplikací a periferiemi.

## Struktura aplikace

- Tak jako v reálném světě se skutečné přístroje umisťují na panely, i v případě aplikace systému Control Web můžete jednotlivé virtuální přístroje slučovat, uspořádávat a organizovat. Na rozdíl od reálného světa ale nepotřebujete vrtačku a šroubovák, stačí několik pohybů myši.
- Ne všechny virtuální přístroje jsou zobrazeny na obrazovce. Některé přístroje pracují čistě jako servery zpracovávající nebo poskytující data a nemusí být vůbec zobrazeny. Určité třídy přístrojů ani nemohou být zobrazeny, neboť vůbec nemají vizuální podobu. Pokud je ale některý přístroj zobrazen, vždy na obrazovce zabírá určitou obdélníkovou plochu.
- Aplikace systému Control Web pracují v rámci grafického uživatelského rozhraní operačního systému. Viditelné virtuální přístroje tvoří prvky tohoto grafického rozhraní.
- Stejně jako ostatní prvky grafického uživatelského rozhraní i virtuální přístroje lze uspořádávat hierarchicky. Všechny viditelné přístroje v každé aplikaci tak mají navzájem definovány vztahy, které určují jejich polohu ve vizuálním stromu. Kořen tohoto stromu je pozadí nazývané background, které může být jen jedno a tvoří kořen vizuálního stromu. V tomto kořenu mohou být umístěny přímo virtuální přístroje (listy stromu) nebo další uzly stromu, tvořené speciální třídou virtuálního přístroje panel. V přístrojích třídy panel mohou být umístěny přímo virtuální přístroje nebo zase další panely. Takto vzniklá vizuální struktura není ničím omezena (počtem panelů a přístrojů apod.). Pro viditelnost virtuálních přístrojů, které jsou vloženy do stejného vlastníka, je důležitá jejich vzájemná poloha — obdélníky dvou přístrojů se totiž mohou překrývat a pak o tom, který bude viditelný, rozhoduje jejich pozice v z-souřadnici (který je "výše" a který je "níže").

Panel se dvěma překrývajícími se přístroji

- O poloze každého přístroje ve vizuálním stromu tedy rozhodují tři parametry:

1. Parametr owner určuje vlastníka daného přístroje. Za znakem "=" následuje jméno panelu, do něhož bude přístroj zaregistrován. Vyhrazené jméno background reprezentuje přímo pracovní plochu Windows. Není-li parametr owner uveden, přístroj nebude viditelný.
2. Pozice přístroje určuje jeho polohu vzhledem k obdélníku vlastníka. Počátek souřadnic (souřadnice 0, 0) je v levém horním rohu vlastníka. Pozice bývá zpravidla určena parametrem position následovaným dvěma (u přístrojů s pevnou velikostí) nebo čtyřmi čísly (u přístrojů, které potřebují zadat taktéž šířku a výšku).
3. Z-souřadnice (překrývání přístrojů se stejným vlastníkem) je dána pořadím přístrojů ve zdrojovém textu.

Podrobně je struktura vizuálního stromu vysvětlena v kapitole Integrované vývojové prostředí.

- Podoba aplikace vzniklá v době návrhu se může za běhu libovolně měnit. Přístroje a panely mají schopnost měnit polohu a rozměry, skrývat se a opět se zobrazovat, ponořovat se pod ostatní panely nebo naopak se vynořovat na povrch. Průvodce novou aplikací vám pomůže s tvorbou základní struktury aplikace a organizací panelů.

## Zápis a tvorba aplikace

- Aplikace je vždy uchovávána v podobě textového popisu. Všechny komponenty tvořící aplikaci (virtuální přístroje, datové emementy i ovladače) spolu s dalšími informacemi (např. nastavení parametrů aplikace a síťových spojení) jsou zapsány pomocí jmen, klíčových slov, výrazů apod. Zdrojový text aplikace je tedy volně čitelný, editovatelný a případně i automaticky generovatelný.
- Jednotlivé druhy objektů jsou ve zdrojovém kódu uzavřeny do sekcí, okraničených klíčovými slovy začátku a konce sekce. Například všechny přístroje jsou uvedeny v rámci sekce instrument...end_instrument, proměnné se zapisují do sekce var...end_var apod.

Příklad zdrojového textu

- Ačkoliv je teoreticky možné psát aplikaci v jakémkoliv textovém editoru, Integrované vývojové prostředí tvorbu aplikací podstatně usnadňuje. Vývojové prostředí podporuje zcela symetricky práci v grafickém i textovém režimu. Mezi oběma módy lze libovolně přepínat a změny provedené v jednom módu se ihned promítnou i ve druhém módu. Grafický mód přináší velké usnadnění práce. Nemusíte si pamatovat jména tříd přístrojů a jména jejich parametrů, stačí jen vybrat z palety přístroj žádané třídy a systém již vytvoří jeho instanci sám.
- Při práci ve vývojovém prostředí vám velmi pomohou průvodci. Průvodci vám přehledně nabídnou možnosti volby a vygenerují za vás kostry celých aplikací nebo jejich částí.
- Komponentovost celého systému se promítá i do způsobu nastavování parametrů jednotlivých virtuálních přístrojů. Všechny vlastnosti přístrojů různých tříd jsou nabízeny ve standardním inspektoru. Inspektor přístroje je univerzální prostředek jak nastavit nebo změnit jakoukoliv vlastnost kteréhokoliv přístroje.

Inspektor přístroje