Protokol OPC Historical Data Access 1.20 Client

Podporované typy a verzie zariadení 
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Nastavenie správnej stratégie pre čítanie údajov
Konfigurácia DCOM pre pripojenie sa ku remote OPC serveru
Chyby a problémy
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol podporuje klientsku stranu komunikácie s OPC (OLE for Process Control) HDA (Historical Data Access) serverami podľa špecifikácii OPC HDA ver. 1.20.

Konfigurácia komunikačnej linky


Kategória komunikačnej linky: OPC Client.

Parametre OPC:

Konfigurácia komunikačnej stanice


Komunikačný protokol: OPC Historical Data Access 1.20.

Tento komunikačný protokol nevyžaduje zadávanie žiadnych adresných parametrov pre stanicu.


Parametre protokolu stanice

Môžu byť konfigurované nasledovné parametre protokolu stanice:

Tab. č. 1

Kľúčové slovoPlný názovPopisJednotkaNáhradná hodnota
FULL_DEBUGFull DebugZapína ladiace výpisy. Výrazne zvýši počet informácií o chode komunikácie. Odporúčame zapínať iba pri detekcii problémov a ladení komunikácie.YES/NONO
RCDReconnect/Reinitialisation DelayOneskorenie po zlyhaných operáciách:


  • vytvorenie itemov GetItemHandles,
  • opakované pripojenie na OPC HDA Server po jeho zastavení, páde alebo sieťovom disconnect-e,
  • vytváranie itemov po opakovanom pripojení na OPC HDA Server.
sec5
BNDSInclude BoundsNastavuje parameter "Bounds" (čítanie hraničných hodnôt intervalu, aj keď sú mimo požadovaný interval) pri synchrónnom/asynchrónnom čítaní "raw" hodnôt.YES/NONO
ASMAsync ModeNastavuje asynchrónny mód činnosti pri čítaní údajov. Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov.YES/NONO
NVALMaximum number of valuesNastavuje parameter NumItems pri synchrónnom/asynchrónnom čítaní "raw" hodnôt. Implicitná hodnota 0 znamená všetky hodnoty v danom intervale. Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov.Nezáporné celé číslo0
RINTRResample IntervalNastavuje hodnotu parametra "ResampleInterval" pri synchrónnom/asynchrónnom čítaní "processed" hodnôt. Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov.ddd hh:mi:ss60 sec
UINTRUpdate IntervalNastavuje hodnotu parametra "UpdateInterval" vo volaniach "AdviseRaw" a "AdviseProcessed". Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov.ss.mss1 sec
QERRQERR ValueCeločíselná hodnota stavu "ERROR" pre prevod do štvorstavového vstupu Qi.0,1,2,33
QOFFQOFF ValueCeločíselná hodnota stavu "OFF" pre prevod do štvorstavového vstupu Qi.0,1,2,32
QONQON ValueCeločíselná hodnota stavu "ON" pre prevod do štvorstavového vstupu Qi.0,1,2,31
QTRANSQTRANS ValueCeločíselná hodnota stavu "TRANS" pre prevod do štvorstavového vstupu Qi.

 

0,1,2,30
OPCHQEDMap ExtraData as flagMapovanie OPC HDA príznaku kvality Extra Data do atribútov hodnoty meraného bodu.None, FA, FB, FC, FD, FE, FF, FG, FH, FI, FJ, FK, FL, FM, FN, FO, FPNone
OPCHQINMap Interpolated as flagMapovanie OPC HDA príznaku kvality Interpolated do atribútov hodnoty meraného bodu.
OPCHQRAMap Raw as flagMapovanie OPC HDA príznaku kvality Raw do atribútov hodnoty meraného bodu.
OPCHQCAMap Calculated as flagMapovanie OPC HDA príznaku kvality Calculated do atribútov hodnoty meraného bodu.
OPCHQNBMap NoBound as flagMapovanie OPC HDA príznaku kvality No Bound do atribútov hodnoty meraného bodu.
OPCHQNDMap NoData as flagMapovanie OPC HDA príznaku kvality No Data do atribútov hodnoty meraného bodu.
OPCHQDLMap DataLost as flagMapovanie OPC HDA príznaku kvality Data Lost do atribútov hodnoty meraného bodu.
OPCHQCOMap Conversion as flagMapovanie OPC HDA príznaku kvality Conversion do atribútov hodnoty meraného bodu.
OPCHQPAMap Partial as flagMapovanie OPC HDA príznaku kvality Partial do atribútov hodnoty meraného bodu.
OPCQFNSMap NonSpecific as flagMapovanie OPC DA príznaku kvality Non Specific do atribútov hodnoty meraného bodu.
OPCQFLOMap LocalOverride as flagMapovanie OPC DA príznaku kvality LocalOverride do atribútov hodnoty meraného bodu.
OPCQFCEMap ConfigError as flagMapovanie OPC DA príznaku kvality Config Error do atribútov hodnoty meraného bodu.
OPCQFNCMap NotConnected as flagMapovanie OPC DA príznaku kvality Not Connected do atribútov hodnoty meraného bodu.
OPCQFDFMap DeviceFailure as flagMapovanie OPC DA príznaku kvality Device Failure do atribútov hodnoty meraného bodu.
OPCQFSFMap SensorFailure as flagMapovanie OPC DA príznaku kvality Sensor Failure do atribútov hodnoty meraného bodu.
OPCQFLKMap LastKnown as flagMapovanie OPC DA príznaku kvality Last Known do atribútov hodnoty meraného bodu.
OPCQFCFMap CommFailure as flagMapovanie OPC DA príznaku kvality Comm Failure do atribútov hodnoty meraného bodu.
OPCQFOOSMap OutOfService as flagMapovanie OPC DA príznaku kvality Out Of Service do atribútov hodnoty meraného bodu.
OPCQFWIDMap WaitingForInitData as flagMapovanie OPC DA príznaku kvality Waiting For Initial Data do atribútov hodnoty meraného bodu.
OPCQFLUMap LastUsable as flagMapovanie OPC DA príznaku kvality Last Usable do atribútov hodnoty meraného bodu.
OPCQFSCMap SensorCal as flagMapovanie OPC DA príznaku kvality Sensor Cal do atribútov hodnoty meraného bodu.
OPCQFEGUEMap EGUExceeded as flagMapovanie OPC DA príznaku kvality EGU Exceeded do atribútov hodnoty meraného bodu.
OPCQFSNMap SubNormal as flagMapovanie OPC DA príznaku kvality Sub Normal do atribútov hodnoty meraného bodu.

Konfigurácia meraných bodov


Možné typy hodnôt bodov: Ai, Ci, Di, Qi,  TiA, TiR, TxtI.

Adresa meraného bodu vyžaduje zadať "OPC Item ID" (string max. 200 znakov).

Ďalšie požadované parametre ("OPC HDA Item Parameters") sú:

Nastavenie správnej stratégie pre čítanie údajov


OPC Historical Data Access je špecifikácia, ktorá umožňuje čítanie historických údajov a to jednak "surových" - "raw" alebo spracovaných - "processed". Údaje je možné čítať sychrónnymi alebo asynchrónnymi volaniami. Asynchrónny interfejs umožňuje naviac "advise" požadovaných údajov, t.j. periodické (viď parameter protokolu "Update Interval") zasielanie aktuálnych hodnôt z OPC HDA Servera asynchrónnym call-back volaním do klienta - KOM procesu. Jediný povinný interfejs podľa špecifikácie OPC HDA je však iba "SyncRead" na synchrónne čítanie "raw" údajov.

Implementácia protokolu OPC HDA v D2000 KOM Procese je realizovaná štýlom, ktorý umožňuje čo najefektívnejšie čítanie archívnych údajov vrátane aktualizácie posledných hodnôt tak, aby nebolo nutné kombinovať protokol "OPC Historical Access" s protokolom "OPC Data Access". Čítanie historických hodnôt je v ľubovoľnom požadovanom intervale možné vyžiadať tell príkazom GETOLDVAL, získané hodnoty sú ukladané do D2000 Archívu, ak je daný meraný bod archivovaný primárnou Archivovanou hodnotou.

Možné sú dve stratégie pre zber aktuálnych údajov:

  1. Minimalistická:
    Používa iba synchrónny interfejs "SyncRead". Podľa nastavenia časových parametrov stanice sú periodicky volané funkcie "ReadRaw" a "ReadProcessed". Požadovaný interval hodnôt je od času poslednej platnej hodnoty po aktuálny čas. Ak je získaných niekoľko hodnôt za daný interval, posledná hodnota s najmladšou časovou značkou je vyhlásená za aktuálnu hodnotu. Ostatné hodnoty sú odoslané ako "old" values do servera a ukladajú sa do D2000 Archívu.
  2. Advise:
    Využíva funkcie asynchrónneho interfejsu "AsyncRead" "AdviseRaw" a "AdviseProcessed". OPC HDA Server v perióde danej parametrom protokolu "Update Interval" zasiela posledné platné hodnoty "raw" alebo "processed" itemov. Ak nie je v danom intervale žiadna nová hodnota, vráti OPC HDA Server príznak kvality "No Data".

Parametrom protokolu "Async Mode" je možné nastaviť plne asynchrónny režim, ktorý používa iba interfejs "AsyncRead". Asynchrónny režim však má určité obmedzenia, preto ho neodporúčame:

Implementácia protokolu OPC Historical Data Access nepodporuje zápis hodnôt (interfejsy "SyncUpdate" a "ReadUpdate"). Tak isto nie sú podporené interfejsy "SyncAnnotations", "AsyncAnnotations", "Browser" a "Playback".

Konfigurácia DCOM pre pripojenie sa ku remote OPC serveru


Remote browsing/lokálna registrácia OPC servera

D2000 KOM Proces od verzie 7.01.020 rel. 055 a vyššie podporuje získavanie GUID OPC Serverov z ProgID na vzdialených počítačoch cez DCOM interfejs pomocou utility OPCENUM (remote browsing). Ak je na strane vzdialeného OPC servera nainštalovaná utilita/windows service OPCENUM a úroveň nastavenia prístupových práv umožňuje remote browsing, netreba vykonávať lokálnu registráciu OPC servera na strane klienta. Utilita OPCENUM je súčasťou balíka "OPC Core Components Redistributable", ktorý sa dá získať na lokalite http://www.opcfoundation.org/, alebo zvyčajne býva už súčasťou inštalácie samotného OPC servera.

Registrácia OPC servera na strane OPC klienta (procesu D2000 KOM) nie je nutná. Ak sa uživateľ pre ňu rozhodne, dá sa docieliť dvomi spôsobmi:

  1. Niektoré OPC servery sú dodávané s inštalačným programom pre podporu pripojenia sa OPC klientov “tretích strán” ku vzdialenému OPC serveru. Takéto programy majú názvy ako “OPC Server Connect” a podobne. Po ich nainštalovaní sa objaví OPC server (jeho ProgID) v zozname OPC serverov na počítači klienta. D2000 OPC klient však použije tieto informácie iba na získanie CLSID zo zadaného ProgID (viď konfigurácia komunikačnej linky). Takto zaregistrovaný OPC server pravdaže nemôže byť prevádzkovaný na strane klienta.
  2. Ručné zaregistrovanie OPC servera na strane klienta, postupujte podľa tohto návodu:

Vždy si pozorne prečítajte návod ku OPC serveru od jeho výrobcu a skonfrontujte si v ňom uvedené údaje a návody s horeuvedenými postupmi.


Nastavenie prístupových práv

Pripojenie sa ku vzdialenému OPC serveru podlieha kontrole prístupových práv operačného systému Windows. Na oboch počítačoch preto musí byť vytvorený rovnaký užívateľ (aj s rovnakým heslom) a tento užívateľ musí byť na strane OPC klienta aj prihlásený. Na strane OPC servera musí mať tento užívateľ určité práva, preto postupujte podľa tohto návodu:

Zlé nastavenie prístupových práv pravdepodobne povedie ku chybe (viď kapitolu "Výpis COM/OPC chýb"):

ERROR: ServerProgID caused COM/OPC error 80070005H on CoCreateInstanceEx(CLSCTX_REMOTE_SERVER), Error string : Access is denied.

Sledujte záznamy v systémovom prehliadači udalostí "Event Viewer".

Problém sa dá do určitej miery obísť pridaním skupiny "Everyone" do "Launch Permissions" a "Access Permissions". Aby bolo zabezpečené, že bude OPC server odštartovaný v kontexte určitého užívateľa (a nie pod "SYSTEM account"), otvorte záložku "Identity" a vyplňte údaje pre voľbu "This user". V tomto prípade však nie je možné hovoriť o bezpečnosti OPC servera.

V každom prípade nesmie byť OPC klient (proces D2000 KOM) odštartovaný ako "Windows service" s parametrami "/X1" alebo "/X2", pretože potom nefunguje v kontexte prihláseného užívateľa, ale pod "SYSTEM account" a overenie prístupových práv OPC serverom zlyhá. Použite štartovací parameter "/X4".

Opäť si pozorne prečítajte návod ku OPC serveru od jeho výrobcu a dodržujte jeho odporúčania.

Pre užívateľov operačného systému WindowsXP s nainštalovaným SP2, a príp. novších operačných systémov, odporúčame v nastaveniach "Local Security Policy/Security Options" zmeniť parameter "Network access: Let Everyone permissions apply to anonymous users" na hodnotu "Enabled".

Ak je vo vlastnostiach OPC servera na poslednej záložke Identity nakonfigurované, že OPC server beží pod prihláseným užívateľom ("The interactive user"), tak to môže spôsobovať, že OPC server je k dispozícii iba pokiaľ je na počítači prihlásený užívateľ. Odporúčame toto nastavenie zmeniť ("The launching user", "This user", prípadne "The system account")


Chyby a problémy


Vo fáze štartu alebo aj počas komunikácie sa môžu vyskytovať nasledovné chybové hlásenia. Pre ľahšiu identifikáciu problému zapnite úroveň sledovania komunikácie v konfigurácii príslušnej linky minimálne na úroveň "Monitor", najlepšie však dočasne na úroveň "Monitor & Disk". V prípade nastavenia "Monitor & Disk" bude v podadresári "\TRACE" adresára aplikácie na počítači, kde je bežiaci komunikačný proces, vznikať súbor "meno_linky.LOG", kde sa nachádzajú všetky ladiace a chybové informácie.

Chyba:Unconvertible value for Item: 'ItemID', I/O tag: 'IOTagName' !
Popis:Nie je možné previesť získanú hodnotu do adekvátneho typu hodnoty meraného bodu v D2000. Prispôsobte typ hodnoty meraného bodu.
Chyba:ShutDown OPC HDA Server : 'ServerProgID' !
Popis:OPC server bol zastavený, pravdepodobne korektným spôsobom aj napriek tomu že má aktívnych klientov.
Chyba:OPC HDA Server 'ServerProgID' is unavailable !
Popis:Remote DCOM OPC server je nedostupný. Proces D2000 KOM ako klient sa bude opakovane pokúšať pripojiť ku serveru. Skontrolujte PC, kde je nainštalovaný OPC server (či beží a je správne pripojený na lokálnu sieť).
Chyba:Async reading raw data failed, Item: 'ItemID'
Popis:Chyba pri volaní "ReadRaw" interfejsu "AsyncRead". Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:Sync reading raw data failed, Item: 'ItemID'
Popis:Chyba pri volaní "ReadRaw" interfejsu "SyncRead". Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:Async reading processed data failed, Item: 'ItemID'
Popis:Chyba pri volaní "ReadProcessed" interfejsu "ReadAsync". Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:Sync reading of processed data failed, Item: 'ItemID'
Popis:Chyba pri volaní "ReadProcessed" interfejsu "ReadSync". Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:SetCallBack - FAILED, Server: 'OPCServerProgID'.
Popis:Chyba pri registrácii asynchrónnej call-back procedúry. Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:OPCConnectToServer - FAILED, Host: 'ServerName', Server: 'OPCServerProgID'!
Popis:Zlyhanie pripojenia sa na OPC Server. Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:AsyncAdviseRaw - FAILED, I/O tag: 'IOTagName', ItemID: 'ItemID', Station: 'StationName'
Popis:Chyba volania "AdviseRaw" interfejsu "ReadAsync". Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:AsyncAdviseProcessed - FAILED, I/O tag: 'IOTagName', ItemID: 'ItemID', Aggregate='Aggregate', Station: 'StationName'
Popis:Chyba volania "AdviseProcessed" interfejsu "ReadAsync". Pozrite výpis COM/OPC chyby pre detailné informácie.
Chyba:GetItemHandle - FAILED, I/O tag: 'IOTagName', ItemID: 'ItemID', Station: 'StationName' !
Popis:Chyba pri volaní "GetItemHandles" interfejsu "Server". Nepodarilo sa zaregistrovať požadovaný item. Vzhľadom na to, že validácia mena itemu bola úspešná (volanie "ValidateItemIDs"), skontrolujte log súbor OPC servera. Pozrite tiež výpis COM/OPC chyby pre detailné informácie.
Chyba:ValidateItem - FAILED, I/O tag: 'IOTagName', ItemID: 'ItemID', Station: 'StationName' !
Popis:Zlyhanie volania "ValidateItemIDs" interfejsu "Server". Pravdepodobne neznáme ItemID. Pozrite výpis COM/OPC chyby pre detailné informácie.



Výpis COM/OPC chýb

Chybové hlásenia v kapitole "Chyby a problémy" sú generované vo vyššej úrovni OPC klienta. Väčšinu uvedených chýb bude sprevádzať chybový výpis na COM/OPC úrovni. Formát týchto chybových hlásení je nasledovný:

WARNING/ERROR: ServerProgID caused COM/OPC error ErrorCodeHexadecimal on CallDescription, Error string : ErrorDescription

Napríklad:

ERROR: Matrikon.OPC.Simulation.1 caused COM/OPC error C0040008H on IOPCHDA_Server::ValidateItemIDs('ItemID'), Error string : OPC_E_INVALIDITEMID The item definition doesn't conform to the server's syntax.

Tieto chybové hlásenia sú dôležité pre analýzu problému a budú, v prípade problémov, požadované technickou podporou firmy Ipesoft.

Literatúra


Dokumenty OPC Foundation, ktoré je možné získať na lokalite http://www.opcfoundation.org/.

Iné:

Zmeny a úpravy


Revízie dokumentu


Komunikačné protokoly