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 2000Články

Software pro průmyslovou automatizaci
Jak rozlišujeme a jak posuzujeme programové systémy pro průmyslovou automatizaci? Záleží na kvalitě návrhu, schopnostech a vnitřní architektuře systémů?

Ú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ží.

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