Rychlý start

U většiny prací je nejobtížnější vůbec s ní začít. Na každém začátku je vždy nejvíce neznámých a nejistot. Jakmile je již však úkol úspěšně rozpracován a dílo se daří, hned jde vše lépe od ruky.

Průvodce novou aplikací

Ve vývojovém prostředí systému Control Web není autor aplikace nikdy ponechán svému osudu nad prázdnou pracovní plochou. Již od samého počátku tvorby aplikace je zde k dispozici účinná rada a pomoc v podobě Průvodce novou aplikací. Tento průvodce pracuje shodně jak v grafickém tak i v textovém módu vývojového prostředí. Průvodce můžete vyvolat dvěma způsoby:

  1. Zvolíte nový soubor pomocí menu nebo lišty nástrojů - činnost průvodce pak můžete dokončit ihned při jeho úvodním dialogu stiskem tlačítka "Dokončit". V úvodním stránce můžete pro novou aplikaci vybrat jeden ze dvou základních způsobů práce. Při tomto okamžitém dokončení není vytvořen a uložen na disk soubor s novou aplikací, ale je pouze nastaven parametr určující časovací mód do dosud nepojmenované a neuložené nové aplikace (jedná se o parametr operation_mode v sekci settings). I při takto otevřeném průvodci však můžete dále pokračovat stiskem tlačítka "Další". Po průchodu průvodcem až do úspěšného konce je vygenerován požadovaný program a uložen do zvoleného adresáře na pevný disk.
  2. Vyberete průvodce z Palety průvodců - zde se již nenabízí možnost dokončení ihned po zadání módu časování aplikace. Po dokončení průchodu průvodcem je vždy vygenerován a uložen na disk požadovaný aplikační program. Kdykoliv během průchodu jednotlivými stránkami samozřejmě můžete průvodce odstranit stiskem tlačítka "Zrušit". Žádný z nastavených parametrů se pak neuplatní a průvodce zmizí jako by se nic nestalo.

titulní stránka Průvodce novou aplikací

Titulní stránka Průvodce novou aplikací

Bude aplikace běžet v reálném čase nebo bude řízena tokem dat?

Se základní volbou mezi aplikací reálného času nebo datově řízenou vám bohužel průvodce příliš pomoci nemůže. Zde se musíte vždy rozhodnout sami, neboť průvodce nemůže vědět, jaké požadavky budete na vaši aplikaci klást.

U aplikace běžící v reálném čase má autor aplikace zcela pod kontrolou veškeré časování systému. Zjednodušeně je možno říci, že v aplikaci se děje jen to a jen přesně tehdy, co a na jaký časový okamžik stanovil autor aplikace. Při běhu aplikace jsou pak k dispozici diagnostické nástroje, které umožní vše monitorovat a aplikaci vyladit tak, aby se nedostávala do časového skluzu. Základním požadavkem kladeným na aplikace reálného času je takový návrh struktury aplikace, aby se vše na daném počítači stihlo vykonávat v předepsaném čase. Tento požadavek ze zdá být velmi prostým, leč jeho splnění nemusí být vždy zcela jednoduché. Má-li systém Control Web schopnost pracovat v reálném čase, neznamená to, že stihne úplně všechno a není možné jej přetížit. I při programování PLC je časté, že program nestihne doběhnout před časem pro další spuštění. Také zde nám nezbude nic jiného než sekvenci zkrátit nebo prodloužit periodu spouštění. Značný vliv má kromě struktury aplikace také konfigurace použitého počítače.

Naopak u aplikace řízené daty se autor aplikace časováním příliš zabývat nemusí. Činnosti jednotlivých částí aplikace (tj. aktivity programových komponent, ze kterých je aplikace sestavena) jsou odvozeny ze změn datových elementů - proměnných a kanálů. Změní-li tedy nějaký virtuální přístroj hodnotu určité proměnné (např. otočíte knoflíkem a tím zapíšete novou hodnotu do jeho výstupní proměnné), budou automaticky aktivovány veškeré přístroje, které tuto proměnnou při své aktivitě čtou. Při této své aktivitě mohou dále zapsat do dalších proměnných a kanálů a to vyvolá aktivitu opět dalších virtuálních přístrojů atd. Veškerou tuto činnost systém nepřetržitě provádí maximální možnou rychlostí. Je ale téměř nemožné předem stanovit, jaká tato rychlost bude.

Jak se tedy rozhodnout?

Mód reálného času zvolte tehdy, když potřebujete:

Naopak mód aplikace řízené daty vyberte, když potřebujete:

V rámci aplikace běžící v reálném čase lze naprogramovat cokoliv - možnosti jsou zde opravdu neomezené. Je možno realizovat soft-PLC řídící v reálném čase stroje a výrobní linky, měřicí a regulační systémy i rozsáhlé síťové vizualizační a operátorské systémy. To je značnou výhodou, na druhé straně je však v tomto módu aplikace podstatně méně odolná vůči své nekvalitní konstrukci. Tvrdí-li tedy někdo, že mu program funguje pomalu a že již narazil na funkční omezení systému, lze s jistotou tvrdit, že chyba je výhradně na straně nevhodně sestavené aplikace. Z principu systému totiž žádná omezení ani plynout nemohou, neboť systém sám o sobě nedělá téměř nic – veškerá činnost je vždy dána jen a pouze konstrukcí aplikace.

Nejste-li si ani po přečtení této kapitoly jisti, jaký mód činnosti aplikace použít, zvolte raději režim datově řízené aplikace.

Co všechno dokáže vytvořit Průvodce novou aplikací?

Průvodce novou aplikací je konstruován pro podporu návrhu a následné automatické generování základních režijních struktur řady obvyklých typů aplikačních programů. Nejvíce práce tento průvodce odvede při počátečním rozvržení nejobvyklejšího typu aplikačního programu, kdy je uživatelem z nějakého ovládacího panelu možno přepínat mezi jednotlivými panely. Průvodce dokáže sestavit přepínání z různých ovládacích prvků a vytvořit věškeré procedury reagující na události od těchto prvků a řídící viditelnost jednotlivých panelů. Panely lze přepínat nejen pomocí záložek, menu, tlačítek atd., ale také prostřednictvím aktivních oblastí hlavního podkladového panelu. Navíc průvodce dokáže připravit základní časovací strukturu pro přístroje v jednotlivých panelech, nastavit základní parametry běhu aplikace a patřičně aplikaci inicializovat – např. přizpůsobit velikost panelů aktuální velikosti pracovní plochy Windows nebo případně vycentrovat hlavní panel aplikace doprostřed obrazovky při různém aktuálním rozlišení grafiky.

volba druhu ovládacích prvků v Průvodci novou aplikací

Volba druhu ovládacích prvků v Průvodci novou aplikací

Tip:
Zkuste si pomocí průvodce vytvořit několik typů aplikací a poté si v grafickém i textovém módu prohlédněte, jak jsou tyto programy konstruovány. Řešení typických situací pro vás může být inspirací pro další programování. Avšak pozor – aby byl vygenerovaný program co nejefektivnější, je plně využíváno mechanizmu volání procedur jednotlivým virtuálním přístrojům. Možnosti procedur virtuálních přístrojů jsou popsány ve druhém dílu dokumentace v kapitole Programování a procedury – používání procedur patří mezi pokročilé programovací techniky a pro tvorbu aplikací na úrovni prvního dílu dokumentace není třeba těmto postupům rozumět.

Co jsou to virtuální přístroje?

Aplikační program v prostředí systému Control Web je sestaven z jednotlivých virtuálních přístrojů. Každý virtuální přístroj je zcela samostatnou programovou komponentou. Tato koncepce přináší řadu velmi podstatných výhod:

dostupné virtuální přístroje jsou soustředěny v okně Paleta přístrojů

Dostupné virtuální přístroje jsou soustředěny v okně Paleta přístrojů

Virtuální přístroje jsou sice samostatnými a na sobě nezávislými komponentami, ale mají-li dohromady tvořit soudržný a výkonný aplikační program, musejí být nějak propojitelné. Základním propojením virtuálních přístrojů v aplikačním programu je struktura časování a struktura viditelnosti. Struktura viditelnosti určuje, kde se na obrazovce bude dotyčný přístroj nacházet a struktura časování stanovuje kdy a za jakých podmínek bude přístroj aktivován. Tyto struktury jsou znázorněny v podobě hierarchických stromů v levé části grafického vývojového prostředí v plochách Vzhled a Časování. Systém Control Web je zodpovědný jen za stanovení a dodržování pravidel pro takováto propojení. To, jakou přístroj vyvine činnost při své aktivaci, jak přístroj vypadá na obrazovce a dokonce i to, jak se přístroj zapíše do zdrojového textu aplikace, je pouze jeho vnitřní věcí.

Proč mají jednotlivé instance virtuálních přístrojů v aplikaci svá jména?

Přístroje jsou organizovány do struktur časování a viditelnosti na základě svého jména. Proto musí mít svá jména veškeré přístroje, na které se v těchto strukturách jiné přístroje navazují. Jména těchto přístrojů navíc musí být jedinečná v rámci jednoho modulu aplikace. Ostatní přístroje nemusí mít jedinečná jména, případně dokonce nemusí být vůbec pojmenované. Je však dobré mít pojmenovány veškeré přístroje v aplikaci, nepojmenovanému přístroji pak např. nebude možno volat z jiných přístrojů OCL procedury - o tom ale až později.

Panely a struktura viditelnosti virtuálních přístrojů

Vlastnosti virtuálních přístrojů nejsou předem dány. Poté, co systém Control Web identifikuje určitou programovou komponentu jako svůj virtuální přístroj, může ji (přesněji řečeno její instanci, tj. máte-li v aplikaci např. pět shodných tlačítek, jedná se o pět instancí jedné programové komponenty) poskytnout vždy jednotným způsobem pro zabudování do aplikačního programu. Toto se děje např. vždy, když nějaký virtuální přístroj myší vytáhnete z palety virtuálních přístrojů a vložíte jej do pracovní plochy vývojového prostředí. Systém tedy v okamžiku, kdy instanci vytváří, neví, jaká je funkce přístroje, a neví dokonce ani to, jak bude instance virtuálního přístroje v paměti velká. Stejným způsobem tedy vytvoří jak tlačítko velké pouhých několik set byte, tak tabulkový kalkulátor zabírající několik set kilobyte. V tomto zcela obecném mechanizmu ale existuje několik výjimek, a těmi jsou virtuální přístroje, které jsou v systému vždy dostupné a na jejichž určité vlastnosti se mohou ostatní komponenty vždy spolehnout. Těmito zvláštními virtuálními přístroji jsou časovací přístroje, pomocí kterých je sestavena struktura časování aplikace a přístroj panel, který je základním prvkem struktury viditelnosti virtuálních přístrojů na obrazovce počítače.

Jak přidat do aplikace nový virtuální přístroj?

Přístroj panel je tedy kontejnerem, který může na své ploše obsahovat další virtuální přístroje. Mezi těmito přístroji mohou být opět další panely - tak v případě potřeby můžete sestavit potřebnou hierarchii ve struktuře viditelnosti.

Přidáváte-li při vývoji do aplikace nový virtuální přístroj, který má být na obrazovce počítače viditelný, musíte stanovit jeho umístění ve struktuře viditelnosti. Jednoduše řečeno, musíte přístroji sdělit jméno panelu, na jehož ploše má tento přístroj ležet. To lze učinit v grafické i textovém módu vývojového prostředí.

Pozici virtuálního přístroje ve struktuře viditelnosti můžete stanovit v grafickém i v textovém prostředí:

  1. V grafickém prostředí jednoduše přetáhnete myší symbol vybraného přístroje z palety přístrojů na patřičné místo v ploše grafického editoru. Pro umístění do daného panelu je rozhodující pozice levého horního rohu přístroje. Kolem panelu, do kterého by byl v případě puštění levého tlačítka myši nově vzniklý přístroj zaregistrován, je zobrazen vybírací rámeček. Díky tomu můžete přístroj správně umístit, i když je v ploše již několik panelů stejné barvy, jejichž okraje by jinak nebyly vidět. Chcete-li přístroj z nějakého panelu vyjmout a přemístit do jiného, pak jej klávesami <Shift>+<Insert> z tohoto panelu uvolníte a přetažením myší přenesete do jiného panelu. Po uvolnění a přetažení je sice nový přístroj již na daném místě správně zobrazen, není však ještě do žádného panelu vložen. Můžete jej proto libovolně myší přetahovat mezi jednotlivými panely. Do panelu, na jehož ploše se přístroj (tj. jeho levý horní roh) nachází, jej pak vložíte stiskem klávesy <Insert>. Je také možno vytáhnout přístroj z palety a položit jej bez automatického vložení do nějakého panelu - v tomto případě postačí podržet klávesu <Shift> při puštění levého tlačítka myši.

  2. V textovém prostředí určíte umístění přístroje do vybraného panelu tak, že ke klíčovému slovu owner přiřadíte jméno tohoto panelu. Zápis pak vypadá např. takto:
      owner = panel_1;
    
    Každému virtuálnímu přístroji, který může být vidět na obrazovce lze také definovat parametr owner.

Jakmile je virtuální přístroj již do nějakého panelu vložen, je možno přetažením myší měnit jeho polohu jen v rámci plochy tohoto panelu. V záložce "position" v inspektoru přístroje nebo přepsáním souřadnic u parametru position v textovém módu je možno samozřejmě nastavit umístění přístroje i zcela mimo viditelnou plochu panelu a dokonce i mimo obrazovky systému Windows. Takovýto přístroj pak nebude vůbec vidět. Chcete-li však úmyslně vytvořit neviditelný přístroj, je lépe mu vůbec nezadat parametr owner než nastavovat pozici mimo viditelnou plochu.

Nyní je již jasné, jak je určena pozice přístroje ve struktuře viditelnosti a jak učinit kterýkoliv virtuální přístroj neviditelným. Kam je však zařazen přístroj po uvolnění z panelu klávesami <Shift>+<Insert>? Je viditelný a přesto není zařazen do žádného panelu. Odpověď je prostá. Přístroj je zařazen přímo do pracovní plochy systému Windows. Přístroje se tedy nemusejí vykreslovat jen v ploše panelů, ale mohou být umístěny přímo na pozadí systému Windows. Tato možnost je velkou výhodou systému Control Web, zdaleka ne každé prostředí něco takového umožňuje. Pozadí Windows má symbolické jméno background. Přístroj na pozadí má tedy parametr owner nastaven takto:

  owner = background;
Vzhledem k přehlednosti aplikace není dobré mít příliš mnoho jednotlivých přístrojů přímo na pozadí, někdy však tato možnost může být velmi užitečná.

Poznámka:
Při přetahování přístrojů myší z palety přístrojů jsou standardně přístroje automaticky vloženy do panelu, nad kterým se při upuštění nachází levý horní roh přístroje. Tuto vlasnost je možno vypnout v nastavení systému (menu "Nástroje/Nastavit...") v záložce "Systém". Zde stačí zrušit volbu položky "Zaregistrovat nový přístroj do panelu pod kurzorem myši" a veškeré přístroje budou po přetažení registrovány na pozadí systému Windows. Můžete s nimi tedy pohybovat po celé grafické pracovní ploše. Vložit tyto přístroje do vybraných panelů je poté nutno pomocí klávesy <Insert>. Opačně také v tomto případě funguje klávesa <Shift> při puštění přístroje – je-li stisknuta, přístroj je automaticky zaregistrován do panelu, nad kterým se právě nachází kurzor myši.

Jak uchovávat data – konstanty, proměnné a kanály

Řada virtuálních přístrojů potřebuje při své činnosti odněkud přečíst data a výsledek jejich zpracování zase někam uložit. Data systém Control Web uchovává v tzv. datových elementech.

