Webový procesor pro měření, regulaci a synchronizaci
Článek popisuje nově vyvinutý samostatný, rozměrově malý a snadno přenosný webový procesor CTRL V4, určený zejména pro měření a synchronizaci kdekoliv na internetu. Lokální počítačová síť doplněná o tento procesor může zajišťovat měření nebo vysílání elektrických analogových nebo logických signálů. Procesor se chová jako standardní webový server s vlastní IP adresou. Umožňuje dálkové řízení prostřednictvím webových stránek uložených přímo v přístroji, komunikaci s jinými webovými servery, vytváření sítí, použití serverově orientovaného programovacího jazyka PHP a použití klientské metody programování AJAX (viz článek v příštím čísle časopisu Automa).
1. Úvod
Měření a regulace jsou tradiční inženýrské disciplíny. Nezbytnou součástí jejich vývoje je i přímá práce s fyzikálními procesy. Na současných pracovištích proto nechybí fyzikální modely reálných procesů a další systémy modelující reálné situace. Existuje také dostatek zkušeností u nás [1], [2] i v zahraničí [6], že např. výuka těchto tradičních inženýrských disciplín je efektivnější, užitečnější a zajímavější, je-li orientována na praxi.
Proto se již na počátku 90. let minulého století objevily pokusy [5] propojit osobní počítač s fyzikálními procesy a umožnit tak realizaci širokého spektra úloh z praxe. Na straně počítače lze přitom použít některý zavedený program, např. Matlab. Vznikla tudíž myšlenka vyvinout samostatný a snadno přenosný přístroj, který by Matlab „propojil s okolním světem“ a tak rozšířil jeho možnosti o práci s fyzikálními procesy. Přístroj, který to umožňoval, dostal název CTRL (control) a s počítačem komunikoval pomocí sériové linky RS-232. Byl schopen generovat i reálný čas, a proto bylo možné vytvářet plnohodnotné měřicí či regulační systémy.
S vývojem elektroniky a programu Matlab postupně vzniklo několik verzí přístroje CTRL [4]:
verze 1 byla založena na mikroprocesoru Intel řady 8048 a určena pro Matlab 2,
verze 2 byla založena na mikroprocesoru Intel řady 8051 a určena pro Matlab 4.
verze 3 (zatím poslední) je založena na mikroprocesoru PIC (od firmy Microchip PIC) a je určena pro Matlab 6 a 7.
Masivní rozšíření webu a nové uživatelsky snadné skriptovací jazyky vytvářejí rámec pro řešení mnohých úloh automatizace mimo zavedené počítačové programy. Díky komunikačním možnostem internetu je navíc možné naměřené údaje či akční zásahy ve chvilce přenést na libovolný počítač připojený do internetu. Není tedy nutné již akcentovat standardní sériovou komunikační linku nebo zavedený počítačový program. Svět internetu a webu totiž poskytuje daleko větší možnosti z hlediska připojení a ovládání fyzikálních modelů a procesů.
Uvažujme např. následující příklad. Na moři dojde k havárii, při níž je určitá jeho plocha zasažena škodlivou látkou. K jejímu odstranění se používají speciální autonomní plovoucí kapsle s možností aktivního pohybu a komunikace s ostatními kapslemi. Každá kapsle z nich vyčistí plochu svého okolí o určitém poloměru. Je tedy vhodné, aby se kapsle pohybovaly ve struktuře mřížky, tj. navzdory větru a vlnám od sebe udržovaly konstantní odstup. To je úloha, kterou lze obtížně řešit standardními prostředky automatizace. Počítačové sítě a internet však dávají možnost trénovat takovéto úlohy.
Obr. 1. Model Wattova regulátoru
Pohyb kapslí v mřížce lze simulovat např. synchronizací několika fyzikálních modelů připojených do internetu. Jedním ze synchronizačních algoritmů je slavný algoritmus, kterým se vysvětluje spontánní synchronizace svícení světlušek. Matematická teorie tohoto algoritmu je uvedena v [8].
Vhodným modelem pro naznačenou úlohu může být např. model Wattova regulátoru (obr. 1). Trénování úlohy uspořádání potom může vypadat takto: do internetu se na různých místech připojí několik modelů Wattova regulátoru a ty bude třeba synchronizovat tak, aby se navzdory všem možným problémům internetu (výpadky komunikace, zpoždění) otáčely stejnou rychlostí. Otáčky Wattova regulátoru se ovládají elektrickým napětím. Elektrické napětí je proto třeba měřit a vysílat prostřednictvím webu. K tomu je zapotřebí zařízení integrující možnosti již existující jednotky CTRL, tj. měření a vysílání elektrických analogových a logických signálů, a webového serveru. Realizace této úlohy byla podnětem vzniku nového přístroje, který podporuje tvorbu stránek v HTML i pomocí XML [3] a má konfigurovatelnouIP adresu. S jeho pomocí lze poměrně snadno z prostředí webového prohlížeče regulovat a monitorovat skutečné fyzikální procesy. Nově vyvinutý přístroj byl nazván CTRL V4 (čtvrtá verze). Jeho jádrem je opět mikroprocesor rodiny PIC.
Integrace síťového prostředí, webových služeb a možností přístroje CTRL do jednoho kompaktního přístroje vyžaduje nový název takového přístroje. Autoři pro tento přístroj používají termín „webový procesor“. Webovými procesory v tomto pojetí jsou obecně entity, které mohou zpracovávat data a komunikovat v síti s uživateli a mezi sebou. Data se poskytují standardně přes ethernetový kabel; komunikace však může být i bezdrátová. Při experimentech uvedených v následujícím textu byly využívány zejména senzory teploty a pohybu a model Wattova regulátoru.
2. Základní parametry nového přístroje
Webový procesor CTRL V4 má:
- čtyři analogové vstupy (0 až 10 V),
- dva analogové výstupy (0 až 10 V, 50 mA),
- čtyři logické vstupy a výstupy,
- sériovou sběrnici 1-Wire (někdy se označuje podle firmy, která ji navrhla, tj. Dallas Semiconductors).
Obr. 2. Nová jednotka CTRL V4
Logické výstupy jsou přizpůsobeny k přímému ovládání dvanáctivoltových relé. Celý přístroj je umístěn na malé desce po stranách opatřené šroubovacími konektory, které usnadňují připojení fyzikálního zařízení (obr. 2). Na jedné straně je ethernetový konektor RJ45 pro připojení do internetu a signálový konektor RJ12 pro sériovou sběrnici 1-Wire pro teploměry, PIR čidla pohybu atd. Při připojení do lokální počítačové sítě není nutné instalovat žádné ovladače, pouze se nastaví přiřazená IP adresa. CTRL V4 se napájí z univerzálního patnáctivoltového zdroje (min. 300 mA).
Webový procesor CTRL V4 stačí připojit do lokální počítačové sítě a je připraven k činnosti. Kromě měření a vysílání elektrických analogových a logických signálů může na požádání vytvářet obraz vstupů a výstupů periodicky v předem zadaném intervalu a tím zajišťovat komunikaci v reálném čase. Připojení jednotky do lokální počítačové sítě je schematicky znázorněno na obr. 3.
K informacím z webového procesoru se lze jednoduše dostat prostřednictvím webových stránek:
- index.htm – základní informační stránka,
- main1.htm – stránka pro nastavení data a času,
- main2.htm – stránka pro měření a ovládání,
- setup.htm – kalibrační stránka,
- measure.xml – zpracování dat v XML.
Obr. 3. Připojení webového procesoru CTRL V4 k lokální počítačové síti
Ze stránky main2.htm lze prostřednictvím elektronických formulářů vysílat elektrické analogové signály. Webová adresa, která se zadává v prohlížeči, je např. http://ipadresa/main2.htm. Díky tomu je možné se k procesoru připojit odkudkoliv z internetu. Procesor má také několik skrytých webových stránek, kde se nastavuje jeho konfigurace, kalibrační hodnoty apod. Ty jsou běžnému uživateli skryty, aby je nebylo možné měnit neautorizovaným způsobem. Případným konfliktům se předchází tím, že si procesor pamatuje IP adresu připojení vzdáleného uživatele a ten má pro sebe vyhrazených pět minut, během nichž jiný uživatel nemá možnost na procesoru cokoliv změnit.
Webový procesor CTRL V4 je možné ovládat nejen prostřednictvím webových stránek uložených v procesoru. Lze využít také programy umístěné na straně jiného serveru, vytvořené např. v jazyce PHP, nebo přímo na straně uživatele, např. s použitím techniky AJAX. Program vytvořený v jazyce PHP umožňuje periodicky získávat data z webového procesoru, ukládat je do souboru, databáze, graficky zobrazovat apod. Základem čtení dat z webového procesoru je následující výseč kódu v PHP. Webový procesor je na adrese http://ctrlv4.cs.cas.cz, standardní port 80
$fp = fsockopen („ctrlv4.cs.cas.cz“,
80, $errno, $errstr, 30); //Otevre komunikaci
if (!$fp) { //Pokud je chyba
echo „$errstr ($errno)
“;
}
else //Jinak
{
fputs ($fp, „GET /temper.xml HTTP/1.0
Host:ctrlv4.cs.cas.cz
“);
//Zapise soubor
$xmltext=““;
while (!feof($fp))
{
$xmltext.=fgets ($fp); //Precte soubor
po radcich
}
}
fclose ($fp);
Obr. 4. Připojení dvou modelů Wattova regulátoru k webovému procesoru CTRL V4
Předpokládejme, že je třeba z webového procesoru přečíst XML soubor s názvem temper.xml, nesoucí hodnotu aktuální venkovní teploty. Nejdříve se otevře komunikace s webovým procesorem, získá se příslušný soubor a následně se po řádcích přečte. Získaný soubor je možné zpracovat vhodným XML parserem (programem pro nízkoúrovňovou syntaktickou analýzu souboru) a tím získat údaj o teplotě. Výhodou čtení po řádcích je možnost zachytit pouze specifické řádky čteného souboru.
Jiný postup čtení souboru je např. pomocí jednoduché příkazové řádky
$xmltext = file_get_contents („http://ctrlv4.cs.cas.cz/temper.xml“);
Zde lze najednou přečíst celý soubor, a je proto nutné následné parsování. Když jsou známy parametry a komunikace s webovým procesorem, může následovat další krok. Tím je připojení fyzikálního modelu (modelů).
Použití techniky AJAX bude popsáno v samostatném článku v příštím čísle časopisu.
3. Příklad připojení procesoru k modelu Wattova regulátoru
U modelu Wattova regulátoru (obr. 1) se otáčky ovládají napětím v rozsahu 0 až 10 V. Ve stejném rozsahu napětí je výstup ze snímače otáček. Model tedy má jeden analogový vstup a jeden analogový výstup. Porovnají-li se parametry popisovaného webového procesoru a parametry modelu Wattova regulátoru, lze zjistit, že k jednomu procesoru CTRL V4 je možné současně připojit dva takové modely. Na obr. 4 je uspořádání experimentu umístěného na webové adrese http://ctrlv4.cs.cas.cz
Pro to, aby bylo možné celý experiment také na dálku sledovat, je vhodné sestavu doplnit webovou kamerou, která bude poskytovat přímé záběry z experimentů. Na obr. 4 je webová kamera vpravo dole; záběr lze sledovat na webové adrese http://pekcam.cs.cas.cz. Pro regulérní přihlášení uživatele je nutné zadat uživatelské jméno „anonymous“ a heslo „anonym“. Po výběru „single“ z menu jsou vidět oba modely Wattova regulátoru podobně jako na obr. 5.
Obr. 5. Snímek z IP kamery dvou modelů Wattova regulátoru
Obr. 6. Webová stránka main2.htm webového procesoru CTRL V4
Teď je možné začít modely ovládat, buď programy v PHP či AJAX, nebo přímo prostřednictvím webových stránek uložených ve webovém procesoru. Jde konkrétně o stránku main2.htm, která se vyvolá z adresy http://ctrlv4.cs.cas.cz/main2.htm. Objeví se webová stránka, která je na obr. 6. An0 až An3 jsou hodnoty analogových vstupů (rozsah 0 až 10 V násobený 100), D0 až D3 jsou číslicové vstupy, DA0 až DA1 jsou analogové výstupy a DO0 až DO6 jsou číslicové výstupy. Analogové a číslicové výstupy je možné měnit prostřednictvím elektronického formuláře. Je-li třeba např. první analogový výstup změnit na 4 V, zadá se do rámečku označeného DA0 hodnota 400 a stiskne se tlačítko „poslat“.
4. Příklad měření teploty a pohybu
S použitím sériové sběrnice 1-Wire (Dallas) a popř. s využitím číslicových výstupů je možné k webovému procesoru připojit až osm teploměrů, čtyři čidla pohybu apod. Připojením k webovému procesoru se získá možnost přenést údaje kamkoliv do sítě, komunikovat s jinými servery, webovými procesory, ukládat hodnoty do veřejně přístupných databází apod. K databázím je potom možné přistupovat pomocí běžných „lidských“ dotazů typu „Ukaž mi teplotu v Praze za poslední dva dny“, „Jaká byla maximální teplota v uplynulém roce?“ apod. Příklad takového serveru, kde se údaje z několika webových procesorů periodicky ukládají k dalšímu zpracování, je na webové adrese http://sks99.com/phpgraph/. Kliknutím na položky 5 a 6 lze zadat dotaz na teplotu (Praha-Mazanka) za určité časové období (teploměr je umístěn za oknem kanceláře jednoho z autorů článku, P. Klána) – obr. 7 nahoře a na pohyb v této kanceláři – obr. 7 dole. (Zajímavý je singulární pohyb detekovaný mezi oběma svazky, pravděpodobně kontrola vrátného nebo úklid.)
Obr. 7. Průběh venkovní teploty (nahoře) a pohyb (dole) zaznamenané na pracovišti jednoho z autorů, P. Klána
Z pohledu sběru dat jde vlastně o webové senzory teploty a pohybu, jejichž data plynou do sítě webových procesorů. Tak se webové senzory stávají součástí webové sítě (internetu nebo intranetu). Datová komunikace s webovými procesory je v uváděném případě založena na jednoduché sériové komunikaci s webovým procesorem prostřednictvím sériové sběrnice (teplota) nebo přímo logického vstupu (čidlo pohybu). Stejně tak ale může být založena na univerzálních internetových protokolech (HTTP, TCP/IP), kdy se senzor chová jako svébytný webový server. Tyto protokoly jsou mnohem komplexnější než sériový protokol a jejich výhodou je, že jsou univerzální. Je totiž možné je používat bez jakékoliv konfigurace.
5. Příklad vytvoření sítě webových procesorů
Obecně lze webové procesory se senzory organizovat do sítí a začleňovat do internetu. Organizace takové sítě je schematicky naznačena na obr. 8. Symbol wp je určen pro webové procesory a ws pro webové senzory. Zatímco senzory ws1 a ws3 komunikují jednosměrně, mohou být součástí sítě i webové senzory, které poskytují informace jako webové servery (protokol HTTP), viz např. obousměrná komunikace u ws2.
Účelem konstrukce sítí webových procesorů je vyšší forma poskytování informace a znalostí. Příklad s měřením teploty a pohybu využívá jednoduché rozhraní. Obecné webové procesory či jejich sítě jsou zamýšleny jako systém tak, aby odpovídaly na jednoduché dotazy jazykově zformulované a aby rozsah otázek, informace a instrukcí čerpal ze zkušenosti systému v čase. Zkušenosti systém obdrží od jiných uživatelů, webových procesorů, anebo je najde sám [7].
Jazyková komunikace se sítí webových procesorů může mít tři podoby: dotaz, informaci a příkaz. Fragmenty komunikace mohou vypadat takto (v současnosti jsou implementovány pro dotazy na hodnoty teplot pohybu):
=teplota čas | čas teplota
=teplota místo hodnota | místo teplota hodnota
= nastavit napětí hodnota | hodnota napětí nastavit
Svislá čára znamená, jak je zvykem v syntaxi počítačových jazyků, „nebo“.
6. Příklad synchronizace modelů Wattova regulátoru
Fyzické interakce pomocí internetu jsou významné např. pro telerobotiku nebo teleoperace (viz např. GOLBERG, K. – SIEGWART, X. (edts.): Beyond Webcams, An Introduction to Online Robotics. The MIT Press 2002, http://mitpress.mit.edu/onlinerobots).
Obr. 8. Webové procesory a webové senzory
Například dva webové procesory CTRL V4 mohou být ovládány pomocí virtuálního zařízení, které sídlí na jiném webovém procesoru. Dále mohou webové procesory sdílet žádosti a instrukce k provedení akcí. Jedna z možných akcí může být synchronizace nelineárních oscilátorů. To je návrat k úloze z úvodu článku, tedy pohybu autonomních kapslí na vodní hladině.
V provedeném experimentu uživatel nastavuje virtuální model Wattova regulátoru implementovaný jako applet v jazyce Java. Ten komunikací s webovým procesorem zjišťuje odchylku a aplikuje synchronizační algoritmus podle [8]. Ihned nebo se zpožděním přenese applet synchronizaci na webový procesor, který mění otáčky fyzikálního modelu. Výsledkem je úplná synchronizace fyzikálního a matematického modelu. Uvedená synchronizace je na webové adrese http://86.49.29.197:8181/ a je možné ji ověřit. Model Wattova regulátoru je v tomto případě na pracovišti druhého autora, J. Smida. Uživatelské jméno a heslo pro webovou kameru je „user“.
7. Závěr
Článek seznamuje čtenáře s nově vyvinutým webovým procesorem CTRL V4. Jde o malý a kompaktní webový server s možností měření a vysílání elektrických analogových signálů. Článek kromě popisu webového procesoru popisuje i několik aplikací, které autoři navrhli a které jsou dostupné přímo na webu.
Smyslem článku bylo nejen popsat nový webový procesor, ale také naznačit nové možnosti práce s daty a získávání informace v sítích. Je totiž možné říci, že webové procesory a webové senzory v několika letech zaplaví naše osobní i profesionální okolí. Malá i velká zařízení budou existovat jako součásti sítí. V sítích se bude komunikovat univerzálními protokoly a vyšší entity budou komunikovat mezi sebou a s uživateli přirozeným jazykem. Proto je třeba věnovat náležitou pozornost komponentám sítí a sítím samotným.
Poděkování
Práce byla vytvořena za finanční podpory grantových projektů MŠMT registrovaných pod čísly 1N04002 a 1P05ME799. J. Smid byl podporován z projektu CIBAC, Bowie State University.
Literatura:
[1] HORÁČEK, P.: Laboratory Experiments for Control Theory Courses: A Survey. Annual Reviews in Control, 2000, 24, s. 151–162.
[2] KLÁN, P. – HOFREITER, M. – MACHÁČEK, J. – MODRLÁK, O. – SMUTNÝ, L. – VAŠEK, V.: Process Models for a New Control Education Laboratory. In: Preprints of the IFAC World Congress, Prague, 2005.
[3] KLÁN, P.: Získávání informace s použitím webových služeb. Automa, 2005, roč. 11, č. 10, s. 12–16.
[4] KLÁN, P.: Přístroj pro měření a řízení pomocí PC. Automa, 2004, roč. 10, č. 11, s. 34–36.
[5] KLÁN, P. – MARŠÍK, J. – VALÁŠEK, P. – GÖRNER, V.: Adaptivní PID regulátory s monolitickými u-počítači. ÚTIA ČSAV, Praha, 1990.
[6] LEE, P. L. – ALLEN, R. M. – COLE, G. R. – SHASTRI, S. S.: A modular laboratory for process control and process engineering. Journal of Process Control, 2003, 13, s. 283–289.
[7] SMID, J. – OBITKO, M. – BENCUR, A.: Concept and Sensor Network Approach to Computing: The Lexicon Acquisition Component. Springer, 2005. LNCS/LNAI 3825.
[8] STROGATZ, S. H. – MIROLLO, R.: Synchronization of Pulse-Coupled Biological Oscillators. SIAM J. Appl. Math, 1990, Vol. 50, No. 6, pp. 1645–1662.
Petr Klán,
Ústav informatiky AV ČR, Praha
(pklan@cs.cas.cz),
Jan Smid,
Bowie State University, USA
(jsmid@cs.bowiestate.edu)
|