Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Komunikace přes rozhraní OPC

Základní principy pro OPC komunikaci:

OPC (OLE for Process Control) je standardizovaná specifikace rozhraní pro aplikace, které jsou zaměřeny na řízení a monitorování rychlých procesů. Tuto specifikaci definuje a upřesňuje nezisková organizace OPC Foundation (viz: www.opcfoundation.org). Specifikace má architekturu klient-server. V této době je specifikace zaměřena na tyto oblasti:

- sdílení dat (OPC DataAccess)
- sdílení alarmů a eventů (OPC Alarm and Event Handling)
- sdílení historických trendů (OPC Historical Data Access), atd.

V systému PROMOTIC je prozatím implementována část sdílení dat z pohledu klienta. Je podporována OPC specifikace verze 1 a 2 (vyšší OPC verze v době psaní této dokumentace nebyla k dispozici).

 
Princip přenosu dat přes OPC:

Je potřeba OPC server. OPC server získáte u různých firem, které takový SW vyrábějí. Často je takovou firmou přímo vyrobce PLC zařízení. OPC server je aplikace pro OS Windows, která běží buď jako samostatný program nebo je to například Dll knihovna. Takový OPC server umí například komunikovat s PLC automatem přes sériovou linku a zároveň umí data (která získá z PLC automatu) nabízet přes OPC rozhraní jiným aplikacím v OS Windows. V tomto případě bude touto jinou aplikací PROMOTIC aplikace.

V PROMOTIC aplikaci, která chce získávat (nastavovat) data z daného PLC je potřeba založit objekt PmOpcClient. V tomto objektu se vybere daný OPC server (pokud je OPC správně nainstalovaný, pak se objeví v nabídce). Do objektu PmOpcClient je pak potřeba vložit potřebný počet objektů PmOpcClientData. Tyto objekty představují skupiny dat, které chcete přenášet. Je potřeba je příslušně nakonfigurovat. Můžete tam zadat, zda se skupina dat má automaticky číst nebo zapisovat. Pokud nechcete číst-zapisovat data automaticky, lze to řešit ve scriptu metodou PmOpcClientData.Read-PmOpcClientData.Write.

 
Dále je potřeba definovat, která data chceme přenášet. Lze to dělat dvěma způsoby:
1) Datové rozšíření: Použít Datové rozšíření je velmi vhodný způsob jak definovat s kterými daty chceme komunikovat. Definuje se v datové položce objektu PmData a pro OPC je určeno ExtOpcClient.
2) Definice dat přímo v objektu PmOpcClientData: V záložce Data lze definovat datové položky, které se konfigurují podobně jako například pro objekt PmData. U každé položky ja však potřeba navíc nastavit dva údaje potřebné pro OPC komunikací. Je to ItemID a AccesPath. Tyto dva údaje představují adresu dané položky v OPC serveru. Podporuje-li OPC server OPC verzi 2, pak by měli fungovat u zadavatelů údajů tlačítka (se 3 tečkami) pro výběr těchto údajů přímo z OPC serveru. Pokud tomu tak není, pak je potřeba zadat údaje manuálně.

Přístup k datovým položkám v objektu PmOpcClientData je stejný jako v objektu PmData, tj. například přes vlastnost PmOpcClientData.Item. Tato vlastnost zpřístupní jednu datovou položku jako objekt Var, ze kterého lze zjistit standardní údaje (především hodnotu datové položky vlastností Value) ale v objektu PmOpcClientData má objekt Var ještě další 2 vlastnosti specifické jen pro OPC. Jedná se o vlastnost Var.Quality, pomocí které lze zjistit platnost přijaté hodnoty a ExtOpcClient.TimeStamp, pomocí které lze zjistit časovou známku poslední hodnoty.

 
OPC Základní pojmy:
CACHE: Pomocná paměť OPC serveru, do které průběžně server ukládá data, která získá z jiných zdrojů dat (např. z PLC automatu, DEVICE - viz dále). Pokud OPC klient potřebuje data, nemusí je získávat pomalu z PLC automatu, ale rychle je vyčte z této paměti v OPC serveru.
DEVICE: Zdroj dat, ze kterého OPC server získává data. Přístup na tato data je obvykle řádově pomalejší než z CACHE.
Asynchronní přenos: Způsob přenosu dat mezi klientem a serverem. Klient pošle OPC serverovi požadavek (zápis, čtení) a NEČEKÁ na konec zpracování požadavku. Požadavek bude OPC serverem zpracován během určité doby a výsledek bude klientovi poslán. Klient mezi posláním požadavku a výsledkem může provádět jiné operace. Tento druh přenosu je vhodný pro dlouhotrvající operace, například zápis nebo čtení dat z DEVICE.
Synchronní přenos: Způsob přenosu dat mezi klientem a serverem. Klient pošle OPC serverovi požadavek (zápis, čtení) a ČEKÁ na konec zpracování požadavku. Tento druh přenosu je vhodný pro velmi rychlé operace, například zápis nebo čtení dat z CACHE pokud je OPC server na stejném počítači jako klient.
 
Návod na jednoduché testování OPC komunikace:
1. Vytvořte prázdný projekt (nebo použijte již existující) a v něm vytvořte objekt PmOpcClient. V konfigurátoru OPC server - CLSID/ProgID zadejte OPC server, ke kterému se chcete připojit (server lze vybrat tlačítkem vpravo). Pokud se požadovaný server nenabízí, znamená to, že není na Vašem počítači tento server správně nainstalovaný.
2. V objektu PmOpcClient vytvořte nový podobjekt PmOpcClientData.
3. V objektu PmOpcClientData se přesvědčete, že konfigurátory Aktivní po startu a Obnovit ze serveru při změně na serveru jsou zatržené.
4. V záložce PmOpcClientData > Data vytvořte jednu proměnnou: stiskněte tlačítko "Nová". Otevře se okno pro konfiguraci nové proměnné. Nastavte požadovaný datový typ.
5. Vyplňte konfigurátor ItemID požadovanou OPC adresou veličiny. Tento konfigurátor lze vyplnit pomocí tlačítka vpravo - tehdy se spustí OPC server a sám Vám nabídne veličiny, které může přenášet (umí to jen OPC server s rozhraním OPCv2.0 a novější - staré OPC servery toto neumožňují).
6. Některé typy adresování vyžadují kromě konfigurátoru ItemID zadat ješte konfigurátor AccessPath (pro zadávání platí stejný postup jako v předchozím kroku). U většiny OPC serveru však můžete tento konfigurátor nechat prázdný.
7. Ukončete zadávání proměnné a spusťte aplikaci (runtime).
8. Pro testování nemusíte tvořit žádné obrazy, vše lze zjistit v INFO systému. Otevřete INFO systém, přejděte do položky "PmRoot" a tam přejděte do objektu PmOpcClientData, který jste vytvořili. V záložce Vars vidíte aktuální hodnotu a stavy proměnné. V záložce Object vidíte statistiku OPC přenosu tohoto objektu.
9. Pokud přenos dat nefunguje, podívejte se do položky Errors v INFO systému.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice