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 klientskú 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:

  • OPC Host: Požadované len pre "Remote" prístup. Počítač, kde je nainštalovaný OPC HDA Server, zadáva sa len pre typ OPC servera "Remote" (string max. 50 znakov). Možno zadať mená podľa konvencie UNC (napr. "\\server" alebo "server", doménové DNS mená (napr. "domain.com", "example.company.com") alebo IP adresy ("196.54.23.113").
  • Backup Host: Požadované len pre "Remote" prístup. Záložný OPC host. V prípade, že je definovaný, po výpadku komunikácie sa proces D2000 KOM snaží nadviazať komunikáciu striedavo s OPC Host-om a Backup Host-om.
  • OPC Server: Meno (ProgID) OPC servera (string max. 50 znakov).
  • Server Type: Podľa typu servera – "InProc", "Local" alebo "Remote".

Parametre protokolu linky

Pre protokol "OPC Historical Data Access 1.20 Client" je možné konfigurovať nasledovné globálne parametre protokolu linky:

NázovPopisJednotkaNáhradná hodnota

Authentication Level

Úroveň autentifikácie použitá pri vytváraní spojenia na OPC server. OPC štandard definuje tieto úrovne:

  • RPC_C_AUTHN_LEVEL_DEFAULT (0)
  • RPC_C_AUTHN_LEVEL_NONE (1)
  • RPC_C_AUTHN_LEVEL_CONNECT (2)
  • RPC_C_AUTHN_LEVEL_CALL (3)
  • RPC_C_AUTHN_LEVEL_PKT (4)
  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY (5)
  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY (6)

Pozn: prednastavená hodnota RPC_C_AUTHN_LEVEL_CONNECT (2) už nemusí vyhovovať. Microsoft zaviedol security hardening kvôli riešeniu bezpečnostných problémov popísaných v CVE-2021-26414. Viac detailov viď "KB5004442—Manage changes for Windows DCOM Server Security Feature Bypass (CVE-2021-26414)".

-

2


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_DEBUG
Full 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
RCD
Reconnect/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
BNDS
Include 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
ASM
Async ModeNastavuje asynchrónny mód činnosti pri čítaní údajov. Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov.YES/NONO
NVAL
Maximum 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
RINTR
Resample 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
UINTR
Update IntervalNastavuje hodnotu parametra "UpdateInterval" vo volaniach "AdviseRaw" a "AdviseProcessed". Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov.ss.mss1 sec
QERR
QERR ValueCeločíselná hodnota stavu "ERROR" pre prevod do štvorstavového vstupu Qi.0,1,2,33
QOFF
QOFF ValueCeločíselná hodnota stavu "OFF" pre prevod do štvorstavového vstupu Qi.0,1,2,32
QON
QON ValueCeločíselná hodnota stavu "ON" pre prevod do štvorstavového vstupu Qi.0,1,2,31
QTRANS
QTRANS ValueCeločíselná hodnota stavu "TRANS" pre prevod do štvorstavového vstupu Qi.


0,1,2,30
OPCHQED
Map 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
OPCHQIN
Map Interpolated as flagMapovanie OPC HDA príznaku kvality Interpolated do atribútov hodnoty meraného bodu.
OPCHQRA
Map Raw as flagMapovanie OPC HDA príznaku kvality Raw do atribútov hodnoty meraného bodu.
OPCHQCA
Map Calculated as flagMapovanie OPC HDA príznaku kvality Calculated do atribútov hodnoty meraného bodu.
OPCHQNB
Map NoBound as flagMapovanie OPC HDA príznaku kvality No Bound do atribútov hodnoty meraného bodu.
OPCHQND
Map NoData as flagMapovanie OPC HDA príznaku kvality No Data do atribútov hodnoty meraného bodu.
OPCHQDL
Map DataLost as flagMapovanie OPC HDA príznaku kvality Data Lost do atribútov hodnoty meraného bodu.
OPCHQCO
Map Conversion as flagMapovanie OPC HDA príznaku kvality Conversion do atribútov hodnoty meraného bodu.
OPCHQPA
Map Partial as flagMapovanie OPC HDA príznaku kvality Partial do atribútov hodnoty meraného bodu.
OPCQFNS
Map NonSpecific as flagMapovanie OPC DA príznaku kvality Non Specific do atribútov hodnoty meraného bodu.
OPCQFLO
Map LocalOverride as flagMapovanie OPC DA príznaku kvality LocalOverride do atribútov hodnoty meraného bodu.
OPCQFCE
Map ConfigError as flagMapovanie OPC DA príznaku kvality Config Error do atribútov hodnoty meraného bodu.
OPCQFNC
Map NotConnected as flagMapovanie OPC DA príznaku kvality Not Connected do atribútov hodnoty meraného bodu.
OPCQFDF
Map DeviceFailure as flagMapovanie OPC DA príznaku kvality Device Failure do atribútov hodnoty meraného bodu.
OPCQFSF
Map SensorFailure as flagMapovanie OPC DA príznaku kvality Sensor Failure do atribútov hodnoty meraného bodu.
OPCQFLK
Map LastKnown as flagMapovanie OPC DA príznaku kvality Last Known do atribútov hodnoty meraného bodu.
OPCQFCF
Map CommFailure as flagMapovanie OPC DA príznaku kvality Comm Failure do atribútov hodnoty meraného bodu.
OPCQFOOS
Map OutOfService as flagMapovanie OPC DA príznaku kvality Out Of Service do atribútov hodnoty meraného bodu.
OPCQFWID
Map WaitingForInitData as flagMapovanie OPC DA príznaku kvality Waiting For Initial Data do atribútov hodnoty meraného bodu.
OPCQFLU
Map LastUsable as flagMapovanie OPC DA príznaku kvality Last Usable do atribútov hodnoty meraného bodu.
OPCQFSC
Map SensorCal as flagMapovanie OPC DA príznaku kvality Sensor Cal do atribútov hodnoty meraného bodu.
OPCQFEGUE
Map EGUExceeded as flagMapovanie OPC DA príznaku kvality EGU Exceeded do atribútov hodnoty meraného bodu.
OPCQFSN
Map 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ú:

  • Výber medzi "Raw" a "Processed" typom čítanej hodnoty.
  • V prípade výberu "Processed" typu voľbu požadovaného typu "Aggregate".
  • Voľba "Async Advise" pre povolenie asynchrónneho priebežného zberu hodnôt údajov.

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:

  • Pri asynchrónnom čítaní "raw" údajov nie je podporené opakované dočítavanie údajov, ktoré sa nezmestili do jedného volania (vrátený príznak OPC_S_MOREDATA).
  • V asynchrónnom režime nie je riešené správne načasovanie ukončenia transakcie tell príkazu GETOLDVAL, čo má za následok neefektívnejšie ukladanie získaných hodnôt procesom D2000 Archív.

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:

    • Skopírujte OPC server (z počítača, kde je nainštalovaný, stačí samotný .exe súbor + prípadne požadované .dll súbory) do pomocného adresára na strane klienta.
    • Odštartuje v tomto adresári príkazový riadok.
    • Zaregistrujte OPC server. Ak sa OPC server na disku volá napr. "OPCSERVER.EXE" tak napíšte príkaz: "OPCSERVER.EXE /regserver" a stlačte ENTER.
    • Pomocný adresár môžete zmazať.

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:

  • Na príkazovom riadku na počítači, kde je nainštalovaný OPC server, odštartujte program "DCOMCNFG". Skontrolujte, či je povolený DCOM zaškrtnutím voľby "Enable Distributed COM on this computer".
  • V zozname komponentov nájdite požadovaný OPC server a otvorte okno jeho parametrov ("Properties"). Otvorte záložku "Security".
  • Prepnite "Launch Permissions" na "Customize" a kliknite na tlačidlo "Edit...".
  • Skontrolujte, či sa v zozname nachádza požadovaný užívateľ, prípadne ho tam pridajte.
  • To isté urobte aj pre "Access Permissions".

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".

Poznámka o SIMATIC NET a možno aj iných OPC serveroch

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/.

  • OPC FOUNDATION, Historical Data Access Specification, Version 1.20, December 10, 2003.
  • OPC FOUNDATION, OPC Common Definitions and Interfaces, Version 1.0, October 27, 1998.
  • OPC FOUNDATION, Using OPC via DCOM with Microsoft Windows XP Service Pack 2, (C) 2004 OPC Foundation Inc.

Iné:

  • OPC DCOM White Paper, Richard C. Harrison, Intellution Inc. © Intellution Inc. 1998

Zmeny a úpravy


  • 15. okt. 2007 - vytvorenie dokumentu

Revízie dokumentu


  • Ver. 1.0 – 15. okt. 2007
  • Ver. 1.1 - 7. feb. 2021 - pridaný parameter "Authentication Level"


Súvisiace stránky:

Napíšte komentár