Inteligentne maszyny: Technologie ery IIoT

Zasadnicze postępy w dziedzinie rozproszonych i połączonych w sieci maszyn, mających możliwość sterowania w czasie rzeczywistym, obejmują heterogeniczną architekturę obliczeniową, sprzęt, projektowanie i tworzenie oprogramowania oraz gotowość do wdrożenia technologii IIoT.
Co to znaczy, że jakaś rzecz czy maszyna jest inteligentna (smart)? Może chodzi o to, że dane urządzenie jest zdolne do ?wyczuwania? intencji konstruktora lub użytkownika? Może prezentuje nadzwyczajną precyzję lub integruje wiele różnych typów czujników, aby obsługiwać nowe algorytmy sterowania i/lub konserwacji zapobiegawczej? A co ze sterowaniem ruchem na podstawie informacji wizyjnej? Co z komunikacją i translacją wieloprotokołową? Czy inteligentne maszyny są sterowane lokalnie, czy przez rozproszony system sterowania (DCS)? Gdzie tu miejsce na uczenie maszynowe? Czy określenie ?inteligentna? oznacza, że maszyna pracuje w ramach Przemysłu 4.0.?
Heterogeniczna architektura obliczeniowa
W zaawansowanej technologicznie inteligentnej maszynie wymagana jest implementacja szybkiego i nowoczesnego procesora (CPU), który będzie w stanie przetwarzać algorytmy ruchu wieloosiowego i wizyjnego sterowania ruchem. Stanowi to obecnie prawdziwe wyzwanie, ponieważ najszybsze procesory opracowuje się pod kątem obciążeń typowych dla serwerów, zaś ich złożone układy przetwarzania potokowego danych, pamięci podręczne itd. są optymalizowane pod kątem wydajności, nie zaś szybkości i poprawności odpowiedzi deterministycznych w czasie rzeczywistym. Obecnie zwiększenie wydajności procesorów koncentruje się zasadniczo na tworzeniu procesorów kilkurdzeniowych (do czterech rdzeni) i wielordzeniowych (powyżej tej liczby).
Aby to wykorzystać, zadania do wykonania muszą być poddane partycjonowaniu na równoległe operacje sterowania. Systemy operacyjne czasu rzeczywistego i biblioteki powinny zapewniać bezpieczeństwo obsługi wielu wątków, aby zmniejszyć ciężar złożoności programowania aplikacji wielowątkowych, związanych z rozwijaniem technologii procesorów wielordzeniowych. W zakresie od niskiego do średniego obciążenia CPU istnieje miejsce dla zwiększenia częstotliwości taktowania i możliwość pracy w trybie jednowątkowym, kosztem obszaru i zużycia energii.
W przypadku najbardziej zaawansowanych technicznie i najbardziej inteligentnych maszyn, wyposażonych w moduły szybkich we/wy oraz wymagających obsługi deterministycznych odpowiedzi w czasie rzeczywistym ? krótszym od mikrosekundy, nawet najszybsze procesory nie są w stanie obsługiwać całego zakresu wymagań dotyczących ich działania. Rozwiązaniem jest zastosowanie heterogenicznej architektury obliczeniowej.
Pięć przykładów architektury heterogenicznej
Architektura heterogeniczna dostarcza różne silniki obliczeniowe do optymalizowania kilku aspektów sterowania maszynami inteligentnymi, a także zapewnia dodatkowe korzyści konstruktorom takich maszyn. Pięć przykładów architektury heterogenicznej łączy:
-> procesory główne (Central Processing Unit ? CPU) z procesorami sygnałowymi (Digital Signal Processor ? DSP);
-> procesory główne z graficznymi wykonującymi obliczenia ogólnego przeznaczenia (General-Purpose Graphics Processing Unit ? GPGPU) ? procesor graficzny (Graphics Processing Unit ? GPU) może być wykorzystany do innych zadań niż tylko renderowanie grafik, ponieważ użytkownik końcowy jest w stanie zaprogramować go do obliczeń algorytmicznych;
-> procesory CPU, DSP i GPGPU;
-> procesory CPU z programowalnymi układami logicznymi FPGA (Field-Programmable Gate Array);
-> specyficzne dla aplikacji rdzenie IP (Intelectual Property block ? blok będący własnością intelektualną, IP core), wdrażane w dowolnym z powyższych układów.
Te podstawowe rodzaje architektur mogą istnieć w komponentach dyskretnych lub zostać zintegrowane z układem scalonym zawierającym kompletny system elektroniczny (System-on-Chip ? SoC). W niektórych urządzeniach zaimplementowano dodatkowe bloki IP, bardziej specyficzne dla konkretnych aplikacji, które są związane z producentami maszyn, takie jak urządzenie DSP z modułem PWM (Pulse-Width Modulation ? sterowanie szerokością impulsów).
W ostatnich latach popularnymi przykładami architektury heterogenicznej stały się procesory CPU z układami FPGA. Takie rozwiązanie dostarcza użytkownikowi trzech jednostek obliczeniowych, ponieważ producenci układów FPGA stworzyli w swoich urządzeniach potężne bloki do budowania i obsługi procesorów DSP. Układ FPGA jest projektowany do przetwarzania danych w czasie rzeczywistym ? nawet na poziomie nanosekundy, aby zapewnić determinizm sprzętowy, niezawodność, pełne dostosowanie do potrzeb użytkownika, elastyczność, możliwość aktualizacji na obiekcie oraz usuwania błędów (bug fixes) bez wymiany sprzętu (np. poprzez aktualizację oprogramowania).
Koszty, działanie i zużycie energii przez procesory

Użytkownicy mogą wybierać spośród wielu dostępnych układów FPGA i CPU, oceniając ich przydatność do aplikacji konkretnych maszyn pod względem wydajności działania, cen, wymiarów, poboru mocy i liczby wejść/wyjść. Jest także możliwe zaprojektowanie skalowalnej platformy sprzętowej, która wykorzystuje popularne oprogramowanie dla procesorów CPU i bloków IP w układach FPGA. Kilka lat temu opracowano układy scalone SoC, integrujące procesory CPU z układami FPGA (i blokami do budowania DSP). Rysunek 1 ilustruje uproszczoną wersję podstawowych architektur heterogenicznych.
W branży często słychać pytanie, która architektura jest najlepsza? Odpowiedź brzmi: taka, która najlepiej pomaga spełnić wymagania technologiczne, klienta i biznesowe. A to zależy od sytuacji i aplikacji. Jedną z wytycznych jest skoncentrowanie się na tej architekturze, która zapewnia długoterminowe zyski i pomaga zaspokoić potrzeby wielu generacji urządzeń sterowniczych. Inwestycje w architektury potrafią przynieść duże zyski, ale warto też pamiętać, że częste zmiany architektur mogą się okazać tylko stratą czasu, pracy i pieniędzy.
Ze względu na złożoność tematu jest bardzo mało testów porównujących te zróżnicowane architektury pod względem ich działania. Najczęściej publikowane są oddzielne zestawienia specyficzne dla CPU (np. Coremark czy SPECint) lub parametry specyficzne dla FPGA. Potrzebna byłaby platforma zorientowana na obciążenie robocze wraz ze spójną metodologią porównywania odpowiednich parametrów w sposób zorientowany na aplikację końcową. Jedną z niewielu organizacji, które usiłowały wykonać takie zestawienie porównawcze architektur heterogenicznych, jest Ośrodek NSF (National Science Foundation ? amerykańskiej narodowej fundacji na rzecz nauki) Zaawansowanej Rekonfigurowalnej Techniki Obliczeniowej (NSF Center for High-Performance Reconfigurable Computing).
Aby opracować analizę przeznaczoną dla porównania bardzo różnych implementacji, badacze powołali do życia platformę do analizy różnych heterogenicznych architektur procesora. Dla aplikacji sterujących pracą maszyn użyli kilku odpowiednich zadań roboczych, takich jak zdalne wykrywanie, przetwarzanie obrazu, sterowanie ruchem, generowanie trajektorii oraz komunikacja.
Sprzęt, projektowanie i rozwój oprogramowania
Wyzwaniem dla efektywnego wykorzystania każdej architektury heterogenicznej jest złożoność sprzętu oraz procedur projektowania i rozwoju oprogramowania. Zbiór zasadniczo odmiennych i niezintegrowanych ze sobą narzędzi może skomplikować prace (workflow), zarządzanie danymi projektowymi oraz zwiększyć ryzyko złego przebiegu procesów. Często wiele uwagi poświęca się rozwojowi oprogramowania, co w tym kontekście oznacza tworzenie aplikacji ?na szczycie? sprzętu roboczego oraz stosu oprogramowania run time ? zamiast skoncentrować się na samym projektowaniu.
Projektowanie możliwego do wdrożenia i dopasowanego do użytkownika systemu sprzętu i oprogramowania, służącego realizacji zaawansowanego sterowania przemysłowego, wymaga dysponowania wieloma pogłębionymi możliwościami, narzędziami, procesami i odpowiednią metodologią. Biorąc zaś pod uwagę technologiczny postęp, podczas którego sprawdziło się prawo Moore?a, wzrosły: złożoność, wyzwania i ryzyko dopasowane do użytkownika projektowania systemów o wysokich parametrach ? podobnie jak ceny narzędzi oraz potrzeby posiadania wyspecjalizowanej wiedzy i doświadczenia w projektowaniu.
Prędkości pracy urządzeń półprzewodnikowych radykalnie się zwiększyły, zarówno na poziomie rdzeni procesorów, jak i modułów wejść/wyjść, gdzie wyzwaniem pozostaje integralność sygnału nawet na poziomie płytki drukowanej, często wymagająca specjalnie do tego przeznaczonych narzędzi i zrozumienia tematu. Zaawansowane pakiety, mające ponad 1000 pinów, z małą podziałką (od 0,5 do 1 mm), znajdujące się w ich pobliżu kondensatory odsprzęgające oraz inne wyzwania projektowe wymagają opracowania zaawansowanych obwodów drukowanych, 1016-warstwowych, komplikując projektowanie, produkcję i certyfikację wyrobów. Liczba szyn zasilania i zarządzanie zasilaniem w takich układach także zwiększają złożoność doboru źródła i strategii rozdziału zasilania.
Coraz bardziej popularny staje się, zajmujący sporo miejsca, system operacyjny czasu rzeczywistego Real Time Linux (RTLinux), oferujący zwiększone możliwości przetwarzania danych, wsparcie po niskiej cenie obsługi dużych pamięci rzędu megabajtów i gigabajtów, potrzebne do pracy w sieci, wraz z dążeniem do tego, by oprogramowanie wykonywało jak najwięcej zadań. Wdrożenie swojej własnej wersji systemu operacyjnego wraz z rozwijaniem związanych z nim sterowników i wykonywaniem walidacji sprzętu/oprogramowania w architekturze heterogenicznej, wymaga dodatkowego zestawu narzędzi i fachowej wiedzy. W przypadku systemu RTLinux istnieją organizacje i projekty, takie jak Fundacja Linux (Linux Foundation) i Projekt Yocto (Yocto Project), które pracują nad jego standaryzacją i ułatwianiem adaptowania.
<—newpage—>Projekt solidnego wyrobu
Konstruując urządzenie, które ma być solidne i działać przez długi czas, trzeba wykonać dodatkowe prace projektowe, testowe i walidacyjne w obszarze zużycia energii, zarządzania termicznego, odporności na wstrząsy i wibracje oraz innych aplikacji. Przykładowo, symulacje termiczne pozwalają na ujawnienie miejsc przegrzewania się sprzętu, czyli źródeł potencjalnych problemów. Jeśli chcemy sprawić, by projektowany produkt wytrzymał warunki pracy w środowisku przemysłowym, należy w obliczeniach wziąć pod uwagę powiązane ze sobą kwestie, takie jak dobór komponentów, projekt i układ płytki drukowanej oraz zarządzanie termiczne, np. zastosowanie radiatorów i wentylatorów. Trzeba pamiętać także o uzyskaniu odpowiednich certyfikatów, zależnie od położenia geograficznego i środowiska pracy wyrobu.
Z tym wszystkim związane jest również zagadnienie kompleksowego łańcucha dostaw ze strony producentów/dystrybutorów urządzeń i narzędzi. Większość producentów i dostawców nie zapewnia bezpośredniego wsparcia czy serwisu. W efekcie wielu producentów OEM należących do tych kategorii często jest pozostawionych samym sobie, co z kolei powoduje, że wykorzystanie najnowszej dostępnej technologii staje się dla nich nie lada wyzwaniem ? szczególnie w odniesieniu do podzespołów klasyfikowanych jako odpowiednie do pracy w przemyśle, o długotrwałej dostępności (ponad dziesięć lat).
Sposobem na radzenie sobie z tego typu wyzwaniami jest użycie dającego się wykorzystać, solidnego produktu, pochodzącego od sprawdzonego dostawcy cieszącego się dobrą reputacją, funkcjonującego od dawna w przemyśle i koncentrującego się natej działalności. Może chodzić zarówno o urządzenia w obudowach, takie jak programowalne sterowniki automatyki (PAC), przemysłowe komputery typu PC (IPC) czy sterowniki przemysłowe, jak i dostarczane bez obudowy komputery jednopłytkowe i moduły SOM (System On Module).
Równie ważny jest dostarczany stos oprogramowania. Należy zwrócić uwagę, czy opiera się on na otwartym kodzie źródłowym, a więcczy da się dostosować oprogramowanie do wymagań użytkownika. Warto dowiedzieć się, czy dostawca ma odpowiednie kompetencje w dziedzinie gotowego do wdrożenia oprogramowania typu runtime. Sprawdźmy, czy sprzęt i oprogramowanie zostały zwalidowane i przetestowane w tysiącach zastosowań praktycznych. Pamiętajmy, że istnieje różnica pomiędzy oprogramowaniem referencyjnym otrzymanym od dostawcy a oprogramowaniem gotowym do wdrożenia. Zrozumienie tego jest ważne dla osiągnięcia końcowego efektu i nie zmarnowania wysiłku włożonego w projektowanie.

Środowiska rozwoju oprogramowania
Biorąc pod uwagę rozwój oprogramowania, w przemyśle dokonano wielkiego postępu odnośnie opracowywania języków i narzędzi projektowania wyższego poziomu, upraszczających niektóre lub wszystkie leżące poniżej złożoności, nieodłączne dla architektur heterogenicznych. Dzięki temu można się skoncentrować na zróżnicowanym opracowywaniu aplikacji, a nie na szczegółowym projektowaniu aplikacji systemów niskiego poziomu.
Wraz z postępem dotyczącym projektowania za pomocą modeli (Model Based Design), języków programowania wyższego poziomu, narzędzi syntezy wysokiego poziomu oraz graficznego projektowania systemów, dostępne stały się różne narzędzia i metodologie. Niektóre z nich są ukierunkowane na uproszczenie złożoności rozwoju technologii kilku- i wielordzeniowej, inne zaś koncentrują się na akceleratorach sprzętowych/rdzeniach IP, w celu uzyskania kompletnych systemów/podsystemów zawierających wejścia/wyjścia. Te drugie są często połączone z różnymi architekturami sprzętowymi i implementacjami sprzętu.
W przypadku narzędzi, które składają się na sprzęt, większość deweloperów tworzy bloki IP kodu HDL (Hardware Description Language ? języka opisu sprzętu, wykorzystywanego do opisu układów cyfrowych) dla sprzętu docelowego, zwykle układu FPGA, co wymaga wiedzy i doświadczenia w dziedzinie przepływu narzędzi do opracowywania i implementacji HDL (szczegółowe ograniczenia czasowe, przełączniki narzędzi itd.), aby skompletować projekt. Mało deweloperów potrafi natomiast kompletnie obsługiwać cały proces projektowania ? od początku do pełnej implementacji.
Gotowość na wdrożenie technologii IIoT
Jak wynika z doświadczeń zdobytych przy okazji prac nad najnowszymi koncepcjami, takimi jak IIoT, Przemysł 4.0, Made in China 2025 czy Made in India, zaawansowane technologicznie, inteligentne maszyny potrzebują wzajemnej komunikacji z innym sprzętem, urządzeniami technologii operacyjnej (OT) i informatycznej (IT) oraz potencjalnie z chmurą. Ważne więc, aby zrozumieć, jak wszystkie te idee ewoluują, poznać okazje do ich wdrożenia i wykorzystania oraz dowiedzieć się, jaką rolę mogą w tym odegrać architektura, metodologie i narzędzia projektowania. Dla uproszczenia przyjmuje się, że we wszystkich tych aspektach odpowiedzi zapewni technologia IIoT.
Zaawansowana technologicznie inteligentna maszyna, zdolna lub gotowa do wdrożenia technologii IIoT, powinna się charakteryzować czterema zasadniczymi cechami. Są to:
-> dostępność wielu typów wejść/wyjść (I/O) oraz możliwość ich rozszerzania;
-> możliwość przetwarzania danych w czasie rzeczywistym;
-> możliwość komunikacji w czasie rzeczywistym;
-> rozszerzalność i elastyczność systemu.
Wiele typów modułów wejść/wyjść oraz rozszerzalność są wymaganew celu umożliwienia dodawania tylu typów czujników szybkich i standardowych, analogowych i cyfrowych, ile potrzeba do zwiększenia możliwości i obserwowalności maszyny w jej operacjach i sterowaniu. Czujniki mogą być zaprojektowane pod kątem wymagań maszyny lub dodane tak, aby:
-> zwiększyć wiedzę na temat kondycji i stanu pracy maszyny;
-> precyzyjnie i szybko sterować pracą maszyny w celu zwiększenia jej wydajności;
-> uwzględnić zdolność dostrojenia maszyny do przyszłych modeli biznesowych opartych na usługach.

Sterowanie szybkim i zsynchronizowanym ruchem
Zwiększone możliwości obliczeniowe wymagane są do obsługi szybszych niż dotąd i bardziej precyzyjnych modułów i sygnałów wejść/wyjść oraz ? w sytuacji gdy powstaje coraz więcej odpowiedniego oprogramowania ? w celu spełniania zmieniających się wymagań użytkownika końcowego. Ponieważ niezbędna jest większa synchronizacja przy mniejszej fluktuacji (jitter) oraz sterowanie wieloosiowe i uruchamianie na poziomie nanosekund, to koniecznością staje się zastosowanie systemu sterowania o ostrych ograniczeniach czasowych (hard real time).
Niektóre z najbardziej zaawansowanych maszyn, przeznaczone np. do cięcia laserowego, wymagają bardzo szybkiego, synchronizowanego sterowania ruchem na poziomie 100 nanosekund lub mniej, z powodu koniecznej wysokiej precyzji obróbki. W przypadku sterowania wieloosiowego ścieżki trajektorii ruchu muszą być obliczane błyskawicznie, aby osiągnąć dużą wydajność maszyny, co zaczyna już przekraczać granice możliwości współczesnych technologii. Wybór odpowiedniej architektury heterogenicznej jest w stanie wydatnie pomóc w spełnieniu takich ostrych wymagań.
Ponieważ możliwości obliczeniowe na poziomie pojedynczego sterownika zwiększają się, systemy sterowania są bardziej rozproszone. Aby w pełni wykorzystać potencjał sterowania rozproszonego, urządzenia do szybkiej komunikacji danych muszą także spełniać wymagania sterowania w czasie rzeczywistym. Aby zaś spełnić potrzeby technologii IIoT, w najbliższej przyszłości powinno się w pierwszej kolejności rozważyć stworzenie zunifikowanej sieci komunikacyjnej, opartej na najnowszej aktualizacji sieci wrażliwych na czas (Time-Sensitive Networking ? TSN) do standardowej sieci Ethernet (wg IEEE 802.1).
Era IIoT będzie wymagała sieci konwergentnej, zdolnej obsługiwać przesył danych medialnych, sterowanie, pomiary i funkcje zarządzania, jednocześnie gwarantując synchronizację czasową, niskie opóźnienie, odpowiedni priorytet i przepustowość, redundancję i tolerancję błędów. Przy wykorzystaniu standardowej sieci Ethernet zminimalizowaniu ulegną koszty z powodu wyeliminowania sprzętu firmowego oraz podniesienia parametrów roboczych, ponieważ we współczesnych sieciach Ethernet prędkości przesyłu danych wynoszą od 0,01 do 1 GB/s. Często niezbędna będzie obsługa istniejących protokołów i sprzętu firmowego, więc system sterowania może także działać jako brama sieciowa obsługująca wiele protokołów.
Koszty cyklu życia produktu
Architektury sieciowe elastyczne i wspierające rozszerzalność systemu stały się ważne dla rozwoju sieciowych systemów sterowania oraz kosztów cyklu życia produktu. Podejście oparte na platformie zapewniającej obsługę wielu klas maszyn z architektury o jednej podstawie oznacza, że sprzęt i oprogramowanie mogą być efektywnie użyte ponownie. Architektury heterogeniczne są tu w stanie dostarczyć najszerszy zakres możliwości.
Przykładowo, przy wykorzystaniu układu FPGA da się wykonać powdrożeniową aktualizację sprzętową w celu m.in. nadania urządzeniom nowych cech, umożliwienia spełniania wymagań nowych standardów czy poprawy parametrów, bez potrzeby dokonania prac serwisowych w obiekcie lub wymiany sprzętu. Narzędzia, które mogą być użyte do zdalnego zarządzania, konserwacji i debugowania wdrożonego systemu, powinny stanowić część platformy oprogramowania. Takie opcje rozszerzają możliwości i podnoszą wartość wdrożeń IIoT. Platforma oparta na architekturach heterogenicznych może zmniejszyć całkowite koszty cyklu życia produktu.
Nadeszła ekscytująca era technologii IIoT ? decydując się na projektowanie i wytwarzanie najnowszych inteligentnych maszyn, należy teraz rozważać wiele czynników. Trzeba dobrać architekturę sterowania i wejść/wyjść oraz przeprowadzić analizę różnych przestrzeni rozwiązań. Pomyślmy, ile się pojawi nowych opracowań, aby spełnić wymagania rozproszonych maszyn, połączonych w sieci i sterowanych w czasie rzeczywistym. Dlatego konieczne jest zrozumienie, jakie podejście, oparte na jakiej platformie, należy wybrać dla określonego typu aplikacji, maszyn i procesów.
To pomaga skoncentrować zasoby sprzętowe i programowe na zróżnicowaniu produktów końcowych i dopasowywaniu ich do potrzeb użytkownika. Musimy wiedzieć, jakie kluczowe funkcje, narzędzia i technologie są nam potrzebne, aby efektywnie wykorzystywać nowe możliwości IIoT.
Autor: Greg Brown jest głównym menedżerem ds. marketingu wyrobów w firmie National Instruments.
Tekst pochodzi z nr 4/2017 magazynu "Control Engineering". Jeśli Cię zainteresował, ZAREJESTRUJ SIĘ w naszym serwisie, a uzyskasz dostęp do darmowej prenumeraty w formie drukowanej i/lub elektronicznej.