Rozwój systemu i oprogramowania typu full-stack dla przemysłu 4.0

Umfassende System- und Softwareentwicklung für Industrie 4.0
Kategoria:
Web Development, CI/CD, Software Consulting, Warsztaty odkrywania, Back-end solution, Front-end solution
Branża:
Inżynieria przemysłowa
Miasto:
Laer, Niemcy
Model:
Team Outsourcing
Model płatności:
Time & Materials
Czas trwania:
 2019 – obecnie

Klient

Współpracujemy z niemieckim przedsiębiorstwem, działającym branży inżynierii przemysłowej i automatyki. Klient specjalizuje się w najnowocześniejszych rozwiązaniach, które rewolucjonizują nowoczesną produkcję, rolnictwo i pomagają budować zrównoważone inteligentne miasta. Rozwiązania Klienta umożliwiają łatwą konfigurację i zarządzanie infrastrukturą IT do gromadzenia i przetwarzania danych w środowiskach przemysłowych oraz przyczyniają się do wymiernego sukcesu biznesowego klientów końcowych.

Wyzwanie

Projekt 1 – Stworzenie przemysłowego komputera łączącego w sobie funkcje routera i IoT Edge’a

 

Potrzebą Klienta było zbudowanie urządzenia, które działa jako router i jednocześnie pozwala na uruchamianie aplikacji z kontenerów Docker. Zwrócono się do nas z nowym projektem dotyczącym przetwarzania danych zgodnie z koncepcją przetwarzania brzegowego (ang. edge computing). Pomysł polegał na stworzeniu przemysłowego komputera, który będzie integrował w sobie funkcje routera i IoT Edge’a.  Celem było umożliwienie zdalnego sterowania systemem i zapewnienie bezpieczeństwa urządzeniom, które nie są podłączone do sieci lub powinny być chronione niezależnym firewallem.

Przebieg

  • Koncepcja budowy komputera przemysłowego 

Jednym z najważniejszych elementów projektu było opracowanie własnej, opartej na systemie Linux dystrybucji przeznaczonej dla szeroko wykorzystywanego komputera przemysłowego. Celem było umożliwienie zdalnego sterowania systemem i zapewnienie bezpieczeństwa urządzeniom, które nie są podłączone do sieci lub powinny być chronione niezależnym firewallem.

Zbudowaliśmy wraz z zespołem Klienta komputer przemysłowy, które łączy w sobie funkcję routera, switch’a, VPNa, czyli bezpiecznej komunikacji sieciowej z zewnętrznym Internetem oraz kontenera dla IoT Edge w chmurze (Microsoft Azure) lub własnych kontenerów.

Celem zespołu programistów było prawidłowe zainstalowanie oprogramowania IoT  Edge Microsoft Azure na systemie Linux’a. Choć było to sporym wyzwaniem, udało się doprowadzić do tego, że gdy Microsoft wypuszcza nowe wersje, (które oczywiście przestają być kompatybilne z poprzednimi, z powodu zmiany konfiguracji), klienci korzystający z komputera przemysłowego aktualizują system i wszystkie funkcje systemu dalej działają poprawnie.

W tym celu wykorzystaliśmy technologię Yocto Project, który daje możliwość dostosowania rozmiaru systemu operacyjnego, co jest istotne wszędzie tam, gdzie ilość danych do przesłania odgrywa ważną rolę. W nowym systemie mamy możliwość zarządzania urządzeniami, które są wykorzystywane do zdalnych aktualizacji IoT i urządzeń brzegowych w terenie.  Oznacza to, że ograniczona przestrzeń dyskowa jest efektywnie wykorzystywana, a tym samym zasoby urządzeń w terenie mogą być w pełni wykorzystane. Szczególnie w przypadku dużej liczby podłączonych urządzeń prowadzi to do znacznych oszczędności kosztów

Zbudowaliśmy też wsparcie dla konfiguracji do manualnego zarządzania flotą urządzeń. W ramach budowy interfejsów wykorzystaliśmy klasyczną architekturę z OS Bash napisaną w C++, po której będą szły komendy dla demonów zarządzających poszczególnymi elementami konfiguracji.

Kwestie bezpieczeństwa są podstawą działań w tym projekcie. Jest to bardzo ważne, ponieważ kluczową cechą tego całego urządzenia jest to, że jest on wystawiony na potencjalne ataki z zewnątrz, więc musi być na tyle szczelny, jak dalece to tylko możliwe. W tym celu programiści zastosowali katalog solidnych praktyk związanych z zapewnianiem bezpieczeństwa na serwerach systemów Unix.

  • Weryfikacja koncepcji 

Pierwszą fazą projektu była weryfikacja koncepcji (ang. Proof of Concept, PoC), co oznacza, że musieliśmy dostarczyć minimalnie przygotowany produkt (ang. Minimum Viable Product, MVP) posiadający jedynie podstawowe funkcje bez interfejsu wizualnego. Proof of Concept systemu, który był testowany na docelowych urządzeniach.  Następnie razem z klientem zaczęliśmy rozwijać funkcjonalności systemu dopasowane do odpowiednich urządzeń na układach Intela.

We wrześniu 2020 roku zakończyliśmy etap PoC i rozpoczęliśmy wdrażanie coraz bardziej kluczowych funkcji i elementów systemu, takich jak:

  • System do konfiguracji i zarządzania routerami przemysłowymi
  • WebGUI (Graficzny Interfejs Sieciowy) oparty na interfejsie LUCI (Lua Configuration Interface) z routerem OpenWRT (Open Wireless Router) do integracji z komputerem przemysłowym
  • Łatwe w obsłudze API do współdzielenia kontenerów Docker typu GPIO (wejście-wyjście ogólnego przeznaczenia) z systemem
  • Platforma do zdalnego zarządzania dla wielu urządzeń komputera przemysłowego
  • Dodatkowe platformy fizyczne

 

Projekt 2 – Budowa oprogramowania do zdalnego zarządzania routerami i urządzeniami przemysłowymi

Klient w ramach współpracy z programistami VM.PL postanowił zbudować nowy system do zdalnej obsługi technicznej dla operatorów i konstruktorów maszyn przemysłowych. Wyzwanie postawione przed tym projektem to zapewnienie łatwej, funkcjonalnej oraz przede wszystkim bezpiecznej obsługi, uniemożliwiającej przejęcie danych przez osoby trzecie. Oprócz tego system musiał być obsługiwany przez osoby bez technicznego backgroundu.

Nasze rozwiązanie

 

  • Zarządzanie projektem 

Projekt rozpoczęliśmy w czerwcu 2018 roku. Na warsztatach produktowych omawiamy zadania, plany dotyczącej zapewnienia kolejnych poziomów bezpieczeństwa, nowych rozwiązań, funkcjonalności. Za każdym razem przeprowadzamy retrospektywę obszarów pracy projekcie, tak by przeanalizować sposób rozwiązania danych problemów oraz wyciągnąć wnioski na przyszłość.

  • Budowa oprogramowania 

Jeżeli ktoś ma flotę urządzeń OAM (Operations and Maintenance)  i chciałby nią wygodnie zarządzać, wtedy idealnie sprawdza się zbudowane przez nas customowe oprogramowanie wraz z innymi aplikacjami przedstawionymi poniżej.  Zespół programistów VM.PL skoncentrował się przede wszystkim na prawidłowym i bezpiecznym działaniu systemu, tak żeby nikt poza właścicielem nie mógł mieć do niego dostępu i nim sterować, a jednocześnie, żeby mógł integrować się z wieloma urządzeniami.

Wdrożone aplikacje:

  • Aplikacja do zarządzania konfiguracją wielu routerów w tym komputera przemysłowego — Platforma posiada centralny system zarządzania oparty na szablonach, które obejmują oprogramowanie układowe i konfigurację oraz dają zdalny dostęp do wszystkich urządzeń w terenie.
  • System do bezpiecznej konfiguracji z urządzeniami — Zawiera automatyzowane wdrażanie i zarządzanie konfiguracją VPN i certyfikatami dla urządzeń, szyfrowany dostęp do urządzeń końcowych, centralne miejsce dla przychodzących sieci VPN, stałych przypisań IP, routingu i NAT.
  • Niezależny aplikacja dająca możliwość w pełni zautomatyzowanej infrastruktury VPN — Umożliwia łączność i bezpieczny dostęp do urządzeń i maszyn innych firm w terenie
  • Aplikacja do zarządzania certyfikatami — Jeśli oprogramowanie do zarządzania routerami potrzebuje stworzyć jakieś klucze i certyfikaty SSL, to SCEP Server umożliwia podpisanie tego w procesie autentykacji.
  • Oprogramowanie przeznaczone dla klientów końcowych zabezpieczające oprogramowanie przed nieautoryzowanym użyciem — umożliwia również klientom przeglądanie informacji o bieżących zamówieniach, produktach, licencjach i aktywnych instalacjach oraz zawiera panel administracyjny do zarządzania dostępnymi funkcjami.

Rezultat

Dzięki zaprogramowanemu przez nas systemowi Klient zyskał nowy, dochodowy produkt w kategorii edge computing, co już teraz wydaje się być kamieniem milowym w rozwoju działalności firmy. Urządzenie ma ogromny zakres możliwych zastosowań dla firm napędzanych przez koncepcję IoT i Przemysł 4.0. Ponadto urządzenie to jest również cennym narzędziem do zbierania danych, co może otworzyć możliwości dla oferowania nowych usług analitycznych w przyszłości.

Od klienta

Byłem pod wrażeniem wiedzy deweloperów. Doskonale rozumieli nasze cele, a ich sugestie przynosiły wymierne korzyści. Bardzo szybko byli w stanie zrozumieć złożone zastosowanie aplikacji.

David Nienhaus
System Engineer

Technologie

Logo yocto project
Logo C++
python logo
Logo docker - 1
PHP - 2
Integration und Automatisierung des Systems für die Logistikbranche

Magazynowy system informatyczny usprawniający operacje logistyczne

Design, Development, DevOps czy Cloud – jakiego zespołu potrzebujesz, aby przyspieszyć pracę nad swoimi projektami?
Porozmawiaj o swoich potrzebach z naszymi specjalistami.

Jakub Orczyk

Członek zarządu / Dyrektor sprzedaży
VM.PL

Zamów bezpłatną konsultację
kuba (1)