Moravian instruments
Vyhledávání
Hlavní menu
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Produkty
Programový systém Control Web
Strojové vidění VisionLab
Kamery DataCam a  osvětlovače DataLight
Průmyslový počítačový systém DataLab
Vědecké kamery
Speciální technika
Ceník
Aktivace produktů
Služby
Školení
Zakázková řešení
Podpora
Volba kamery a objektivu pro Strojové vidění
Control Web - Ukázkové aplikace


Hlavní stránkaControl Web - Ukázkové aplikaceControl Web Dokumentace

První aplikace

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

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

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

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

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.

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

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.

Poznámka:

V obou případech jsme zapsali jako hodnotu parametru jméno datového elementu value:

  control control_1;
    ...
    output = value;
  end_control;

  meter meter_2;
    ...
    expression = value;
  end_meter;

Mezi parametrem output a expression je ale zásadní rozdíl. Zatímco output přístroje control musí být právě jeden datový element, za expression můžeme uvést libovolný číselný výraz. Na místo prostého zápisu value by bylo možné uvést třeba 100 - value.

Tento rozdíl se samozřejmě projeví i pokud otevřeme pomocné okno parametru expression u přístroje meter. Inspektor nám nenabízí prostý výčet datových elementů, ale celý editor výrazů:

Editor výrazů

Editor výrazů

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ů

Svinutá podoba standardních parametrů

Kliknutím na symbol + rozvineme tabulku s parametry aktivace:

Rozvinuté 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

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

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

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

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

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;

Poznámka:

Parametry position a owner nejsou v inspektoru přístroje definovány na první úrovni, ale jsou umístěny do skupiny gui, která obsahuje parametry ovlivňující vzhled a umístění přístroje.

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ů

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

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

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ů

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ě

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ě

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

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;

Poznámka:

Je dobré si uvědomit, že aktivovány budou všechny přístroje daného jména. Pokud tedy v aplikaci existuje více přístrojů stejného jména, uvedení tohoto jména v seznamu receivers způsobí aktivace všech těchto přístrojů.

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:

  • Čtení kanálu způsobí komunikaci ovladače s periferií a přečtení její hodnoty.

  • Zápis do kanálu způsobí zapsání hodnoty prostřednictvím ovladače do periferie.

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

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

    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

    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

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

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

Řada přístrojů indicator

Poznámka:

Podobně jako jsme u první aplikace použili přístroj control, který nastavoval hodnotu zobrazovanou přístrojem meter, i u binárních hodnot můžeme použít přístroj switch k nastavování logické hodnoty, kterou může přístroj indicator zobrazovat.

Obdobně přístroje string_control a string_display nastavují a zobrazují řetězcové (textové) datové elementy a výrazy.

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.

 
 | O společnosti | Produkty | Podpora | Stažení software | Stažení dokumentů | 
Moravské přístroje, a.s., Masarykova 1148, Zlín-Malenovice, 76302