Inteligentna wizualizacja w systemach SCADA

Wiktor Susfał Wizualizacja SCADA Tagi: , , ,
Webinarium SCADA - inteligentna wizualizacja danych

Inteligentna wizualizacja SCADA w systemie od ICONICS potrafi automatycznie dostosować się do wskazanych danych. Zobacz, jak stworzyć taki ekran bez programowania.

Jeśli nie otwierają Ci się pełne rozmiary obrazków, klikaj w nie PPM i wybieraj „Otwórz w nowej karcie”.

Słowem wstępu

Korzyści jakie daje uniwersalna wizualizacja SCADA opisano już w jednym z wpisów na naszym blogu.

Opisano tam ideę wykorzystania Aliasów (pewnego rodzaju zmiennych tekstowych) w celu dynamicznego dostosowywania ekranu SCADA do prezentowanych informacji. Wartości tekstowe zawarte w aliasach można zmieniać w zdefiniowany przez operatora sposób. Co więcej, można to robić na bieżąco, podczas działania symulacji. Pozwala to między innymi na dynamiczne dostosowywanie ścieżek do zmiennych, w których te aliasy się znajdują. To natomiast skutkuje tym, że jeden ekran SCADA może wyświetlać różne zestawy danych, w zależności od opcji wybieranych przez użytkownika.

W tym wpisie omówiono inne narzędzie, również pozwalające na zwiększenie uniwersalności projektowanych wizualizacji. Wykorzystuje ono poniekąd Lokalne Aliasy, opisane w artykule podlinkowanym wyżej. Niemniej jednak, oferuje ono większy wachlarz możliwości oraz pozwala na jeszcze większą dynamiczną ingerencję w display.

Przede wszystkim, dzięki omawianemu narzędziu możliwe jest kopiowanie wskazanych obiektów na ekranie SCADA. Kopiowanie to odbywa się na podstawie określonych danych ze wskazanego zbioru. Przykładem może być np. utworzenie dynamicznej listy, czy rozwijanego menu na podstawie rekordów tabeli w bazie SQL.

Dla każdego elementu listy klonuje się również jego specjalne akcje dynamiczne, które są uruchamiane np. kliknięciem myszką na obiekt. Dzięki temu, po wyborze danego elementu z listy, odpowiadająca mu wartość w tabeli SQL może być przykładowo zapisana do dowolnej zmiennej.

Używane narzędzie (opcja) nosi nazwę „Clone” i znajduje się na głównym pasku narzędzi w GraphWorX, w zakładce „Dynamics” w sekcji „Selectors”. Opcję tę można przyporządkować do dowolnego obiektu na ekranie (jak na zdjęciu poniżej). Po przypisaniu do obiektu, pojawia się ona natomiast na liście jego akcji dynamicznych (widocznej na poniższym zdjęciu po prawej stronie okna).

Prezentacja opcji Clone w GraphWorX64
Prezentacja opcji Clone w GraphWorX64

Opcję tą dodano do wersji 10.95 oprogramowania GENESIS64 od ICONICS wraz z Update 3 (lub nowszym).

Wizualizacja SCADA w oparciu o dane z bazy SQL

W tej sekcji omówiono (na kilku przykładach), jak tworzyć obiekty na ekranie SCADA w sposób całkowicie automatyczny. Przed przystąpieniem do pracy należy jeszcze zdefiniować połączenie z bazą danych, która zawiera potrzebne informacje.

W tym przypadku wykorzystano połączenie z przykładową bazą „Northwind”, które jest obecne od razu po zainstalowaniu pakietu GENESIS64. Połączenie to można odnaleźć w programie Workbench po węzłem DataConnectivity->Databases.

Więcej o połączeniach z bazami danych można przeczytać w innym artykule na naszym blogu.

Utworzenie jednowymiarowej dynamicznej listy opcji

W tej sekcji pokazano, jak zaprojektować rozwiązanie, które pozwoli na automatyczne dostosowywanie listy opcji (przycisków) do zawartości bazy danych. Co więcej, do każdego przycisku dodano akcję dynamiczną, dzięki której dana wartość z bazy SQL będzie zapisywana do zmiennej lokalnej w GraphWorX.

Każdy przycisk będzie reprezentował nazwę produktu z tabeli „Products” wyżej opisanej bazy danych. Wybór przycisku będzie skutkował zapisaniem tej nazwy do wybranej zmiennej lokalnej.

Dodanie odpowiednich komponentów do ekranu

Pierwszym krokiem, jest dodanie do ekranu SCADA elementu „Scrool Stack Panel”. Wytycza on pewien obszar, w którym dodawane będą elementy (tutaj – za pomocą opcji „Clone”). Dzięki niemu istnieje pewność, że mimo dużego zestawu danych z bazy SQL, nowe elementy nie przesłonią innych, statycznych obiektów na ekranie. Co najwyżej konieczne będzie przewijanie panelu w celu odnalezienia pożądanej opcji.

