PLC Unitronics pracuje jako serwer OPC UA

18.10.2019 How to /
Sterownik PLC od Unitronics działa jako serwer OPC UA
Wizerunek autora
Były pracownik Elmark Automatyka S.A.

Opis konfiguracji PLC od Unitronics w celu udostępniania danych jako serwer OPC UA. Sposób na bezpieczną wymianę danych.

Czego dowiesz się z tego wpisu?

Celem niniejszego artykułu jest przybliżenie konfiguracji sterownika PLC od Unitronics do udostępniania danych w standardzie OPC UA. Wszystkie podejmowane tutaj kroki dotyczą sterowników serii Unistream, natomiast wykorzystywane środowisko to UniLogic (w wersji 1.28.26 lub wyższej).

Sterowniki od Unitronics posiadają możliwość pracy w trybie serwera OPC UA. Korzyści płynące z tej funkcjonalności obejmują zarówno szerokie możliwości wymiany danych (np. z systemami SCADA), jak i bezpieczeństwo ich przesyłu. Dzieje się tak dlatego, że sterowniki PLC od Unitronics wykorzystują technologię opartą na certyfikatach X.509 podczas nawiązywania połączeń i przekazywania danych do klientów.

Co więcej, sterowniki od Unitronics posiadają wbudowane struktury danych, które zawierają zmienne informujące na bieżąco o pracy serwera OPC. Od teraz możliwa jest zarówno wymiana danych, jak i wstępna diagnostyka połączeń na sterowniku.

Schemat komunikacji po OPC
Schemat komunikacji po OPC

Po więcej informacji na temat samego protokołu OPC UA można udać się na stronę jego autora - organizacji OPC Foundation.

Konfiguracja serwera OPC UA na sterowniku PLC

Podczas prowadzonego tu opisu skupiono się jedynie za zagadnieniach ściśle związanych z komunikacją po OPC. Z tego powodu pomięto kroki takie, jak wybór modelu sterownika w UniLogic, czy nadanie mu adresu IP. Tego typu informacje można znaleźć natomiast w początkowych lekcjach kursu Akademii PLC Elmark.

Po wstępnym skonfigurowaniu posiadanego urządzenia, przechodzi się do właściwych działań. Przebiegają one w kilku etapach.

Pierwszym z nich jest przygotowanie pożądanych zmiennych w programie sterownika. Chodzi tu o dodanie odpowiednich bloczków funkcyjnych obliczających wymagane wartości. W prezentowanym niżej przykładzie użyto wbudowanych formuł matematycznych do symulacji 4 zmiennych.

Drugim krokiem jest natomiast dostosowanie ustawień samego serwera OPC, działającego na sterowniku. Użytkownik może odnaleźć odpowiednią lokalizację z opcjami na liście wszystkich protokołów dostępnych do konfiguracji w programie UniLogic. Dalej, dostosowywane są takie pola, jak:

  • Application Name, Host Name - dowolne nazwy, które pozwolą jednoznacznie wyróżnić ten serwer OPC;
  • Port - numer portu komunikacyjnego wykorzystywanego przez sterownik;
  • Security Policies - dopuszczane przez sterownik metody szyfrowania przekazu oraz uwierzytelniania;
  • informacje na temat certyfikatu X.509 używanego przez sterownik;
  • obecnie, UniLogic nie oferuje dodatkowego uwierzytelniania za pomocą loginu i hasła dla klientów; opcja ta ma być wprowadzona w przyszłości.

Środowisko UniLogic pozwala zarówno na automatyczne wygenerowanie certyfikatu serwera, jak i na import posiadanych już przez użytkownika plików.

Następny krok to z kolei utworzenie listy zmiennych publikowanych w ramach serwera. Dodatkowo, dopuszczalne jest ich grupowanie w foldery lub określanie poziomu dostępu do nich (zapis/odczyt).

Ostatnim i zarazem opcjonalnym krokiem, jest wyświetlenie zmiennych przechowujących informacje o pracy serwera OPC UA na panelu HMI sterownika PLC.

