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).

Write a comment...