# Jak zobrazit veličinu

Při vizualizaci technologických procesů je způsob prezentace dat na obrazovce počítače tím nejdůležitějším pro přehlednost, snadnost ovládání i celkovou efektnost aplikace. Každý autor chce mít svůj aplikační program nejen správně funkční, ale také hezký. Proto je základní znalost vlastností a funkcí sady instalovaných virtuálních přístrojů pro tvorbu efektivních a pohledných aplikací dosti důležitá.

Aplikační program je sestavován z virtuálních přístrojů dostupných v "Paletě přístrojů"

## Průvodce přidáním nového přístroje

Bez znalosti funkce jednotlivých komponent lze jen s obtížemi pochopit funkci aplikačního programu z těchto komponent sestaveného. Virtuálních přístrojů je ale mnoho a hlavně v úplných počátcích práce v prostředí systému Control Web může být "Průvodce přidáním nového přístroje" užitečným pomocníkem. Tento průvodce získá ze všech instalovaných virtuálních přístrojů informace o jejich funkci a může vám doporučit jeden nebo několik přístrojů, které nejlépe vyhovují vámi zadaným specifikacím.

"Průvodce přidáním nového přístroje" je velmi užitečný především v začátcích práce v prostředí systému Control Web, kdy se ještě v paletě přístrojů příliš neorientujete. Jak se budete postupně s vlastnostmi virtuálních přístrojů seznamovat, budete tohoto průvodce potřebovat stále méně často. A velmi brzy bude nepochybně váš přehled na takové úrovni, že "Průvodce přidáním nového přístroje" již nebudete potřebovat vůbec.

Úvodní stránka "Průvodce přidáním nového přístroje"

Průvodce si nejdříve po svém spuštění uspořádá nainstalované virtuální přístroje do jednotlivých kategorií podle druhu jejich funkce. První volbou, kterou vám "Průvodce přidáním nového přístroje" předloží, je výběr jedné z těchto kategorií. V první dialogovém okně tedy vyberte jednu z kategorií funkčnosti:

- zobrazování měřených a počítaných veličin
- nastavování hodnot veličin uživatelem
- archivace dat, práce s historickými trendy a recepturami
- seskupování přístrojů do obrazových panelů a ovládání viditelnosti těchto panelů
- zobrazování statických textů, ikon, schematických značek, grafických symbolů a přehrávání zvuků
- zápis programů a procedur v podobě skriptů, práce se soubory
- prostředky propojení aplikace do prostředí internetu a intranetu

Druhou základní otázkou, kterou vám "Průvodce přidáním nového přístroje" položí, je dotaz na typ veličiny, se kterou chcete pracovat. Zde můžete volit mezi třemi základními typy veličin:

1. spojité (analogové) veličiny – čísla veškerých číselných typů
2. logické (binární) veličiny – logická jednička (true) a logická nula (false) binární algebry
3. řetězcové (textové) veličiny – texty jako řetězce znaků abecedy

V dalším dialogovém okně již můžete vybírat mezi jednotlivými virtuálními přístroji. Přístroje jsou uspořádány tak, že vždy nejvýše nahoře jsou přístroje obecnější s širšími možnostmi použití a na konci seznamu jsou přístroje specializované a úžeji zaměřené. Má-li zvolený přístroj více módů, které se liší vzhledem nebo funkcí, nabídne průvodce ještě další dialogové okno pro upřesnění módu činnosti zvoleného přístroje.

Následující dialogové okno umožňuje správné zařazení zvoleného virtuálního přístroje do struktury časování a do struktury viditelnosti aplikačního programu. Veškeré možné pozice v těchto strukturách jsou zde nabízeny v podobě symbolických jmen časovacích přístrojů a panelů v aktuální aplikaci. Pro zjednodušení výběru vlastníka zvoleného přístroje ve struktuře viditelnosti je zde možno použít zaměřovacího kříže. Stiskněte levé tlačítko myši nad symbolem zaměřovacího kříže a přesuňte ukazatel nad vybraný panel zobrazený v grafickém vývojovém prostředí. Nad vybraným panelem pak levé tlačítko pusťte a jméno tohoto panelu se pak správně vybere ve výběrovém řádku dialogového okna průvodce. Podle místa nad kterým jste pustili levé tlačítko myši se doplní také pozice zvoleného přístroje ve vybraném panelu. Je-li místo, kam chcete zvolený přístroj vložit, právě skryto pod dialogovým oknem průvodce, je samozřejmě nutno před použitím zaměřovacího kříže průvodce na obrazovce odsunout tak, aby nepřekážel.