Drugi krok to dodanie wewnątrz panelu przycisku („Button”) oraz przyporządkowanie mu dwóch akcji: „Clone” oraz „Pick Action” (z komendą „Write Value”). W polu „Data Source” tej drugiej można od razu podać adres zmiennej, do której zapisywane będą wartości pochodzące od poszczególnych opcji.

Jednowymiarowa lista opcji – dodanie potrzebnych obiektów

Konfiguracja opcji „Clone” do utworzenia jednowymiarowej listy

Kolejnym krokiem będzie odpowiednie dostosowanie ustawień opcji „Clone”. Na zdjęciu zamieszonym pod koniec pierwszej sekcji, w ustawieniach akcji „Clone”, widnieją dwie opcje:

  • NumberOfInstances,
  • InstanceNumberAliasName.

Pierwsza z nich odnosi się do pożądanej liczby kopii danego obiektu, jaka ma zostać utworzona podczas symulacji. Druga natomiast, to nazwa Aliasu lokalnego, który przechowuje numer dla każdego dynamicznie utworzonego obiektu. Nazwę tą można wybrać dowolnie i używać jako zmiennej rozróżniającej nowe obiekty – swego rodzaju iteratora.

Niżej, przyporządkowano do pierwszej opcji liczbę rekordów z tabeli „Products” bazy danych „Northwind”. Zmienna przechowująca liczbę rekordów jest tworzona automatycznie dla każdego nowego zapytania dodanego w Workbench.

Jako nazwę zmiennej-aliasu InstanceNumberAliasName wybrano „nr_kopii”.

Jednowymiarowa lista przycisków – konfiguracja opcji Clone

Konfiguracja ustawień przycisku na podstawie numeru kopii

Teraz należy tak skonfigurować ustawienia przycisku, aby każdy z nich zawierał unikalne dane, lecz nadal mógł być kopiowany automatycznie. Jest to możliwe dzięki aliasowi z numerem kopii – tutaj nazwanym „nr_kopii”.

Po pierwsze, należy odpowiednio ustawić tekst widniejący na przycisku. W tym przypadku będzie to nazwa produktu z tabeli „Products”. W standardowym przypadku, ścieżka do pożądanej zmiennej wyglądałaby następująco.

{{db:Northwind.Products[ProductName][0]}}

Gdzie [ProductName] to nazwa kolumny przechowującej odpowiednie informacje, a [0] to przykładowy numer rekordu z tabeli. W tym przypadku jednak należy wprowadzić jedną uniwersalną ścieżkę dla wszystkich przycisków. Uzyska się to za pomocą aliasu InstanceNumberAliasName.

{{db:Northwind.Products[ProductName][<<nr_kopii>>]}}

Teraz dla każdego przycisku przyporządkowana będzie inna nazwa, w zależności od numeru kopii.

Podobnie należy skonfigurować opcję w ustawieniach akcji dynamicznej PickAction (Write Value), która przechowuje wartość zapisywaną do wskazanej zmiennej. W tym przypadku ścieżka dostępu do zmiennej będzie taka sama, choć w ogólnym przypadku może oczywiście się różnić.

Jednowymiarowa lista – ustawienia przycisku

Testowanie jednowymiarowej listy

Teraz, w dowolnym miejscu ekranu, można dodać ProcessPoint wyświetlający aktualną wartość lokalnej zmiennej, do której zapisywane są wartości z przycisków.

Po przejściu do trybu symulacji można zaobserwować, że przyciski powielono automatycznie. Ponadto, każdy z nich zawiera nazwę produktu z odpowiadającego mu rekordu tabeli bazy danych.

W tym przypadku zmodyfikowano w Workbench odpowiednie zapytanie SQL, tak aby zwracało jedynie 10 pierwszych rekordów. Należy bowiem mieć na uwadze, że każdy taki przycisk pobierający dane z bazy to dodatkowa zmienna, która wlicza się do posiadanej licencji. Trzeba mieć tego świadomość przy projektowaniu tego typu rozwiązań, korzystających z dużych zestawów danych.

W podsumowaniu (ostatniej sekcji) zostanie przedstawiony sposób na to, jak radzić sobie z tym problemem. Poniżej natomiast znajduje się wideo prezentujące działanie jednowymiarowej listy.

Prezentacja działania jednowymiarowej listy opcji

Dwuwymiarowa dynamiczna lista

Z wykorzystaniem powyższych narzędzi można oczywiście tworzyć również dwuwymiarowe listy. Przede wszystkim należy jeszcze pamiętać, że klonować można nie tylko przyciski. Klonowaniu podlegają wszystkie elementy dodawane do ekranu – zdjęcia, obiekty 3D, symbole. Powielać można również takie rzeczy, jak np. liczbę pozycji w rozwijanym Menu (ang. Popup Menu).

Przykład projektu – założenia

Na podstawie pewnych kluczowych informacji zawartych w powyższej sekcji, użytkownik powinien łatwo prześledzić niżej przedstawione działania. Zaprezentowane zostanie tu rozwiązanie, w którym wizualizacja SCADA opiera się na danych przechowywanych w specjalnie utworzonej do tego tabeli SQL.

