Protokol OPC Data Access 2.05 & 3.0 Client

Podporované typy a verzie zariadení 
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Prehľadávanie adresného priestoru OPC servera
Dočítavanie historických údajov
Tell príkazy
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) DA (Data Access) servermi podľa špecifikácii OPC DA ver. 2.05A a 3.0. Podporuje tiež klientskú stranu komunikácie s OPC HDA (Historical Data Access) servermi podľa špecifikácii OPC HDA ver. 1.20.

Konfigurácia komunikačnej linky



Parametre protokolu linky

Pre protokol "OPC Data Access 2.05 & 3.0" je možné konfigurovať nasledovné globálne parametre protokolu linky:

Tab. č. 1

NázovPopisJednotkaNáhradná hodnota
OPC HDA: Server if Available
Meno (ProgID) OPC HDA servera, ak je dostupný. Prázdny text pre neaktivovanie OPC HDA funkcií.-
OPC HDA: Max. Number of Values
Nastavuje parameter NumItems pri synchrónnom čítaní historických "raw" hodnôt. Implicitná hodnota 0 znamená všetky hodnoty v danom intervale.-0

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

Sequenced Transactions

Zapína sekvenčné radenie volaní funkcie "Refresh2" rozhraní "Async I/O 2.0” a "Async I/O 3.0". Volania sú realizované po sebe vždy až po ukončení predchádzajúceho (t.j. získaní hodnôt).YES/NONO
Repeat Failed Group Activation
Opakovanie zlyhaných operácií aktivácie OPC grupy po čase určenom parametrom "Group reactivation delay".YES/NOYES
Group Reactivation Delay
Čas, po ktorom je opakovaná neúspešná aktivácie OPC grupy, pokiaľ je zapnuté opakovanie aktivácie parametrom "Repeat failed group activation".sec30
Reconnect After Failed Group Activation
Po zlyhaní operácií aktivácie OPC grupy dôjde k odpojeniu od OPC servera a k opätovnému pripojeniu. Parameter má význam najmä pri konfigurácii redundantných OPC serverov (po po odpojení sa od OPC servera nasleduje pripojenie k druhému OPC serveru, kde aktivácia môže byť úspešná).YES/NONO
GetGroupState Periode
Perióda opakovania volania "GetGroupState" rozhrania "IOPCGroupStateMgt". Toto synchrónne volanie sa, ako jediné, cyklicky opakuje a slúži na detekciu problémov v komunikácii s OPC Serverom.sec10
Accept All GetGroupState Errors

Považovanie všetkých chýb, ktoré vracia volanie "GetGroupState" rozhrania "IOPCGroupStateMgt", za fatálne (dôjde k odpojeniu od OPC servera a k opätovnému pripojeniu, prípadne k reštartu KOM procesu).

Príklad chybovej hlášky volania "GetGroupState":
WARNING: Siemens.TXP.OPC caused COM/OPC error 80010108H on IOPCGroupStateMgt::GetState(), Error string : The object invoked has disconnected from its clients.

YES/NONO
Stop KOM When OPC Server Fails
Pri fatálnej chybe v komunikácii povoľuje zastaviť celý KOM proces. Viď poznámku.YES/NONO
Disconnect On Passive
Iba aktívny KOM proces (t.j. aktívna inštancia pripojená k HOT serveru) komunikuje s OPC serverom. KOM proces, ktorý sa stane pasívnym (zmenou aktívnej inštancie alebo prepnutím redundancie), zavrie spojenie s OPC serverom.
Pozn: parameter umožňuje znížiť záťaž OPC servera v redundantných D2000 systémoch ako aj riešiť napr. problémy s licenčným obmedzením počtu OPC klientov.
YES/NONO

Poznámka: Za fatálne zlyhanie komunikácie s OPC Serverom sa považujú COM/OPC chyby pri volaniach:

Konfigurácia komunikačnej stanice


Komunikačný protokol: OPCData Access 2.05 & 3.0.

Adresa stanice vyžaduje:


Parametre protokolu stanice

Môžu sa konfigurovať nasledovné parametre protokolu stanice:

Tab. č. 2

NázovPopisJednotkaNáhradná hodnota
Do Read after Write
Povoľuje vykonávať overenie hodnoty po zápise synchrónnym čítaním.YES/NONO
Prefer Synchronous Write
Povoľuje vykonávať zápisy do OPC Servera vždy iba synchrónnym rozhraním "IOPCSyncIO2".YES/NONO
Prefer VQT Write
Pri voľbe "Async I/O 3" povoľuje vykonávať zápisy funkciou WriteVQT rozhrania IOPCASyncIO3 (t.j. zápis umožňujúci prenos kvality a časovej značky spolu s vlastnou hodnotou).YES/NONO
Full Debug
Zapína ladiace výpisy. Výrazne zvýši počet informácii o chode komunikácie. Odporúčame zapínať iba pri detekcii problémov a ladení komunikácie.YES/NONO
Merz OPC Server Type
Špeciálny mód pre komunikáciu s OPC servermi firmy Merz. Pre hodnoty typu TiA a ToA sa používa konverzia z/do formátu "MS DOS Date Time Format" (2 x WORD).YES/NONO
AddItems Delay
Oneskorenie umelo vkladané medzi volania AddItems na spomalenie inicializačnej fázy.ss:mss0
QERR Value
Celočíselná hodnota stavu "ERROR" pre prevod do štvorstavového vstupu Qi.0,1,2,33
QOFF Value
Celočíselná hodnota stavu "OFF" pre prevod do štvorstavového vstupu Qi.0,1,2,32
QON Value
Celočíselná hodnota stavu "ON" pre prevod do štvorstavového vstupu Qi.0,1,2,31
QTRANS Value
Celočíselná hodnota stavu "TRANS" pre prevod do štvorstavového vstupu Qi.0,1,2,30
Keep Values Valid as Weak
Ak dôjde ku zmene kvality OPC itemu na "BAD", hodnota meraného bodu zostane platná (valid) s príznakom "Weak".YES/NONO
Don't Repeat Failed AddItems
Zablokuje opakované pokusy volania AddItems po jeho zlyhaní.YES/NONO
Do AddItems in Single Call
Aktivácia všetkých položiek skupiny jedným volaním AddItems. Môže zrýchliť štart OPC komunikácie.YES/NONO
Transaction Timeout
Všetky volania funkcii "Write" a "Refresh2" sú evidované ako samostatné transakcie. Ak nie sú ukončené (úspešne či neúspešne) do tohto timeoutu, je o tom užívateľ informovaný chybovým hlásením v trace súbore komunikácie.sec120
Reconnect/Reinitialisation Delay
Timeout, ktorým sa oneskorujú opakovania zlyhaných operácii:


  • vytvorenie skupiny AddGroup,
  • vytvorenie položky AddItems (pozri tiež parameter protokolu SA),
  • opakované pripojenie na OPC Server po jeho zastavení, páde alebo sieťovom odpojení,
  • vytváranie skupín a položiek po opakovanom pripojení na OPC Server.
sec5
Do Sync Read Before Write If Unk. Type
Povolenie vykonania synchrónneho čítania hodnoty položky pred zápisom v prípade, že KOM proces nevie správny dátový typ položky (to zn., že v prípade implicitnej hodnoty dátového typu "Empty/Default (VT_EMPTY)" je nutné vykonať zápis hodnoty).YES/NOYES
Status Item Name
Adresa OPC Itemu (OPC Item ID), ktorý obsahuje chybový stav OPC servera resp. konkrétnej OPC grupy (napr. v závislosti od stavu komunikácie). Musí existovať aj meraný bod s touto adresou.
Ak stav indikuje chybu, ovplyvní to hodnoty všetkých meraných bodov na stanici (budú mať príznak Weak). O tom, aká hodnota zodpovedá chybovému stavu, hovorí parameter Status Item Inverted Operation
--
Status Item Inverted Operation
Interpretácia hodnoty OPC Itemu Status Item Name s chybovým stavom OPC servera alebo OPC grupy.
Hodnota NO znamená, že hodnoty False resp. 0 znamenajú korektný stav a True resp. nenulová chybu .
Hodnota YES znamená, že hodnoty False resp. 0 znamenajú chybový stav a True resp. nenulová korektný stav.
YES/NONO
Map NonSpecific as Flag
Mapovanie OPC DA príznaku kvality Non Specific do atribútov hodnoty meraného bodu.None, FA, FB, FC, FD, FE, FF, FG, FH, FI, FJ, FK, FL, FM, FN, FO, FPNone
Map LocalOverride as Flag
Mapovanie OPC DA príznaku kvality LocalOverride do atribútov hodnoty meraného bodu.
Map ConfigError as Flag
Mapovanie OPC DA príznaku kvality Config Error do atribútov hodnoty meraného bodu.
Map NotConnected as Flag
Mapovanie OPC DA príznaku kvality Not Connected do atribútov hodnoty meraného bodu.
Map DeviceFailure as Flag
Mapovanie OPC DA príznaku kvality Device Failure do atribútov hodnoty meraného bodu.
Map SensorFailure as Flag
Mapovanie OPC DA príznaku kvality Sensor Failure do atribútov hodnoty meraného bodu.
Map LastKnown as Flag
Mapovanie OPC DA príznaku kvality Last Known do atribútov hodnoty meraného bodu.
Map CommFailure as Flag
Mapovanie OPC DA príznaku kvality Comm Failure do atribútov hodnoty meraného bodu.
Map OutOfService as Flag
Mapovanie OPC DA príznaku kvality Out Of Service do atribútov hodnoty meraného bodu.
Map WaitingForInitData as Flag
Mapovanie OPC DA príznaku kvality Waiting For Initial Data do atribútov hodnoty meraného bodu.
Map LastUsable as Flag
Mapovanie OPC DA príznaku kvality Last Usable do atribútov hodnoty meraného bodu.
Map SensorCal as Flag
Mapovanie OPC DA príznaku kvality Sensor Cal do atribútov hodnoty meraného bodu.
Map EGUExceeded as Flag
Mapovanie OPC DA príznaku kvality EGU Exceededdo atribútov hodnoty meraného bodu.
Map SubNormal as Flag
Mapovanie OPC DA príznaku kvality Sub Normaldo atribútov hodnoty meraného bodu.
Reconnect After Error Count
Pokiaľ dôjde pri čítaní hodnôt k počtu chýb po sebe rovnému hodnote parametra, dôjde k reinicializácii OPC spojenia. Nulová hodnota parametra znamená, že reinicializácia sa nevykoná (prednastavené správanie). Aktuálna implementácia rieši iba výpadky v synchrónnom móde (nastavenie typu na "Synchronous I/O" v záložke Adresa objektu Stanica).-0

Konfigurácia meraných bodov


Možné typy hodnôt bodov: Ai, Ao, Ci, Co, Di, Qi, Dout, TiA, ToA, TiR, ToR, TxtI, TxtO.

Adresa meraného bodu vyžaduje zadať “OPC Item ID” (string max. 200 znakov). Ak OPC server podporuje rozhranie IOPCBrowseServerAddressSpace, je možné si vybrať adresu OPC Item ID priamo zo zoznamu adries, ktoré OPC server podporuje priamo po stlačení tlačidla "Browse Items...", viď kapitolu Prehľadávanie adresného priestoru OPC servera.
Pozn: ak sa zadá adresa meraného bodu ako %IGNORE, takýto meraný bod bude ignorovaný.

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

Protokol podporuje konfiguráciu záložky Cieľový stĺpec meraného bodu. Ak je hodnota OPC itemu typu "Array", tak komunikačný protokol kopíruje hodnoty poľa od nakonfigurovanej položky "Array Index" vyššie do stĺpca štruktúrovanej premennej. Prihliada sa na rozmer štruktúrovanej premennej. Ak je načítaný "array" VARIANT menší ako počet riadkov štruktúrovanej premennej, tak sa nevyplnené riadky stĺpca štruktúrovanej premennej nastavia do hodnoty "Invalid". Ak je naopak počet riadkov štruktúrovanej premennej menší ako načítaný "array" VARIANT, sú hodnoty, ktoré sa do štruktúrovanej premennej nezmestia, ignorované.

Prehľadávanie adresného priestoru OPC servera


