...
Protokol OPC UA je ďalšou generáciou OPC štandardu, ktorý poskytuje kohézny, bezpečný a spoľahlivý platformovo nezávislý rámec pre prístup k realtime dátam. Hlavný rozdiel oproti predchádzajúcim verziám OPC štandardu spočíva v tom, že namiesto COM/DCOM technológie na medziprocesnú komunikáciu je použitá TCP/IP komunikácia. Daný protokol podporuje dva typy kódovania dát (binárne kódovanie a XML). Doterajšia implementácia OPC klienta zatiaľ podporuje iba binárne kódovanie.
Kotva |
---|
| zakladne_pojmy |
---|
| zakladne_pojmy |
---|
|
Základné pojmy
...
Endpoint: fyzická adresa na sieti, ktorá dovoľuje klientovi pristupovať k jednej alebo viacerým službám poskytovaných serverom.
Session: možno chápať ako abstraktné spojenie OPC UA servera a klienta na aplikačnej vrstve OSI vrstvy.
Kotva |
---|
| monitoreditem |
---|
| monitoreditem |
---|
|
Monitored item: klientsky zadefinovaná entita na OPC UA serveri používaná na monitorovanie hodnôt.
Subscription: klientsky zadefinovaný objekt na OPC UA serveri používaný na vracanie notifikácii o zmene
monitorovaných itemoch....
Počas inicializácie komunikácie dochádza medzi klientom a serverom k výmene niekoľkých správ. V prípade binárneho kódovania je prvá správa, ktorú klient odošle serveru "Hello Message". V nej klient navrhne serveru veľkosti prijímacích a odosielacích buffrov a maximálne veľkosti správ, ktoré môžu byť počas TCP komunikácie vymieňané. Taktiež v nej zadefinuje URL adresu endpointu. Server mu odpovie "Acknowledge message", v ktorej navrhnuté parametre potvrdí alebo upraví podľa svojich limitov.
Ďalšia správa, ktorá je odoslaná klientom je "OpenSecureChannel message". Ňou sa klient snaží vytvoriť komunikačný kanál, po ktorom budú vymieňané dáta. V rámci výmeny tejto správy sa klient so serverom dohodnú, či sa použije režim podpisovania a kryptovania alebo iba nekryptovaný režim. Implementácia OPCUA klienta v D2000 podporuje iba nekryptovaný režim.
Po vytvorení komunikačného kanálu môže klient poslať správu na vytvorenie session, "CreateSession Message", teda spojenia na úrovni aplikačnej vrstvy OSI modelu. Po úspešnom potvrdení žiadosti serverom je potrebné session aktivovať správou "ActivateSession Message". V aktivačnej správe sa klient so serverom dohodnú na algoritmoch pre podpisovanie a šifrovanie, teda v prípade, že dané režimy boli zvolené pri vytváraní komunikačného kanálu.
...
Od daného okamihu server v periodických intervaloch nastavených v parametroch subscription informuje klienta o zmenách na monitorovaných objektoch pomocou
Kotva |
---|
| publish_message |
---|
| publish_message |
---|
|
"Publish message" správy. V prípade, že na monitorovaných objektoch nedôjde ku zmene, server raz za (
Requested Max KeepAlive Count *
Requested Publishing Interval) sekúnd pošle
"Publish message", ktorej primárna úloha je oznámiť klientovi, že
subscription je stále aktívna. Podobný kontrolný mechanizmus je urobený taktiež aj na strane klienta
- posiela "Publish message" raz za (Max KeepAlive Count * Publishing Interval). Ak do času (
Requested LifeTime Count *
Requested Publishing Interval)
, klient nepošle
potvrdenie požiadavku "Publish message" / , tak subscription na strane servera zaniká.
Kotva |
---|
| komunikacna_linka |
---|
| komunikacna_linka |
---|
|
Konfigurácia komunikačnej linky
...
Kategória komunikačnej linky: OPC UA Client
Host address: Adresa OPC UA servera. 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").
TCP port: TCP port OPC UA servera (napr. 4840).
EndpointUrl: Adresa endpointu (napr. opc.tcp://localhost:4840)
Encoding type: Typ kódovania použitého pri výmene dát (aktuálne podporované je iba Binary encoding).
Kotva |
---|
| protokol_komunikacna_linka |
---|
| protokol_komunikacna_linka |
---|
|
Konfigurácia protokolu na úrovni komunikačnej linky
...
Názov parametra | Popis | Jednotka | Náhradná hodnota |
---|
Requested Publishing Interval | Parameter určuje Hodnota, v akých časových intervaloch má server poslať informáciu o zmene monitored items v rámci inštancie subscription pomocou "Publish message". Pozn: parameter určuje navrhovanú hodnotu parametra, ktorú OPC UA server môže zmeniť, napr. Bernecker-Rainer vracal vždy hodnotu "Publishing Interval" aspoň 50 ms, hoci požadovaný interval bol menší. | mi:ss.mss | 00:05.000 |
Requested LifeTime Count | Ak do času daného (Requested LifeTime Count * Requested Publishing Interval) nepríde od klienta žiadosť o dáta / subscription zaniká. Je potrebné, aby hodnota tohto parametra bola minimálne 3 krát väčšia, ako hodnota "Requested Max KeepAlive Count". Pozn: parameter určuje navrhovanú hodnotu parametra, ktorú OPC UA server môže zmeniť, napr. Bernecker-Rainer vracal vždy hodnotu "LifeTime Count" maximálne 600, hoci požadovaná hodnota bola väčšia. | Number | 1000 |
Requested Max KeepAlive Count | V prípade, že v objektoch subscription nedôjde ku zmene, server po uplynutí času (Max Notifications Per Publish * Requested Publishing Interval) pošle keep-alive správu, ktorú klient potvrdí tým, že pošle novú žiadosť o dáta. Pozn: parameter určuje navrhovanú hodnotu parametra, ktorú OPC UA server môže zmeniť, napr. Bernecker-Rainer vracal vždy hodnotu "Max KeepAlive Count" maximálne 200, hoci požadovaná hodnota bola väčšia. | Number | 5 |
Max Notifications Per Publish | Parameter udáva maximálny počet notifikácii o zmene objektu, ktorú server môže poslať v jednej "Publish message". Nulový parameter indikuje, že počet notifikácii nie je obmedzený. | Number | 0 |
Publishing Enabled | Parameter zapína/vypína publishing v rámci subscription. | YES/NO | 0 |
Priority | Udáva relatívnu prioritu jednej subscription. V prípade, že server má poslať viac notifikácii, subscription s väčšou prioritou bude uprednostnený. | 0-255 | 0 |
Samples Queue Size | Pomocou tohto parametra je možné pre každý monitorovaný item v subscription vytvoriť na strane servera frontu objektov s danou dĺžkou. | Number | 0 |
...
Názov | Popis | Jednotka | Náhradná hodnota |
---|
ID | Textová reprezentácia identifikátora, ktorá je v závislosti od ID type prekonvertovaná na potrebný natívny typ. | String | |
ID type | Vymenované typy identifikátorov, pomocou ktorých je možné v adresnom priestore OPC UA pristupovať k objektom. Numberic-1B ID: Identifikátor obmedzený na 1-bytovú hodnotu (0-255) Numberic-2B ID: Identifikátor obmedzený na 2-bytovú hodnotu (0-65535) Numberic-4B ID: 4-bytový identifikátor String: Textový identifikátor Guid -16B ID: 16-bytové(128-bit) číslo, ktoré je zvyčajne rozdelené do štyroch častí. Napríklad 3F2504E0-4F89-11D3-9A0C-0305E82C3301. ByteString: Identifikátor reprezentovaný ako sekvencia bytov. | Numeric-1B ID / Numeric-2B ID/ Numeric-4B ID/String/Guid -16B ID/ByteString | Undefined |
Namespace Kotva |
---|
| namespace_index |
---|
| namespace_index |
---|
|
| Číslicový identifikátor menného priestoru OPC UA servera. Každý OPC UA server môže mať N menných priestorov, pričom identifikátor objektu v rámci jedného menného priestoru musí byť jedinečný. | Numeric | |
Variable type | Typy hodnôt objektov, ktoré dokáže OPC UA klient spracovať. Výber Variable type je nutný iba v prípade, že daný meraný bod bude slúžiť na zápis. V prípade čítania hodnoty objektu je informácia o type hodnoty posielaná spolu s hodnotou. | Undefined / Boolean / Byte / SByte / Integer16 / Unsigned16 / Integer32 / Unsigned32 / Integer64 / Unsigned64 / Float / Double / String / UTC Time / Boolean array / Byte array / SByte array / Integer16 array / Unsigned16 array / Integer32 array / Unsigned32 array / Integer64 array / Unsigned64 array / Float array / Double array / String array / UTC Time array | Undefined |
Array index | V prípade, že hodnota objektu je reprezentovaná vo forme poľa hodnôt (Boolean array / Byte array / SByte array / Integer16 array / Unsigned16 array / Integer32 array / Unsigned32 array / Integer64 array / Unsigned64 array / Float array / Double array / String array / UTC Time array), daný parameter slúži na zadefinovanie jeho rozsahu, resp. hodnoty konkrétneho prvku. Textová reprezentácia indexu poľa môže mať niekoľko variácií:- Samostatný integer, napr. "6", keď chceme z poľa získať iba jednu hodnotu.
- Rozsah reprezentovaný dvoma integermi separovanými dvojbodkou, napr. "6:7", keď chceme z poľa získať hodnoty v určitom rozsahu.
- V prípade viacdimenzionálnych polí je potrebné použiť výraz oddelený čiarkou, napríklad "6,7", keď chceme získať konkrétnu hodnotu prvku dvojdimenzionálneho poľa. V prípade zadefinovania rozsahu je potrebné použiť výraz oddelený bodkočiarkou, napríklad "6:8,7:10".
| String | |
Write only | Daným checkboxom je možné nastaviť, či meraný bod bude súčasťou subscription. Teda jeho hodnota bude periodicky posielaná zo servera formou "Publish message". | Unchecked/checked | Unchecked |
Expanded Node ID | Checkbox zapína možnosť adresovať ExpandedNodeId. ExpandedNodeId, na rozdiel od klasického identifikátora v adresnom priestore OPC UA servera, je rozšírený o NameSpace URI a Server index | Unchecked/checked | Unchecked |
NamespaceUri | Textový identifikátor menného priestoru OPCUA servera použitý namiesto číslicovej reprezentácie namespace. | String | |
ServerIndex | Číselný identifikátor, ktorý adresuje číslo servera pri použití ExpandedNodeID identifikátora. | Numeric | 0 |
...
Dialógové okno slúži na jednoduché prezeranie a vkladanie OPC UA objektov do adresných parametrov meraného bodu. Vo vrchnej časti okna je zobrazená stromová štruktúra adresného priestoru. Kliknutím na objekt v tejto štruktúre sa v dolnej časti dialógu objavia priamy potomkovia zvoleného objektu. Pomocou dvojkliku na jeden zo zobrazených potomkov sa adresné parametre daného objektu prenesú do adresného dialógu meraného bodu.
Image Modified
Literatúra
...