OPC Unified Architecture (OPC UA) je protokol pre priemyselnú automatizáciu. Tento protokol, ktorý spravuje organizácia OPC Foundation, je nástupcom úspešného a často používaného protokolu OPC (OPC DA alebo OPC Classic). Na rozdiel od svojho predchodcu nie je postavený na Windows technológiách (OLE, COM) a je tak dostupný aj na iných platformách (napr. PLC Simatic, alebo Bernecker & Rainer).

D2000 OPC UA Server umožňuje OPC UA klientom tretích strán pristupovať k objektom systému D2000 - čítať a zapisovať ich hodnoty.

D2000 OPC UA Server sa nachádza v programovom adresári D2000 inštalácie pod menom "opcuaserver.exe" (resp. "opcuaserver" na Linuxe a na Raspbiane).

Vlastnosti D2000 OPC UA Servera

podpora protokolu opc.tcp://

podpora viacerých paralelne pripojených OPC UA klientov (multiserver)

adresácia D2000 objektov: numerické ID (HOBJ objektu, vo vetve D2000) alebo textové (meno objektu, vo vetve D2000N). 

typy hodnôt na strane D2000 OPC UA servera:

  • Boolean (objekty typu Linka, hodnoty typu boolean - De/Di/Dout)
  • DateTime (hodnoty typu absolútny čas - TmA/TiA/ToA)
  • Double (hodnoty typu real - Re/Ai/Ao, relatívny čas - TmR/TiR/ToR)
  • Int32 (objekty typu Stanica/Alarm/Proces, hodnoty typu štvorstav - Qi)
  • Int64 (hodnoty typu Int/Ci/Co) *
  • String (hodnoty typu reťazec - Txt/TxtI/TxtO)

Poznámka: vo verzii D2000 21.1.72 došlo k zmene Int typu z 32 na 64 bitov, čoho dôsledkom je reprezentácia hodnôt typu Int/Ci/Co ako Int64 (predtým Int32).
Preto boli podporené štartovacie parametre, pomocou ktorých je možné zmeniť chovanie D2000 OPC UA Servera nasledovne:

  • --INT32INV  hodnoty typu Int/Ci/Co budú v D2000 OPC UA serveri reprezentované ako Int32, hodnot mimo rozsah Int32 budú zneplatnené
  • --INT32SAT  hodnoty typu Int/Ci/Co budú v D2000 OPC UA serveri reprezentované ako Int32, hodnot mimo rozsah Int32 budú saturované

podpora identít:

  • ANONYMOUS
  • meno:heslo

podpora bezpečnostných politík:

  • None
  • Basic128Rsa15
  • Basic256
  • Basic256Sha256

módy zabezpečenia správ (Message Security Modes):

  • None
  • Sign
  • Sign&Encrypt

Konfigurácia užívateľa pre D2000 OPC UA Server

Aby D2000 OPC UA Server mohol pristupovať k jednotlivým objektom systému D2000, je potrebné vytvoriť v systéme D2000 užívateľa, pod ktorým sa OPC UA Server prihlási k serveru D2000. OPC UA Server dostane prístupové práva tohto užívateľa. Meno užívateľa musí byť vo formáte „OPCUA_User_<meno_procesu_opcua>“. Napríklad, ak je OPC UA Server nazvaný „SELF.OUS“ (default, meno procesu je možné zmeniť prepínačom /W), tak meno príslušného užívateľa bude „OPCUA_User_SELF“. Tomutu užívateľovi je potrebné nastaviť k objektom systému D2000 prístupové práva, ktoré budú kontrolované pri operáciách čítania/zápisu hodnôt OPC klientom.

Konfigurácia D2000 OPC UA Servera

Konfiguráciu OPC UA Server číta zo súboru. Cestu ku konfiguračnému súboru je nutné špecifikovať štartovacím parametrom --cfg=<cesta_ku_konfiguracnemu_suboru>, napríklad "opcuaserver.exe --cfg=c:\D2000\D2000_APP\application1\opcuaserver\opcuaserver.conf". Vzorový konfiguračný súbor sa nachádza v programovom adresári v podadresári Templates\opcuaserver\opcuaserver.conf.in (resp. .sys\templates\opcuaserver\opcuaserver.conf.in na Linuxe). V tomto súbore sú niektoré parametre už predvyplnené, je nutné nastaviť aspoň parameter pki_dir a vytvoriť adresárovú štruktúru pre PKI.