Dialog pro zařazení nového přístroje do struktury viditelnosti a časování

V posledním dialogovém okně průvodce můžete zadat symbolické jméno nového zvoleného přístroje a rozhodnout se, chcete-li ihned po dokončení průvodce zobrazit inspektora přístroje a bezprostředně pokračovat v nastavování vlastností přístroje, nebo chcete-li nechat přístroj vytvořit ve standardní podobě. Ne všechny virtuální přístroje musí mít svá unikátní symbolická jména, nicméně pro další rozvoj aplikačního programu může mít pojmenování každého přístroje jedinečným jménem velký význam. Jen takto pojmenovaným přístrojům totiž můžete později např. volat z jiných přístrojů jeho procedury. Některé přístroje, jako např. panely, však vždy musí mít svá jedinečná jména.

Nyní již nezbývá nic jiného, než stisknout tlačítko "Dokončit" a nově zvolený virtuální přístroj bude zařazen na správné místo do struktur aplikačního programu.

## Analogové, dvoustavové a textové veličiny

Nastavení typu proměnné v ploše "Datové inspektory" vývojového prostředí

Již v předchozí kapitole jsme uvedli, že systém Control Web dokáže pracovat s analogovými, binárními a textovými veličinami. Celá problematika typů datových elementů je složitější, prozatím si však vystačíme s tímto zjednodušením. Nebudeme se v této kapitole vůbec zabývat např. elementy typu buffer. To, že textové datové elementy (tj. konstanty, proměnné a kanály) skladují a přenášejí textovou informaci, a že binární datové elementy pracují se dvěma logickými stavy, je zcela zřejmé.

Jednotlivé základní druhy veličin pak mohou být těchto typů:

1. spojité (analogové) veličiny
   - real - reálná čísla s přesností mantisy na 15 míst v rozsahu od ±2.3E-308 do 1.7E+308
   - shortreal - reálná čísla v rozsahu od ±1.2E-38 do 3.4E+38
   - shortcard - nezáporná celá čísla od 0 do 255
   - cardinal - nezáporná celá čísla od 0 do 65535
   - longcard - nezáporná celá čísla od 0 do 4294967295
   - shortint - celá čísla od -128 do 127
   - integer - celá čísla od -32768 do 32767
   - longint - celá čísla od -2147483648 do 2147483647
2. logické (binární) veličiny
   - boolean - logická hodnota true nebo false
3. řetězcové (textové) veličiny
   - string - text s délkou až 256 znaků

Za bližší zmínku však stojí tzv. analogové neboli číselné datové elementy. Je zřejmé, že opravdu spojité analogové veličiny jsou v počítači reprezentovány vždy s nějakým konečným rozlišením. To znamená, že se mohou měnit vždy po nějakých kvantech a nikoliv zcela spojitě. Z důvodů co nejpřesnější reprezentace analogových veličin jsou v systému Control Web všechna čísla skladována s přesností mantisy na 15 platných číslic a s rozsahem exponentu od E-308 do E+308. Jak sami vidíte, rozlišení i rozsah je obrovský a tedy s problematikou diskrétní reprezentace spojitých veličin se ve vašich aplikacích nemusíte nijak zatěžovat a znepokojovat.

Jednotná a nejpřesnější (na současných počítačích) možná reprezentace čísel přináší autorovi aplikačního programu veliké výhody. Tou hlavní výhodou je neomezená kompatibilita veškerých číselných typů. Při přiřazování hodnot do číselných proměnných tedy nemusíte dodržovat typ zapisovaných číselných hodnot. Stejně tak se ani při zápisu matematických výrazů nemusíte zatěžovat číselnými typy jednotlivých použitých datových elementů. A přitom dokonce ani neriskujete případnou ztrátu přesnosti výsledku výpočtu.

