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