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
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.
Kategória komunikačnej linky: OPC Client.
Parametre OPC:
Pre protokol "OPC Historical Data Access 1.20 Client" je možné konfigurovať nasledovné globálne parametre protokolu linky:
Názov | Popis | Jednotka | Náhradná hodnota |
---|---|---|---|
Authentication Level | Úroveň autentifikácie použitá pri vytváraní spojenia na OPC server. OPC štandard definuje tieto úrovne:
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 |
Komunikačný protokol: OPC Historical Data Access 1.20.
Tento komunikačný protokol nevyžaduje zadávanie žiadnych adresných parametrov pre stanicu.
Môžu byť konfigurované nasledovné parametre protokolu stanice:
Tab. č. 1
Kľúčové slovo | Plný názov | Popis | Jednotka | Náhradná hodnota |
---|---|---|---|---|
FULL_DEBUG | Full Debug | Zapí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/NO | NO |
RCD | Reconnect/Reinitialisation Delay | Oneskorenie po zlyhaných operáciách:
| sec | 5 |
BNDS | Include Bounds | Nastavuje 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/NO | NO |
ASM | Async Mode | Nastavuje asynchrónny mód činnosti pri čítaní údajov. Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov. | YES/NO | NO |
NVAL | Maximum number of values | Nastavuje 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é číslo | 0 |
RINTR | Resample Interval | Nastavuje 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:ss | 60 sec |
UINTR | Update Interval | Nastavuje hodnotu parametra "UpdateInterval" vo volaniach "AdviseRaw" a "AdviseProcessed". Viď kapitolu Nastavenie správnej stratégie pre čítanie údajov. | ss.mss | 1 sec |
QERR | QERR Value | Celočíselná hodnota stavu "ERROR" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 3 |
QOFF | QOFF Value | Celočíselná hodnota stavu "OFF" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 2 |
QON | QON Value | Celočíselná hodnota stavu "ON" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 1 |
QTRANS | QTRANS Value | Celočíselná hodnota stavu "TRANS" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 0 |
OPCHQED | Map ExtraData as flag | Mapovanie 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, FP | None |
OPCHQIN | Map Interpolated as flag | Mapovanie OPC HDA príznaku kvality Interpolated do atribútov hodnoty meraného bodu. | ||
OPCHQRA | Map Raw as flag | Mapovanie OPC HDA príznaku kvality Raw do atribútov hodnoty meraného bodu. | ||
OPCHQCA | Map Calculated as flag | Mapovanie OPC HDA príznaku kvality Calculated do atribútov hodnoty meraného bodu. | ||
OPCHQNB | Map NoBound as flag | Mapovanie OPC HDA príznaku kvality No Bound do atribútov hodnoty meraného bodu. | ||
OPCHQND | Map NoData as flag | Mapovanie OPC HDA príznaku kvality No Data do atribútov hodnoty meraného bodu. | ||
OPCHQDL | Map DataLost as flag | Mapovanie OPC HDA príznaku kvality Data Lost do atribútov hodnoty meraného bodu. | ||
OPCHQCO | Map Conversion as flag | Mapovanie OPC HDA príznaku kvality Conversion do atribútov hodnoty meraného bodu. | ||
OPCHQPA | Map Partial as flag | Mapovanie OPC HDA príznaku kvality Partial do atribútov hodnoty meraného bodu. | ||
OPCQFNS | Map NonSpecific as flag | Mapovanie OPC DA príznaku kvality Non Specific do atribútov hodnoty meraného bodu. | ||
OPCQFLO | Map LocalOverride as flag | Mapovanie OPC DA príznaku kvality LocalOverride do atribútov hodnoty meraného bodu. | ||
OPCQFCE | Map ConfigError as flag | Mapovanie OPC DA príznaku kvality Config Error do atribútov hodnoty meraného bodu. | ||
OPCQFNC | Map NotConnected as flag | Mapovanie OPC DA príznaku kvality Not Connected do atribútov hodnoty meraného bodu. | ||
OPCQFDF | Map DeviceFailure as flag | Mapovanie OPC DA príznaku kvality Device Failure do atribútov hodnoty meraného bodu. | ||
OPCQFSF | Map SensorFailure as flag | Mapovanie OPC DA príznaku kvality Sensor Failure do atribútov hodnoty meraného bodu. | ||
OPCQFLK | Map LastKnown as flag | Mapovanie OPC DA príznaku kvality Last Known do atribútov hodnoty meraného bodu. | ||
OPCQFCF | Map CommFailure as flag | Mapovanie OPC DA príznaku kvality Comm Failure do atribútov hodnoty meraného bodu. | ||
OPCQFOOS | Map OutOfService as flag | Mapovanie OPC DA príznaku kvality Out Of Service do atribútov hodnoty meraného bodu. | ||
OPCQFWID | Map WaitingForInitData as flag | Mapovanie OPC DA príznaku kvality Waiting For Initial Data do atribútov hodnoty meraného bodu. | ||
OPCQFLU | Map LastUsable as flag | Mapovanie OPC DA príznaku kvality Last Usable do atribútov hodnoty meraného bodu. | ||
OPCQFSC | Map SensorCal as flag | Mapovanie OPC DA príznaku kvality Sensor Cal do atribútov hodnoty meraného bodu. | ||
OPCQFEGUE | Map EGUExceeded as flag | Mapovanie OPC DA príznaku kvality EGU Exceeded do atribútov hodnoty meraného bodu. | ||
OPCQFSN | Map SubNormal as flag | Mapovanie OPC DA príznaku kvality Sub Normal do atribútov hodnoty meraného bodu. |
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ú:
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:
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".
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:
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.
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") |
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. |
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.
Dokumenty OPC Foundation, ktoré je možné získať na lokalite http://www.opcfoundation.org/.
Iné: