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í
...
| Názov | Popis | Jednotka | Ná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 |
seqtseqtSequenced TransactionsAuthentication 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)". Odporúčané hodnoty pri použití DCOM (komunikácia so vzdialeným OPC serverom) sú RPC_C_AUTHN_LEVEL_PKT_INTEGRITY (5) a RPC_C_AUTHN_LEVEL_PKT_PRIVACY (6). | - | 2 |
| 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 | 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/NO | NO | | Kotva |
|---|
rfga | rfga | Repeat Failed Group ActivationOpakovanie zlyhaných operácií aktivácie OPC grupy po čase určenom parametrom "Group reactivation delay". | YES/NO | YES | | Kotva |
|---|
gracd | gracd | 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". | sec | 30 | | Kotva |
|---|
| rfgx | rfgx | Reconnect After Failed Group ActivationPo 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/NO | NO |
| 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. | sec | 10 | Repeat Failed Group Activation | Opakovanie zlyhaných operácií aktivácie OPC grupy po čase určenom parametrom "Group reactivation delay". | YES/NO | YES |
| Čas, po ktorom je opakovaná neúspešná aktivácie OPC grupy, pokiaľ je zapnuté opakovanie aktivácie parametrom "Repeat failed group activation". | sec | 30 |
Reconnect After Failed Group Activation | Po zlyhaní operácií aktivácie OPC grupy | Kotva |
|---|
| aagde | aagde | Accept All GetGroupState ErrorsPovaž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. 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/NO | NO |
| 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. | sec | 10 |
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 , 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/NO | NO |
Stop KOM When OPC Server Fails | Pri fatálnej chybe v komunikácii povoľuje zastaviť celý KOM proces. Viď poznámku. | YES/NO | NO |
| 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/NO | NO |
| Parameter spôsobí, že prvá hodnota každého meraného bodu prijatá po pripojení sa na OPC server je ignorovaná, pokiaľ je neplatná (má status 'BAD'). Tento parameter bol implementovaný kvôli potlačeniu neželaného správania OPC.SimaticNET servera. | YES/NO | NO |
Poznámka: Za fatálne zlyhanie komunikácie s OPC Serverom sa považujú COM/OPC chyby pri volaniach:
...
| Názov | Popis | Jednotka | Náhradná hodnota |
|---|
| Povoľuje vykonávať overenie hodnoty po zápise synchrónnym čítaním. | YES/NO | NO |
| Povoľuje vykonávať zápisy do OPC Servera vždy iba synchrónnym rozhraním "IOPCSyncIO2". | YES/NO | NO |
| 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/NO | NO |
| 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/NO | NO |
| Š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/NO | NO |
| Oneskorenie umelo vkladané medzi volania AddItems na spomalenie inicializačnej fázy. | ss:mss | 0 |
| Celočíselná hodnota stavu "ERROR" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 3 |
| Celočíselná hodnota stavu "OFF" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 2 |
| Celočíselná hodnota stavu "ON" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 1 |
| Celočíselná hodnota stavu "TRANS" pre prevod do štvorstavového vstupu Qi. | 0,1,2,3 | 0 |
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/NO | NO |
Don't Repeat Failed AddItems | Zablokuje opakované pokusy volania AddItems po jeho zlyhaní. | YES/NO | NO |
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/NO | NO |
| 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. | sec | 120 |
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.
| sec | 5 |
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/NO | YES |
| 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/NO | NO |
| 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, FP | None |
Map LocalOverride as Flag | Mapovanie OPC DA príznaku kvality LocalOverride do atribútov hodnoty meraného bodu. |
| Mapovanie OPC DA príznaku kvality Config Error do atribútov hodnoty meraného bodu. |
| 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. |
| Mapovanie OPC DA príznaku kvality Last Known do atribútov hodnoty meraného bodu. |
| Mapovanie OPC DA príznaku kvality Comm Failure do atribútov hodnoty meraného bodu. |
| 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. |
| Mapovanie OPC DA príznaku kvality Last Usable do atribútov hodnoty meraného bodu. |
| Mapovanie OPC DA príznaku kvality Sensor Cal do atribútov hodnoty meraného bodu. |
| Mapovanie OPC DA príznaku kvality EGU Exceededdo atribútov hodnoty meraného bodu. |
| 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 |
...
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ý.
...
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 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.
...
| Príkaz | Syntax | Popis |
|---|
| STWATCH | STWATCH MenoStanice | Tell 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”) |
| STCOMMAND | STCOMMAND MenoStanice DISCONNECT | Tell 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_PS | Uzatvorenie 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_BS | Uzatvorenie 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. |
...
Konfigurácia DCOM pre pripojenie sa ku vzdialenému (remote) OPC serveru...
Remote
...
Remote browsing/lokálna registrácia OPC servera
...
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.
...
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”.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”.
| Info |
|---|
| title | Poznámka o Windows security hardeningu |
|---|
|
V dôsledku Microsoft security updates (napr. KB5004442) po aplikovaní aktualizácií prestáva fungovať OPC komunikácia. Niekedy nepomáha ani nastaviť parameter Authentication Level. Napr. keď je D2000 KOM na opatchovanom/novom Windows (napr. Windows 11) a OPC server na neopatchovanom/starom Windows (napr. Windows XP, pre ktorý patche ani neexistujú), tak pri nakonfigurovaní asynchrónnej komunikácie dochádza k chybám typu ERROR: MetsoAutomation.XDOPCServer2.6 caused COM/OPC error 80070005H on Advise(IID_IOPCDataCallback), Error string : E_ACCESSDENIED Access is denied.
pričom vo Windows system logu sú hlášky ako:
The server-side authentication level policy does not allow the user SRV-KOM1\testuser SID (S-1-5-21-776983252-1896133985-1590337295-1001) from address 10.12.1.50 to activate DCOM server. Please raise the activation authentication level at least to RPC_C_AUTHN_LEVEL_PKT_INTEGRITY in client application. Riešením podľa Microsoftu je aktualizácia/reinštalácia starého Windows. |
| Info |
|---|
| title | Poznámka o OPC.SimaticNET 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"). |
...
- 3. jan. 2003 - pridaný parameter UPDATE_RATE, polia hodnôt.
- 23. jan. 2004 – prepracované parametre grupa/item, chybové hlásenia a DCOM.
- 22. nov. 2005 - pridané nové parametre protokolu.
- 10.okt. 2007 - aktualizácia parametrov protokolu, Async I/O 3.0.
- 3. dec. 2007 - doplnené informácie o cieľovom stĺpci.
- mar. 2009 - doplnená podpora HDA.
- feb. 2010 - doplnený OPC Item browsing.
- mar. 2013 - doplnené tell príkazy.
- júl 2021 - doplnená podpora pre prácu so 64-bitovým INT / UINT
Revízie dokumentu
...
- Ver. 1.0 – 9. feb. 2000
- Ver. 1.1 - 3. jan. 2002
- Ver. 1.2 - 23. jan. 2004
- Ver. 1.3 - 22. nov. 2005
- Ver. 1.4 - 10. okt. 2007
- Ver. 1.5 - 3. dec. 2007
- Ver. 1.6 - 13. mar. 2008
- Ver. 1.7 - 8. feb. 2010
- Ver. 1.8 - 5. mar. 2013
- Ver. 1.9 - 16. júl 2021
- Ver. 1.10 - 7. feb. 2021 - pridaný parameter "Authentication Level"
...