Práci s vývojovým prostředím začneme tvorbou nejjednodušší aplikace
a postupně budeme přidávat funkce a ukazovat vlastnosti základních
komponent systému. Tato kapitola ale nemůže ani zdaleka představit
všechny virtuální přístroje a všechny způsoby jejich použití. Spíše
ukáže základní postupy a jednotlivé složitější přístroje budou
přibývat v následujících kapitolách.
Krok 1 — nejjednodušší aplikace
Typická první aplikace, popisovaná v rozmanitých učebnicích
programování, je zpravidla jednoduché vypsání věty hello
world (česky ahoj světe). Control Web je ale nástroj jiné úrovně než překladač
programovacího jazyka — k dispozici je řada
komponent s již zabudovanou bohatou funkčností a tak si můžeme
dovolit začít podstatně komplikovanější aplikací. Naším úkolem
bude zobrazit analogovou (spojitou) veličinu.
Vývojové prostředí systému Control Web
dovoluje práci v několika editorech, které lze přepínat pomocí
nástrojové lišty, vždy umístěné těsně pod titulkem okna.
Tip: Tato nástrojová lišta je jedinou pevně umístěnou součástí
grafického uživatelského prostředí systému Control Web. Všechny ostatní příkazy a nástroje jsou umístěny v
paletách, které lze podle potřeb uživatele libovolně
uspořádat.
Protože aplikace ve zdrojovém tvaru je vždy uložena v textové
podobě, první editor nabízený vývojovým prostředím je Textový
editor. Teoreticky lze jakoukoliv aplikaci v systému
Control Web vytvořit jen s pomocí textového
editoru, pokud by uživatel znal všechny parametry všech potřebných
komponent, datových sekcí atd. Vzhledem k rozsahu to je zřejmě
velice obtížné a jistě i neekonomické a proto nabízí
Control Web další editory, které tvorbu aplikací
výrazně usnadňují a urychlují. My budeme dále pracovat v režimu
grafického editoru a jeho podpůrných příkazových i nástrojových
palet. Ubezpečme se tedy, že v nástrojové liště je vybrán
Grafický editor (je zvýrazněno tlačítko ).
Pokud spustíte Control Web v přednastavené
konfiguraci, vlevo nahoře (pod řádkem dovolujícím přepínat
editory) je příkazová paleta nazvaná Aplikace.
Jestliže paleta Aplikace není vidět (je překryta
jinou paletou), stačí kliknout záložku se jménem a paleta se ihned
vynoří na povrch). Příkazová tlačítka v této paletě dovolují mimo
jiné načítat a ukládat aplikaci, ale také ji spouštět a
zastavovat.
Po kliknutí na tlačítko se
otevře se úvodní okno umožňující založení nové aplikace či výběr
již existující aplikace pro další editaci. Také se nabízí otevření
nějakého demonstračního příkladu. My ale chceme začít pracovat na
nové aplikaci.

Okno založení nové aplikace
Po stisku tlačítka OK se otevře první stránka
Průvodce novou aplikací, která vyzve k zadání jména
souboru, do něhož bude aplikace uložena. Aplikaci pojmenujeme
třeba 'prvni', vytvoří se soubor 'prvni.cw'.
Ačkoliv Průvodce novou aplikací nabízí snadné vytvoření
kostry aplikace a v reálných nasazeních je samozřejmě výhodné
průvodce využívat, nyní z didaktických důvodů jeho další služby
odmítneme a spokojíme se se založením prázdného souboru aplikace
kliknutím na tlačítko Dokončit.
Tip: Průvodce novou aplikací na první stránce
nabízí nejen jméno, ale i složku, kde má být soubor uložen.
Standardně je nabízena složka 'Aplikace Control Web' ve
složce dokumentů ('Documents' v anglických verzích
systému Windows, 'Dokumenty' u českých verzí Windows)
právě přihlášeného uživatele. Nic ale nebrání ukládat aplikace
v jiné složce, v níž ale uživatel samozřejmě musí mít právo
zakládat soubory a zapisovat.
Vybereme nástrojovou paletu Paleta přístrojů (stačí
kliknout na záložku s jejím názvem). Standardně je tato paleta
umístěna v pravé části vývojového prostředí. Protože paleta
přístrojů je jednou z nejčastěji používaných palet, v hlavní
nástrojové liště vývojového prostředí je pro ni vyhrazeno
speciální tlačítko . Toto
tlačítko paletu přístrojů vždy zobrazí, ať již byla pouze skryta
pod jinou paletou nebo byla zcela neviditelná. Ujistěte se, že ve
stromové struktuře v levé části panelu palety máte zvoleno
Kategorie přístrojů (nikoliv Knihovny
přístrojů). Chceme zobrazit spojitou veličinu, rozviňte tedy
postupně větve stromu Ploché přístroje,
Zobrazování a Spojité. Paleta bude vypadat
následovně:

Paleta přístrojů zobrazující ploché přístroje pro
zobrazování spojitých veličin
Přístroj meter myší přetáhněte na plochu
grafického editoru. V aplikaci máme jeden přístroj, schopný
zobrazovat spojitou veličinu. Abychom viděli, že přístroj pracuje,
potřebujeme tuto veličinu nějak měnit (nastavovat). Vraťte se
k Paletě přístrojů a rozviňte postupně větve stromu
Ploché přístroje, Ovládání a řízení a
Spojité. Mezi jinými přístroji se objeví přístroj
control, který dělá přesně to, co
potřebujeme — nastavuje spojité veličiny.
Přetáhněte jej myší do aplikace vedle přístroje
meter. V grafickém editoru teď můžete vidět oba
přístroje:

Přístroje meter a control
v grafickém editoru
Nyní máme v aplikaci dva přístroje, jeden je schopen hodnotu
veličiny nastavovat, druhý ji může zobrazovat. Zatím ale chybí
místo, kde by se hodnota veličiny uchovávala. K uchování hodnoty
je potřebné definovat datový element.
Ve vývojovém prostředí zvolte mód Datový editor.
V aplikaci dosud neexistuje žádná datová sekce, v jejímž rámci by
datový element bylo možné definovat. Pro naše účely potřebujeme
prostou proměnnou schopnou uchovat spojité veličiny.
Z předdefinovaných sekcí v podstromu v levé části plochy datového
editoru zvolte var, což je druh sekce uchovávající
proměnné. Pokud sekce var v podstromu dosud neexistuje,
klikněte na položku <přidat sekci> a z nabízených
druhů zvolte var. V rámci sekce může být několik druhů
proměnných — jednoduché proměnné, pole
proměnných a proměnné typu buffer. Zvolte jednoduché (skalární)
proměnné a do tabulky v pravé části zapište jméno proměnné (např.
value). Ještě je nutno zvolit datový typ. Spojité
veličiny nejlépe reprezentuje typ real (reálné
číslo).

Nově definovaná proměnná value typu real
Nyní se můžeme vrátit do grafického prostředí — opět přepneme do módu Grafický editor.
Další krok při tvorbě aplikace bude napojení přístrojů na
datový element — přístroj
control musí hodnotu do datového elementu value
zapisovat a přístroj meter ji musí zobrazovat. Tyto
schopnosti (zápis hodnoty a zobrazování hodnoty) jsou vlastní
zvoleným přístrojům (control a
meter), ale je nutné každému přístroji specifikovat
s jakým datovým elementem pracovat. Protože se jedná o vlastnosti
přístrojů, je nutné je specifikovat v okně Inspektor
přístroje otevřeném pro daný přístroj. Toto okno otevřeme
z kontextového menu daného přístroje (otevře se kliknutím pravým
tlačítkem myši nad plochou přístroje ve vývojovém prostředí).
Tip: Vývojové prostředí dovoluje zvolit, zda pravé tlačítko
myši otevírá nad jednotlivými přístroji kontextové menu, z něhož
lze Inspektor přístroje otevřít, nebo
Inspektor přímo aktivovat. Operace uvedené
v kontextovém menu lze totiž provádět pouze klávesami a tak rychlé
otevírání inspektoru může zkušenějším uživatelům ušetřit
čas.
Inspektor přístrojů má několik módů, v nichž umožňuje definovat
rozličné části daného přístroje. Zůstaňme zatím u prvního módu
Parametry. V něm jsou zobrazeny všechny parametry,
které můžeme u daného přístroje nastavit. Otevřeme tedy inspektor
nad přístrojem control a vybereme parametr output.

Inspektor přístroje control s vybraným
parametrem output.
Tip: Stejně jako všechny příkazové i nástrojové palety ve
vývojovém prostředí systému Control Web i
Inspektor je možné konfigurovat podle preferencí
uživatele. Standardně se inspektor objeví jako paleta na pravé
straně okna vývojového prostředí, jak ukazuje předešlý obrázek.
Stačí ale uchopit záložku Inspektor myší a přetáhnout
mimo okno vývojového prostředí a Inspektor bude umístěn
v samostatném okně, stejně jako tomu bývalo u předešlých verzí
systému Control Web. Třetí možností je ponechat paletu v hlavním okně
vývojového prostředí, ale svinout ji. Z palety zůstane viditelná
jen záložka s jejím jménem. Pokud je paleta zapotřebí, vyroluje se
do plné velikosti. Jakmile dále není zapotřebí, opět se svine.
Paleta pak zabírá jen minimum místa a plocha monitoru je k
dispozici pro samotnou aplikaci. Všechny tyto možnosti
přizpůsobení se týkají všech palet systému Control Web.
Parametr output specifikuje do kterého datového
elementu bude hodnota zapisována. Jak víme, že zrovna u přístroje
control je nutno nastavit parametr output?
Inspektor zobrazuje ke všem parametrům popis, který pomůže s první
orientací. Zanedlouho budeme základní parametry přístrojů bez
problémů používat podobně jako např. při jízdě autem automaticky
sešlápneme spojku a zařadíme rychlost.
Do kolonky prostě vepíšeme jméno dříve definované proměnné
value. Pokud si nejsme jisti který datový element
použít, použijeme pomocný panel inspektora, který nabídne všechny
definované datové elementy vhodného typu:

Pomocné okno nabízí definované datové
elementy
Změny hodnot parametrů prováděných v inspektoru se
nepromítají do aplikace, dokud se je nerozhodneme potvrdit.
Samozřejmě se můžeme rozmyslet a provedené změny před potvrzením
zrušit. První tři nástroje v okně inspektora mají následující
význam:
— potvrzení změn. Dosavadní změny v inspektoru se
promítnou do aplikace, ale inspektor zůstane otevřen.
— potvrzení změn a uzavření inspektora. Dosavadní
změny v inspektoru se promítnou do aplikace a inspektor se
zavře.
— zrušení změn. Dosavadní změny v inspektoru se
zapomenou a inspektor se zavře.
Je-li v parametru output hodnota value,
potvrďte změny a otevřete inspektor nad přístrojem
meter. Zde vyberte parametr expression
a zapište do něj jméno datového elementu value.
Tvorba naší nejjednodušší aplikace se blíží k závěru. Aplikace
ve stávající podobě ale ještě nebude pracovat podle našeho přání.
Přístroj control sice bude při každém uživatelském
zásahu zapisovat do proměnné value odpovídající
hodnotu, ale přístroj meter nemá definován žádný
způsob aktivace. Přístroje, které nepracují na základě nějaké akce
uživatele (jako třeba control), vykonávají veškerou
svou činnost v okamžicích aktivací a proto je nutno přístroji
meter aktivaci zajistit. Nejjednodušší způsob je
nastavit přístroji meter časování. V inspektoru
nastavte parametr period na hodnotu 0.1. Tím bude
zajištěno, že přístroj meter bude aktivován
10× za sekundu, tedy 10× za sekundu vyhodnotí výraz uvedený
v parametru expression a zobrazí výsledek (natočí
ručičku).
Upozornění: Desetinná místa čísel se v systému Control Web oddělují tečkami, nikoliv čárkami. Jedna desetina se
tedy zapíše 0.1, nikoliv 0,1.
Tip: Pokud otevřeme inspektor nad přístrojem
meter, parametr period ve výčtu
parametrů na první úrovni nenajdeme. Pro zvýšení přehlednosti
nezobrazuje inspektor všechny parametry v jediném seznamu, ale
některé logicky svázané skupiny parametrů zobrazuje v samostatných
podtabulkách, které lze rozvinout a opět svinout. Příkladem takové
skupiny je třeba právě skupina activity, která
obsahuje parametry pro nastavení podmínek aktivace přístroje. Ve
svinuté podobě je skryta v jediném řádku: 
Svinutá podoba standardních parametrů Kliknutím na symbol + rozvineme tabulku s
parametry aktivace: 
Rozvinuté parametry aktivace
Aplikaci spustíme kliknutím na nástroj . Jakmile se aplikace rozběhne, zkuste
nastavit hodnotu přístrojem control a sledujte jak
přístroj meter hodnotu zobrazuje.
Aplikaci zastavíme nástrojem
ve vývojovém prostředí nebo pomocí menu, které lze otevřít
kliknutím myši na ikonu běžící aplikace systému Control Web v pravé části lišty s úlohami:

Menu běžící aplikace systému Control Web
Krok 2 — parametry přístrojů
Když první aplikace funguje, můžeme ji začít upravovat. Dejme
tomu, že nejsme spokojeni s nastavováním hodnoty — na místo otočného ovladače budeme chtít svislý
posuvník. Funkce přístroje přitom má zůstat stejná, změnit chceme
jen jeho vzhled. Není tedy nutno používat jiný přístroj,
control nabízí řadu možných podob.
Mezi podobami lze volit parametrem mode. Pokud
parametr mode vybereme v inspektoru, dostaneme
nabídku všech možných módů přístroje. Vybereme hodnotu vertical_slider.
Po potvrzení změn v inspektoru se změní vizuální podoba přístroje
control, ovšem jeho rozměry zůstanou nezměněny.
Čtverec ale není vhodný tvar pro svislý posuvník, takže přístroj
vybereme ve vývojovém prostředí a pomocí zobrazených úchopových
bodů změníme jeho rozměry podle požadavků. Grafická podoba
aplikace nyní vypadá následovně:

