Trójwymiarowa dynamiczna wizualizacja SCADA

Wiktor Susfał Wizualizacja SCADA Tagi: , , ,

Przeczytaj ten wpis, aby dowiedzieć się, jak powstaje trójwymiarowa wizualizacja SCADA w oparciu o gotowe modele 3D.

Przydatny link

Dobrym wstępem do niniejszego artykułu jest lektura jednego z poprzednich wpisów na naszym blogu. Wyjaśnia on sposoby używania narzędzi importu oraz redukcji złożoności posiadanych modeli 3D, nieodzowne przy projektowaniu profesjonalnych interfejsów SCADA. Rozwiązania opisane w wyżej wspomnianym wpisie zostały praktycznie użyte podczas budowania omawianej tutaj aplikacji.

Trójwymiarowa wizualizacja SCADA – projekt

Praca nad interfejsem przebiegać będzie w kilku etapach.

  1. Zaimportowanie modelu trójwymiarowego w jednym z obsługiwanych formatów – tu .obj.
  2. Redukcja jego złożoności.
  3. Odpowiednie pogrupowanie elementów składowych (części, z których „sklejony” jest model).
  4. Przypisanie do danych grup elementów odpowiednich akcji dynamicznych wywołujących zmianę zachowania modelu w zależności od pewnych zmiennych.

Import trójwymiarowego modelu

Interfejs SCADA jest oczywiście tworzony w module graficznym GraphWorX wchodzącym w skład pakietu GENESIS64.  Do zaimportowania modelu potrzebne jest dodanie do projektu obszaru 3D – jego zaznaczenie i następnie użycie opcji importu powoduje, że GraphWorX zezwoli za wybór plików modeli 3D z dysku komputera.

Ten krótki zestaw czynności przedstawia poniższy film. W omawianym przypadku wykorzystano model robota. Po zaimportowaniu modelu znajduje się on we wcześniej utworzonym obszarze 3D i co więcej, jest on edytowalny – można sterować jego położeniem oraz właściwościami textur.

W tym miejscu warto przypomnieć sposoby dostosowywania widoku w obrębie obszaru 3D. Polegają one na użyciu klawisza Alt wraz z przyciskami myszy.

  • + LPM  – powoduje obrót widoku,
  • + PPM – przybliża/oddala widok (w zależności od kierunku przesuwania myszy) prostopadle do obecnej płaszczyzny
  • + LPM + PPM – powoduje ruch w obecnej płaszczyźnie.

Zmniejszanie złożoności

Zaimportowany model jest dosyć dokładny, a co za tym idzie skomplikowany oraz trudny do animowania dla silnika graficznego. W przypadku wizualizacji zawierającej więcej takich modeli, wydajność oraz wygoda korzystania z jej interfejsu znacząco spadłaby z uwagi na częste opóźnienia w odświeżaniu ekranu graficznego.

Aby zniwelować ten problem zastosowano narzędzie do zmniejszania złożoności importowanych modeli. Można o nim przeczytać więcej pod linkiem zamieszczonym na początku tego wpisu. Tu jedynie zostanie zaznaczone, że skorzystano z opcji zmniejszenia złożoności już po zaimportowaniu modelu – dzięki temu możliwy jest ciągły podgląd zmian zachodzących na skutek manipulowania dokładnością obiektu.

Grupowanie elementów modelu

Zdecydowana większość skomplikowanych modeli trójwymiarowych  (tworzonych za pomocą zewnętrznych programów) nie jest jednolitym obiektem, lecz składa się z wielu mniejszych części. Fakt ten powoduje, że po zaimportowaniu ich do systemu SCADA ICONICS, użytkownik jest w stanie nie tylko animować ruch modelu jak całości, lecz także planować przemieszczanie się niektórych jego elementów względem innych.

Z drugiej strony strony, męczące i wręcz niepotrzebne może być przypisywanie dynamicznych zachowań do każdej części modelu. W omawianym przypadku, animując ruch robota, projektantowi powinno zależeć na graficznej prezentacji obrotów w jego parach kinematycznych. Widać już więc potrzebę pogrupowania odpowiednich części składowych robota w kategorie.

