GridWorX Viewer: Inteligentna prezentacja informacji z baz danych SQL

Wiktor Susfał Łączność i Zarządzanie, Wizualizacja SCADA

Dowiedz się, jak w kilku krokach sporządzić zawsze aktualny interfejs wizualizujący informacje przechowywane w bazach danych.


Cel artykułu

Efektem końcowym wyżej postawionego zadania będzie ekran SCADA zawierający tabelę, w której użytkownik ma możliwość wyświetlania danych z wybranych ostatnich kilku dni poprzez obsługę przygotowanych przycisków. Raz skonfigurowany interfejs, będzie spełniać swoją rolę zawsze, automatycznie dostosowując wartości swoich parametrów do aktualnej daty.

Przed dalszą lekturą tego wpisu zaleca się zapoznanie z artykułem o narzędziu Global Alias oraz nawiązywaniu łączności z bazami danych.


Przygotowanie źródła danych – połączenie z bazą SQL

Analogicznie jak to zostało opisane w drugim z w/w wpisów, utworzono źródło danych oparte o przykładową tabelę z baz danych SQL. Tabela ta zawiera rekordy informujące o ilości wytworzonych wyrobów w konkretnym dniu, podczas trwania konkretnej zmiany. Zapytanie SQL wydobywające informacje z tabeli skonfigurowano tak, że zwraca ono pełne dane o produkcji z konkretnego dnia. W tym celu utworzono parametr date_parameter przechowujący pożądaną datę. Wyżej opisane czynności przedstawia poniższy film.


Budowa interfejsu SCADA

Ekran przygotowany na potrzeby prezentacji jest bardzo prosty i zawiera tylko niezbędne elementy. Na tym etapie będą to 4 obiekty typu „Button” (przyciski) oraz okno narzędzia GridWorX Viewer. Napis zawarty na przycisku będzie wskazywał na datę, jaką ustawia on dla danych wyświetlanych w tabeli.

Dla przykładu, aby uzyskać automatycznie napis będący aktualną datą, należy wprowadzić w pole konfiguracji „Text” przycisku następującą formułę:

{{x=toformat(now(), „MMMM dd”)}}

zwróci ona aktualna datę w określonym formacie. Dodano jeszcze 3 przyciski, każdy ustawiający datę o jeden dzień wstecz. Dla przykładu, to formuła dla przycisku obsługującego wczorajszą datę:

{{x=toformat(now()-fromdays(1), „MMMM dd”)}}


Konfiguracja GridWorX Viewer

Pierwszym krokiem, jeszcze przed ustawieniem w/w narzędzia jest przygotowanie zmiennej przechowującej pożądaną wartość parametru date_parameter. Zmienną tą będzie globalny alias, z uwagi na proste zapisywanie do niego ciągów znaków. Do każdego z 4 utworzonych przycisków zostanie przypisana komenda SetGlobalAliases skonfigurowana tak, że będzie wprowadzać do aliasu ciąg znaków symbolizujący określoną datę. Odpowiednia komenda wpisująca aktualną datę w pożądanym formacie do aliasu to:

{{x=”#NazwaAliasu=”+toformat(now(), „yyyy-MM-dd”)+”/2;”}}

Dla przykładu, data wczorajsza uzyskiwana jest za pomocą:

{{x=”#NazwaAliasu=”+toformat(now()-fromdays(1), „yyyy-MM-dd”)+”/2;”}}

Drugi krok to dodanie w oknie konfiguracji GridWorX Viewer subskrypcji odpowiedniego źródła danych. W obecnie omawianym przypadku nie stworzono w Workbench kilku widoków tego samego sparametryzowanego źródła danych (porównaj z tym wpisem). Natomiast, podczas dodawania subskrypcji do GridworX Viewer’a przekazano wyżej utworzony alias jako wartość parametru.


Prezentowanie danych z baz SQL – wykresy

GridWorX Viewer pozwala nie tylko na wyświetlanie informacji za pomocą dynamicznych tabel. Możliwe jest również generowanie różnego typu wykresów na ich podstawie. Na potrzeby niniejszego projektu dodano nowe źródło danych do serwera GridWorX w programie Workbench, które wydobywa wszystkie informacje z używanej tabeli. Sporządzony wykres będzie, w postaci słupków, wyświetlał sumę wyprodukowanych towarów w zależności od numeru zmiany (S1, S2, S3) , za cały okres prowadzonych pomiarów. Poniższy film przedstawia wyżej opisane czynności, krok po kroku.


Podsumowanie

Moduł graficzny GraphWorX oraz narzędzie GridworX Viewer oferują szereg dodatkowych funkcji, pozwalających dostosować projektowane interfejsy zarówno pod kątem funkcjonalności, jak i wyglądu. Możliwe jest m.in. automatyczne wyróżnianie rekordów tabeli spełniających dane warunki. Na poniższym filmie pokazano ten sam interfejs, z bardziej dopracowaną szatą graficzną oraz funkcją „migających” wierszy tabeli, których pole ,”Pieces” zawiera wartość większą niż 330.


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.