Aplikace po změně módu přístroje
control
Podobně můžeme modifikovat vzhled přístroje
meter. Například budeme chtít vidět graf hodnot
zobrazovaných přístrojem meter za posledních 10 sekund. Protože
přístroj meter je časován 10× za sekundu, za 10 sekund se aktivuje
100×. Změníme tedy dva parametry
přístroje meter: Nejprve nastavíme parametr mode
na hodnotu flow_graph (i když je parametr mode
podobný stejně se jmenujícímu parametru přístroje
control, je dobré mít na paměti že tato podobnost
má pouze usnadnit zapamatování jmen parametrů, jinak to jsou zcela
odlišné parametry zcela odlišných přístrojů), poté nastavíme
hodnotu parametru history na 100 (aby přístroj
zobrazoval 100 posledních hodnot). Ještě můžeme přístroji
meter změnit parametr content na
hodnotu med. Tento parametr určuje bohatost zobrazení
a střední hodnota mimo prostý graf ještě zobrazuje okamžitou
hodnotu výrazu expression. Aplikace po těchto
úpravách vypadá následovně:

Aplikace po změně módu a obsahu přístroje
meter
Tip: Protože vzhled řady přístrojů lze jeho parametry často
výrazně měnit, nabízí tyto podoby jediného přístroje přímo
Paleta přístrojů. Pokud ve stromu v levé části palety
klikneme přímo na daný přístroj, v pravé části se objeví možné
podoby daného přístroje (pokud ovšem přístroj více podob
podporuje). Např. přístroj meter tak lze v podobě
grafu přímo přetáhnout z palety: 
Paleta přístrojů s různými podobami přístroje
meter
Běžící aplikace vypadá následovně:

Běžící aplikace s modifikovaným vzhledem přístrojů
meter a control
Krok 3 — panely a okna
Dosud vytvořená aplikace vytváří přístroje přímo na pracovní
ploše (Windows Desktop), kde mohou být přístroje překryty např.
okny jiných aplikací. Systém Control Web ale
přináší naprostou svobodu do tvorby vizuální podoby aplikace. Už
z předchozích příkladů je zřejmé, že aplikaci je možno skládat
zcela volně a že Control Web nevnucuje žádné
hlavní okno aplikace s titulkem apod. Pokud ale chceme
aplikaci umístit do okna, nic nám v tom nebrání.
Nejprve ale zmíníme organizaci prvků grafického uživatelského
rozhraní (GUI), protože viditelné virtuální přístroje tvoří
grafické uživatelské rozhraní aplikace. Už od prvních GUI systémů
jsou jeho jednotlivé prvky (okna, tlačítka, menu apod.)
organizovány do hierarchické struktury. Některé prvky GUI jsou
tedy nadřazeny jiným prvkům. Říkáme že nadřazené prvky
vlastní podřízené prvky. Například dialogové okno vlastní
editační řádky, tlačítka volby či povelová tlačítka. Tato
struktura není jen jednoúrovňová, jediný prvek může být vlastněn
vyšším prvkem a současně vlastnit nižší prvky.
Pro organizaci GUI prvků tedy platí:
Jednotlivé komponenty GUI tvoří hierarchickou (stromovou)
strukturu. Kořenem tohoto stromu je pracovní plocha.
Každý prvek GUI má nějakého vlastníka (s výjimkou
pracovní plochy). Některé prvky (např. okna) mohou vlastnit
další podřízené prvky.
Mimo vztahy vlastnit a být vlastněn je
pro každý GUI prvek ještě charakteristický obdélník, který
definuje jeho plochu. Pozice každého prvku je vždy určována
vzhledem k vlastníkovi.
Plocha (obdélník) žádného prvku nemůže přesahovat plochu
vlastníka. Pokud je plocha prvku větší než plocha vlastníka,
části přesahující plochu vlastníka nebudou zobrazeny (prvek bude
oříznut obdélníkem vlastníka).
Pokud jsou dva prvky na stejné úrovni (mají stejného
vlastníka) a jejich plochy se překrývají, rozhoduje o jejich
zobrazení tzv. z-souřadnice. Tedy vykreslen bude prvek, který je
v z-souřadnici nad jiným prvkem a tím jej překryje.
Všechna výše zmíněná pravidla se samozřejmě týkají
všech viditelných virtuálních přístrojů systému Control Web:
Všechny viditelné 2D virtuální přístroje tvoří prvky GUI
aplikace. Mají tedy svůj obdélník a mohou být součástí
hierarchické struktury. Obdélník přístroje je definován klíčovým
slovem position (u přístrojů s pevnými rozměry
obsahuje position jen dvě souřadnice polohy, jinak
obsahují čtyři čísla definující postupně x a y souřadnici, šířku
a výšku obdélníku přístroje), vlastník přístroje je definován
klíčovým slovem owner.
Jediný přístroj panel může být nejen
vlastněn jiným panelem, ale může také vlastnit jiné přístroje.
Parametr owner přístrojů tedy může definovat jméno
jiného panelu nebo klíčové slovo background, které
říká že přístroj bude přímo na pracovní ploše.
Parametry position a owner tedy
definují pozici viditelných přístrojů ve stromu aplikace a jako
jediné parametry nemohou nabývat nějakých standardních (default)
hodnot — neexistuje standardní pozice ani
standardní vlastník. Proto pokud přetáhnete myší nějaký přístroj
do aplikace, minimálně tyto dva parametry budou vždy
definovány:
meter meter_1;
gui
owner = background;
position = 10, 10, 180, 120;
end_gui;
end_meter;
Naše první aplikace zatím obsahuje pouze dva přístroje
(meter a control) umístěné přímo na
pracovní ploše. Vývojové prostředí zobrazuje mimo náhledu aplikace
také vizuální reprezentaci stromové struktury aplikace. Nalevo od
pracovní plochy je panel se čtyřmi plochami nadepsanými
Předlohy, Vzhled, Časování a Vybraný
přístroj (poměry velikostí těchto ploch lze měnit přetažením
titulku myší). Zobrazení hierarchické závislosti přístrojů
aplikace je v ploše Vzhled:

Zobrazení struktury viditelných přístrojů
Když do aplikace vložíme přístroj panel
(přetáhneme z palety), objeví se na stejné úrovni (jeho vlastník
bude background) jako ostatní přístroje. Protože
ale byl vložen do aplikace naposledy, je v z-souřadnici nejvýše
a ostatní přístroje tak překryje. My jej ale potřebujeme umístit
pod meter a control. Možností jak
to provést je několik:
Vyberte panel v grafickém editoru a otevřete nad ním
kontextové menu (pravým tlačítkem myši). V menu jsou položky
Na povrch, Na dno, O jeden
nahoru a O jeden dolů, které umožňují přesouvat
přístroj v z-souřadnici. Zvolíme příkaz Na dno a
panel se ponoří pod ostatní přístroje.
Menu napovídá také klávesové zkratky. Klávesy <Ctrl>+<PgUp> přesunou panel na dno stejně jako příkaz z menu. Nebo
je možné dvakrát stisknout <PgDn> a postupně tím panel
ponořit pod ostatní přístroje.
Poslední možnost je přetáhnou přístroje myší přímo ve
vizuální reprezentaci stromu přístrojů (v ploše
Vzhled).

Aplikace s panelem
V této aplikaci již máme panel, ale přístroje a panel
jsou stále na jediné úrovni, vlastníkem všech přístrojů (panel
je také virtuální přístroj) je pracovní plocha (background).
Změnit tyto vlastnické vztahy je jednoduché:
Vybereme patřičný přístroj (meter nebo
control) a stiskněte klávesu <Ins>.
Vývojové prostředí zjistí zda levý horní roh vybraného přístroje
leží na ploše nějakého panelu a pokud ano, vloží přístroj do
patřičného panelu.
Je možné přístroj přetáhnou myší v ploše
Vzhled a pustit jej nad panelem.
Tím se změnil vlastník obou přístrojů, parametr owner
již obsahuje jméno panelu:
...
owner = panel_1;
...
Grafický editor ukazuje obdélník vlastníka čárkovanou čarou.
Pokud vybereme meter nebo control,
obdélník panelu se zvýrazní čárkovaně.

Přístroje meter a control
zaregistrované v přístroji panel
Všimněme si, že plocha panelu nyní ořezává přístroje
které vlastní. Pokud se pokusíme přetáhnout meter
mimo panel, nepovede se to:

Plocha panelu ořezává plochy vložených
přístrojů
S takto vytvořenou skupinou přístrojů ale stále nelze
manipulovat jako s běžnou aplikací. Někdy to je záměrem (panely
přes celou obrazovku tvoří základ aplikace a jakákoliv manipulace
ze strany uživatelů je nežádoucí). Pokud ale budeme chtít, aby
panel měl rámeček jako ostatní okna aplikací, prostě mu v sekci
window, která je součástí sekce gui nastavíme
parametr type. Tento parametr může nabýt hodnoty
normal (přístroj bude mít své okno, které vzhledem
odpovídá standardním oknům aplikací Windows), tool
(bude vytvořeno okno používané např. u palet s nástroji — toto okno nelze minimalizovat, má nižší titulek a
nemá v titulku ikonu) nebo none (přístroj v aplikaci
bude bez okna).
Další parametry umožní nastavit titulek okna (title)
nebo zakázat určité manipulace s oknem (disable) — v našem případě bude zřejmě vhodné zakázat změnu
velikosti okna a jeho maximalizaci. Běžící aplikace pak vypadá
jako běžné okno v prostředí Windows:

Běžící aplikace s přístroji v okně
Tip: Rámeček okna není výhradní vlastností přístroje
panel. V podstatě každý viditelný přístroj může být
umístěny do okna. Ovšem podobně jako u ostatních aplikací nebývá
zvykem umísťovat do okna např. samostatný editační řádek,
i v případě aplikací systému Control Web bývají
v oknech umístěny zpravidla jen panely.
Krok 4 — časování a aktivace
Hned v prvním kroku jsme nastavili časovač (parametr period)
přístroje meter na hodnotu 0.1, což zajistilo
aktivování přístroje 10× za sekundu.
Periodické časování virtuálního přístroje pomocí parametru period
je dosud jediný použitý způsob aktivace přístroje. V řadě případů
to ale není nejvhodnější řešení.
Začneme změnou módu přístroje meter v naší první
aplikaci na zobrazování okamžité hodnoty bez historie. Otevřeme
inspektor nad přístrojem meter a parametr mode
nastavíme třeba na hodnotu digital a parametr history
můžeme vrátit na hodnotu 2 (historie v tomto módu není potřebná).
Vzhledem ke změněnému módu přístroje meter můžeme
i mírně upravit vizuální podobu aplikace — třeba změnit mód přístroje control ze
svislého na vodorovný posuvník:

První aplikace v pozměněné podobě
Vraťme se k aktivaci přístroje meter. Hodnota
proměnné value se mění jen pokud uživatel přesune
posuvník. Pokud to provede řekněme jednou za hodinu, provede
přístroje meter tisíce aktivací zcela zbytečně.
Proto je v systému Control Web další možnost
aktivace — každý přístroj může aktivovat
jiný přístroj jen když je to zapotřebí.
Abychom tuto možnost vyzkoušeli, nejprve zrušíme časování
přístroje meter. Prostě v inspektoru smažeme
parametr period nebo v ploše se stromem časovacích
závislostí Časování (nalézá se vlevo od pracovní plochy
vývojového prostředí, pod plochou Vzhled, kde jsme
modifikovali vizuální strukturu aplikace) přesuneme přístroj
meter mezi nečasované přístroje.
Nyní otevřeme inspektor nad přístrojem control a
nastavíme parametr receivers. Tento parametr obsahuje
seznam jmen přístrojů, které bude přístroj control
aktivovat vždy když dojde ke změně jeho hodnoty. Jako hodnotu
parametru napíšeme přímo jméno přístroje, který chceme aktivovat
(meter_2) nebo otevřeme pomocné okno v inspektoru
umožňující výběr daného přístroje z nabídky. Výběr z nabídky ale
může být vzhledem k potenciálně velkému množství přístrojů
v aplikaci obtížný. Proto inspektor redukuje nabízené přístroje
pouze na jednu třídu. Z výběrového seznamu Třídy
přístrojů v levé části vybereme žádanou třídu přístrojů (v
našem případě meter) a ze seznamů všech instancí
(Jména přístrojů) přístroje meter
vybereme ten jediný, který chceme aktivovat. Přístroj meter_2
se objeví v seznamu na pravé straně:

Pomocné okno inspektora pro editaci parametru receivers
Tip: Parametr receievers může obsahovat seznam
přístrojů, nikoliv jen jediný přístroj. Rovněž třídy jednotlivých
přístrojů nejsou nijak omezeny — aktivovat
tak lze současně např. meter a
panel.
V textové podobě aplikace nepředstavuje parametr receivers
nic jiného než prostý seznam jmen oddělených čárkami. Část naší
první aplikace tedy bude vypadat následovně:
control control_1;
...
receivers = meter_2;
end_control;
meter meter_2;
...
end_meter;
Naše první aplikace bude pracovat na první pohled
stejně, jako před úpravou. Přesto jsou v jejím běhu dva velmi
podstatné rozdíly:
Přístroj meter nespotřebovává žádný čas,
pokud uživatel nemanipuluje s přístrojem
control.
Přístroj meter reaguje na změnu hodnoty
value v nejbližším možném okamžiku. U periodického
časování se meter aktivoval přesně (a pouze!)
10× za sekundu a pokud se např.
hodnota value změnila 20× za sekundu, zobrazil meter
jen každou druhou změnu. V případě aktivace přístrojem
control bude aktivace přístroje
meter probíhat vždy co možná
nejdříve. Poznamenejme, že to nevylučuje možnost, že
hodnota proměnné value bude změněna vícekrát mezi
aktivacemi přístroje meter. To se může stát pokud
je systém velmi zatížen a počítač nestíhá aktivovat
meter častěji než uživatel mění hodnotu value.
Jsou situace, kdy je ale periodické časování nezbytné. Např.
v předešlé verzi naší první aplikace byl meter
v módu grafu a bylo účelné, aby ukazoval danou časovou historii,
nikoliv historii posledních 100 změn hodnoty value
bez ohledu na čas. Stojí za pokus opět změnit mód přístroje
meter na flow_graph a history
na 100 a podívat se jak aplikace reaguje.
Krok 5 — komunikujeme s vnějším
světem
Schopnost číst a zapisovat data z a do periferních zařízení pro
průmyslovou automatizaci je jistě jednou ze základních funkcí
systému Control Web.Velmi důležitým rysem je
přitom jeho důsledně dodržovaná nezávislost na konkrétních typech
hardware, s nímž komunikuje. Je tak lhostejné, zda aplikace čte
a/nebo zapisuje technologická data prostřednictvím zásuvné karty
přímo v počítači, samostatné jednotky připojené nějakým
standardním rozhraním (RS-232C nebo RS-485, USB apod.), či
samostatného průmyslového automatu.
Této nezávislosti je dosaženo použitím ovladačů
průmyslových jednotek. Ovladač je nezávislá programová
komponenta, která na jedné straně implementuje programové rozhraní
vyžadované systémem Control Web a na druhé straně
implementuje všechny zvláštnosti komunikace se zařízením, pro
které je ovladač určen. Tím odstiňuje všechny specifické
vlastnosti použitého zařízení. Z hlediska zbytku systému se tak
všechna zařízení tváří stejně.
Upozornění: Vzhledem k různé podstatě různých zařízení se chování
různých ovladačů přece jen liší. Základní rozdíly jsou v době, za
kterou je ovladač schopen vrátit požadovaná data a ve
spolehlivosti přenosu. Ovladač, který čte data přímo z měřicí
karty zasunuté ve slotu v počítači, je schopen vrátit data
prakticky okamžitě a naprosto spolehlivě, zatímco ovladač který
vyčítá data prostřednictvím pomalé (a třeba silně zarušené)
sériové linky bude mít dobu odezvy mnohem delší. Lze tedy
říci, že při návrhu aplikace se spíše musíme zajímat jak rychle a
jaký objem dat je periferie schopna poskytnout v závislosti na
požadavcích aplikace bez ohledu na konkrétního výrobce daného
hardware.
Na straně aplikace je ovladač zpřístupněn
prostřednictvím tzv. kanálů. Na kanály se lze dívat
podobně jako na proměnné s několika rozdíly:
Na rozdíl od prostých proměnných, které mění hodnotu čistě na
základě zápisu v aplikaci, se hodnoty kanálů mění na základě dat
přečtených z periferií.
Protože nelze předpokládat s jakým hardware jednotliví
uživatelé pracují a jaké ovladače mají k dispozici, ukážeme práci
s ovladači na virtuálním ovladači, který je dodáván
s každou instalací systému Control Web. Proč
virtuálním? Přesto že tento ovladač nabízí kanály na nichž se
objevují různé průběhy, ve skutečnosti nekomunikuje s žádnými
periferiemi — hodnoty kanálů jsou počítány
uvnitř ovladače.
Ovladač do aplikace vložíme v záložce Datové
inspektory vývojového prostředí. Ubezpečme se, že ve
výběrovém seznamu vlevo nahoře je buď Vše nebo
Ovladače. Pak můžeme kliknout do řádku <přidat
ovladač> a napsat jeho jméno; v našem případě pojmenujeme
ovladač třeba drv:

Přidání nového ovladače
Po přidání nového ovladače se v grafickém vývojovém prostředí
objeví jeho definice. Ovšem definice ovladače musí obsahovat mimo
jména i další parametry. Tyto povinné parametry jsou ve vývojovém
prostředí označeny červeným nápisem <očekávána
hodnota>.
Povinné parametry definice ovladače:
Ovladač — výběrový
seznam se všemi ovladači v systému instalovanými. Vybereme
ovladač Virtuální generátor.
Mapovací soubor — soubor
s definicemi kanálů ovladače. Otevřeme pomocné okno Výběr
mapovacího souboru, přepneme se do adresáře
'dmf' a vybereme soubor
'vsource.dmf': 
Okno výběru mapovacího souboru
Parametrický soubor — soubor s konfiguračními parametry daného ovladače.
Opět pomocí okna Výběr parametrického souboru zvolíme soubor
'vsource.par' z adresáře
'par': 
Okno výběru parametrického souboru
Takto nadefinovaný ovladač se ve zdrojovém textu aplikace
objeví v podobě jednoho řádku v sekci driver:
driver
drv : 'vsource.dll', 'vsource.dmf', 'vsource.par';
end_driver;
Pokud máme v aplikaci zaveden ovladač, můžeme definovat kanály.
Podobně jako jsme v prvním kroku definovali proměnou (napřed bylo
potřebné založit sekci proměnných a poté v této sekci založit
proměnnou), založíme sekci kanálů channel a v této
sekci vytvoříme kanál sinus:

Kanál sinus definovaný jako první kanál
ovladače drv
Pak stačí v aplikaci vytvořit přístroj meter
v módu flow_graph, jehož parametr expression
bude mít výraz s jediným kanálem sinus a s časovačem
(parametr period) 0.1 s (nezapomeňme nastavit history
na hodnotu 100). Běžící aplikace bude 10× za sekundu číst hodnotu kanálu sinus
a zobrazovat jej v podobě grafu:

Přístroj meter zobrazuje hodnotu kanálu
sinus virtuálního ovladače
Krok 6 — logické hodnoty
Veškeré dosud používané datové elementy byly číselného typu
(real). Control Web ale samozřejmě
není omezen jen na manipulaci s čísly. Velice často je potřeba
pracovat s podmínkami, jejichž hodnoty nabývají pouze dvou
stavů — pravda a nepravda (v systému
Control Web vyjádřeno klíčovými slovy true
a false). Pro tyto pravdivostní hodnoty existuje
zvláštní datový typ boolean (typ pojmenovaný po
anglickém matematikovi George Boolovi). Mimo pravdivostní
hodnoty se také často používá označení binární
hodnoty.
Často se ale s logickými hodnotami setkáváme i když nebudeme
definovat žádný logický datový element. U přístroje
meter jsme jako hodnotu parametru expression
zadávali číselný výraz, např:
expression = 100 - value;
Přístroj indicator je určený k zobrazování
logických hodnot. Ačkoliv tedy má také parametr expression,
hodnota tohoto parametru musí být výraz typu boolean,
jehož vyčíslením dostaneme buď true nebo false.
To že výraz musí být typu boolean ale naprosto
neznamená, že se skládá jen z datových elementů typu boolean.
Řada operátorů a funkcí vrací logickou hodnotu i když jejich
argumenty jsou číselné. Typickým příkladem jsou relační
(porovnávací) operátory. Parametr expression
u přístroje indicator tak může mít podobu:
expression = value > 50;
Tento výraz bude nabývat hodnotu true, pokud číslo
v proměnné value bude větší než 50, jinak bude
nabývat hodnoty false.
Rozšiřme tedy naši druhou aplikaci tak, aby mimo přístroje
meter, který zobrazuje průběh kanálu sinus,
obsahovala ještě přístroj indicator, který bude
signalizovat že hodnota kanálu sinus překročila 50.
Přístroj indicator nalezneme v paletě v kategorii
Ploché přístroje, Zobrazování,
Binární. Přetáhneme jej do panelu vedle přístroje
meter. Teď už stačí nastavit parametry expression
na sinus > 50 a period na 0.1. Běžící
aplikace vypadá následovně:
Přístroj indicator signalizuje že
hodnota kanálu sinus je menší než 50 (vlevo) a že
překročila 50 (vpravo)
Přístroj indicator můžeme použít vícekrát a
pomocí parametrů true_icon a false_icon
můžeme modifikovat jeho vzhled. Pak můžeme k přístroji meter
vyrobit sloupcový indikátor:

Řada přístrojů indicator
Krok 7 až n — cokoliv si
vzpomenete
Asi nelze odhadnout počet kroků, které by byly zapotřebí pro
podobný popis všech parametrů všech přístrojů v systému
Control Web a s nimi souvisejících témat, jako
např. přístup do databází, HTTP protokol používaný pro přenos HTML
dokumentů, Active X komponenty, animované kresby, vizualizace ve
3D atd. Důležité je poznat základní obecné principy (k tomu slouží
právě tato kapitola) a poté vybrat komponenty a použít správné
vlastnosti, které vyhovují dané aplikaci.
Především ale mějme na paměti, že pro úspěšnou práci se
systémem naprosto není nutno znát detailní použití všech jeho
komponent. Pokud aplikace nebude mít WWW rozhraní,
o přístroji httpd, protokolech TCP/IP a HTTP či
formátu dokumentů HTML nemusíme mít ani tušení a přesto budeme
rychle a efektivně tvořit aplikace pro vizualizaci a řízení
technologií. Stejně tak není nutno zaobírat se programováním,
řídícími konstrukcemi algoritmů apod. Soustřeďme se na to, co
opravdu potřebujeme. A pokud se potřeby aplikace změní, můžeme se
vrátit k těm komponentám, které jsou pro řešení vhodné.
Shrnutí
Aplikace se skládají z virtuálních přístrojů a datových
elementů.
Virtuální přístroje vkládáme do aplikace přetažením
z palety přístrojů v záložce Grafický editor, datové
elementy přidáváme do datových sekcí v záložce Datové
inspektory.
Parametry virtuálních přístrojů (např. s jakými datovými
elementy mají pracovat) zadáváme v okně inspektora
přístrojů.
Virtuální přístroje můžeme řadit do stromové struktury
viditelnosti. Uzly tohoto stromu jsou přístroje typu
panel.
U aplikací reálného času vykonávají přístroje svou
činnost, pokud jsou aktivovány. Výjimku tvoří přístroje
pracující na podnět uživatele (např. control).
Periodické časování není jediný způsob jak aktivovat přístroje.
Další možností je např. aktivace jiným přístrojem.
Chceme-li komunikovat s vnějším světem, musíme použít
ovladač pro danou periferii. Control Web je
důsledně nezávislý na hardware se kterým spolupracuje a
s patřičným ovladačem může spolupracovat s jakýmkoliv
hardwarovým nebo softwarovým systémem.
Mimo číselných hodnot mohou existovat i hodnoty binární a
řetězcové. Různé přístroje pracují s různými typy
hodnot.
|