Datové elementy mohou být buď globální nebo lokální:

  1. Globální – tj. společné pro celý aplikační program nebo programový modul. Globální datové elementy mohou být používány jakýmkoliv virtuálním přístrojem. Mohou tedy sloužit pro přenos nebo sdílení dat mezi jednotlivými přístroji.

  2. Lokální – tj. vlastní jednomu virtuálnímu přístroji. Lokální datové elementy mohou být používány jen uvnitř virtuálního přístroje, v rámci kterého jsou definovány. Pro zbytek aplikačního programu nejsou přístupné. Při shodě jmen globálního a lokálního datového elementu je v přístroji preferováno použití lokálního parametru. Rozlišujeme tři druhy lokálních datových elementů:
    1. lokální konstanty – hodnota konstanty je neměnná
    2. lokální proměnné – hodnota lokální proměnné je při každé aktivitě přístroje nastavena na svou inicializační hodnotu
    3. lokální statické proměnné – hodnota lokální statické proměnné je inicializována jen při vzniku přístroje při startu aplikace a poté je pamatována aktuální hodnota po celou dobu existence virtuálního přístroje

Z hlediska vlastností a způsobu použití rozlišujeme tři základní druhy datových elementů:

  1. Konstanty – slouží pro uchování neměnných dat. Konstanty trvale obsahují svou inicializační hodnotu, kterou za běhu programu již nelze měnit. Konstanty mohou být globální i lokální.

  2. Proměnné – slouží pro uchování dat, která se mění během činnosti aplikačního programu. Do proměnné lze kdykoliv zapsat novou hodnotu. Proměnné mohou být globální i lokální.

  3. Kanály – slouží pro přenos dat mezi aplikačním programem a vstupně/výstupními zařízeními. Každý kanál je spojen s patřičným ovladačem, který automaticky zajišťuje přenos dat z daného vstupně/výstupního zařízení, kdykoliv je obsah kanálu čten, a přenos dat do daného vstupně/výstupního zařízení, kdykoliv jsou do kanálu uložena nová data. S kanály lze tedy pracovat podobně jako s proměnnými - pro data v kanálech uložená systém Control Web automaticky zajišťuje propojení se vstupně/výstupními zařízeními. Podle směru přenosu dat rozlišujemem tři druhy kanálů:

    1. Vstupní kanály – hodnoty vstupních kanálů jsou čteny ze vstupně/výstupních zařízení. Tyto kanály je možno pouze aplikačním programem číst a nelze do nich data zapisovat.
    2. Výstupní kanály – hodnoty výstupních kanálů je možno aplikačním programem číst i zapisovat. Při čtení dat z těchto kanálů ale nejsou hodnoty získávány ze vstupně/výstupních zařízení. Je přečtena vždy naposledy zapsaná hodnota. Při zápisu dat jsou samozřejmě hodnoty přenášeny přes ovladače do vstupně/výstupních zařízení.
    3. Obousměrné kanály – hodnoty těchto kanálů jsou při čtení získávány a při zápisu přenášeny přes ovladače do vstupně/výstupních zařízení.

    Kanály mohou být vzhledem ke své vazbě na ovladače pouze globální. Ovladače vstupně/výstupních zařízení jsou totiž také v rámci aplikace nebo modulu globálními objekty. Ovladače také nemusí být nutně napojeny na nějaké vstupně/výstupní zařízení. Data poskytovaná některými ovladači jsou např. výsledky složitých matematických modelů a simulací.

Konstanty, proměnné a kanály dělíme na tři základní typy podle druhu veličin, které mohou obsahovat:

  1. datové elementy pro číselné (analogové) veličiny – obsahují čísla veškerých číselných typů
  2. datové elementy pro logické (binární) veličiny – obsahují hodnotu logické jedničky (true) nebo logické nuly (false) binární algebry
  3. datové elementy pro řetězcové (textové) veličiny – obsahují texty jako řetězce znaků abecedy

Datové elementy můžeme do aplikačního programu přidávat, ubírat a modifikovat v textovém i grafickém módu vývojového prostředí. V začátcích práce se systémem budete pravděpodobně více pracovat v grafickém módu. Pro editaci globálních datových elementů slouží pracovní plocha v záložce "Datové inspektory". Zde jsou pak k dispozici jednotlivé editory ve svislých záložkách označených "Konstanty", "Proměnné", "Ovladače" a "Kanály". Zde si povšimněte, že nad záložkou "Kanály" je ještě vložena záložka "Ovladače". Je tomu tak proto, že každý kanál musí být navázán na nějaký ovladač vstupně/výstupního zařízení. Předtím, než začnete do aplikace přidávat kanály, musíte definovat nějaký ovladač, na který pak můžete kanály navazovat.

Lokální datové elementy pak definujete přímo v inspektorech jednotlivých virtuálních přístrojů. Zde existuje záložka "Lokální data", kde jsou podobné editory jako v datových inspektorech.

Poznámka:
Pro přehlednost a udržovatelnost vaší aplikace je dosti důležité, jaká symbolická jména datovým elementům přidělíte. Výstižná jména podstatně zlepší čitelnost aplikačního programu a vhodná konstrukce identifikátorů může později velmi usnadnit např. hromadnou práci s datovými elementy v některých databázových přístrojích.

Matematické výrazy

Pouze se samotnými datovými elementy si však v aplikačních programech určitě nevystačíte. Často je potřeba vyřešit matematický výraz a výsledkem se řídit v dalším běhu programu. V oblasti matematických výrazů je systém Control Web velmi silný. Prakticky všude, kde se ve virtuálních přístrojích zpracovávají, vyhodnocují a zobrazují nějaké veličiny, lze místo pouhých jednotlivých datových elementů zadat matematické výrazy.

Výrazy můžeme opět podle typu výsledku výrazu rozdělit na tři typy:

  1. číselné výrazy – jejich výsledkem je číselná hodnota typu real a mohou obsahovat datové elementy veškerých číselných typů, aritmetické operátory a veškeré matematické, převodní, textové a bitové funkce, jejichž výsledkem je číslo
  2. logické výrazy – jejich výsledkem je logická hodnota typu boolean a mohou obsahovat datové elementy typu boolean, logické operátory a relace mezi číselnými podvýrazy
  3. textové výrazy – jejich výsledkem je textová hodnota typu string a mohou obsahovat datové elementy typu string a textové funkce s výsledkem typu string

Pro maximální usnadnění sestavování výrazů je v grafickém vývojovém prostředí k dispozici editor výrazů, který vám umožní jakýkoliv složitý výraz doslova "naťukat" myší. Editor vyvoláte z inspektoru přístroje kliknutím na tlačítko, které je umístěno vždy vpravo vedle editačního řádku s výrazem.

Editor výrazů

Editor výrazů

Jak již bylo řečeno výše, použijete-li ve výrazech vstupní nebo obousměrné kanály, bude jejich hodnota bezprostředně získána přes patřičný ovladač ze vstupně/výstupního zařízení. Stejně tak může být užitečné připomenout, že při shodě jmen globálního a lokálního elementu je vždy při vyhodnocování výrazu použit datový element lokální.

Dokumentace v integrovaném vývojovém prostředí

Když selžou všechny pokusy, je čas přečíst si návod. Naštěstí v prostředí systému Control Web je veškerá dokumentace velmi snadno dostupná. Přímo v ploše integrovaného vývojového prostředí je v záložce Dokumentace k dispozici hypertextová kniha. Ovládání této knihy je velice snadné. V levé ploše máte k dispozici obsah dokumentace v podobě hierarchického stromu a v pravé části se pak zobrazují jednotlivé dokumenty. Veškerá dokumentace je ve standardním formátu HTML.

K jednotlivým virtuálním přístrojům je rozněž k dispozici interaktivní nápověda. Máte-li v grafickém vývojovém prostředí vybrán vějaký virtuální přístroj, pak se po stisku klávesy <F1> objeví prohlížeč dokumentace s příslušnou kapitolou. Stejná nápověda je k dispozici v inspektoru přístroje v záložce "Nápověda".

Jestliže máte systém Control Web instalován na pevném disku bez doprovodné dokumentace, je pro správnou funkci hypertextové knihy i interaktivní nápovědy v inspektoru přístrojů nutno mít CD-ROM médium se systémem Control Web vloženo do CD-ROM mechaniky.

Shrnutí