Tato vlastnost nesporně přináší značné zjednodušeni vývoje a zvětšení robustnosti aplikačních programů. Je zde však jeden důsledek, který je dobré mít při sestavovaní některých speciálních algoritmů a postupů uvědomovat. Když např. postupně přičítáme jedničku do proměnné typu shortcard (osmibitové celé nezáporné číslo), obsahuje tato proměnná celá čísla v rozsahu od 0 do 255. Přičteme-li tedy jedničku ve stavu, kdy tato proměnná obsahuje číslo 255, dojde k tzv. přetečení tohoto číselného typu a proměnná obsahuje pro typ shortcard nulu. Zapíšeme-li tedy tyto proměnnou do výstupního kanálu, který je rovněž typu shortcard, tento kanál zajistí přenos této nulové hodnoty až do daného vstupně-výstupního zařízení. Přiřadíme-li však tuto proměnnou typu shortcard do proměnné typu real, bude tato proměnná typu real obsahovat hodnotu 256 a nikoliv hodnotu 0. Toto je logickým důsledkem faktu, že hodnota proměnné je vnitřně uchovávána ve výše uvedeném nejvyšším možném rozlišení a rozsahu. Totéž samozřejmě platí i pro použití této proměnné typu shortcard v matematickém výrazu.

Bez nároků na úplnost a při vědomí trvalé otevřenosti sady virtuálních přístrojů uveďme několik nejčastěji používaných virtuálních přístrojů pro zobrazování hodnot veličin:

1. zobrazování číselných hodnot -- zde je nejčastěji používán přístroj meter, který může podle nastaveného módu vypadat jako ručkový měřicí přístroj, číslicový zobrazovač nebo čárový graf s pamětí historie

   Podoby přístroje meter

2. zobrazování binárních hodnot -- základním virtuálním přístrojem pro ovládájí jednoho datového elementu je přístroj indicator. Tento přístroj má podobu takových ikon nebo textů, které stavům true a false přiřadíte.

   Přístroj indicator ve standardních podobách pro stav false a true

3. zobrazování textových řetězců -- zobrazovat textové řetězce je nejsnadněji možno pomocí přístroje string_display, který má podobu řádku s textem , kterému můžete nastavit použitý font i barevnost

## Časování

Nyní již tedy máte v aplikaci virtuální přístroj, který je správně napojen na veličinu, jejíž hodnotu chcete tímto přístrojem zobrazovat. Vidíte-li tento přístroj na obrazovce počítače tam, kde jste jej chtěl mít, je přístroj správně zařazen do tzv. struktur viditelnosti aplikačního programu. Pravděpodobně, zvolil-li jste v "Průvodci přidáním nového přístroje" správné místo v časovací struktuře, je také správně časován. Podívejme se však na možnosti časování virtuálního přístroje trochu podrobněji. Zabývat se budeme pouze aplikacemi reálného času, u datově řízených aplikací se časováním zatěžovat vůbec nemusíme.

1. Nejjednodušší možností je prosté periodické časování. Aby byl přístroj v aplikačním programu trvale periodicky časován, postačí mu nastavit parametr timer na požadovanou periodu v sekundách. Zadáte-li tedy např.

    timer = 0.2;

Virtuální přístroj je pak aktivován s periodou 0.2s, tedy pětkrát za sekundu. Přístroj s takto definovaným časováním je pětkrát za sekundu nepřetržitě aktivován. Je tedy aktivován i tehdy, je-li např. panel s tímto přístrojem překryt jiným panelem nebo minimalizován. To může být užitečné v případě, že přístroj kromě prostého zobrazování provádí také nějakou další pro běh aplikace nutnou činnost. Slouží-li však přístroj pouze pro zobrazování, spotřebovává část výkonu počítače i tehdy, kdy to vůbec není nutné.