V súbore je možné špecifikovať nasledujúce parametre:

ParameterHodnota
application_namemeno aplikácie
application_uriURI aplikácie
pki_dirplná cesta k adresáru PKI štruktúry (napríklad 'c:\D2000\D2000_APP\application1\opcuaserver\pki')
tcp_config.hostadresa sieťového adaptéra na ktorom OPC UA server príjma spojenia (0.0.0.0 pre všetky sieťové adaptéry)
tcp_config.portport na ktorom OPC UA server príjma spojenia
user_tokenszoznam nakonfigurovaných používateľov, pod ktorými sa možu prihlasovať OPC UA klienti
endpointszoznam prístupových bodov OPC UA servera

Konfiguračný súbor je čítaný len pri štarte OPC UA servera, takže úpravy parametrov v súbore sa prejavia až po jeho reštarte. Ak adresárová štruktúra PKI neexistuje, OPC UA server ju vytvorí (prázdnu, bez kľúčov a certifikátov) podľa nastavenia parametra pki_dir.

Konfigurácia PKI (public key infrastructure)

Pre prevádzkovanie zabezpečenej komunikácie medzi OPC UA serverom a OPC UA klientami je potrebné pre OPC UA server vytvoriť PKI adresárovú štruktúru, privátny kľúč a certifikát.

Adresárová štruktúra pozostáva z adresárov:

názov adresárapopis
pki/adresár PKI
pki/private/adresár s privátnym kľúčom OPC UA servera
pki/own/adresár s verejným certifikátom OPC UA servera
pki/rejected/adresár s certifikátmi zamietnutých klientov
pki/trusted/adresár s certifikátmi povolených klientov
Privátny kľúč je nutné zabezpečiť proti neoprávnenému prístupu.


Generovanie privátneho kľúča a certificate signing request pomocou utility openssl:

openssl req -out csr.csr -new -newkey rsa:2048 -nodes -keyout pki/private/private.pem

Vytvorenie self-signed certifikátu:

openssl x509 -req -days 365 -in csr.csr -signkey pki/private/private.pem -outform der -out pki/own/cert.der


Manažment certifikátov OPC UA klientov

Pri vytváraní zabezpečeného pripojenia OPC UA klient pošle OPC UA serveru svoj certifikát. Po pripojení neznámeho OPC UA klienta OPC UA server klienta odmietne a jeho certifikát uloží do adresára "pki/rejected/". Správca D2000 aplikácie následne musí manuálne presunúť daný certifikát do adresára "pki/trusted/". To zabezpečí, že daného klienta bude server považovať za dôveryhodného a spojenie prijme.


Manažment mien a hesiel OPC UA klientov

Konfigurácie mien a hesiel OPC UA klientov sú v konfiguračnom súbore  opcuaserver.conf. Preddefinovaný je jediný užívateľský token sample_user s menom sample s heslom sample1:

user_tokens:
  sample_user:
    user: sample
    pass: sample1


V definíciach jednotlivých endpointov sú vymenované povolené užívateľské tokeny, prípadne je povolený aj anonymný prístup (ANONYMOUS):

basic256sha256_sign_encrypt:
    path: /
    security_policy: Basic256Sha256
    security_mode: SignAndEncrypt
    security_level: 4
    user_token_ids:
      - ANONYMOUS
      - sample_user


Príklad konfiguračného súboru (konfigurácia obsahuje absolútne cesty k PKI adresárovej štruktúre):

opcuaserver.conf

Konfigurácia a pripojenie OPC UA klienta UaExpert firmy Unified Automation:


2 Comments

  1. Anonymous

    Proces sa pravdepodobne volá SELF.OUA, nie OUS, ako je tomu uvedené v dokumentácii.

    1. Nie, proces má naozaj príponu OUS (OPC UA Server).

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.