Díl 1

# Vítejte ve světě rychlého vývoje aplikací

Neustálá změna je zřejmě nedílnou součástí naší doby. Stále jsme ohromováni novými možnostmi technologií, které se již definitivně zabydlely v našich životech a ovlivňují způsoby jakými pracujeme, jakými spolu komunikujeme i jakými odpočíváme. Udržet se na špici vývoje ale naznamená jen nechat se unášet technologickou vlnou, ale taktéž překvapovat ostatní efektivitou, kvalitou, funkčností a rychlostí naší práce. Metody a postupy práce včera běžné dnes již nestačí požadavkům našich zákazníků.

Počítače již dávno přestaly být stroji na pouhé počítání, byť neuvěřitelně rychlé a přesné. Z počítačů se staly univerzální stroje na zpracování, předávání a uchovávání informací. Přitom jejich univerzálnost je skutečně ohromující -- snad neexistuje jiný lidský výrobek, který by se uplatnil v tak velkém množství činností. Význam informací pro chod jednotlivých podniků i celé společnosti stále roste a tomu odpovídá i pozornost věnovaná vývoji strojů na jejich zpracování. Do dlaně se nám vejdou počítače výkonem a kapacitou mnohonásobně předstihující sálové obry jen o generaci starší a přitom svým přátelským uživatelským rozhraním umožňují, aby s nimi pracovali i lidé bez speciálních znalostí. Počítače již nepracují samostatně, ale komunikují v sítích, sdílejí data a posílají zprávy. Podnikové informační systémy integrují životně důležité informace a na požádání je zpřístupňují.

Vysoké tempo inovací a nutnost spolupráce s jinými systémy vytlačuje vlastnická řešení jednotlivých firem a zvýhodňuje standardní řešení. Praktické potřeby vytváření systémů, které spolu dokáží bez problémů spolupracovat a sdílet data a jejichž komponenty jsou hromadně a levně vyráběny, vedly ke vzniku řady standardů. I když tyto standardy nejsou vždy technicky optimální, jejich hodnota spočívající právě v univerzálnosti a všeobecném přijetí převyšuje některé nedostatky způsobené evolučním vývojem. Tyto standardy zahrnují nejen technické prostředky, jako je architektura procesorů IA32 (x86) nebo sběrnic ISA, PCI či IDE a SCSI, ale i programové rozhraní a protokoly, například síťový standard TCP/IP, standardní protokoly HTTP a FTP nebo i standardní formáty dokumentů HTML a XML.

Klíčovou úlohu v řídicích systémech přebírá programové vybavení. Technické vybavení je ve většině případů jednotné a záměnné. Až software je tou vrstvou celého systému, která jej činí unikátním, specifickým podle potřeb zákazníků. Pomocí software zákazníci se svými aplikacemi komunikují. Software implementuje řídicí algoritmy a oživuje celý systém, dává mu vlastní inteligenci. A je to právě software, který je nutno vždy znovu vytvořit nebo alespoň upravit. To jsou důvody, proč se na co možná nevětší usnadnění tvorby software, na dosažení nejvyšší efektivity vývoje a přitom robustnosti a spolehlivosti výsledných aplikací upíná snaha vývojového týmu systému Control Web 2000.

Control Web 2000 je univerzální nástroj pro vývoj a nasazování vizualizačních a řídicích aplikací, aplikací sběru, ukládání a vyhodnocování dat, aplikací rozhraní člověk-stroj. Unikátní objektově-orientovaná komponentová architektura zajišťuje aplikacím systému Control Web 2000 nejširší rozsah nasazení od prostých časově nenáročných vizualizací až po řídicí aplikace reálného času.

Hlavním cílem návrhu systému Control Web 2000 je učinit realizaci běžných úkolů snadnou a neobvyklých, komplikovaných úkolů možnou. Samozřejmě při respektování všech existujících standardů pro běh programů a jejich uživatelské rozhraní, výměnu dat a přístup k databázím, komunikaci po počítačových sítích a spolupráci s hardware pro sběr dat a řízení. Control Web 2000 pracuje v prostředí operačních systémů implementujících aplikační programové rozhraní Win32 a podporuje řadu průmyslových standardů a de-facto standardů.

Control Web 2000 koncepčně vychází z osvědčené architektury svých předchůdců Control Panel a Control Web. Nasazení těchto systémů od jaderných elektráren a celopodnikových vizualizačních systémů až po přímé řízení strojů a jednoduché vizualizace dokazuje velmi široké možnosti této architektury. Tato architektura činí systém Control Web 2000 jedinečným, neboť:

- Control Web 2000 pracuje jako spousta jiných SCADA/HMI systémů používaných v průmyslu. K dispozici jsou všechny komponenty nutné k tvorbě vizualizačních aplikací - zobrazovací a ovládací prvky, alarmy a archivy, historické trendy apod. Navíc ale poskytuje skutečnou programovatelnost a otevřenou, komponentovou architekturu. Množina virtuálních přístrojů není pevně dána a zabudována v systému. Každý přístroj je dynamicky linkovaná knihovna detekovaná při startu systému. Není problém množinu virtuálních přístrojů libovolně rozšiřovat.
- Control Web 2000 umožňuje práci v reálném čase. Nespoléhá se na tzv. databázi reálného času, která je doplňována "maximální možnou rychlostí" (což v praxi může znamenat i intervaly několika desítek sekund mezi komunikacemi s automaty připojenými přes DDE). Každý vstupně/výstupní kanál je čten přesně v době, kdy jej nějaký virtuální přístroj (nebo skupina virtuálních přístrojů) požaduje. Real-time časování je přesně monitorováno a řízeno.
- Control Web 2000 umožňuje sekvenční řízení procesů. Virtuální přístroje nemusí být aktivovány "když systém usoudí", ale v přesně definovaném čase a v přesně definované sekvenci.
- Jednotlivé komponenty systému Control Web 2000 jsou volně programovatelné. Pokud potřeby uživatelů sahají za možnosti řady panelů s vizualizačními a ovládacími prvky, každá komponenta má k dispozici mocné programátorské nástroje, jako jsou lokální proměnné a libovolně definovatelné procedury reagující na události.
- Control Web 2000 umožňuje tvorbu skutečně distribuovaných řešení. Nemáme na mysli pouhou replikaci množiny tagů přes NetDDE v NetBIOS sítích, ale skutečné zpřístupnění libovolného datového elementu všem spojeným aplikacím po libovolné TCP/IP síti včetně Internetu. Virtuální přístroje mohou být aktivovány po síti a i metody dynamického rozhraní virtuálních přístrojů mohou být volány po síti. Síťová komunikace může být samozřejmě precizně časována a řízena k dosažení optimálního výkonu.
- Control Web 2000 umožňuje vizualizaci technologií prostřednictvím internetových standardů HTTP a HTML pomocí libovolného WWW klienta, ať již pracuje v prostředí MS Windows, Apple Macintosh nebo UNIX či Network Thin Client. Přitom se nejedná o pouhý plug-in do nějakého existujícího HTTP serveru, např. Microsoft IIS běžícího po Windows NT Serverem. Control Web 2000 obsahuje plnohodnotný HTTP server dynamicky tvořící stránky podle stavu technologie pracující i na obyčejných Windows 95. Navíc dokáže prostřednictvím HTTP a HTML technologii i řídit.
- Kontejner pro komponenty ActiveX představuje most mezi systémem Control Web 2000 a vlastnostmi a metodami (OLE Automation) ActiveX komponent. To znamená, že do aplikace lze zabudovat ActiveX komponenty a programově je ovládat - nastavovat jim vlastnosti a volat metody z procedur jakýchkoliv přístrojů.
- Control Web 2000 naprosto nezávisí na použitém hardware. Nativní ovladače dokáží pracovat mnohonásobně efektivněji než například DDE ovladače. DDE je samozřejmě plně podporováno spolu s OPC (OLE for Process Control) a řadou dalších standardů pro průmyslové automaty, samostatné moduly a měřicí karty. Rozhraní ovladačů je plně dokumentováno a otevřeno, takže každý si může napsat ovladač podle svých potřeb.
- Vzestupná kompatibilita aplikací mezi systémy Control Panel, Control Web a Control Web 2000 rozšiřuje jedinou architekturu na nejširší škálu hardware - od bezdiskových PC-kontrolérů s 2 až 4 MB paměti po multiprocesorové Windows NT servery.
- Snadnost používání může redukovat programování na několik pohybů myší. Průvodci budují kostru aplikace a navigují uživatele přes počáteční stádia návrhu aplikace. Integrované vývojové prostředí umožňuje kdykoliv přecházet mezi textovým módem a grafickým módem návrhu. Aplikace je vždy uchovávána v podobě textového souboru, nikoliv v podobě nečitelných binárních dat.
- Control Web 2000 podporuje dva zásadně odlišné módy činnosti. Real-time mód je identický se současně podporovanou architekturou. Nový vizualizační mód vyžaduje výrazně menší snahu (námahu, znalosti) od tvůrce aplikace. Přístroje nejsou časovány (uživatel nemusí ale ani nemůže rozhodovat o časování) a jsou aktivovány po změně dat. Menší úsilí nutné k vytvoření aplikace je vykoupeno ztrátou real-time vlastností a možností programovat řídicí algoritmy. Bez možnosti napsat jakýkoliv program není ani možno napsat špatný program.
- Neobyčejně rozsáhlá funkčnost je soustředěna do jediného nástroje - od vizualizace po digitální zpracování signálů, od řízení procesů po dálkovou diagnostiku strojů po Internetu.

## O tomto manuálu

Problematika tvorby aplikací v systému Control Web 2000 je poměrně rozsáhlá a nelze dost dobře systematicky popsat postupně všechny vlastnosti vývojového prostředí, metody tvorby a architekturu aplikací spolu se všemi možnostmi nastavení a podobně. Jak rozhodnout, je-li lépe nejprve popsat příznaky ovlivňující start aplikace nebo část vývojového prostředí, kde je možno tyto příznaky nastavit? Proto je manuál rozčleněn do relativně samostatných kapitol, soustředěných na specifický problém a obsahujících vše o daném problému - od principu funkce, popisu odpovídající části vývojového prostředí, užitečné tipy a rady až po případný příklad aplikace.

Abychom vám umožnili co nejrychlejší seznámení se systémem Control Web 2000 a bezproblémovou tvorbu prvních aplikací, rozlišili jsme jednotlivé kapitoly také hloubkou popisu problému a detailností výkladu.

- Kapitoly obsahující pokud možno jen nutné informace a vysvětlující základní principy a návody jsou soustředěny do prvního dílu "Vítejte ve světě rychlého vývoje aplikací". Po přečtení tohoto dílu by pro vás neměl být problém využívat základních vlastností systému správným způsobem a tvořit kvalitní měřicí, řídicí a vizualizační aplikace. Přesto jsou možnosti systému Control Web natolik rozsáhlé, že popis řady vlastností vyžadujících hlubší znalosti, jako např. programování nebo tvorba distribuovaných aplikací, se do tohoto dílu již nevešel a najdete jej ve druhém dílu.
- Druhý díl "Aplikace v prostředí Control Web" obsahuje kapitoly s úplným popisem dané problematiky. Zde se dozvíte o zvoleném tématu vše do nejmenších podrobností. Například chcete-li napojit vaši aplikaci na Internet, kapitola Control Web a Internet obsahuje vše, co je nutno vědět.
- Třetí díl "Reference" obsahuje referenční popisy integrovaného vývojového prostředí, virtuálních přístrojů, rozhraní ovladačů apod.
- Ve čtvrtém díle "Přílohy" naleznete popisy dalších témat ne přímo souvisejících se systémem Control Web 2000, ale jejichž znalost je v určitých situacích potřebná a jistě oceníte, že je v tomto manuálu naleznete.

## Typografické konvence

Text celé knihy obsahuje mnoho ukázek, popisů a odkazů na nejrůznější části systému Control Web. Pro lepší orientaci a jednoznačný význam psaného textu jsou proto zavedena následující typografická pravidla:

- <Ctrl>+<A> — stisk zapsaných kláves (v tomto případě se jedná o současný stisk kláves <Ctrl> a <A>
- `timer = sequencer100ms, 5;` — ukázka zdrojového textu aplikace (procedury nebo přístroje)
- "Soubor/Tisk..."
— odkaz na menu — jednotlivá slova jsou oddělena znakem / tak, jak se postupně otevírají jednotlivá podmenu
- "Datové inspektory" — odkaz na text na obrazovce — titulky oken, názvy tlačítek nebo záložek
- OnActivate — název objektu, který se může vyskytovat ve zdrojovém textu aplikace — konstanty, proměnné, kanály, jména přístrojů, jména procedur a jejich parametrů
- 'aplikace.cw' — název souboru nebo adresáře
- chart — název třídy přístroje
- důležité — jakékoli zvýraznění. Zvýrazněn může být jakýkoli text včetně textů odpovídajících některé z popsaných konvencí. Často se lze setkat například se zápisem local (zdůrazněné jméno objektu aplikace) nebo se zápisem 'Filename.cw' (zdůrazněné jméno souboru).