Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmOpcClientData - Podrobný popis objektu

Viz: Objekt PmOpcClientData
 
V tomto objektu nelze založit žádné další PROMOTIC objekty. Objekt PmOpcClientData lze založit jen v objektu PmOpcClient. V objektu PmOpcClient může být více objektů PmOpcClientData.

Tento objekt přidává proměnné do výpočtu velikosti aplikace, což pak má vliv na typ základní runtime licence (viz: Ceník systému PROMOTIC ).

 
Standardní OPC server (poskytující data) příjímá data z nějakého zdroje dat (např. PLC automatu - dále budeme nazývat DEVICE), ukládá je do své pomocné mezipaměti (dále budeme nazývat CACHE) a poskytuje je pak připojeným klientům.

Pro optimalizaci rychlosti přenosu dat každý datový klient (v tomto případě objekt PmOpcClientData) informuje OPC server, jak chce specifikovaná data sdílet. Jedním z těchto optimalizačních parametrů lze pro danou skupinu dat nastavit, zda je skupina aktivní (viz záložka Parametry a vlastnost ActiveGroup). Pokud není skupina aktivní (a ani jiní klienti tato data nepožadují), pak OPC server nemusí tato data aktualizovat ve své paměti CACHE a může tedy jiná data aktualizovat častěji.

Jinou optimalizací je volba režimu příjmu dat. OPC klient se může rozhodnout zda, bude data automaticky přijímat (a chce tedy, aby mu OPC server zasílal hodnoty dat, ve kterých došlo ke změně) nebo chce data ovládat sám (číst a zapisovat na OPC server na vyžádání).

V případě že OPC klient chce data automaticky přijímat, musí pro skupinu povolit obnovování (viz záložka Parametry a vlastnost Update). Pokud je obnovování povoleno, OPC server automaticky klientovi posílá změněné hodnoty dat této skupiny. Toto obnovování lze dále ještě optimalizovat zadáním parametrů: minimální obnovovací rychlost a necitlivost (Viz vlastnost: vlastnost UpdateRate a Deadband). Tzn. že OPC server nebude klientovi posílat data rychleji než je určeno v minimální obnovovací rychlosti a také nebude data posílat, pokud změna hodnoty je menší než necitlivost (myslí se změna od naposledy poslané hodnoty klientovi).

V případě že OPC klient chce číst a zapisovat do OPC serveru sám, je vhodné automatické obnovování zakázat. Lze sice automatické obnovování nechat zapnuté a přitom např. zapisovat, ale mohlo by se při této kombinaci stát, že dřív než požadovanou hodnotu do OPC serveru klient zapíše, tato hodnota se obnoví ze serveru a tedy se do OPC serveru bude zapisovat hodnota, která tam již je.

Z podobných důvodů je také často vhodné - v případě že chcete položky zároveň číst i do nich zapisovat - vytvořit raději dvě OPC skupiny (dva objekty PmOpcClientData). Jedna skupina bude určena pro čtení a druhá pro zápis. Takto lze pak i lépe kontrolovat skutečné stavy hodnot.

 
Pro čtení a zápis hodnot OPC serveru slouží následující metody: (používají se jen pokud není zapnut automatický příjem nebo zápis)
Refresh - čtení všech hodnot skupiny dat z OPC serveru
Read - čtení zadaného bloku dat ve skupině z OPC serveru
Write - zápis zadaného bloku dat ve skupině do OPC serveru
 
U metod Refresh a Read lze zadat, zda se mají hodnoty číst z CACHE nebo z DEVICE. Předpokládá se, že většina klientů bude číst data z CACHE. Přímý přístup na data z DEVICE je obecně pomalý a měl by být používán jen pro dianostické účely nebo pro kritické operace.

Metoda Write píše data vždy do DEVICE (tím je zaručeno že se data vždy zapíší například do PLC automatu a ne jen do mezipaměti OPC serveru).

 
U výše zmíněných 3 metod lze také zadat zda operace má proběhnout asynchronně nebo synchronně. Při volání metody v asynchronním režimu se přenos pouze nastartuje ale po volání této metody není zaručeno, že přenos fyzicky skončil. Tento režim je vhodný, pokud je potřeba psát/číst do DEVICE, neboť přenos dat do DEVICE je obecně pomalý (několik sekund) a v případě synchronního režimu by celou tuto dobu byly algoritmy aplikace PROMOTIC zastaveny. Volání metod v synchronním režimu je vhodné pro čtení z CACHE OPC serveru (umístěn na stejném počítači jako klient), neboť čtení z CACHE je velmi rychlé a po úspěšném ukončení této metody je jisté, že v datech jsou aktuální hodnoty. Psaní algoritmů pro synchronní režim je proto jednodušší.
 
Identifikátor #vars:

V objektu PmOpcClientData jsou pomocí identifikátoru #vars zpřístupněny datové položky (typu Var) definované v záložce Data. Tento identifikátor lze použít v metodách pro práci s aplikačním stromem objektů (např. v metodě Pm) nebo ve vazbě PP v aplikaci a v obrazech. Například metoda pMe.Pm("opcdata/#vars/aaa") vrací datovou položku aaa z objektu o názvu opcdata který je typu PmOpcClientData.

 
Datové rozšíření:

Proměnné v objektu PmData mohou využít ExtOpcClient a zaregistrovat se přímo do objektu PmOpcClientData. Pak v záložce PmOpcClientData > Data se nemusí definovat žádné proměnné.

 
Přenos vektoru dat:

Některé OPC servery (pro Simatic, Schneider, Bernecker&Reiner ..) mohou přenášet v jedné datové položce vektor (Array) dat (často s omezením že všechny položky vektoru musí mít stejný datový typ). Pokud je nutno i taková data přijímat/zasílat, pak se musí u datové položky nastavit konfigurátor Datový typ na datový typ Variant (povoleno jen s vývojovým klíčem nebo s licencí PmRtProf).

Při příjmu dat obsahující položku typu Array systém PROMOTIC upraví tuto položku do standardní VBScript podoby (např. pole Integer hodnot převede na pole Variant hodnot podtypu Integer). Potom jednu položku tohoto pole lze číst např.

Dim arr, val
arr = oOpcData.Item(x).Value
val = arr(y)

Při vyslání dat obsahující položku typu Array je nutno do této položky uložit vektor, který nemá standardní VBScript podobu. Lze to provést metodou Pm.TransformValue s parametrem 41 např.

oOpcData.Item(x).Value = Pm.TransformValue(arr, 41)
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice