| 
  
  
    
      
      
      
         Úvodní věty znějí trochu podezřele. Cožpak v informačních
        technologiích existuje obor, kde kvalita a schopnosti nejsou důležité?
        Problém je však asi už v tom, že např. programování PLC či sestavení
        vizualizačního “programu” má většinou bohužel hodně daleko k současným
        technologiím v informatice. V průmyslové automatizaci má stále
        největší důležitost spolehlivost a především jednoduchost použití. To
        je také důvodem, proč je do současné doby velmi široce používáno
        programové vybavení s architekturou starou již několik desetiletí. 
        A při velmi rychlém vývoji v oblasti technologie programování je
        doba před desítkami let již skutečně pravěkem. Vypadá to, že i v
        současnosti, v době operačních systémů s procesy a prováděcími toky, v
        době objektově orientovaných a komponentových systémů a v době
        rozsáhlé podpory veškerého propojení a komunikací v počítačových
        sítích budeme ještě dlouho psát software, který není ničím více než
        periodicky spouštěnou sekvencí interpretovaných instrukcí v PLC,
        komunikovat po pomalých sériových linkách prostřednictvím omezených a
        vzájemně nekompatibilních firemních protokolů a pro PC budeme ještě
        dlouho konfigurovat vizualizační systémy, které neumějí nic jiného než
        svým neovlivnitelným rytmem cyklicky obíhat databázi technologických
        veličin a tato data nějakou formou zobrazovat. 
        I přes značnou setrvačnost oboru průmyslové automatizace se však i
        zde situace viditelně mění. Ve věku globálních počítačových sítí a při
        stálém růstu počtu systémů běžících v reálném čase se důležitost
        kompatibility, otevřenosti a schopností používaných programových
        systémů bude určitě zvyšovat. 
        V dalším textu se budeme věnovat pouze programovému vybavení pro
        vizualizaci, měření, regulaci a přímému řízení prostřednictvím PC.
        Nebudeme srovnávat konkrétní produkty a tedy nebudeme brát v potaz ani
        cenu jednotlivých systémů. Pro lepší vysvětlení některých technologií
        a koncepcí uvedeme jejich konkrétní implementaci v systémech
         a . Budeme se zkrátka zabývat pouze architekturou
        systémů a technickými aspekty jednotlivých řešení. 
        Základní principy činnosti – volně programovatelné systémy
          nebo napevno naprogramované cyklické systémy?
          
          
            Naprostá většina programových systémů pro průmyslovou
            automatizaci dosud pracuje na velmi jednoduchém a již letitém
            principu. Ten spočívá v tom, že v podstatě napevno vytvořený
            program cyklicky ve své vnitřní smyčce obhospodařuje sadu záznamů
            v operační paměti počítače, ve kterých jsou uschovávána veškerá
            technologická data. Počet takovýchto záznamů je definován autorem
            “aplikace”, strukturu záznamů a mechanismus čtení a zápisů dat do
            vstupních a výstupních zařízení však již příliš ovlivnit nemůže.
            Tento mechanismus velmi dobře funguje při poměrně malých počtech
            veličin, kdy je i přenosová kapacita při spoustě zbytečných
            komunikací ještě dostatečná. Při větších objemech dat je však
            tento prostý princip naprosto v koncích. Je jasné, že některé
            elementy jsou obsluhovány zbytečně často a na mnoho jiných se zase
            nedostává. Nyní jsme občas svědky snahy o modernizaci cyklických
            systémů přenesením sady záznamů z lokální paměti počítače na
            dedikovaný SQL server. Na principu fungování se tím ale nic změnit
            nemůže. Každá snaha o optimalizaci tohoto mechanismu je jen
            vytloukání klínu klínem. Je skutečně s podivem, kolik rozšířených
            a drahých systémů pracuje takto primitivním způsobem. 
            Naproti tomu základní vlastností volně programovatelných
            systémů je skutečnost, že autor programu má veškeré struktury dat
            a veškeré algoritmy a funkční závislosti zcela pod kontrolou. Díky
            tomu je možné vytvořit i velmi rozsáhlé aplikace s optimálním
            využitím výkonu počítače a kapacity přenosových kanálů. 
            Systémy s cyklickým obíháním poznáme většinou podle toho, že v
            místě definice datového elementu (ať je již nazýván kanálem,
            tagem, proměnnou či jakkoliv jinak 1) ) je nutné definovat veškeré
            funkční závislosti, jako jsou meze, limity, alarmy a archivace
            tohoto elementu. Jinak stanovit byť omezené funkční závislosti v
            těchto případech totiž nejde. 
          
        
        Práce systému v reálném čase nebo neovlivnitelný vnitřní
          cyklus?
          
          
            Má-li systém schopnost pracovat v reálném čase, neznamená to,
            že stihne úplně všechno a není možné jej přetížit. I při
            programování PLC je časté, že program nestihne doběhnout před
            časem pro další spuštění. Také zde nám nezbude nic jiného než
            sekvenci zkrátit nebo prodloužit periodu spouštění (nebo použít
            rychlejší PLC). Autor aplikace však musí mít časování systému
            zcela pod kontrolou a musí zde být diagnostika, která umožní vše
            monitorovat a aplikaci vyladit tak, aby se nedostávala do časového
            skluzu. Cyklické systémy s neovlivnitelným vnitřním cyklem často
            běží zcela časově dezorientovaně a nepředvídatelně. Výrobci těchto
            systémů uvádějí, že data jsou měřena “maximální možnou rychlostí”.
            Uživateli ale zůstane skryto, zajistí-li tato “maximální” rychlost
            obnovu proměnných čtených např. prostřednictvím DDE jednou za
            sekundu, za deset sekund či jednou za minutu. Proto s takovýmto
            programovým vybavením není možné řešit ani základní regulační a
            automatizační úlohy. Zjednodušeně můžeme říci, že s cyklickými
            systémy nemůžeme vytvořit žádný program, můžeme jen do jisté míry
            parametrizovat pevně danou funkčnost systému. 
            
              
            
            Na tomto místě je nutno uvést, že u cyklických systémů stačí
            definovat jedinou proměnnou a systém již dělá to, co je v něm jeho
            autory napevno naprogramováno, tj. tuto jedinou proměnou již může
            cyklicky číst nebo zapisovat do nějakého vstupně-výstupního
            zařízení. U volně programovatelných systémů je to o trochu
            složitější. Např. definujeme-li v prostředí systému  jen
            nějakou vstupně-výstupní proměnnou, systém ještě nedělá vůbec nic,
            neboť neví, kdy a proč by ji měl číst nebo zapisovat. Jakmile je
            však tato proměnná použita při činnosti jakékoliv programové
            komponenty, je již zřejmé, kdy je nutné tuto proměnnou číst a
            zapisovat do vstupně-výstupního zařízení. 
            Nelze-li v cyklických systémech vytvořit žádný program, pak
            nelze vytvořit ani špatný program. Pouhou parametrizací většinou
            není možné výrazně poškodit činnost systému – program si to stále
            nějak cyklicky obíhá po svém, v tom jej nemůžeme příliš ovlivnit.
            Vysoká odolnost vůči nekvalitní práci autora parametrizace je zde
            vykoupena velmi omezenými vyjadřovacími prostředky a funkčností. U
            volně programovatelného systému je vše v rukou autora aplikace. I
            když je tvorba programu díky vizuálnímu programování maximálně
            usnadněna, stále platí, že program nedělá to, co autor chce, ale
            to, co naprogramoval. Velkou předností pak je fakt, že
            naprogramovat lze cokoliv. Se systémem  můžeme v rámci
            jediného programového systému realizovat soft-PLC řídící v reálném
            čase stroje a výrobní linky, měřicí a regulační systémy i rozsáhlé
            síťové vizualizační a operátorské systémy. 
            V prostředí systémů  a  lze sestavit a velmi
            efektivně provozovat nesrovnatelně větší a rozsáhlejší aplikace
            než v jakémkoliv běžném cyklickém vnitřně a neovlivnitelně
            časovaném systému. Odolnost vůči nekvalitní práci autora je zde na
            druhé straně podstatně nižší. Tvrdí-li tedy někdo, že  a
             jsou vhodné jen pro menší aplikace, že mu program funguje
            pomalu a že již narazil na omezení systému, lze s vysokou mírou
            pravděpodobnosti hraničící s jistotou tvrdit, že chyba je výhradně
            na straně nevhodně sestavené aplikace. Z principu systému totiž
            žádná omezení ani plynout nemohou, neboť systém sám o sobě nedělá
            téměř nic – veškerá činnost je vždy dána jen a pouze konstrukcí
            aplikace. 
            Je pravda, že ještě stále existuje celá řada jednoduchých
            aplikací, kde není vyžadována práce v reálném čase. Je to převážně
            v těch případech, kdy je veškerá funkčnost naprogramována např. v
            PLC a počítač slouží pouze jako nástroj vizualizace a rozhraní
            člověk-stroj. I u jednoduchých aplikací se však při komunikaci s
            mnoha PLC a při přenosech velkého objemu dat můžeme s cyklickými
            systémy dostat do slepé uličky. Schopnost pracovat v reálném čase
            je v současné době elementárním a zcela zásadním požadavkem na
            moderní programové systémy pro průmyslovou automatizaci. 
            Otevřené komponentové systémy nebo uzavřené kompaktní
              balíky?
              
              
                Otevřený komponentový systém můžeme definovat tak, že
                programové rozhraní komponent je veřejné a že systém může
                zcela shodně pracovat s libovolnými komponentami, ať už je
                vytvoří a do systému doplní kdokoliv. Toto je podstatné pro
                další rozvoj systému a pro ochranu investic autorů aplikací.
                Systém  pracuje s libovolnou sadou programových
                komponent uložených na lokálním disku nebo v počítačové síti.
                Komponentový systém musí být schopen rozpoznat své vlastní
                komponenty. Musí být schopen detekovat rozhraní komponent a
                poté s komponentami jednotným způsobem pracovat. Právě
                jednotnost přístupu je důležitá, neboť výrazně přispívá k
                přehlednosti a organizaci systému. Také úpravy a rozšiřování
                jsou u komponentových systémů snadné, kdežto u uzavřených
                balíků jsou pro uživatele zcela nemožné a i pro výrobce
                systémů jsou vzhledem k mnoha tajemným vazbám dosti obtížné. 
                To, že se systém skládá z řady dynamicky linkovaných
                knihoven, ještě neznamená, že je to otevřený komponentový
                systém. Často lze programový systém v podobě provázaného a
                uzavřeného kompaktního balíku již na první pohled poznat podle
                zcela nejednotného přístupu k datům tzv. “objektů”, prostě
                každé dialogové okno vypadá zcela jinak. Parametrizovatelné
                systémy s cyklickým obíháním jsou často také uzavřenými
                kompaktními balíky. 
                V souvislosti s komponentami je vhodné zmínit se také o
                problematice skriptovacích jazyků. V prostředí systému
                 je dynamicky detekováno rozhraní objektů a veškeré
                metody objektů je možné v aplikacích neomezeně používat.
                Libovolně lze rovněž pracovat s parametry a metodami veškerých
                komponent ActiveX zařazených do aplikace. 
                Lze říci, že veškerý moderní software je komponentový, i
                operační systémy Windows jsou již složeny z programových
                komponent. 
              
            
            Technologie komunikace a síťového propojení – otevřené
              standardy nebo vlastnické utajené protokoly?
              
              
                Kvalita řešení komunikací se zásadním způsobem podílí na
                kvalitě celkového řešení systémů pro průmyslovou automatizaci.
                Každá aplikace totiž musí nějak spolupracovat s okolím, ať je
                tím okolím zásuvná karta, PLC nebo ostatní počítače v síti. 
                V oblasti komunikace v počítačových sítích je situace
                poměrně jednoduchá a přehledná. Chtějí-li systémy s cyklickým
                obíháním záznamů nějak sdílet data v počítačové síti, nezbývá
                jim nic jiného než buď sdílet společná data umístěná na
                serveru nebo pravidelně po síti replikovat své sady záznamů.
                To pochopitelně přináší řadu fakticky neřešitelných problémů
                se synchronizací a neefektivním přenosem zbytečně velkých
                objemů dat. Tyto potíže ukazují na nevhodnost architektury
                cyklických programů pro řešení síťově distribuovaných systémů. 
                Efektivně pracující distribuované systémy musí být schopny
                v reálném čase libovolně číst a zapisovat jednotlivé proměnné,
                ať je již nacházejí na kterémkoliv počítači kdekoliv v síti. V
                systému  je v reálném čase zajištěna viditelnost všech
                proměnných kdekoliv v prostředí sítí komunikujících protokolem
                TCP/IP. Jako přenosového prostředí je tedy možné využívat
                nejen lokální sítě, ale i veřejný celosvětový internet. A jak
                je to s bezpečností tohoto řešení? Komunikace může být
                chráněna silným šifrováním, lze tedy bezpečně propojit i
                kritické systémy přes veřejné a tudíž nebezpečné prostředí. 
                O něco složitější je problém komunikace se
                vstupně-výstupními zařízeními. Ač je to k nevíře, ještě i v
                současné době existuje řada firem, které utajují komunikační
                protokoly pro připojení svých zařízení. Těžko říci, proč to
                dělají. Snad si představují, že takto vnutí uživatelům více
                (často velmi drahého a nepříliš funkčního) vlastního
                programového vybavení. Vývoj se však stále více přiklání na
                stranu otevřených řešení a obecně přijatých standardů.
                Dodává-li výrobce zařízení současně i nějakou obecně přijatou
                programovou komponentu pro spojení s tímto zařízením, může tím
                prakticky eliminovat nevýhody specifické komunikace
                prostřednictvím proprietálních protokolů. Takovými
                komponentami mohou být např. DDE Server a OPC Server v
                prostředí Win32. 
                Takovéto komponenty nejrůznějších výrobců však s sebou
                nesou i jisté riziko. Kvalita komponenty a její náročnost na
                systémové zdroje významně ovlivňuje i kvalitu celkového
                řešení. Například existuje řada OPC serverů, které samy uvnitř
                pracují na principu cyklického obíhání datových elementů!
                Pracuje-li i sám vizualizační systém na stejném principu, pak
                může být výsledek dosti tragický. 
                Vysoké nároky na přenosovou kapacitu a nutnost rychlé
                obsluhy vstupně-výstupních zařízení u řady programů
                pracujících v reálném čase mohou často splnit pouze nativní
                ovladače optimalizované pro daný systém. Je-li jedinou
                možností spojení vizualizačního systému s okolím např. pouze
                komunikace DDE, je to každopádně na pováženou. 
              
            
          
        
        Internetové a intranetové technologie
          
          
            Internetové a intranetové technologie – co je tím vlastně
            míněno? Podporovat internetové technologie je velmi v módě. Je
            jistě výborným řešením moci se ze svého počítače v klidu své
            kanceláře podívat, jak pracuje každá zakázka, diagnostikovat
            dodaný stroj a případně udělat servisní zásah. V současnosti
            všichni tvrdí, že internetové řešení plně podporují, uvádějí však
            mnoho neúplných a často matoucích informací. Proto je dobré
            zjistit si několik faktů: 
            
              Obsahuje daný systém opravdu internetový server nebo
              pouze určitou možnost spojení se serverem jiného výrobce
              (nejčastěji Microsoft IIS)? A je server již v ceně nebo je nutné
              jej koupit zvlášť?   
              Jaký operační systém server potřebuje, může běžet např. i
              ve Windows 95?   
              Je možno prostřednictvím internetového prohlížeče systém
              i ovládat nebo jen prohlížet?   
              Je k dispozici i dynamicky generovaný čistý kód HTML,
              který bude plně funkční v naprosto všech prohlížečích?   
              Nespočívá celá podpora internetu jen v existenci
              komponenty ActiveX komunikující se systémem prostřednictvím
              standardu DCOM? V tom případě by prohlížeč sloužil pouze jako
              jakýkoliv jiný kontejner a vše by fungovalo jen v prostředí
              Windows.   
             
            Nedílnou součástí prostředí  je vždy server HTTP (a to i
            ve volně šířitelné verzi), který je schopen dynamicky generovat
            dokumenty HTML s libovolnými vazbami na vizualizovaný a řízený
            technologický proces. Na jeden takovýto server v prostředí
             se můžete podívat např. na adrese http://cw.mii.cz 
          
        
        Co říci na závěr?
          
          
            Programové systémy pro průmyslovou automatizaci jsou většinou
            prezentovány prostřednictvím velmi stručného popisu realizovaných
            nasazení doprovázeného ukázkami obrazovek. Takovéto informace jsou
            však pro posouzení vlastností systému naprosto nedostatečné,
            jejich význam je pouze reklamní. O architekturách systémů a
            technologických principech, na kterých tyto systémy fungují, se
            však většinou nelze dočíst nikde. A obrazovky s technologickými
            schématy a řadou grafických indikačních a ovládacích prvků je
            možné vytvořit v podstatě ve všech existujících systémech k
            nerozeznání podobně. A abych odpověděl na otázku z úvodu článku –
            myslím, že na kvalitě návrhu, schopnostech a vnitřní architektuře
            systémů pro průmyslovou automatizaci přece jen do jisté míry
            záleží. 
          
        
      
    
  
 |