Po stlačení tlačidla "Browse Items..." v záložke Adresa meraného bodu sa zobrazí dialóg "OPC Item Browser" pre výber položiek z adresného priestoru OPC servera.

OPC Item Browser

Zobrazenie môže mať formu "Hierarchical" alebo "Flat". Niektoré OPC servery nemusia podporovať "Hierarchical" formu zobrazovania adresného priestoru OPC položiek. Vtedy je tlačidlo "Hierarchical" zakázané. Ak OPC server podporuje obe formy zobrazenia položiek, je možné sa medzi nimi prepínať.

OPC Item ID vyberiete dvojitým kliknutím na položku. Vybratá položka sa prenesie do poľa OPC Item ID v záložke Adresa meraného bodu a okno "OPC Item Browser" sa zatvorí. Ak si užívateľ nepraje zmeniť OPC položku, okno "OPC Item Browser" sa zavrie stlačením tlačidla "Návrat".

Filtrovacie možnosti prehľadávania adresného priestoru OPC servera sú v hornej časti okna "OPC Item Browser". Textový filter "Filter" zobrazí len položky vyhovujúce zadanej textovej maske (niektoré OPC servery podporujú tzv. hviezdičkovú konvenciu). Filter "Data Type Filter" zobrazí len položky s vyhovujúcim dátovým typom. Voľba "Empty/Default" je implicitná a povoľuje zobrazenie všetkých položiek. Pri zadaní filtračných podmienok "Filter" a "Data Type Filter" je nutné vybrať, či sa filter má vzťahovať na hierarchickú stromovú štruktúru (zaškrtávacie políčko "Apply to the branches", iba pri hierarchickom zobrazení) alebo aj na vlastné OPC položky (zaškrtávacie políčko "Apply to the items").

Podľa prístupových práv je možné zobrazovať iba položky na čítanie (zaškrtávacie políčko "Browse readable items") alebo na zápis (zaškrtávacie políčko "Browse writeable items"). Implicitne sú povolené obe možnosti pre zobrazenie položiek bez obmedzenia.

Po akejkoľvek zmene filtračných podmienok je nutné stlačiť tlačidlo "Refresh" pre ich aktiváciu.

Kopírovanie tagov

Klávesová skratka Ctrl+C skopíruje zoznam zobrazených tagov (v aktuálnej vetve) do schránky Windows (clipboardu). Pokiaľ je vyznačený konkrétny tag, skopíruje sa iba ten.

Klávesová skratka Ctrl+Shift+C skopíruje názvy tagov vo všetkých prejdených vetvách do schránky Windows (clipboardu).

Pozn: vo verziách z 20.12.2018 a novších bolo implementované recyklovanie prehliadacieho dialógu. Pokiaľ je dialóg zavretý tlačidlom Návrat alebo po výbere tagu, v skutočnosti je iba skrytý a je k dispozícii pre browsovanie iného meraného bodu v rámci tej istej stanice, takže sa zachováí stromová štruktúra prehliadaných objektov. Kliknutie na krížik vpravo hore spôsobí skutočné zavretie dialógu.

Čítanie historických údajov


Implementácia protokolu podporuje čiastočne špecifikáciu OPC HDA (Historical Data Access). Podporené je synchrónne čítanie "raw" údajov. Čítanie archívnych údajov je možné odštartovať TELL príkazom GETOLDVAL. Pre plynulé čítanie historických hodnôt, spolu s aktuálnymi údajmi, odporúčame nastaviť asynchrónny typ prístupu IOPCAsyncIO módu pre OPC DA.

Tell príkazy


Tab. č. 3

PríkazSyntaxPopis
STWATCHSTWATCH MenoStaniceTell príkaz pošle na stanicu príkazy na synchrónne vyčítanie hodnôt jednotlivých meraných bodov (bez ohľadu na to, či je typ prístupu k dátam “Async I/O 2.0”, "Async I/O 3.0" alebo “Synchronous I/O”)
STCOMMANDSTCOMMAND MenoStanice DISCONNECTTell príkaz vykoná okamžité uzatvorenie aktívneho OPC spojenia linky (rodiča stanice "MenoStanice"). Následne je vykonaný reštart a reinicializácia spojenia. V prípade, že je použitý vzdialený (remote) prístup a nakonfigurovaný backup OPC host, vykoná sa výmena serverov ("OPC Host" za "Backup Host" alebo naopak).
STCOMMAND MenoStanice CONNECT_PSUzatvorenie aktívneho OPC spojenia a vynútenie pripojenia na primárny OPC server "OPC Host". Má praktický význam iba v prípade vzdialeného (remote) typu prístupu.
STCOMMAND MenoStanice CONNECT_BSUzatvorenie aktívneho OPC spojenia a vynútenie pripojenia na záložný OPC server "Backup Host". Má praktický význam iba v prípade vzdialeného (remote) typu prístupu.

Tell príkazy


PríkazSyntaxPopis

STWATCH MenoStaniceTell príkaz pošle na stanicu príkazy na vyčítanie hodnôt jednotlivých meraných bodov.


Konfigurácia DCOM pre pripojenie sa ku vzdialenému (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 rozhranie pomocou utility OPCENUM (remote browsing). Ak je na oboch stranách (lokálne PC s D2000 KOM procesom ako OPC klientom a na vzdialenom PC s OPC serverom) 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.

V prípade výskytu chyby (viď kapitolu “Výpis COM/OPC chýb”):

ERROR: OPCServerName caused COM/OPC error 80040153H on CoCreateInstanceEx(IID_OpcServerList), Error string : Invalid value for registry

je nutné nainštalovať balík "OPC Core Components Redistributable" aj na strane OPC klienta, t.j. KOM procesu. 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 sa dodávajú 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 OPC 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:
    1. 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.
    2. Odštartujte v tomto adresári príkazový riadok.
    3. 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. Ak je OPC server iba ako .dll, použite systémovú utilitu regsvr32. 
    4. Pomocný adresár a všetky súbory 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 hore uvedenými postupmi.


Nastavenie prístupových práv k OPC serveru

Keďže štandard OPC DA používa technológiu COM/DCOM, pripojenie sa ku vzdialenému OPC serveru podlieha kontrole prístupových práv operačného systému Windows. Na lokálnom (t.j. OPC klient) aj vzdialenom (t.j. OPC Server) počítači 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ý (pri online testovaní štartovaním KOM procesu na príkazovom riadku) alebo musí byť KOM proces, bežiaci ako "Windows service", odštartovaný pod účtom tohto užívateľa (viď ďalej).

Na strane OPC servera musí mať tento užívateľ určité práva, preto postupujte podľa tohto návodu:

  1. Na príkazovom riadku, na počítači, kde je nainštalovaný OPC server, odštartujte konfiguračný nástroj "Component Services" (v zložke "Administrative Tools" alebo odštartovaním príkazu “dcomcnfg” na príkazovom riadku).
  2. Vyberte "Component Services" -> "Computer"  -> "My Computer", vyberte menu "Properties".
  3. Skontrolujte, či je povolený DCOM zaškrtnutím voľby “Enable Distributed COM on this computer” v záložke "Default Properties".
  4. V záložke "COM Security" skontrolujte limity pre "Access Permissions" a "Launch and Activation Permissions". Stlačte "Edit Limits..." a overte DCOM prístupové práva pre vášho užívateľa, prípadne pre skupinu užívateľov "Distributed COM Users". Overte povolenie "Remote Access", "Remote Launch" a "Remote Activation". Pozor, toto sú limitné nastavenia. Nastavenia "Security" na konkrétnej komponente nemôžu prekonať nastavenie "COM Security" limít, aj keď to je možné tak nakonfigurovať.
  5. Skontrolujte, či je užívateľ členom skupiny (User Group) "Distributed COM Users". Otvorte "Control Panel" -> "Administrative tools" -> "Computer Management" -> "Local Users and Groups" -> "Groups" a nájdite skupinu "Distributed COM Users". Ak užívateľ, pod ktorým pristupujete na OPC server nie je v tejto skupine, pridajte ho do nej.
  6. V zozname komponentov (vetva "DCOM Config" pod "My Computer") nájdite požadovaný OPC server a otvorte okno jeho parametrov (menu “Properties”). Otvorte záložku “Security”.
  7. Prepnite “Launch And Activation Permissions” na “Customize” a kliknite na tlačidlo “Edit...”.
  8. Skontrolujte, či sa v zozname nachádza požadovaný užívateľ, prípadne skupina užívateľov "Distributed COM Users" a ak nie, pridajte ho.
  9. Povoľte voľby "Remote Launch" a "Remote Activation".
  10. To isté urobte aj pre “Access Permissions”.
  11. V záložke "Identity" skontrolujte, či je nastavená voľba "The launching user" alebo "This user" a vtedy aj uvedený užívateľský účet, ktorý konfigurujeme. Bežne odporúčame nastavenie "The launching user", v prípade problémov skúste priame nastavenie "This user". V každom prípade pozor na nastavenie "The interactive user", toto krajne neodporúčame! Vtedy je totiž OPC server dostupný a odštartovaný iba v prípade, ak je nejaký užívateľ na stroji s OPC serverom interaktívne prihlásený. Toto nastavenie vedie ku problémom nedostupnosti OPC servera napr. po jeho reštarte, kým nie je žiaden užívateľ prihlásený.
  12. V prípade nutnosti používať nastavenie "The system account (services only)", t.j. kedy OPC server funguje ako Windows service, sledujte úroveň prístupových práv užívateľa "SYSTEM" podľa hore uvedených pravidiel.

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

|E|> 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 OPC server sa odštartuje 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 prípade, že KOM proces sa štartuje ako "Windows service", nesmie používať štartovacie parametre "/X1" alebo "/X2", pretože potom nefunguje v kontexte požadovaného užívateľa, ale pod tzv. "SYSTEM account" a overenie prístupových práv OPC serverom zlyhá. Použite preto štartovací parameter "/X4".

Ak používate štartovací parameter /X4 a KOM proces sa nedá odštartovať, skontrolujte, či je užívateľ zahrnutý do Policy "Log on as a service". Otvorte "Control Panel" -> "Administrative Tools" -> "Local Security Policy" -> "Local Policies" -> "User Rights Assignment" -> "Log on as a service".

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

V prípade, že sa vyskytne podobná chyba ako táto:

|E|> ERROR: ServerName caused COM/OPC error 80070005H on Advise(IID_IOPCDataCallback), Error string : E_ACCESSDENIED Access is denied.

je nutné pridať užívateľa, v kontexte ktorého komunikácia prebieha, v nástroji "Component Services" na počítači s OPC klientom (KOM proces) do zoznamu užívateľov v záložke "COM Security" -> "Edit Limits" v oboch parametroch "Access Permissions" aj "Launch and Activation Permissions" a povoliť "Remote Access" / "Remote Activation". Ide o problém s nadviazaním call-back spojenia s OPC serverom a v takom prípade sú role obrátené a OPC klient (t.j. KOM proces) figuruje ako DCOM server. Pridaním tohto užívateľa a povolením diaľkového prístupu umožníme nadviazanie call-back procedúr medzi OPC klientom a OPC serverom. Call-back procedúry sú nutné pre získavanie hodnôt z OPC servera v asynchrónnom režime “Async I/O 2.0” a “Async I/O 3.0”.

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


V konkrétnom prípade na sfunkčnenie OPC komunikácie bolo vyžadované:

  • DCOM nastavenie OPC servera OPC.SimaticNET - v záložke Identity musela byť nastavená voľba "This user" (napr. užívateľ D2000). Ak bolo nastavené "The launching user", pripájanie sa k OPC serveru skončilo na timeoute (zo strany D2000 KOM alebo Matricon OPC Explorera), hoci bolo vidieť v Task Manageri, že OPC server (opcdaserver.exe) sa pod daným uživateľom spustil.
  • užívateľ, pod ktorým bežal OPC server (napr. užívateľ D2000) musel byť v skupinách "Distributed COM Users" a Administrators. Ak nebol užívateľ administrátor, KOM vypisoval chybu CoCreateInstanceEx(CLSCTX_REMOTE_SERVER), Error string : Class not registered).

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:WriteAsync - FAILED (transactionID) - Item :'OPCItemID'
Popis:Zlyhal pokus o zápis hodnoty volaním funkcie “Write” OPC rozhrania “IOPCAsyncIO2”.
Chyba:ShutDown OPC DA Server : 'ServerProgID' !
Popis:OPC server bol zastavený, pravdepodobne korektným spôsobom aj napriek tomu, že má aktívnych klientov.
Chyba:OPC DA 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:SetCallBack - FAILED, Group : 'OPCGroupName', Server: 'ServerProgID' !
Popis:Fatálny problém, nepodarilo sa inicializovať call-back procedúry OPC rozhrania “OPCDataCallback” pre túto OPC grupu. Kontaktujte technickú podporu firmy Ipesoft.
Chyba:SetGroupState - FAILED, Group : 'OPCGroupName',Server : 'ServerProgID' !
Popis:Fatálny problém, zlyhalo volanie funkcie “SetState” OPC rozhrania “IOPCGroupStateMgt”. Kontaktujte technickú podporu firmy Ipesoft.
Chyba:EnableSubscribe - FAILED, Group : 'OPCGroupName', Server : 'ServerProgID' !
Popis:Fatálny problém, zlyhalo volanie funkcie “SetEnable” OPC rozhrania “IOPCAsyncIO2”. Kontaktujte technickú podporu firmy Ipesoft.
Chyba:RefreshAllAsync - FAILED, Group : 'OPCGroupName', Server : 'ServerProgID' !
Popis:Fatálny problém, zlyhalo volanie funkcie “Refresh2” OPC rozhrania “IOPCASyncIO2”. Kontaktujte technickú podporu firmy Ipesoft.
Chyba:OPCConnectToServer - FAILED, Server : 'ServerProgID' !
Popis:Fatálny problém, nedá sa pripojiť ku OPC serveru. Skontrolujte dôkladne nastavenia OPC parametrov na linke (záložka “OPC”) a staniciach (záložka “Adresa”).
Chyba:OPCAddGroup - FAILED, Group : 'OPCGroupName', Server : 'ServerProgID' !
Popis:Nepodarilo sa vytvoriť OPC grupu volaním funkcie “AddGroup” OPC rozhrania “IOPCServer”. Fatálny problém, kontaktujte technickú podporu firmy Ipesoft.
Chyba:ReadSync - FAILED, Item : 'OPCItemID' !
Popis:Zlyhalo volanie “Read” OPC rozhrania “IOPCSyncIO”.
Chyba:AddItems - FAILED (Group not connected), Item : 'OPCItemID' !
Popis:Nepodarilo sa inicializovať OPC item, pretože predtým zlyhalo vytvorenie OPC grupy. Kontaktujte technickú podporu firmy Ipesoft.
Chyba:Write - FAILED (transactionID) , Item : 'OPCItemID' !
Popis:Zlyhal zápis hodnoty do OPC servera. Zápis je realizovaný volaním “Write” OPC rozhrania “IOPCSyncIO” alebo “IOPCAsyncIO2” podľa nastaveného typu prístupu k dátam “Type” OPC grupy.
Chyba:Write - FAILED, OPC Server is disconnected, Item : 'OPCItemID' !
Popis:Zápis hodnoty do OPC servera sa nemohol realizovať, pretože OPC server nie je pripojený.
Chyba:Group parameters error, Group: 'OPCGroupName', Server : 'ServerProgID' !
Popis:Konfiguračné parametre OPC grupy sú chybné. Skontrolujte dôkladne nastavenie OPC parametrov na príslušnej stanici (záložka “Adresa”).


Výpis COM/OPC chýb

Chybové hlásenia v kapitole “Chyby a problém” 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:

WARNING: Matrikon.OPC.Simulation.1 caused COM/OPC error 80010108H on IOPCGroupStateMgt::GetState(), Error string : The object invoked has disconnected from its clients.

ERROR: Matrikon.OPC.Simulation.1 caused COM/OPC error 800706BAH on IOPCSyncIO::Read(), Error string : The RPC server is unavailable.

Tieto chybové hlásenia sú dôležité pre analýzu problému a v prípade problémov ich bude požadovať technická podpora 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