Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné shlédnout "
PROMOTIC video kurz 4 - Komunikační ovladače".
Základní vlastnosti ovladače:
- Použití tohoto ovladače vyžaduje zakoupení
licence PmOPC. Při vývoji aplikace ve freeware módu
PmFree nebo s
vývojovou licencí a při jejím testování v runtime je tato komponenta vždy funkční.
- Komunikace je pro Ethernet (aplikace PROMOTIC je klient).
- Tento ovladač je dostupný od verze
Pm9.0.9.
Ovladač podporuje následující OpcUa datové typy:
-
Boolean: Dvoustavová logická hodnota (
true nebo
false).
V aplikaci PROMOTIC je reprezentován datovým typem
Boolean.
Pro čtení i zápis.
-
SByte: Celé číslo (1 bajt) v rozsahu: -128 do 127 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Integer.
Pro čtení i zápis.
-
Byte: Celé číslo (1 bajt) v rozsahu:
0 do
255 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Byte.
Pro čtení i zápis.
-
Int16: Celé číslo (2 bajty) v rozsahu:
-32 768 do
32 767 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Integer.
Pro čtení i zápis.
-
UInt16: Celé číslo (2 bajty) v rozsahu:
0 do
65 535 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Long.
Pro čtení i zápis.
-
Int32: Celé číslo (4 bajty) v rozsahu:
-2 147 483 648 do
2 147 483 647 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Long.
Pro čtení i zápis.
-
UInt32: Celé číslo (4 bajty) v rozsahu:
0 do
4 294 967 295 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Double.
Pro čtení i zápis.
-
Int64: Celé číslo (8 bajty) v rozsahu:
-9 223 372 036 854 775 808 do
9 223 372 036 854 775 807 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Double.
Pro čtení i zápis.
-
UInt64: Celé číslo (8 bajty) v rozsahu:
0 do
18 446 744 073 709 551 615 včetně.
V aplikaci PROMOTIC je reprezentován datovým typem
Double.
Pro čtení i zápis.
-
Float: 4-bajt reálné číslo ve formátu
IEEE-754 (32-bit).
V aplikaci PROMOTIC je reprezentován datovým typem
Single.
Pro čtení i zápis.
-
Double: 8-bajt reálné číslo ve formátu
IEEE-754 (64-bit).
V aplikaci PROMOTIC je reprezentován datovým typem
Double.
Pro čtení i zápis.
-
String:
Sekvence
Unicode znaků (textový řetězec).
V aplikaci PROMOTIC je reprezentován datovým typem
String.
Pro čtení i zápis.
-
DateTime: Datum a čas.
V aplikaci PROMOTIC je reprezentován datovým typem
Date.
Pro čtení i zápis.
OPC-UA přenáší čas vždy jako
UTC čas. Při příjmu systém PROMOTIC tento čas přepočte do lokálního času a opačně při zaslání lokální čas přepočte do
UTC času.
-
ByteString: Pole bajtů.
V aplikaci PROMOTIC je reprezentován datovým typem
Object typu
PmBuffer.
Zatím jen pro čtení.
-
StatusCode:
Číselný identifikátor chyby nebo stavu, který je spojen s hodnotou nebo operací.
V aplikaci PROMOTIC je reprezentován datovým typem
Double.
Pro čtení i zápis.
-
QualifiedName: Jméno kvalifikované jmenným prostorem.
V aplikaci PROMOTIC je reprezentován datovým typem
String.
Zatím jen pro čtení.
-
LocalizedText:
Text s volitelným identifikátorem národního prostředí.
V aplikaci PROMOTIC je reprezentován datovým typem
String.
Pro čtení i zápis.
-
Array: Pole hodnot.
V aplikaci PROMOTIC je reprezentován datovým typem
Array.
Zatím jen pro čtení.
-
ExtensionObject:
Struktura, která obsahuje datový typ specifický pro aplikaci.
V aplikaci PROMOTIC je reprezentován datovým typem
Object typu
PmMap.
Zatím jen pro čtení.
Objekt obsahuje následující vlastnosti:
TypeId - (Long) Identifikátor struktury.
Encoding - (
Long) Číslo určuje co bude obsahovat objekt
PmBuffer ve vlastnosti
Body:
0 = objekt je prázný
1 = objekt obsahuje ByteString, tzn. řetězec bajtů.
2 = objekt obsahuje XmlElement, tzn. XML text.
Body - (objekt
PmBuffer) Tento objekt obsahuje hodnoty struktury zakódované podle vlastnosti
Encoding.
Doporučené hodnoty parametrů objektu PmaComm:
| Síťová adresa | URL adresa OPC-UA serveru. |
| Číslo vzdáleného TCP/UDP portu | Port OPC-UA serveru (obvykle hodnota 4840).
Viz: Wikipedia: Seznam čísel portů TCP a UDP používaných protokoly pro provoz síťových aplikací. |
| Typ Ethernet přenosu | TCP |
| Připojit až při prvním přenosu | NEzatrhnout (povinné) |
| Zavřít spojení po každém přenosu | NEzatrhnout (povinné). Po každém navázání spojení je nutno přenést několik inicializačních zpráv a kdyby se spojení často uzavíralo tak by se velmi snížila rychlost komunikace. |
|---|
| Výběr nastavení pomocí připojení k serveru | Po stisknutí tohoto tlačítka se otevře okno, které zakomunikuje s OpcUa serverem a získá od něj koncové body (endpoints) a podporované typy zabezpečení.
Každý typ zabezpečení má také číselnou hodnotu Security Level (úroveň zabezpečení). Čím větší hodnota, tím vyšší stupeň zabezpečení.
Získané informace se zobrazí v tomto okně a požadovaný typ zabezpečení lze vybrat. Tímto se nastaví konfigurátory:
- URL koncového bodu
- Režim zabezpečení (Security Mode)
- Bezpečnostní politika (Security Policy)
- Typ autentizace |
|
| URL koncového bodu | Zadává se zde URL adresa koncového bodu OPC-UA serveru.
Používá se pokud server umožňuje přesměrování na jiné servery, v jiném případě stačí zadat prázdný řetězec (tím se automaticky vybere první koncový bod podporovaný serverem).
Hodnota bývá v podobě "opc.tcp://URL:Port". |
| Zabezpečení (Security): |
| Režim zabezpečení (Security Mode) | Určuje, jak je zabezpečena komunikace mezi OPC UA klientem a serverem.
Existují tři režimy zabezpečení:
None - Tento režim nezajišťuje žádné zabezpečení.
Používá se hlavně pro testovací účely nebo v izolovaných sítích, kde bezpečnost není prioritou.
Sign - Zprávy nejsou šifrovány, ale jsou digitálně podepsány odesílatelem.
To zajišťuje autentizaci (ověření, že zpráva pochází od oprávněného odesílatele) a integritu (ověření, že zpráva nebyla změněna během přenosu).
Data jsou stále viditelná a čitelná, ale nelze je upravit, aniž by to bylo odhaleno.
Sign&Encrypt - Toto je nejbezpečnější režim.
Zprávy jsou digitálně podepsány (pro autentizaci a integritu) a zároveň šifrovány (pro důvěrnost).
To znamená, že data jsou nejen chráněna před neoprávněnými změnami, ale jsou také nečitelná pro kohokoli kromě zamýšleného příjemce. |
| Bezpečnostní politika (Security Policy) | Tento konfigurátor je viditelný pouze pokud "Režim zabezpečení (Security Mode) = Sign" nebo "Sign&Encrypt".
Specifikuje algoritmy, které se mají použít:
- Algoritmy šifrování: Jaký algoritmus se použije pro šifrování dat (např. AES-128, AES-256).
- Algoritmy podepisování: Jaký algoritmus se použije pro digitální podpis (např. SHA-256, SHA-384).
- Algoritmy pro autentizaci: Jaký algoritmus se použije pro ověření identity klienta a serveru (např. pomocí digitálních certifikátů X.509).
Tento ovladač podporuje následující bezpečnostní politiky:
Auto - Ovladač vybere bezpečnostní politiku sám porovnáním podporovaných politik serverem a ovladačem.
Vybere se podporovaná politika která má nejvyšší úroveň zabezpečení (Security Level).
Basic256Sha256 - Vyžaduje použití X.509 certifikátů pro autentizaci klienta a serveru.
Algoritmus symetrického šifrování: AES-256 (se 256-bitovým klíčem).
Algoritmus asymetrického šifrování: RSA-OAEP + SHA-1.
Algoritmus podpisu: (RSA-PKCS15) + SHA-256.
Aes128_Sha256_RsaOaep - Vyžaduje použití X.509 certifikátů pro autentizaci klienta a serveru.
Algoritmus symetrického šifrování: AES-128 (se 128-bitovým klíčem).
Algoritmus asymetrického šifrování: RSA-OAEP.
Algoritmus podpisu: SHA-256.
Aes256_Sha256_RsaPss - Reprezentuje jeden z nejvyšších a nejnovějších standardů pro ochranu komunikace.
Vyžaduje použití X.509 certifikátů pro autentizaci klienta a serveru.
Algoritmus symetrického šifrování: AES-256 (se 256-bitovým klíčem).
Algoritmus asymetrického šifrování: RSA-PSS.
Algoritmus podpisu: SHA-256.
Basic256 - Zastaralé. Definuje starší, ale stále používaný standard pro ochranu komunikace. Tato politika je považována za předchůdce modernějších a bezpečnějších politik, jako je Basic256Sha256.
Vyžaduje použití X.509 certifikátů pro autentizaci klienta a serveru.
Algoritmus symetrického šifrování: AES-256 (se 256-bitovým klíčem).
Algoritmus asymetrického šifrování: RSA-PKCS15 + SHA-1.
Algoritmus podpisu: SHA-1.
Basic128Rsa15 - Zastaralé. Je nejstarší a nejslabší politika zabezpečení v rámci specifikace OPC UA.
Vyžaduje použití X.509 certifikátů pro autentizaci klienta a serveru.
Algoritmus symetrického šifrování: AES-128 (se 128-bitovým klíčem).
Algoritmus asymetrického šifrování: RSA-PKCS15 + SHA-1.
Algoritmus podpisu: SHA-1. |
| Cesta k lokálnímu privátnímu klíči | Tento konfigurátor je viditelný pouze pokud "Režim zabezpečení (Security Mode) = Sign" nebo "Sign&Encrypt".
Je to cesta k souboru obsahující lokální privátní klíč (soubor s příponou .der nebo .pem). |
| Cesta k lokálnímu certifikátu | Tento konfigurátor je viditelný pouze pokud "Režim zabezpečení (Security Mode) = Sign" nebo "Sign&Encrypt".
Je to cesta k souboru obsahující lokální certifikát (soubor s příponou .der nebo .pem). |
| Vytvořit nový privátní klíč / certifikát... | Tento konfigurátor je viditelný pouze pokud "Režim zabezpečení (Security Mode) = Sign" nebo "Sign&Encrypt".
Pomocí tohoto tlačítka lze otevřít okno ve kterém lze definovat parametry a následně vytvořit dva soubory: privátní klíč a samopodepsaný certifikát.
Tyto nové soubory lze pak uvést v konfigurátoru "Cesta k lokálnímu privátnímu klíči" a "Cesta k lokálnímu certifikátu".
Takto vzniklé soubory slouží hlavně pro testovací účely.
Pro produkční prostředí je důrazně doporučeno, aby byl certifikát podepsán certifikační autoritou (CA), ať už interní firemní, nebo veřejnou.
Pro testování a vývoj ale bohatě stačí samopodepsaný certifikát.
Povolení klientského certifikátu (obvykle soubor s příponou .der nebo .pem) na straně OPC UA serveru se provádí v jeho konfiguračním softwaru.
Každý výrobce má specifický postup, ale princip je vždy stejný: certifikát je nutné nahrát do "Trusted" (důvěryhodného) úložiště certifikátů na serveru. |
| Autentizace (Authentication): |
| Typ autentizace | Zde se zadává typ autentizace klienta.
(Autentizace typu "2=Certificate" zatím není tímto ovladačem podporována.)
0=Anonymous - Anonymní autentizace, tzn. klient autentizaci nepoužívá.
1=UserName - Autentizace jménem a heslem. |
| Jméno | Jméno klienta.
Tento konfigurátor je viditelný pouze pokud "Typ autentizace = (1=UserName)". |
| Heslo | Heslo pro dané jméno klienta.
Tento konfigurátor je viditelný pouze pokud "Typ autentizace = (1=UserName)". |
|
| Dodatečné parametry | Prozatím nechat prázdnou hodnotu. |
|---|
Popis komunikace pomocí objektu PmaCommGroup
Pro tento ovladač lze použít objekty
PmaCommGroup.
Proměnné v objektu
PmaCommGroup (nebo ještě lépe proměnné v objektu
PmaData s datovým rozšířením
ExtComm) mohou být v libovolném množství, libovolného typu v libovolném pořadí. Ovladač sám optimálním způsobem pomocí vnitřně vytvořených komunikačních zpráv vyčítá data ze zařízení.
Proměnné se vyčítají všechny (pokud konfigurátor "
Obnovování dat povoleno" je zatržen). Při zápisu do proměnné se posílá do zařízení pouze tato jedna proměnná (pokud konfigurátor "
Automaticky zasílat při zápisu do položky" je zatržen).
Obnovování hodnot proměnných registrovaných v objektu PmaCommGroup:
Ovladač při své inicializaci zaregistruje všechny proměnné do
OPC serveru (
OPC systémová zpráva
CreateMonitoredItems) a informuje server o požadované době odpovědi podle nastaveného konfigurátoru "
Obnovovací perioda komunikace [ms]".
Potom ovladač pošle žádost o poslání zprávy při změně těchto proměnných (
OPC systémová zpráva
PublishRequest).
OPC server pak při změně proměnné (nebo pokud není žádná změna, tak do doby zadané v konfigurátoru "
Obnovovací perioda komunikace [ms]") pošle zprávu obsahující informace o všech změněných proměnných (
OPC systémová zpráva
PublishResponse).
Ovladač po příjmu této zprávy ihned znovu pošle zprávu
PublishRequest. Tímto způsobem jsou aktualizavané hodnoty proměnných objektu
PmaCommGroup se zadanou periodou
Obnovovací perioda komunikace [ms].
Popis konfigurátoru "ItemId":
ItemId je textový identifikátor položky, který slouží pro adresování položky v zařízení. Z konfigurátoru
ItemId ovladač pozná, jak se má hodnota položky přijímat nebo vysílat.
Text lze buď napsat ručně, nebo sestavit v okně, které se otevře tlačítkem vpravo od konfigurátoru.
Pro zadání lze použít
Makro výraz (vyhodnocuje se po spuštění aplikace).
Identifikátor
ItemId může mít podobu například "
ns2,str,xxxx", kde:
- ns2: Určuje, do kterého jmenného prostoru (ns=namespace) OPC-UA serveru proměnná patří (0, 1, 2 ...).
-
str: Určuje typ identifikátoru proměnné.
str = Identifikátor proměnné je textový řetězec.
nmb = Identifikátor proměnné je číslo.
- xxxx: Identifikátor proměnné. Tento text závisí pouze na OPC-UA serveru.
| Typ čtení času hodnoty proměnné | Určuje, zda s hodnotou proměnné se bude z OPC-UA serveru číst i čas této hodnoty.
Pokud se čas bude číst, pak se tento čas uloží do vlastnosti PmVar.TimeSource.
No - Čas hodnoty se nebude číst.
Source - Bude se číst čas zdroje, tzn. čas který OPC-UA server vyčetl ze zařízení, se kterým komunikuje (pokud server dokáže ze zařízení tento čas vyčíst).
Server - Bude se číst čas vyčtení hodnoty OPC-UA serverem. |
| Maximální počet proměnných v jedné registrující zprávě | Maximální počet proměnných které se najednou zaregistrují do OPC serveru v jedné zprávě (OPC zpráva typu CreateMonitoredItems).
Tento konfigurátor je přednastaven jako vypnutý (a tedy všechny proměnné se zaregistrují najednou pomocí jedné zprávy).
Tento konfigurátor většinou není potřeba zapínat. Zapnout je ho potřeba například když OPC server neumožní registrovat mnoho proměnných v jedné zprávě (v praxi jsme se setkali s omezením 990 proměnných). Pokud je nutno nastavit nějaký počet, pak je nejlepší tento počet zadat co největší. |
|---|
Popis komunikace pomocí objektu PmaCommMsg:
Seznam a popis komunikačních zpráv:
-
1 = ReadData:
Parametry zprávy:
| Maximální počet čtených položek | Maximální počet položek, které se mohou přijímat najednou v odpovědi této zprávy.
Požadovaný počet čtených položek se pak určuje v proměnné VarCountRequest v kartě "Data-příjem". |
|---|
V kartě "
Data-příjem" jsou proměnné:
VarCountResponse: (Long) Skutečný počet přečtených položek.
Value1: (
Variant) První čtená hodnota.
Za těmito proměnnými jsou další proměnné
Value2,
Value3 ... Jejich počet je určen hodnotou v konfigurátoru "
Maximální počet čtených položek".
-
2 = WriteData:
Parametry zprávy:
| Maximální počet zapisovaných položek | Maximální počet položek, které v této zprávě mohou být posílány najednou.
Požadovaný počet zapisovaných položek se pak určuje v proměnné VarCount v kartě "Data-zaslání". |
|---|
V kartě "
Data-zaslání" jsou proměnné:
Value1: (
Variant) První zasílaná hodnota.
Za těmito proměnnými jsou další proměnné
ItemId2,
Value2,
ItemId3,
Value3 ... Jejich počet je určen hodnotou v konfigurátoru "
Maximální počet zapisovaných položek".
V kartě "
Data-příjem" jsou proměnné:
StatusCode: (Long) OPC-UA hodnota, která indikuje stav vyslání.
Hodnota 0 znamená vše v pořádku.
Nenulové hodnoty indikují chybu (viz OPC-UA norma, Part 4, Kapitola 7.34-StatusCode).
-
3 = Send CloseSecureChannel:
Tuto zprávu lze poslat do OPC-UA serveru například:
- pokud je potřeba znovu restarovat OPC-UA spojení.