2. Má-li být přístroj aktivní jen v době, kdy je panel, na kterém přístroj leží, viditelný, je vhodné zařadit časování přístroje do příslušné větve časovacího přístroje selector. Takovýto selector, který zajišťuje aktivitu přístrojů pouze v právě viditelném panelu vám může vytvořit "Průvodce novou aplikací" přímo při generování struktury přepínatelných panelů. Pak jen můžete daný přístroj myší přenést do patřičné větve tohoto selektoru v graficky zobrazeném stromu časovací struktury aplikace v levé části pracovní plochy grafického editoru.

   Struktura časování zobrazovaná v grafickém módu vývojového prostředí

3. Přístroj také může být aktivován zcela asynchronně mimo pravidelné časování i mimo časovací algoritmy definované časovací strukturou aplikace. Aktivita přístroje může být iniciována událostí, kterou může vyslat jakýkoliv jiný virtuální přístroj nebo ovladač vstupně/vstupního zařízení. Např. tlačítku lze nastavit, komu má tuto událost poslat při stisku operátorem. To lze učinit parametrem receivers např. takto:

    receivers = my_new_instrument;

Stejného efektu lze docílit např. v proceduře tlačítka OnOutput příkazem send.

    procedure OnOutput( Output : boolean );
    begin
      send my_new_instrument;
    end_procedure;

Při každém stisku tlačítka s tímto parametrem nebo procedurou je pak vyvolán výjimečný časový krok virtuálního přístroje pojmenovaného symbolickým jménem my_new_instrument.

4. Virtuální přístroj dokonce nemusí pro svou činnost využívat žádný z výše uvedených mechanizmů. Veškerá činnost přístroje může být realizována výhradně voláním jeho procedur. Zde se naskýtá prakticky neomezeně mnoho možností, jak můžete realizovat své představy o funkčnosti aplikačního programu. Ale pozor, je známo, že každý program je možno rozvíjet jen do té doby, pokud jej autor udrží po kontrolou.

Veškeré možnosti časování lze samozřejmě neomezeně vzájemně kombinovat. Zde záleží jen na vás, na co si troufnete. Je však vždy vhodné preferovat přehlednost a srozumitelnost aplikace před uplatněním rafinovaně vymyšlených fint a triků, jejichž princip fungování stejně brzy zapomenete.

Existuje také řada virtuálních přístrojů, které časovány být nemusejí a některé ani nemohou. Příkladem přístroje zcela bez časování je httpd, tedy internetový server. Tento přístroj odvozuje veškerou svou činnost od požadavků svých klientů – www prohlížečů. Řada přístrojů pro nastavování veličin uživatelem, jako jsou různá tlačítka, přepínače, knoflíky a posuvné potenciometry časovány být nemusejí (aktivitu pak odvozují od akcí uživatele), ale v případě potřeby být mohou. Mohou se například periodicky nastavovat podle aktuální hodnoty svého výstupního datového elementu.

## Modifikace parametrů přístrojů a inspektory

Nový přístroj vložený do aplikace průvodcem nebo přetažený myší z palety přístrojů ještě (až na výjimky) nebude okamžitě schopen nějaké smysluplné činnosti. V začátcích práce v prostředí Control Web pravděpodobně nebudete příliš často pracovat s textovým zápisem aplikačního programu. Budete tedy pracovat v grafickém vývojovém prostředí a pro modifikaci vlastností virtuálních přístrojů budete používat inspektory přístrojů. Vyvolání inspektoru je snadné – nad zvoleným přístrojem kliknete pravým tlačítkem myši pro vyvolání kontextového menu. V tomto menu zvolíte položku "Inspektor přístroje…" a objeví se inspektor. Přístup k inspektorům si můžete ještě více zjednodušit. V okně nastavení (menu "Nástroje/Nastavení...") v záložce "Systém" si zrušíte volbu položky "Po kliknutí pravým tlačítkem myši otevřít menu objektu" a inspektor se bude objevovat vždy ihned po kliknutí pravým tlačítkem myši.

Volba funkce pravého tlačítka myši na vybraným přístrojem v okně "Nastavení"

Inspektor přístroje je vlastně dialogové okno s několika záložkovými plochami. Toto okno není spouštěno modálně, můžete je tedy mít otevřeno a přitom dále pracovat v jiných oknech a plochách vývojového prostředí. Budete-li tedy při spuštěném inspektoru vybírat myší jednotlivé přístroje v ploše grafického editoru, bude se i inspektor přepínat vždy na právě vybraný virtuální přístroj.

Inspektor s vybraným editorem barev přístroje

Inspektor přístroje můžete ukončit dvěma způsoby:

1. Tlačítkem v liště nástrojů potvrdíte veškeré provedené změny dat a zavřete okno inspektoru. V tomto případě je kontrolována syntaktická správnost veškerých zadaných dat. Je-li někde nalezena chyba, okno inspektoru zůstane otevřené a chyba je ohlášena v dialogovém okně. Chybu je nutno opravit a pak teprve potvrdit změny a zavřít inspektor.
2. Tlačítkem v liště nástrojů můžete inspektor kdykoliv uzavřít bez akceptování provedených změn. Veškeré změny dat provedené v inspektoru budou zrušeny a virtuální přístroj zůstane beze změny. Stejnou funkci má také tlačítko pro uzavření okna v pravém horním rohu titulku inspektora.

Dále také můžete tlačítkem potvrdit veškeré provedené změny a ponechat okno inspektoru dále otevřené.

Prostřednictvím vodorovných záložek můžete přepínat mezi způsoby práce a jednotlivými typy dat zpracovávanými inspektorem.

V ploše "Parametry" je k dispozici svislá řada záložek s jednotlivými parametry přístroje. V záložkových plochách pak můžete modifikovat každý z parametrů.

V ploše "Lokální data" můžete editovat lokální konstanty, proměnné a lokální statické proměnné daného přístroje.

V ploše "Procedury" můžete modifikovat a přidávat uživatelské procedury a modifikovat událostní procedury přístroje (nativní procedury samozřejmě modifikovat nelze, ty má každý přístroj pevně dány).

V ploše "Barvy" je možno nastavit barvy, které se uplatňují při vykreslování přístroje na obrazovce počítače. U přístrojů, které mohou za provozu blikat, jsou k dispozici dvě sady barev. Tyto jsou pak při blikání přepínány. Inspektor pak v těchto případech umožňuje nastavení barev v obou těchto sadách.

V ploše "Zdrojový text" můžete celý virtuální přístroj převést do podoby zdrojového textu a takto jej editovat. Při návratu ze zdrojového textu zpět do jakékoliv jiné záložkové plochy je opět provedena syntaktická kontrola správnosti. Všechny případné chyby jsou v textu vyhledány a bez jejich opravení není přechod do jiných záložek možný.

V ploše "Nápověda" je k danému přístroji k dispozici hypertextová dokumentace. Jestliže jste zadali při instalaci systému volbu bez kopírování dokumentace na pevný disk, je pro správnou funkci prohlížeče dokumentace v inspektoru přístrojů nutno mít CD-ROM médium se systémem Control Web vloženo do CD-ROM mechaniky.

## Shrnutí

- pokud se dosud neorientujete ve vlastnostech virtuálních přístrojů, využijte služeb "Průvodce přidáním nového přístroje"
- u číselných proměnných preferujte nejvyšší typ real, u kanálů je však nutno typ definovaný ovladačem dodržet
- neplýtvejte systémovými prostředky na periodické časování přístrojů, u kterých to není nutné
- virtuální přístroj může být aktivován několika způsoby:
  - periodicky konstantním časovým krokem
  - algoritmicky podle své pozice ve struktuře časování
  - asynchronně příjmem výjimek v časování
  - může být zcela bez časování řízen voláním procedur
- vlastnosti přístrojů se modifikují v inspektorech přístrojů
- inspektor se otevírá pravým tlačítkem myši nad vybraným virtuálním přístrojem