Promotic

Komunikace přes rozhraní OPC DA

Princip přenosu dat přes OPC DA:
Je potřeba OPC server. OPC server získáte u různých firem, které takový software vyrábějí. Často je takovou firmou přímo výrobce PLC automatů. OPC server je aplikace pro OS Windows, která běží buď jako samostatný program nebo je to například DLL knihovna. Takový OPC server například může komunikovat s PLC automaty přes sériový port počítače a zároveň umí nabízet data (která získá z PLC automatu) přes OPC rozhraní jiným aplikacím v OS Windows. V tom případě bude touto jinou aplikací aplikace PROMOTIC.
V aplikaci PROMOTIC, která chce získávat (nastavovat) data z daného PLC automatu je nutno založit objekt PmaOpcDaClient. V tomto objektu se vybere daný OPC server (pokud je OPC správně nainstalovaný, pak se objeví v nabídce). Do objektu PmaOpcDaClient pak je nutno vložit potřebný počet objektů PmaOpcDaClientGroup. 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, pak lze to řešit ve skriptu metodou PmaOpcDaClientGroup.Read-PmaOpcDaClientGroup.Write.

Dále je nutno 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 PmaData a pro OPC je určeno ExtOpcDa.
2) Definice dat přímo v objektu PmaOpcDaClientGroup: V kartě "Data" lze definovat proměnné, které se konfigurují podobně jako například v objektu PmaData. U každé proměnné je nutno navíc nastavit dva údaje potřebné pro OPC komunikací. Je to ItemId a AccesPath. Tyto dva údaje představují adresu dané proměnné v OPC serveru. Pokud OPC server podporuje OPC verzi 2, pak by měl fungovat výběr těchto údajů přímo z OPC serveru (pomocí tlačítka se třemi tečkami). Pokud tomu tak není, pak je nutno zadat údaje manuálně.
Přístup k datovým položkám v objektu PmaOpcDaClientGroup je stejný jako v objektu PmaData, tzn. například metodou PmaOpcDaClientGroup.Item. Tato vlastnost zpřístupní jednu proměnnou jako objekt PmVar, ze kterého lze zjistit standardní údaje (především hodnotu proměnné vlastností Value) ale v objektu PmaOpcDaClientGroup má objekt PmVar ještě další 2 vlastnosti specifické pouze pro OPC. Jedná se o vlastnost PmVar.Quality, pomocí které lze zjistit platnost přijaté hodnoty a vlastnost ExtOpcDa.TimeStamp, pomocí které lze zjistit časovou známku poslední hodnoty.


OPC DA 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, pak je nemusí 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 do OPC serveru požadavek (zápis, čtení) a NEČEKÁ na konec zpracování požadavku. OPC server zpracuje požadavek 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 dat je vhodný pro dlouhotrvající operace, například čtení nebo zápis dat z DEVICE.
Synchronní přenos: Způsob přenosu dat mezi klientem a serverem. Klient pošle do OPC serveru požadavek (zápis, čtení) a ČEKÁ na konec zpracování požadavku. Tento druh přenosu dat je vhodný pro velmi rychlé operace, například čtení nebo zápis 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 PmaOpcDaClient. 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í, pak to znamená, že není na Vašem počítači tento server správně nainstalovaný.
2. V objektu PmaOpcDaClient vytvořte nový podobjekt PmaOpcDaClientGroup.
3. V objektu PmaOpcDaClientGroup 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 kartě "PmaOpcDaClientGroup > Data" vytvořte jednu proměnnou: stiskněte tlačítko "". Otevře se okno pro konfiguraci nové proměnné. Nastavte požadovaný datový typ.
5. Vyplňte konfigurátor "ItemId" požadovanou OPC adresou proměnné. Tento konfigurátor lze vyplnit tlačítkem 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ání platí stejný postup jako v předchozím kroku). U většiny OPC serverů 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 okno INFO systému, přejděte do položky "PmaRoot" a tam přejděte do objektu PmaOpcDaClientGroup, který jste vytvořili.
V kartě "Vars" vidíte aktuální hodnoty a stavy proměnných.
V kartě "Object" vidíte statistiku OPC přenosu tohoto objektu.
9. Pokud přenos dat není funkční, pak se podívejte do karty "Errors" v INFO systému.

Historie:
Pm8.00.04: Zlepšen přístup k OPC-DA serverům na jiném počítači: již se nemusí instalovat vzdálený OPC server i na počítači s aplikací PROMOTIC. Viz Konfigurace DCOM rozhraní pro OPC-DA server.
© MICROSYS, spol. s r.o.