O společnostiProduktyObchodPodpora
Moravské přístroje
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Produkty
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ánkaProduktyProgramový systém Control WebPředchozí verze systému Control WebControl Web 2000Control Web 2000 pro Windows CE

Jedna velikost nepadne všem
 Platnost tohoto pořekadla zjevně není omezena jen na průmysl oděvní konfekce, ale vztahuje se prakticky na všechna průmyslová odvětví. Různé tržní segmenty a různé oblasti použití mění kritéria užitečnosti a kvality každého výrobku a tím nutí výrobce modifikovat své produkty pro různé zákazníky. V oblasti informačních technologií existují také různá kritéria vhodnosti a užitečnosti - u stolního počítače preferujeme maximální výkon téměř bez ohledu na spotřebu energie a hmotnost, u přenosného počítače se raději spokojíme s menším výkonem, ale vyžadujeme nízkou hmotnost a dlouhý provoz na baterie, u osobního organizéru je nízká hmotnost a spotřeba téměř vším...

Platnost tohoto pořekadla zjevně není omezena jen na průmysl oděvní konfekce, ale vztahuje se prakticky na všechna průmyslová odvětví. Různé tržní segmenty a různé oblasti použití mění kritéria užitečnosti a kvality každého výrobku a tím nutí výrobce modifikovat své produkty pro různé zákazníky. V oblasti informačních technologií existují také různá kritéria vhodnosti a užitečnosti - u stolního počítače preferujeme maximální výkon téměř bez ohledu na spotřebu energie a hmotnost, u přenosného počítače se raději spokojíme s menším výkonem, ale vyžadujeme nízkou hmotnost a dlouhý provoz na baterie, u osobního organizéru je nízká hmotnost a spotřeba téměř vším. Podobná diverzifikace panuje i v softwarovém průmyslu, i když v této oblasti jsou rozdíly v očích veřejnosti méně patrné. Přesto pro odborníky představují různá nasazení operačních systémů a aplikací naprostou změnu kritérií, podle nichž jsou softwarové projekty konstruovány i hodnoceny.

Pomiňme rozdílnost konceptů klientských aplikací, zaměřených stále více na snadnost a bezproblémovost obsluhy a současně na estetickou stránku produktu a serverových aplikací, které často poskytují pouze spartánské uživatelské rozhraní, neboť předpokládají, že je budou obsluhovat lidé znalí, a soustředí se na vlastní funkčnost, efektivitu využití zdrojů počítače apod. Namísto toho se soustřeďme na kritéria důležitá pro schopnost systémů a aplikací pracovat ve strojích, rozvaděčích a jiných zabudovaných aplikacích, tedy na velikost potřebných zdrojů počítače (především velikosti paměti, ale i výkonu procesoru) pro práci systému, na schopnost systému pracovat v reálném čase, zotavit se z náhlých vypnutí apod.

Pracovní stanice a servery

Nikdo se již nediví nepřetržitému nárůstu výkonu procesorů a kapacit pamětí ve stolních i přenosných počítačích a serverech. A tak zatímco první PC/XT mělo problémy s dostatečně rychlým obnovením textové obrazovky a první PC/AT jen obtížně překreslovalo okna s jednoduchým grafickým uživatelským rozhraním, dnešní uživatelská rozhraní oplývají efekty animací, průhlednosti apod. Dlouhodobým vývojem se vytříbila kritéria pro návrh počítačů, operačních systémů i aplikací pro osobní počítače i servery:

  • Spíše než přesná časová odezva systému je důležitá jeho celková propustnost. Jinými slovy není příliš podstatné kdy přesně k dané operaci dojde, důležitější je schopnost zpracování co největšího počtu operací za určitý čas.

  • U interaktivních aplikací se přidává ještě další kritérium - subjektivní dojem uživatele pracujícího s počítačem. Úkoly, na něž se uživatel zrovna soustředí, musí mít přednost před úkoly pracujícími na pozadí. Tohoto lze dosáhnout za cenu zavedení řady výjimek ve standardním chování přepínače úloh, které zajišťují preferenci úloh na popředí.

  • Pád cen pamětí a nárůst výkonu procesorů nenutí k přílišnému zaobírání se paměťovými nároky. Ukazuje se že zdvojnásobení paměti je vždy jednodušší, levnější a bezpečnější než pracná, zdlouhavá a nejistá snaha optimalizovat aplikaci na nižší spotřebu paměti. Ušetřený čas je možno namísto toho věnovat přidávání nových vlastností, které opět zvyšují nároky na zdroje počítače.

  • Náročnost programů na zdroje počítače s sebou přináší nutnost přítomnosti diskové paměti, dnes prakticky jediného dostupného vysoko-kapacitního paměťového média.

  • Nedůležitost časově-deterministického zpracování v prostředí kancelářských i inženýrských aplikací vede i vyjmutí pravidel definujících časové chování z definic standardních programových rozhraní. Takže kupříkladu způsob nadržování aplikaci pracující v popředí se tak liší mezi různými implementacemi Win32 API (Windows 9X vs. Windows NT) i mezi různými verzemi jediné implementace.

Všechny zde uvedené body platí i pro nejrozšířenější operační systémy řady Windows NT/2000 firmy Microsoft. Ačkoliv systémy přepínání procesů a mezi-procesové synchronizace jsou v prostředí Win32 navrženy z hlediska kancelářských, inženýrských i serverových aplikací velice dobře, jejich reakční doby nejsou deterministicky určitelné a tedy není možné zaručit reakci aplikace na události do určité doby.

Typickým architektonickým rysem operačních systémů Windows NT/2000 znemožňujícím deterministické určení doby přepnutí výpočetního kontextu z jednoho procesu na druhý je tzv. inverze priorit. Veškerá činnost aplikací v systémech Win32 je prováděna tzv. prováděcími toky. Každý proces (aplikace) má alespoň jeden takový tok, ale může jich být i více. Na počítači vybaveném jediným procesorem sice může v každém okamžiku běžet právě jediný prováděcí tok, ale systém jejich vykonávání po krátkých časových intervalech řádu desítek až stovek milisekund střídá, takže pro uživatele vytváří dojem jejich současné činnosti. O změnu kontextu vykonávání z jednoho prováděcího toku na druhý se stará část operačního systému zvaná plánovač. Aby bylo možné práci více toků účinně řídit, operační systém nabízí aplikacím řadu programových rozhraní umožňující synchronizaci jejich provádění. Tak může jeden prováděcí tok zastavit svou činnost (plánovač mu nebude přidělovat čas procesoru) do doby, než jiný prováděcí tok ukončí nějakou činnost. Jinými slovy jeden prováděcí tok čeká na jiný tok. Co se ale stane, pokud prováděcí tok s vysokou prioritou čeká na tok s nízkou prioritou? Může vzniknou paradoxní situace, že prováděcí tok s vysokou prioritou stojí, neboť čeká na jiný prováděcí tok s nízkou prioritou, který se nemůže dostat ke slovu, neboť plánovač přiděluje procesor dalšímu toku se střední prioritou. Toto situaci řeší operační systém tak, že dočasně zvětší prioritu prováděcímu toku, na který čeká jiný tok s vysokou prioritou, aby byla splněna podmínka že toky s vysokou prioritou se provádí přednostně před toky s nízkou prioritou. Problém vyvstane ve chvíli, kdy se stejná situace opakuje rekurzívně - i prováděcí tok s právě zvýšenou prioritou může čekat na další tok s nízkou prioritou. Systémy Windows NT/2000 na takovou situaci pamatují a prohledávají tyto řetězce závislostí s předem neurčenou délkou. V důsledku toho sice systém ctí prioritu prováděcích toků, ale doba přepnutí kontextu z jednoho prováděcího toku na druhý je v principu nedeterministická.

Windows CE - předefinování požadavků na operační systém

V historii firmy Microsoft existuje několik snah proniknout na trh zabudovaných aplikací, například projekt Windows At Work, který zcela neuspěl především díky požití nespolehlivého 16 bitového kódu systémů MS-DOS a Windows v3.1 a naprosté závislosti na architektuře Intel x86. Po dalších neúspěšných pokusech vyvinout zcela nový objektový operační systém (projekt Pulsar) dostal podporu systém Windows CE (podle neoficiální interpretace písmena CE značí Consumer Electronics, česky spotřební elektronika), určený právě pro práci v zabudovaných aplikacích bez pevného disku a s omezenými zdroji.

Hlavní předností systému Windows CE (a také částečně jeho nedostatkem) je snaha o zachování kompatibility aplikačního programového rozhraní s ostatními systémy Windows. Ačkoliv je systém napsán zcela znovu (není v něm obsažen kód převzatý z jiných implementací Windows), Syntaxe a chování funkcí jeho programového rozhraní je až na pár výjimek shodná s jinými systémy. Tak je sice řada parametrů různých funkcí nevyužita a parametry jsou předávány zbytečně (Windows CE kupříkladu nepodporují zabezpečení, jak je známe z Windows NT/2000), ale na druhé straně programátoři API systémů Windows znají a tyto znalosti mohou zužitkovat při vývoji aplikací pro Windows CE, což se ukazuje jako velmi silná zbraň v boji za získání popularity. Celou architekturu ovlivnila sada základních požadavků:

  • Windows CE musí být schopny práce v zabudovaných aplikacích bez diskové paměti.

  • Systém musí být navržen modulárně, aby až OEM partneři nasazující jej ve svých řešeních mohli zvolit které komponenty chtějí a které ne a tím výrazně redukovat jeho paměťové nároky.

  • Systém by měl být schopen deterministické práce v aplikacích reálného času.

  • Systém musí podporovat robustní zpracování více procesů s oddělenými paměťovými prostory a současné zpracování více prováděcích toků.

  • Cílovou platformou nebudou jen procesory x86, ale i jiné 32-bitové architektury.

  • API systému by mělo zůstat kompatibilní s jinými implementacemi Windows.

Některé cíle se podařilo splnit lépe, jiné hůře.

  • Windows CE skutečně pracují na systémech disponujících řádově stovky KB paměti. Pokud je v systému začleněno grafické uživatelské rozhraní, spotřeba paměti vzroste na několik MB. Vzhledem k dnešnímu stavu vývoje pamětí a jejich ceně není racionální snažit se množství potřebné paměti dále snižovat.

  • Podpora procesorů je velmi široká. Mimo klasické řady Intel x86 podporují Windows CE i procesory ARM, MIPS, PowerPC, Hitachi SH, Toshiba apod. Obecně mohou Windows CE pracovat na jakémkoliv 32-bitovém procesoru s implementovanou správou paměti.

  • Podpora deterministického přepínání kontextu prováděcích toků je zavedena až od verze 3. Od této verze jádro operačního systému provádí inverzi priorit prováděcích toků jen v jediné úrovni a tím umožňuje stanovit maximální dobu potřebnou na přepnutí kontextu.

  • Od verze 3 je také k dispozici podstatně jemnější členění priorit prováděcích toků, k dispozici je 256 úrovní priorit, na rozdíl od 8 úrovní v předchozích verzích systému („velké” implementace Windows disponují 32 úrovněmi priorit).

  • I další vlastnosti podporující zpracování úloh v reálném časy byly ve verzi 3 vylepšeny. Kupříkladu systémové časovače pracují s rozlišením 1 ms oproti 25 ms u předchozích verzí. Byla přidána podpora pro vložené zpracování přerušení (objeví-li se přerušení s vysokou prioritou v době zpracovávání přerušení s nižší prioritou, obsluha přerušení s vysokou prioritou se předběhne a nemusí čekat až obsluha přerušení s nižší prioritou skončí).

  • Počet současně spuštěných procesů je omezen na 32. Počet prováděcích toků těchto procesů je ale omezen jen množstvím zdrojů počítače. Omezení na 32 procesů plyne ze snahy o maximální zefektivnění správy paměti jednotlivých procesů. Rovněž virtuální adresový prostor každého procesu je omezen na 32 MB.

  • Další omezení se týká DLL knihoven, které jsou mapovány na stejné paměťové lokace všech procesů. Adresový prostor pro DLL knihovny každého procesu je tak omezen již zavedenými DLL knihovnami všech ostatních běžících procesů.

  • Zásadním problémem se ukázal požadavek na kompatibilitu se systémy Windows NT/2000, které pracují na počítačích s neskonale větší pamětí a rychlejšími procesory a jejichž API je velice košaté. Návrháři se snažili vybrat vždy z několika způsobů, jimiž je možné danou funkčnost ve Windows NT/2000 naprogramovat, zachovat vždy alespoň jediný způsob, ale velmi často se nepodařilo ani to. Řada funkcí ve Windows CE prostě není a je nutné tento nedostatek složitě obcházet, pokud to je vůbec možné.

  • Dalším problémem je celkový výkon systému. Windows CE využívají k implementaci řady funkcí jádra systému (grafika, správa oken a událostí, souborové služby) servisních procesů. Ačkoliv z teoretického hlediska je taková architektura velice čistá, v praxi přináší značné problémy díky velké režii a samotné Windows NT od této architektury z výkonnostních důvodů ustoupily již ve verzi 4. Díky tomu běží Windows CE na stejném počítači výrazně pomaleji než třeba Windows 98.

  • Relativní mladost systému zapříčiňuje poměrně značné množství chyb. Vývojáři se musí připravit na problémy mající původ v systému samotném i ve vývojových nástrojích, které je nutno v aplikacích obcházet. V tomto ohledu ale není situace nijak výjimečná a lze předpokládat, že s vyspíváním Windows CE bude chyb ubývat.

