Control Web 5 přináší nové možnosti pro tvorbu
distribuovaných aplikací. Hlavní motivací při návrhu nového systému
byla snaha ušetřit práci při vývoji rozsáhlých síťových aplikací.
Tento článek na jednoduchém příkladu ukazuje, že vytváření rozsáhlých
distribuovaných aplikací je v prostředí Control Web 5
velice jednoduché a zvládne ho skutečně každý.
V sytému Control Web 5 jsou nyní všechny datové
elementy (konstanty, proměnné, kanály …) umístěny v tzv. datových
sekcích. Datová sekce je základním prvkem, který je možno sdílet
mezi aplikacemi běžícími na různých počítačích.
V systému Control Web vytvoříme novou aplikaci.
Toto bude serverová aplikace, která bude poskytovat data dalším
aplikacím. V aplikaci vytvoříme sekci kanálů a do ní vložíme kanál
teplota, který bude prostřednictvím ovladače získávat teplotu z
technologie (například komunikací s PLC). Sekci pojmenujeme sdilena_sekce.
Takto vytvořený kanál je možné používat v celé lokální aplikaci.
Nyní si ukážeme, jak můžeme k tomuto kanálu přistupovat z dalších
aplikací, ať už z lokálního počítače nebo z libovolného počítače
lokální sítě.
Prvním krokem je zpřístupnění sekce kanálů v serverové aplikaci.
Sekci nastavíme jako sdílenou – nabízenou pro ostatní aplikace. V
serverové aplikaci se přepneme do datových inspektorů, vybereme sekci
kanálů a najdeme parametr scope. Parametr scope
je klíčovým při vytváření distribuovaných aplikací. V serverové
aplikaci, v sekci kanálů nastavíme parametr scope na
hodnotu shared_remotely. Dále musíme povolit přístup
klientů, k tomu slouží parametr client_access.
Položku pololení přístupu tohoto parametru nastavíme na
hodnotu allow a položku jméno nebo IP adresa
serveru nastavíme na hodnotu any. Tato sekce bude
od tohoto okamžiku nabízená všem aplikacím systému Control Web běžícím na jakémkoliv počítači, dosažitelném
prostřednictvím počítačové sítě.
V druhém kroku vytvoříme klientskou aplikaci, v níž zpřístupníme
serverovou sekci kanálů. Vytvoříme novou aplikaci. Vložíme do ní novou
datovou sekci kanálů. Tuto sekci pojmenujeme také sdilena_sekce.
Nyní opět nastavíme parametr scope. U klientské sekce
nastavíme scope na hodnotu imported_remotely
(vzdáleně dovážená sekce). Nyní bude Control Web
datové elementy v této sekci dovážet ze vzdáleného počítače. Musíme
ještě určit, odkud budou datové elementy dováženy. Musíme tedy určit
počítač, na němž poběží serverová aplikace, jméno serverové aplikace a
jméno sekce, z níž budou dovezené datové elementy. Toto všechno
nastavíme parametrem server. Tento parametr nastavíme opět v datových
inspektorech. Pro úpravu parametru server nabízí Control Web jednoduchý editor, v němž musíme vyplnit následující
hodnoty:
Jméno nebo IP adresu serveru – to je adresa
počítače, na němž poběží serverová aplikace (tedy aplikace v níž je
sdílená sekce kanálů). Pokud budeme testovat komunikaci na jednom
počítači (serverovou i klientskou aplikaci budeme spouštět na
stejném počítači), můžeme zadat IP adresu lokálního počítače
127.0.0.1
Název modulu – jméno serverové aplikace (jméno
zadejte bez přípony cw)
Název sekce – jméno sekce kanálů v serverové
aplikaci. Protože v naší klientské aplikaci je sekce pojmenovaná
stejně jako v serverové aplikaci, nemusíme tento parametr
vyplňovat.
Sekce kanálů v klientské aplikaci je definována jako prázdná –
neobsahuje definici žádných datových elementů. Fyzicky při spuštění
aplikace však sekce kanály obsahuje, seznam kanálů je načten ze
serverové aplikace.
Nyní můžeme v obou aplikacích číst teplotu, například do přístroje
meter nastavíme vstup (parametr input) sdilena_sekce.teplota.
V serverové aplikaci Control Web přečte hodnotu
prostřednictvím ovladače. V klientské aplikaci musí Control Web přečíst hodnotu ze serverové aplikace, která ji přečte z
ovladače. To však dělá jádro systému Control Web.
Tvůrce aplikace nemusí vědět, jestli je kanál lokální nebo přenášený z
jiného počítače. Vždy pracuje s kanálem teplota v sekci sdilena_sekce.
Práce s kanálem je naprosto stejná v serverové i klientské
aplikaci.
Takto vytvořenou klientskou aplikaci můžeme spustit na libovolném
počítači naší lokální sítě. Můžeme jí spustit v jeden okamžik na
libovolném počtu počítačů nebo na jednom počítači víckrát. Všechny
aplikace budou zobrazovat hodnotu teplota. Pokud budou počítače naší
lokální sítě přístupné z Internetu, můžeme klientskou aplikaci spustit
na počítači kdekoliv na Internetu – vždy bude správně zobrazovat naši
teplotu.
V uvedeném postupu byly záměrně definovány pouze základní
parametry, aby ukázka byla co nejjednodušší a nejnázornější. Při
praktickém použití jsou možnosti systému Control Web
mnohem rozsáhlejší. Je například možné v serverové aplikaci nastavit,
kteří klienti se mohou ke sdílené sekci připojit nebo kolik klientů
může být v jeden okamžik připojených (parametr client_access).
Další možností je nadefinovat v klientské aplikaci v parametru
sekce server více počítačů, na nichž může běžet serverová aplikace.
Potom stačí, aby aplikace běžela alespoň na jednom z nich a Control
Web se k němu automaticky připojí. Pokud je serverová aplikace
zastavena, najde si klientský Control Web jiný
spuštěný server (pokud takový existuje). To vše dělá Control Web zcela automaticky, aniž to uživatel za běhu aplikace
postřehne. Pokud chce mít tvůrce aplikace kontrolu nad výběrem
serverů, nabízí Control Web celou řadu nativních a
událostních procedur.
Obrovskou výhodou při vývoji aplikací v systému Control Web je možnost testovat klientské aplikace na lokálním
počítači a po dokončení jej bezpečně přenést na jinou pracovní
stanici. To v praxi značně urychlí tvorbu aplikací.
Archivace dat
Nyní naši aplikaci rozšíříme o možnost archivace změřené
teploty. Změřenou teplotu budeme chtít archivovat jednou za
minutu. Do serverové aplikace přidáme novou datovou sekci typu
archive. Sekci pojmenujeme archivace. Aby
sekce archivovala jednou za minutu nastavíme parametr timer
sekce na hodnotu 60 (parametr je v sekundách). Protože budeme
chtít k archivu přistupovati z klientské aplikace nastavíme
parametr scope na hodnotu shared_remotely.
Nyní musíme do archivační sekce vložit novou položku pro
archivaci. V seznamu datových elementů klikněte na přidat a
zadejte jméno datového elementu archiv_teplota. Nyní
zbývá nastavit, aby tento nový datový element archivoval hodnotu
kanálu teplota. V datových inspektorech nastavte parametr expression
datového elementu na sdilena_sekce.teplota.
Pokud nyní serverovou aplikaci spustíme bude Control Web automaticky každou minutu ukládat změřenou hodnotu
teploty. Dále si ukážeme, jak je možné archivované hodnoty
prohlížet.
Nejprve zpřístupníme archivní sekci. V klientské aplikaci
vytvoříme novou archivní sekci, kterou pojmenujeme stejně jako v
serverové aplikaci archivace. Nastavíme opět parametr scope
na hodnotu imported_remotely a parametr server
jako v předchozím případě.
Posledním krokem je zobrazení historie teploty. Do klientské
aplikace vložíme zobrazovač datových elementů přístroj
data_viewer. V inspektoru přístroje nastavíme
parametr timer na 60 sekund, přístroj bude obnovovat
zobrazený graf jednou za minutu. Dále v parametru data_group
přidáme odkaz na archivovaný datový element z dovezené datové
sekce: archivace.archiv_teplota.
Nyní můžeme spustit server a libovolný počet klientů. Ve všech
klientských aplikacích uvidíme stejný graf průběhu teploty.
Historická data jsou uložena u serverové aplikace, klientské
aplikace data pouze zobrazují.
Alarmy
Další možností je rozšířit aplikace o sledování alarmů,
například překročení určené meze měřené teploty. Postup je obdobný
jako v předchozím případě. Do serverové aplikace vložíme novou
datovou sekci typu alarm. Do klientské aplikace se přidá
datová sekce a prohlížeč alarmů – přístroj
alarm_viewer.
Potom jsou ve všech klientských aplikacích (nezávisle na tom,
na kterém počítači běží) zobrazeny stejné alarmy. Je možno
prohlížet jejich historii, potvrzovat vzniklé alarmy a podobně.
Control Web zajistí, že na všech bežících
aplikacích je vždy zobrazen stejný stav.
Synchronizace sekcí
Synchronizace sekcí (scope = synchronized-shared-remotely)
umožňuje vytvořit více datových sekcí ve dvou či více aplikacích
pracujících na různých počítačích, z nichž ale jen jedna je
aktivní. To znamená, že jen jedna aplikace např. komunikuje s
daným PLC či jiným hardware, ostatní aplikace jen synchronizují
obsah datových elementů po síti. Jestliže aktivní aplikace z
nějakého důvodu selže (např. zastaví se ventilátor na chladiči
procesoru), aktivní roli převezme jiný počítač a systém běží bez
přerušení dále.
|