loading...

WAGO i Docker – zastosowanie popularnych narzędzi IT na polu profesjonalnej automatyki przemysłowej

Instalacja aplikacji Docker w panelach TP600 oraz sterownikach PFC200 WAGO

Aplikacja Docker (https://www.docker.com) jest niezwykle popularna w branży IT. Z powodu dużego zainteresowania Przemysłem 4.0 oraz rozwiązaniami rozproszonymi, to było kwestią czasu, kiedy niewątpliwe zalety Dockera zostaną wykorzystane w panelach oraz sterownikach PLC. Nowe serie Touch Panel 600 oraz sterowników PFC200 G2 umożliwiają wykorzystanie tych rozwiązań w przemyśle oraz automatyce budynkowej.

Panele dotykowe TP600 (serie 762-4xxx, 762-5xxx, 762-6xxx, link: https://www.wago.com/pl/d/Info_60419143) to najmocniejsze jednostki w ofercie WAGO. Ich rola nie ograniczać się wyłącznie do wyświetlania wizualizacji/sterowania, ale teraz dzięki platformie Docker może być rozszerzona o dodatkowe komponenty. Również nowa seria sterowników PFC200 G2 (generacja druga 750-821x, link: https://www.wago.com/pl/sterowniki/sterowniki-pfc200/p/750-8212) wspiera Dockera i umożliwia uruchamianie gotowych lub własnych kontenerów.
Dzięki wprowadzonym zmianom możemy przygotowywać jeszcze ambitniejsze aplikacje.

Porównanie poprzedniej wersji hardware’u z najnowszą:

PFC200 G1 PFC200 G2 Touch Panel 600
CPU Cortex A8 600MHz Cortex A8 1GHz Multicore Cortex A9
RAM 256 MB 512 MB 2 GB
Pamięć flash 256 MB 4 GB 4 GB

Systemem operacyjnym w panelach TP600 i sterownikach PFC200 jest Linux. Umożliwia to uruchomienie własnych skryptów w bashu, także z poziomu programu PLC (e!COCKPIT: bibliotka „WagoAppConfigTool”). Skrypty w bashu mogą używać funkcji oraz bibliotek, które są częścią systemu. Możliwe jest wykonywanie poleceń na poziomie systemu operacyjnego. Własne skrypty dają ogromne pole do popisu, ale zazwyczaj specjalne funkcjonalności musimy napisać od podstaw.

A gdyby użyć gotowych aplikacji w połączeniu z programem PLC?

Czym w ogóle jest Docker?

Każdy z automatyków wykorzystywał w swojej pracy wirtualne maszyny. Dzięki nim możliwe jest bezpieczne uruchomienie kompletnego systemu operacyjnego w izolowanym, wirtualnym środowisku, ale niestety zajmują dużo zasobów podczas pracy. Docker używa mechanizmu izolacji, będącego jedną z funkcjonalności jądra systemu Linux, do uruchamiania w odseparowanym środowisku pojedynczych aplikacji, tak zwanych kontenerów (containers) ) (link: https://www.docker.com/resources/what-container).

1 Doker w przystępny sposób

2 Kontenery pracują równolegle z runtimem e!COCKPIT/CODESYS!

Kontenery to uruchomione obrazy (images). Tę sytuację można porównać do bloku funkcyjnego w programie PLC. Nieużyty w programie blok funkcyjny jest jak obraz, ale już wywołane z unikalnymi nazwami instancje tego bloku funkcyjnego będą kontenerami.

Właściwości kontenerów:

  • Samowystarczalne – uruchamiana w kontenerze aplikacja ma wszystko co potrzeba do działania, nie potrzebuje żadnych bibliotek czy funkcji z zewnątrz
  • Tylko do odczytu – aplikacja w kontenerze jest tylko do odczytu
  • Obraz (image) można wykorzystać do uruchomienia wielu kontenerów
  • Domyślnie nie ma pamięci trwałej – kontener posiada swoją wirtualną pamięć do przechowywania danych, ale ten dysk jest usuwany wraz z usunięciem kontenera (np. przy restarcie). Trwały wolumin musi zostać skonfigurowany. Jako pamięć trwała dla kontenera może posłużyć w sterowniku karta SD.
  • Domyślnie brak sieci – bez konfiguracji kontener jest zamkniętym pojemnikiem. Nic nie wchodzi, nic nie wychodzi. Kontenery bez skonfigurowanego połączenia działają niezależnie. Oczywiście można skonfigurować połączenie internetowe, aby wymieniać dane pomiędzy systemem/kontenerami/runtimem PLC

  • Jedna funkcjonalność w kontenerze – filozofią Dockera jest zainstalowanie tylko jednej usługi w kontenerze. Na przykład w kompletnej aplikacji do monitorowania obiektu i wizualizowania danych na stronie WWW będziemy potrzebowali jednego kontenera z bazą danych, a drugiego z wizualizacją opartą na serwerze WWW (o tym w kolejnej części!)

Jak zainstalować Dockera?

Należy wykonać następujące kroki:

1. Sprawdzić wersję firmware’u panelu TP600 lub sterownika PFC200 G2 (na stronie WBM http://<adres IP>/wbm lub poprzez oprogramowanie WAGO Ethernet Settings) – musi zostać zaktualizowany do co najmniej wersji 12. Wskazane jest, aby panel lub sterownik miał najnowszą wersję firmware’u.

  • PFC200:
    Na githubie znajduje się bieżąca wersja z instrukcją wgrywania firmware’u do sterownika za pomocą karty SD: https://github.com/WAGO/pfc-firmware/releases.
    Od wersji 12 firmware’u możliwa jest także aktualizacja z poziomu oprogramowania e!COCKPIT.
    Należy w zakładce „File”>”Updates & Add-ons” pobrać najnowszy firmware, a następnie zaznaczyć panel lub sterownik i wybrać z menu zakładkę „Network Functions”>”Device”> „Replace Firmware”.

  • TP600:
    Wersje panelu PIO2 (Visu Panel ), PIO3 (Control Panel) można zaktualizować poprzez oprogramowanie e!COCKPIT. Do aktualizacji panelu w wersji PIO1 (Web Panel – służy do wyświetlania wizualizacji sterowników) należy użyć karty MicroSD. Po szczegóły zachęcam do kontaktu z działem wsparcia technicznego: support.pl@wago.com 

2. Ustawić prawidłowy czas (niezbędny do weryfikacji certyfikatów).
3. Skonfigurować ustawienia sieciowe – sterownik będzie potrzebował dostępu do Internetu, aby ściągać obrazy (images) bezpośrednio z Docker Huba.
Należy pamiętać o konfiguracji:

  • bramy („Gateway Address” w zakładce „Network”>”Routing” na stronie WBM– „http://<adres IP>/wbm”)
  • adresów serwerów DNS („DNS Server” w zakładce „Network”>”TCP/IP”)
  • w zakładce „ Networking”>”Routing” należy włączyć przekierowania pomiędzy interfejsami (niezbędne do konfiguracji sieci dla kontenerów).

4. Zainstalować Dockera – WAGO ma oficjalne konto na GitHubie, gdzie umieszczane są różne rozwiązania – m.in. rozszerzenie firmware’u o Dockera: https://github.com/WAGO/docker-ipk/releases. Domyślnie Docker nie jest zainstalowany w systemie, więc należy go doinstalować.

Trzeba wykonać następujące kroki:

  1. Pobrać aktualny plik *.ipk
  2. Na stronie Web-based Management (https://adres_IP/wbm) przejść do zakładki „Software Uploads” i wybrać (1) plik „docker_<wersja>.ipk”. Przesłać plik na sterownik (2) i aktywować (3)
  3. Po instalacji należy zrestartować sterownik

5. Pozostaje sprawdzić, czy wszystko skonfigurowano poprawnie:

  1. Uruchomić klienta SSH np. Putty (https://www.putty.org/)
  2. Zalogować się domyślnym hasłem “wago” (w tym miejscu, jeśli logujemy się pierwszy raz, można je zmienić).
  3. Wpisać komendę „docker version”

6. Koniec!

Jak używać Dockera?

Lista komend nie jest długa: https://docs.docker.com/engine/reference/commandline/docker/.

Na początku warto przetestować pobieranie obrazów oraz uruchamianie z nich kontenerów. Obrazy udostępnione przez twórców aplikacji dostępne są w repozytorium Docker Huba (https://hub.docker.com/). Tam też w prywatnych repozytoriach można umieszczać własne aplikacje.

1. Zaczniemy od standardowego obrazu „hello-world”. Użyjemy do tego komendy „docker pull”, dzięki której można pobierać obrazy z Docker Huba.

2. Aby sprawdzić, jakie obrazy już pobraliśmy, należy użyć komendy „docker images”

3. Żadna aplikacja jeszcze nie została uruchomiona. Aby uruchomić kontener z obrazu, należy użyć komendy „docker run hello-world”.

W tej komendzie możemy dodać wiele argumentów, które służą np. do udostępnienia portów, użycia danej sieci, zmiany nazwy kontenera, dołączenia pamięci trwałej lub konfiguracji parametrów uruchamianej w kontenerze aplikacji (ale o tym więcej w następnej części artykułu).

4. Gdy już uruchomiliśmy kontener, możemy sprawdzić aktualnie uruchomione kontenery komendą „docker ps –a”

Na powyższym screenie uruchomiłem dwa razy kontener z obrazu „hello-world”. Każdy z kontenerów ma swoje unikalne ID (1) oraz nazwę (2). Można się nimi posłużyć przy wydawaniu kolejnych poleceń. Jeśli nie wybrano żadnej nazwy dla kontenera, to jest ona generowana automatycznie.

5. Można także usunąć uruchomiony kontener poleceniem „docker rm –f <ID kontenera lub nazwa>”

Instrukcja, w jaki sposób pobrać obraz i z jakimi parametrami uruchomić kontener znajduje się zazwyczaj w opisie na stronie aplikacji w Docker Hubie:

Jakie aplikacje można instalować?

Sterowniki PFC 200 są wyposażone w procesor ARM, dlatego można pobierać obrazy stworzone dla procesorów ARM (ale nie dla ARM 64). Najlepiej wybierać sprawdzone obrazy (przy filtrowaniu obrazów w repozytorium warto zaznaczyć „Verified Publisher”, „Official images”). Oczywiście muszą także zmieścić się w pamięci sterownika!

Jak mogę użyć Docker’a?

Na Docker Hubie znajdziemy wiele ciekawych aplikacji, które mogą rozszerzyć funkcjonalność paneli TP600 i sterowników PFC200 G2. W repozytorium WAGO (https://hub.docker.com/u/wagoautomation) są m.in. obrazy z aplikacją Node-RED, aplikacje do połączenia z Microsoft Azure IoT Edge lub AWS IoT Greengrass lub nawet środowisko Python. Spoza repozytorium WAGO przydatny w komunikacji MQTT może być broker Mosquitto (https://hub.docker.com/_/eclipse-mosquitto). Jako baza danych na sterowniku sprawdzi się InfluxDB (https://hub.docker.com/_/influxdb), a do wizualizacji zapisanych do bazy wartości można użyć obrazu Chronograf (https://hub.docker.com/_/chronograf). Do bardziej rozbudowanego systemu monitorowania przyda się Grafana (https://hub.docker.com/r/grafana/grafana).

Linki warte odwiedzenia:

  • Github WAGO https://github.com/WAGO
  • Repozytorium WAGO na Docker Hub https://hub.docker.com/u/wagoautomation
  • Demo Grafana https://play.grafana.org/
  • Tutoriale Docker https://training.play-with-docker.com/
  • Dokumentacja Docker’a https://docs.docker.com/
  • Strona projektu Node-RED https://nodered.org/

Zachęcam do opisania w komentarzach swoich ulubionych aplikacji oraz do przeczytania kolejnej części artykułu, gdzie opiszę, w jaki sposób można wymieniać dane pomiędzy runtimem e!COCKPIT oraz uruchomionymi kontenerami.

Aplikacje na Docker Hubie, jak i sam Docker nie zostały stworzone przez firmę WAGO, dlatego nie możemy brać żadnej odpowiedzialności za działanie poszczególnych aplikacji/kontenerów. W tym artykule jedynie przedstawiamy możliwość skorzystania z aplikacji Docker na panelach TP600 oraz sterownikach PFC200 G2.

Damian Rudnik, WAGO.PL


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *