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.
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:
Titulní stránka Průvodce novou aplikací
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:
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.
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í
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.
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ů
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í.
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.
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.
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í:
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.
Ř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í:
Z hlediska vlastností a způsobu použití rozlišujeme tři základní druhy datových elementů:
Konstanty, proměnné a kanály dělíme na tři základní typy podle druhu veličin, které mohou obsahovat:
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.
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:
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ů
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í.
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.