Opisane tutaj etapy przedstawia poniższy schemat.

Schemat konfiguracji OPC UA na sterowniku PLC 2
Schemat konfiguracji OPC UA na sterowniku PLC

Jak przebiega komunikacja po OPC UA?

Pierwszą rzeczą, jaką należy ustalić, jest adres URL serwera OPC w sieci. Nie jest to trudne, gdyż adres ten jest podpowiadany podczas konfiguracji serwera w programie UniLogic. Dodatkowo, wszystkie adresy tego typu mają analogiczną budowę. Na przykład, dla sterownika o IP 192.168.100.100 wykorzystującego port 48020, adres serwera OPC, który na nim działa jest następujący.

opc.tcp://192.168.100.100:48020

Sama komunikacja jest natomiast inicjalizowana wymianą certyfikatów. Zarówno aplikacja kliencka, jak i sterownik PLC powinny zaakceptować własne certyfikaty. O ile dla różnych klientów odpowiednie interfejsy mogą się różnić, o tyle dla sterownika Unitronics wygląd okna do zarządzania certyfikatami klientów przedstawiony jest niżej.

Okno zarządzania certyfikatami OPC klientów w sterowniku UniStream
Okno zarządzania certyfikatami OPC klientów w sterowniku UniStream

Można do niego przejść poprzez otworzenie menu "UniApps", a następnie wybór zakładki "Network" oraz opcji "OPC UA".

Kiedy dowolny klient łączy się ze sterownikiem po raz pierwszy, certyfikat klienta pojawia się na liście "Rejected". Poprzez wybór danego certyfikatu z tej listy oraz przeniesienie go na listę "Trusted", można udostępnić zewnętrznej aplikacji posiadany serwer OPC. Operacja nie musi być powtarzana przy ponownym łączeniu się tego same klienta.

Komunikacja z wykorzystaniem automatycznie generowanych certyfikatów

Automatycznie wygenerowany certyfikat to oczywiście wygodne rozwiązanie. Użytkownik nie musi przejmować się doborem odpowiednich algorytmów wyznaczania kluczy, czy tzw. "odcisków palca". Jedyne, co musi wykonać, to po prostu uzupełnienie informacji na temat danych serwera, które będą widoczne w certyfikacie (służą tylko rozróżnieniu posiadanych serwerów).

Na ten temat powstał film instruktażowy, dostępny na naszym kanale YouTube. Wykorzystywany w nim sterownik to US7-B5-B1. Rolę aplikacji klienckiej pełni natomiast program UAExpert.

https://www.youtube.com/watch?v=yneZ_MqAjzM
Sterownik PLC od Unitronics udostępnia dane jako serwer OPC UA - automatycznie generowany certyfikat.

Własne certyfikaty przy konfiguracji serwera OPC UA

Własne certyfikaty mogą sprawdzić się w przypadku, gdy liczba komponentów tworzących istniejący system jest duża, a sterownik PLC z serwerem danych jest tylko jej uzupełnieniem. Jeśli dana firma posiada już własny zestaw zaufanych certyfikatów, znacznie lepszym rozwiązaniem będzie import któregoś na sterownik, zamiast generowania dodatkowego certyfikatu dla każdego PLC z osobna.

Przedstawione tu rozwiązanie wykorzysta certyfikat w formacie DER (plik binarny, zakodowany) oraz klucz prywatny w formacie PEM.

Jak wygenerować własny certyfikat?

Przede wszystkim, należy pamiętać o kilku ważnych polach w certyfikacie, które są sprawdzane prze aplikacje wykorzystujące komunikację OPC UA. Są to :

  • Common Name - nazwa aplikacji, którą serwer OPC posługuje się przy komunikacji z klientami;
  • Organization - opis organizacji, w ramach której działa aplikacja;
  • SubjectAltName (Alternatywna Nazwa Podmiotu) - lista adresów IP lub nazw DNS maszyn, na których działa aplikacja; pole to może zawierać również jeden unikalny adres URI (URL) związany z aplikacją;
  • Valid from, Valid to: daty określające początek i koniec obowiązywania certyfikatu.

Zrozumienie drugiego i czwartego parametru jest dość proste. Warto natomiast zastanowić się nad pozostałymi.

Dla sterowników Unistream, nazwa aplikacji (Common Name) to połączenie dwóch pól: Application Name i Host Name podawanych podczas konfiguracji serwera. Nazwy te należy rozdzielić znakiem "@".

Common Name dla Serwera OPC
Common Name dla Serwera OPC

Natomiast, jako adres IP dla pola SubjectAltName, należy podać adres panelu Ethernet sterownika PLC (ten sam, co w adresie URL serwera OPC UA - pole "EndPoint" na zdjęciu wyżej). W tym przypadku adres URI aplikacji to po prostu zawartość pola "EndPoint".

Przy generowaniu pary kluczy dla certyfikatu zaleca się, aby miała ona przypisane następujące parametry użycia (key usage):

  • Podpis cyfrowy, Podpisywanie certyfikatu, Podpisywanie listy CRL;
  • Szyfrowanie klucza, Szyfrowanie danych ;
  • Uzgadnianie klucza.

Sama operacja generowania kluczy i certyfikatu może odbywać się za pomocą różnych narzędzi. Służą do tego zarówno gotowe biblioteki dla systemów Linux (na przykład openssl), jak i darmowe strony internetowe tworzące certyfikaty on-line. Przykładem może być niżej podlinkowana strona oferująca szeroki wachlarz opcji dla nowego certyfikatu. Co więcej, można z niej pobrać gotowy zestaw komend openssl dla certyfikatu o wcześniej określonych parametrach.

Aby lepiej zrozumieć zamieszczone tu treści, niżej wstawiono zdjęcie odwzorowujące to, jak ustawienia serwera OPC na sterowniku determinują pewne pola używanego certyfikatu.

Konfiguracja serwera OPC i pól certyfikatu x 509
Konfiguracja serwera OPC i pól certyfikatu x 509

Import certyfikatów na sterownik oraz odczyt danych

Dlatego, że ten przypadek konfiguracji serwera OPC UA na sterowniku PLC różni się tu tylko wykorzystaniem certyfikatów, poniższy krótki film przedstawia potrzebne kroki już od momentu ich importu.

Aby pokazać poprawność certyfikatu, połączenie z serwerem nastąpi zarówno za pomocą UAExpert, jak i oprogramowania SCADA ICONICS.

Własne certyfikaty OPC UA - prezentacja

Do pobrania

Wypełnij poniższy krótki formularz w celu otrzymania, na podany adres e-mail, linku do archiwum zawierającego:

  • plik prezentowanego tu projektu programu UniLogic,
  • przykładowe certyfikaty X.509 do używania w komunikacji OPC UA (pamiętaj - tylko, jeśli klucz prywatny używanego certyfikatu jest nieznany dla innych osób, zapewni on bezpieczeństwo Twojej aplikacji).
[contact-form-7 id="3447" title="UniStream OPC UA"]

Podsumowanie

W tym miejscu kończy się ten dość obszerny wpis poruszający tematykę komunikacji po OPC UA w sterownikach PLC serii UniStream. Jednak mając na uwadze to, że omawiany tu protokół staje się wiodącym rozwiązaniem w wielu branżach przemysłowych, na pewno warto pochylić się dłużej nad tym zagadnieniem.

Jeśli zainteresował Cię temat sterowników PLC, zapoznaj się z innymi artykułami objaśniającymi, jak wdrożyć rozwiązania zgodne z nowymi trendami przemysłowymi.

W przypadku pytań, skontaktuj się z nami pod adresem mailowym: sterowniki@elmark.com.pl .

Skontaktuj się ze specjalistą Elmark

Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!