Najprostszym rozwiązaniem jest tu doprowadzenie do sytuacji, gdzie:

  • element będący na najwyższym poziomie drzewka modelu robota symbolizuje cały model i składa się z dwóch grup obiektów:
    • tworzących bazę robota,
    • tworzących wszystko to, co nie jest bazą;
  • rozwijając drugą z powyższych grup powinny ukazać się dwie kolejne, zawierające elementy składające się na:
    • część robota pomiędzy pierwszą i drugą parą obrotową,
    • wszystko to, co powyżej tej pary obrotowej;
  • schemat powinien się powtórzyć do osiągnięcia ostatniej pary obrotowej robota.

Powyższy opis może wydać się nieco zawiły, dlatego zobrazowano go na poniższym filmie.

Akcje dynamiczne – wizualizacja pracy modelu robota

Środowisko graficzne GraphWorX oferuje możliwość projektowania interaktywnych i dynamicznych wizualizacji SCADA przy użyciu pewnych akcji dynamicznych przypisywanych do konkretnych obiektów. Akcje te działają nieprzerwanie lub po wystąpieniu określonych warunków. Ponadto, ich obecność odciąża użytkownika poprzez eliminację potrzeby pisania skryptów programowych – konfiguracja akcji dynamicznych to w gruncie rzeczy wybór odpowiednich ustawień.

W omawianym przypadku kluczową rolę odgrywa akcja dynamiczna „Rotation”, która ma za zadanie obracać wybrany obiekt. W związku z tym, można dla niej zdefiniować m.in zakres obrotu (definiując kąt początkowy oraz końcowy), kierunek obrotu oraz jego oś. Tu wybrano maksymalny zakres obrotu (w systemie ICONICS jest to 0 – 360 stopni).

Potrzebne są jeszcze sygnały określające kąt obrotu par kinematycznych robota. Dla każdego takiego sygnału podaje się w konfiguracji akcji dynamicznej jego górny i dolny limit – aby GraphWorX był w stanie właściwie odwzorować jego zmienne wartości poprzez obrót elementami modelu robota. Przyjęcie przez sygnał minimalnej wartości skutkować będzie umieszczeniem danej części robota pod kątem zdefiniowanym wyżej jako początkowy. Analogicznie procedura wygląda dla maksimum zadanego sygnału.

Dla każdej pary obrotowej zostały dostosowane wyżej wymienione ustawienia. Przebieg konfiguracji wizualizacji ruchu robota przedstawia poniższy film.

Podsumowanie i efekty

Podczas sporządzania takiej wizualizacji należy mieć na względzie pewne fakty, jak np:

  • konieczność odpowiedniego dopasowania zakresu sygnałów zbieranych z urządzenia (robota) do zakresu animacji w GraphWorX (0 – 360 stopni),
  • odpowiedni wybór osi obrotu każdej pary kinematycznej (pomocne są tu graficzne podpowiedzi w GraphWorX pokazane na powyższym filmie),
  • dokładne ręczne dopasowanie środka, wokół którego obracają się dane elementy (eliminowanie efektu „rozjeżdżania się” części mechanizmu),
  • ustawienie optymalnych: częstości odczytywania danych ze źródła oraz poziomu złożoności modelu, w celu uzyskania płynnej animacji.

Powyższe zadania nie są jednak skomplikowane, wymagają natomiast kilku prób i błędów.

Zaprojektowana trójwymiarowa wizualizacja SCADA jest pokazana na poniższym filmie. Co więcej film ten przedstawia też możliwość zmiany wyglądu posiadanego modelu.

Więcej informacji o module graficznym GraphWorX znajduje się w broszurze dostępnej do pobrania bezpłatnie na stronie producenta, po wypełnieniu krótkiego formularza.

Elmark Automatyka udostępnia wersję demo oprogramowania GENESIS64 w celu osobistego przetestowania funkcjonalności pakietu. Skontaktuj się z nami na ICONICS@elmark.com.pl w celu otrzymania wersji testowej lub oferty handlowej.