# OPC ovladač

OPC -- OLE for Process Control definuje protokol zaměřený na předávání technologických dat mezi vstupně/výstupním zařízením a aplikací. K přenosu dat využívá OLE/COM rozhraní, které je součástí Microsoft Windows. Data se přenášejí prostřednictvím OPC serveru komunikujícího s v/v zařízením do OPC klienta, který data zprostředkovává aplikaci. Nikde není stanoveno, jakým způsobem bude klient komunikovat s aplikací. Rovněž není nikde stanoveno, jakým způsobem bude server komunikovat s v/v zařízením. Avšak způsob komunikace server - client je pevně stanoven OPC protokolem. Proto existuje-li pro danou aplikaci OPC klient, je možno v ní zpracovávat data z libovolného v/v zařízení pro které existuje OPC server (OPC servery dnes existují pro drtivou většinu všech v/v zařízení). Jméno souboru ovladače je CWOPC.DLL

## Struktura OPC

V OPC komunikaci jsou data předávána pomocí položek, což jsou v podstatě proměnné u kterých jsou navíc poskytovány dodatečné informace o času a kvalitě. Položky jsou sdružovány do skupin. Každá skupina má tři základní parametry.

- update rate: Parametr určující frekvenci obnovování všech položek v dané skupině.
- percent daedband: Tento parametr je aplikován pouze na položky, které obsahují dwEUType of anolog informaci (určuje server). Server potom předá klientovi pouze tu informaci, která bude splňovat následující podmínku:

(absolute value of (last cached value - current value) > pPercentDeadband * (EU High - EU Low) )

- time bias: Data mohou být zpracovávána zařízením, které pracuje s jiným časem a tato hodnota slouží k tomu, aby časová informace, kterou od serveru obdrží klient byla správně prezentována.

Ke každé položce jsou kromě její hodnoty poskytovány dodatečné informace:

- Kvalita: Může být DOBRÁ, ŠPATNÁ nebo NEURČITÁ. Informaci o kvalitě získává klient od serveru. Kvalita je špatná, když se nějakým způsobem serveru nedaří komunikovat s v/v zařízením. Neurčitá je, když o ní klient nemá informaci (většinou je to tím, že na danou položku nebyl žádný požadavek na čtení nebo zápis.) Informace o kvalitě je možno sledovat v okně ovladače. Dále je možno kvalitu získat jako atribut kanálu přímo v aplikaci. Není-li kanál v ovladači implementován, jádro vrací při jeho čtení kvalitu qosNormal. Je-li kanál výstupní a je aplikací čten, je vrácena kvalita qosNormal. Systém Control Web má pro kvalitu předdefinovány vlastní hodnoty (kapitola Datové elementy a výrazy - Atributy). Ovladač transformuje hodnoty pro kvalitu takto:

           kvalita špatná      ->    qosLowest (0)
           kvalita neurčitá    ->    qosLow (250)
           kvalita dobrá       ->    qosNormal (500)

- Čas: Je to čas poslední změny položky. Časový údaj je složený z roku, měsíce, dne, hodin, minut, sekund a milisekund.

Podrobnější informace o OPC jsou v kapitole Co to je OPC.

## Okno ovladače

Jak už bylo řečeno dříve, OPC protokol poskytuje ke každé položce informace o kvalitě a čase, kdy byla hodnota položky získána. Oba dva údaje jsou spolu s hodnotou prezentovány v okně ovladače.

Položky jsou v okně ovladače barevně rozlišeny. Šedou barvou jsou zobrazeny položky s kvalitou neurčitou, červenou barvou položky s kvalitou špatnou. Pokud je položka zobrazena zelenou barvou, znamená to, že kanál spojený s položkou byl v ovladači nastaven jako vstupní a aplikace se do něj pokoušela zapisovat.

## Konfigurace ovladače

Do konfiguračního módu se ovladač dostane pomocí nástroje na spouštění ovladačů. V menu jsou k dispozici následující položky.

- Soubor:
Umožňuje načíst a uložit parametrický soubor, nebo vygenerovat DMF soubor a soubor s definicí kanálů. O DMF a parametrických souborech se více dočtete v kapitole Jak napojit aplikaci na reálný svět

- Otevřít:
Přečte údaje z parametrického souboru a pokusí se podle nich zkonfigurovat server.
- Uložit parametrický soubor:
Uloží aktuální konfiguraci do parametrického souboru.
- Uložit DMF soubor:
Vytvoří DMF soubor podle aktuálního nastavení kanálů.
- Uložit soubor s definicí kanálů:
Vytvoří textový soubor, ve kterém je vygenerovaná sekce <channels>-<end_channels>.

- Server:

- Vybrat server:
Otevře okno s nabídkou nainstalovaných serverů a připojí vybraný server.
- Vybrat vzdálený server:
Otevře okno s nabídkou serverů nainstalovaných na vzdáleném počítači a připojí vybraný server.
- Připojit server:
Opětovně připojí vybraný server.

- Nastavení:
Otevře se okno ve kterém lze konfigurovat skupiny a kanály.

## Nastavení Skupin a kanálů

V editoru ovladače jsou tři záložky. Záložka položky slouží k nastavení kanálů a položek. V záložce skupiny lze nastavovat parametry skupin a v záložce vlastnosti konfigurovat vlastnosti ovladače.

### Záložka položky

V záložce položky lze přidávat a odebírat kanály. U každého kanálu se nastavuje číslo, jméno položky, směr, druh komunikace a skupina, do které bude kanál přiřazen. Většina serverů je schopna poskytnout informace o nadefinovaných položkách. Stiskem tlačítka vedle jména položky se vyvolá okno se stromem, ve kterém jsou uspořádány všechny dostupné položky serveru. Položky jsou podle druhu přenášené hodnoty odlišeny ikonami na položky přenášející logické hodnoty, čísla a řetězce.

Pokud server poskytuje informace o vlastnostech položek, objeví se vedle tlačítka pro zobrazení stromu položek tlačítko, po jehož stisknutí se objeví okno se všemi dostupnými vlastnostmi položky.

### Záložka skupiny

V záložce skupiny lze přidávat a odebírat skupiny a nastavovat jim příslušné parametry. Parametr časový rozdíl určuje rozdíl mezi časem zařízení (nebo serveru) a lokálním časem. Je udáván v minutách. Pokud si přejete, aby byla časová informace automaticky konvertována do lokálního času, vyberte možnost "Lokální čas".

### Záložka vlastnosti

V záložce vlastnosti se nastavují vlastnosti ovladače.

- Mód ovladače: Ovladač může pracovat ve dvou módech.

- Komunikace řízená ovladačem.
V tomto módu reaguje ovladač na požadavky aplikace, zpracuje je a předá dál do serveru. Server vrátí změřené hodnoty do ovladače. Ovladač je předá dál do aplikace.
- Komunikace řízená serverem.
V tomto módu ovladač nepředává do serveru žádné požadavky. Server sám měří postupně všechny položky. Frekvence těchto měření je nastavována u jednotlivých skupin parametrem Update rate. Server vyhodnocuje u každé položky změny a změněné položky předá ovladači. Ovladač promítne změnu do příslušného kanálu. Tento mód ovladače je ideální ve spojení s datově řízenou aplikací sytému Control Web.

- Doba čekání na odpověď serveru při startu aplikace: Protože ne všechny servery jsou okamžitě po startu schopny reagovat na požadavky klienta, je možné zadat dobu, po kterou klient opakovaně zkouší komunikovat se serverem. Časový údaj je v sekundách.
- Zobrazovat okno ovladače po startu aplikace. Parametr určuje, jestli se po startu aplikace bude zobrazovat informační okno ovladače. U už odladěné aplikace je vhodné zobrazování okna zakázat.

## Služby ovladače.

Všechny níže popsané služby jsou zpřístupněny pomocí procedur ovladače. OPC ovladač nabízí následující služby :

- Set actual channel : Nastavení aktuálního kanálu. Aktuální kanál je používán ve spojistosti s následujícími dvěma službami. Syntax : system.DriverQueryProc( 'opc', 'SetActualChannel', ChannelNumber );
- Get error code : Získání posledního chybového kódu aktuálního kanálu. Po vyčtení se nastaví na 0. Syntax : system.DriverQueryProc( 'opc', 'GetChannelErrorCode', &ErrorCode );
- Get error string : Získání posledního chybového řetězce aktuálního kanálu. Po vyčtení se nastaví prázdný řetězec. Syntax: system.DriverQueryProc( 'opc', 'GetChannelErrorString', &ErrorString );

## Komunikace se vzdáleným serverem.

Komunikace mezi OPC serverem a klientem může probíhat i na vzdálených, sítí propojených počítačích prostřednictvím rozhraní DCOM. K provozu OPC komunikace mezi dvěma počítači musí být splněny následující podmínky.

- 1: Na obou dvou počítačích musí být nainstalovaný DCOM. Ve Windows NT4.0, Windows 98 a Windows 2000 je součástí systému, u Windows 95 se musí nainstalovat dodatečně.
- 2: Uživatel se musí z počítače, na kterém je klient přihlásit na počítač, na kterém je server jako administrátor! (mít administrátorská práva, to znamená přístup do systémového registru). Tohoto přihlášení lze dosáhnout například z Windows Exploreru (ne Internet Exploreru).
- 3: DCOM u serveru musí být nastavený tak aby ho směl spouštět daný vzdálený uživatel, Nejjednodušší cesta je nastavit Every One u všech práv. Toto nastavení lze provést aplikací dcomcnfg.exe, která je součástí systému Windows. Kromě obecných musí být nastavena i práva u aplikace, která obsahuje samotný server !

## Potřebná podpora

Aby na vašem počítači mohla probíhat OPC komunikace, musí být zaregistrovány tyto knihovny opccomn_ps.dll a opcproxy.dll Jejich instalace je většinou součástí instalace serveru. Pokud tomu tak není, jsou volně k dispozici u OPC Fundation . V době vzniku tohoto textu bylo možno knihovny najít na adrese http://www.opcfoundation.org/04_tech/04_tech_network.htm i s popisem postupu jejich instalace.