Přes všechny nedostatky představují Windows CE univerzální platformu, která díky své dostupnosti, podobnosti s jinými systémy Windows, relativní bezproblémovosti implementace (ve srovnání s úsilím nutným k implementaci jiných platforem) a široké podpoře vývojových nástrojů získává na popularitě a stále častěji se stává volbou výrobců systémů pro průmyslovou automatizaci. Windows CE před jinými systémy pomáhá mimo popularity platformy Windows a síly firmy Microsoft také jejich robustní návrh a otevřenost k aplikacím třetích stran. Jiné systémy reálného času jsou často navrhovány spíše jako sada knihoven pro plánováni času a podporu periferií a aplikace bývá zaintegrována do celého obrazu systému ve fázi jeho překladu a chyby aplikace ohrožují celý systém. Kupříkladu podpora pro oddělené paměťové prostory jednotlivých procesů bývá často dodávána jako volitelná komponenta, pokud je vůbec k dispozici.

Control Web Runtime pro Windows CE

Přes dostupnost vývojových prostředků Microsoft Embedded Visual C++ a Visual Basic bývá největším problémem nasazení Windows CE tvorba programového vybavení. Řada výrobců začíná nabízet systém Windows CE pro zabudované aplikace na platformě PC. Oproti jiným verzím Windows to přináší řadu výhod, například schopnost práce bez pevného disku, možnost bezproblémového vypnutí bez nebezpečí poškození souborů na disku a ohrožení dalšího startu systému, rychlý start aplikace po zapnutí apod. Probléme ale je jak vytvořit aplikaci samotnou. Začít psát aplikaci přímo v jazyce C nebo C++, přitom studovat programové rozhraní systému a jeho zvláštnosti, ladit ji a testovat, to si mohou dovolit jen velké společnosti, které mají potřebné programátorské zázemí a které předpokládají nasazení aplikace ve velkých objemech schopných uhradit vysoké vývojové náklady. Pro jednotlivá navzájem se dosti lišící nasazení je použití základních vývojových nástrojů krajně nevhodné a neekonomické.

Řešením problému jak Windows CE v průmyslovém PC oživit je systém rychlého vývoje průmyslových vizualizačních a řídicích aplikací Control Web 2000. Control Web je široce rozšířen v prostředí systémů Windows NT/2000 v průmyslu i ve středních a vysokých školách. Řada techniků, aplikačních inženýrů i studentů jej zná a dokáže efektivně využívat jeho bohatých možností. Ačkoliv aplikace systému Control Web pracují ve velmi velkých systémech skládajících se z řady počítačů propojených lokálními i vzdálenými sítěmi a k dispozici je i verse spolupracující se systémy Windows 2000 Advanced Server zapojenými do clusteru, na druhé straně minimální požadavky na počítač schopný provozovat aplikaci odpovídají požadavkům pro běh alespoň systémů Windows 95/98 (pro spolehlivý dlouhodobý chod aplikací je vždy lépe použít Windows 2000). Verse Control Web Runtime pro Windows CE umožňuje nasadit aplikaci na všech počítačích na nichž pracuje systém Windows CE verze 3.0. Tedy nejen na počítačích s architekturou PC a FLASH pamětí namísto pevného disku, ale i na počítačích s procesory ARM či MIPS.

Zvláštnosti systému Windows CE se do jisté míry promítají i do návrhu Control Web Runtime pro Windows CE. Především Windows CE není možné koupit jako maloobchodní produkt, systém je vždy dodáván prostřednictvím OEM partnerů jako součást počítačů. Tím vzniká problém s velkou variantností konfigurace Windows CE, neboť OEM výrobce rozhoduje, které komponenty do systému zabuduje a které ne.