Wizualizacja SCADA - dwuwymiarowa lista obiektów - zestaw danych wejściowych
Wizualizacja SCADA – dwuwymiarowa lista obiektów – zestaw danych wejściowych

Zawiera ona przykładowy spis zasobów (robotów) pracujących przy różnych liniach produkcyjnych. Liczba linii jest określona poprzez zestaw danych w tabeli i może się zmieniać. Przy każdej linii pracuje dana liczba robotów. Co więcej, roboty są rozróżnialne po swoim ID.

Do realizacji tego zadania, należy dodać w Workbench nowe połączenie z taką bazą oraz zdefiniować dwa źródła danych. Pierwsze, zwraca wszystkie numery linii (po jednym rekordzie dla każdego numeru), drugie natomiast wyświetla ID i typy robotów dla danej linii.

Zapytanie SQL - numery linii produkcyjnych
Zapytanie SQL – numery linii produkcyjnych
Zapytanie SQL - typy i ID robotow
Zapytanie SQL – typy i ID robotow

Na ekranie SCADA wizualizowana będzie dwuwymiarowa tablica, prezentująca informacje o liniach produkcyjnych. Poziome rzędy symbolizować będą poszczególne linie. W każdym z nich będzie wyświetlana nazwa, typ oraz zdjęcie odpowiadające danemu robotowi.

Nazwy zdjęć odpowiadają nazwom typów robotów i są przechowywane w jednym folderze.

Folder ze zdjęciami robotów
Folder ze zdjęciami robotów

Wizualizacja SCADA obsługująca dynamiczną dwuwymiarową listę

Na podstawie informacji dotyczących działania samego narzędzia „Clone” (druga sekcja tego wpisu), jak również sposobu przygotowania zestawu danych dla tego przykładu (sekcja poprzednia), użytkownik może prześledzić, jak konfigurowany jest display SCADA.

W gruncie rzeczy, wizualizacja dwuwymiarowej listy na ekranie SCADA opiera się na zagnieżdżeniu w sobie dwóch paneli („Scrool Stack Panel”) – jednego poziomego i jednego pionowego. Akcja Clone jest wtedy przyporządkowana zarówno do samego powielanego obiektu (grupy obiektów), jak i wewnętrznego Scrool Panel’u.

Potrzebne działania można prześledzić na poniższym filmie.

Wizualizacja SCADA – dwuwymiarowa automatyczna lista obiektów

Ograniczenia przy „klonowaniu” obiektów

W treści wpisu został wspomniany fakt, że przy duplikowaniu obiektów na dużą skalę może dojść do niebezpiecznie dużej konsumpcji zmiennych z licencji oprogramowania. Każdy obiekt korzystający z zewnętrznego źródła danych (np. komórki tabeli SQL) to dodatkowa wykorzystywana zmienna w systemie.

Aby temu przeciwdziałać i jednocześnie móc dalej wizualizować spore zestawy danych, można zastosować „stronicowanie” wyników (ang. Pagination). Powoduje to podzielenie zestawu duplikowanych obiektów na grupy (strony), które można swobodnie przewijać. Dzięki temu, w danej chwili zużywana jest mniejsza liczba zmiennych (dokładnie tyle, ile obiektów jest w jednej grupie).

Instrukcję, jak wdrożyć wyżej wspomniane rozwiązanie, można znaleźć pod poniższym linkiem (na jednej ze stron producenta).

Podsumowanie

Opcja „Clone” dostępna w wersji 10.95.3 GENESIS64 (lub wyższej) to bardzo potężne narzędzie. O ile Globalne i Lokalne Aliasy dawały możliwość dostosowania właściwości obiektów już dodanych na ekran SCADA, tutaj możliwości są o wiele większe.

Zamiast po prostu zmieniać „w locie” adresy prezentowanych zmiennych w ProcessPointach, lub podmieniać jedno zdjęcie w tym samym miejscu, można teraz wpływać na ilość obiektów prezentowanych przez display. Od teraz interfejsy SCADA stają się jeszcze bardziej uniwersalne.

Wizualizacja SCADA, która może automatycznie zmieniać się wraz ze zmianą źródłowego zestawu danych daje nie tylko satysfakcję z osiągnięcia wrażenia „automatyzmu”, czy „inteligencji” w systemie. Ekran zmieniający się wraz z rozwojem przedsiębiorstwa to przede wszystkim zaoszczędzony czas. Czas, który kadra pracownicza może poświęci na działania, które rzeczywiście wymagają jej bezpośredniego udziału.

Elmark Automatyka udostępnia za darmo wersję DEMO oprogramowania GENESIS64, abyś mógł sam sprawdzić interesujące Cię funkcje. Napisz do nas na iconics@elmark.com.pl aby uzyskać wersję testową oprogramowania, lub ofertę handlową. Zachęcamy również do kontaktu w razie wątpliwości odnośnie niniejszego wpisu.