Další problém je s instalací produktu. Jen několik implementací Windows CE (například Pocket PC a H/PC) podporuje standardní způsob instalace přes stolní počítač a rozhraní ActiveSync, řada dalších implementací toto rozhraní nemá k dispozici. Na rozdíl od stolního počítače, kdy zákazník vloží CD-ROM do mechaniky a o další se postará systém, v případě Windows CE je to složitější. Distribuce Control Web Runtime pro Windows CE se snaží situaci maximálně ulehčit i zákazníkům bez hlubších znalostí operačních systémů Windows.

  • Především Control Web Runtime pro Windows CE se neinstaluje jako samostatný produkt, ale jako komponenta standardního vývojového prostředí Control Web 2000. Vývoj aplikace pro Windows CE probíhá vždy na stolním počítači. Návrhář pouze zvolí v dialogovém okně „Nastavení” že vyvíjí aplikaci pro Windows CE. Vývojové prostředí se přizpůsobí skrytím virtuálních přístrojů nepodporovaných ve Windows CE z palety přístrojů a doplněním několika dalších kontrol do ostatních virtuálních přístrojů (kupříkladu daný virtuální přístroj nemusí ve Windows CE podporovat práci ve všech módech).

  • Aplikaci lze ladit a testovat na stolním počítači, samozřejmě pokud je na tomto počítači k dispozici stejný hardware, jako bude připojen k počítači s Windows CE, s patřičnými ovladači. I pokud ne, lze aplikaci do značné míry otestovat a upravovat s použitím virtuálních zdrojů dat a na samotný běh pod Windows CE přenechat jen ladění vlastní komunikace.

  • Vlastní přenos aplikace na počítač s Windows CE probíhá s pomocí „Průvodce pro export aplikace do Windows CE”. Tento průvodce nabídne uživateli volbu Windows CE platformy, typu procesoru na němž Windows CE pracují, volbu spojení s Windows CE zařízením (automatické přes ActiveSync nebo manuální) a na základě zadaných parametrů vygeneruje instalační balík pro Control Web Runtime pro Windows CE spolu s přeloženou aplikací. Uživatel se tedy nemusí zaobírat detaily instalace systému Control Web a přenosem všech aplikačních souborů (přeložená aplikace, ikony, obrázky apod.) na platformu Windows CE. Vygenerovaný balík obsahuje vše potřebné.

Jak už bylo řečeno, Control Web Runtime pro Windows CE nepodporuje úplně všechny vlastnosti dostupné ve verzi pracující ve Windows NT/2000. V naprosté většině je to dáno přímo omezeními Windows CE. K typickým omezením patří absence permanentního přepisovatelného paměťového média. V zabudovaných aplikacích bývá často k dispozici jen paměť FLASH, na níž je emulován IDE disk. Ovšem takový disk je omezen množstvím zápisových cyklů, které bývá v řádech tisíců až desítek tisíců. Velmi rychlý zápis může takový disk zničit během relativně krátké doby. Z tohoto důvodu jsou v Control Web Runtime pro Windows CE omezeny zápisy na disk, např. nejsou tvořeny .log soubory apod. Rovněž nedostupné ve Windows CE jsou virtuální přístroje, které závisí na programových komponentách Windows, které ve Windows CE nemají ekvivalent. Například knihovny pro DDE a NetDDE, ODBC ovladače nebo plnohodnotné OLE.

Průvodce pro export aplikace do prostředí operačního systému Windows CE

Další omezení zůstávají na zvážení aplikačního inženýra, protože je není možno obecně ošetřit na úrovni systému Control Web. I když je typické nasazovat Windows CE na počítačích s malými zobrazovači s rozlišením 320x240 nebo 640x480 bodů, existují i zabudované PC s obrazovkou s rozlišením 800x600 bodů s plnobarevnou grafikou. Několik obrázků s takovým rozlišením dokáže snadno zaplnit mnoho MB paměti a protože Windows CE nemá kde vytvořit odkládací soubor, který by dokázal překlenout momentální nedostatek fyzické paměti, aplikace je ukončena.

Control Web 2000 běžící na Advantech TPC-650 s Windows CE jste mohli poprvé spatřit na MSV 2001 v Brně

Přesto naprostá většina funkčnosti systému Control Web zůstává zachována i ve verzi pro Windows CE. K dispozici je kompletní sada přístrojů pro vizualizaci, grafickou animaci, zabudovaný dynamický HTTP server apod. Zachována je i plná programovatelnost celého prostředí. Rovněž verze pro Windows CE podporuje síťovou konektivitu s jinými systémy Control Web s výměnou dat, vzdálené aktivace přístrojů apod. V prostředí Windows CE je také možno použít celou řadu ovladačů pro průmyslové automaty, měřicí a akční jednotky apod.

Windows CE na běžném kancelářském PC pro účely testování

Control Web Runtime pro Windows CE prakticky eliminuje nesnáze s tvorbou programového vybavení pro zabudované průmyslové počítače a tím umožňuje jejich široké nasazení. Jediná architektura aplikací a vzájemná konektivita využívá investice firem do vývojových prostředí i znalostí pracovníků a umožňuje jim nasazovat aplikace od clusterů s více počítači až po malá zabudovaná zařízení.

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