Import danych offline do systemu SCADA

63

Poznaj rozwiązania pozwalające na import danych offline do modułu archiwizacji systemu SCADA ICONICS, jakim jest HyperHistorian.

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

W praktyce często zdarza się, że połączenie na linii: urządzenie generujące dane – moduł archiwizacji zostaje przerwane. Zdarza się również, że zachodzi potrzeba wprowadzenia do nowego systemu danych z urządzeń, gromadzonych przez dłuższy okres czasu wstecz.

W obydwu przypadkach, interesujące nas informacje gromadzi się w zastępczych lokalizacjach w formie plików o różnym formacie. Wpis ten powstał w celu zaprezentowania dwóch możliwych rozwiązań pozwalających na import takich danych do modułu Hyper Historian.

Moduł archiwizacji Hyper Historian od ICONICS to rozbudowane narzędzie. Oferuje ono zarówno funkcjonalności takie jak wydajność (zapis do 100 000 wartości zmiennych na sekundę), jak i niezawodność (możliwość konfiguracji redundancji). Z uwagi na szeroki wachlarz możliwości, Hyper Historian to rekomendowany przez ICONICS produkt do obsługi archiwizacji danych procesowych, w zastępstwie standardowych baz danych (np. SQL). Z tego powodu warto zapoznać się z mechanizmami wprowadzania dowolnych danych do tego modułu.

Podobne zagadnienie – związane z importem danych w formacie JSON z pliku do bazy SQL, opisano już na naszym blogu. Aby przejść do tego wpisu, należy wybrać poniższy link.

W dalszej części wpisu zaprezentowano dwa sposoby importu danych do Hyper Historian:

  • z plików .csv – za pomocą natywnego narzędzia MergeWorX,
  • z dowolnego źródła obsługiwanego przez GENESIS64 – przy użyciu silnika SQL Hyper Historian.

Import danych z plików .csv

Działanie narzędzia – MergeWorX

Pakiet GENESIS64 jest wyposażony w natywne narzędzie służące do importu danych do modułu Hyper Historian – MergeWorX. Pozwala ono na dodawanie nowych źródeł danych (Plugins), z których dane zostają importowane w określony sposób.

Aby skonfigurować dany Plugin, należy wypełnić kilka opcji. Są to m.in:

  • Plugin Type – typ źródła danych: CSV lub MELIPC Output CSV;
  • Output Node Prefix – ścieżka do serwera z docelowym Hyper Historian; jeśli znajduje się on na maszynie lokalnej, należy pozostawić puste;
  • Trigger Point – wybrany trigger, który wyzwala działanie danego plugin’u.

Dalej użytkownik określa informacje na temat plików z danymi. Określa on między innymi:

  • ich lokalizację;
  • działania podejmowane po ich przetworzeniu (archiwizacja, usunięcie lub zmiana nazwy);
  • typ kodowania znaków;
  • własny znak rozdzielający dane w pliku.

Dodatkowo, operator określa lokalizację dla archiwizowanych plików (jeśli taka następuje) oraz miejsce, do którego MergeWorX przenosi je po nieudanym imporcie.

Ustawienia modułu pozwalającego na import danych offline - MergeWorX
Ustawienia modułu pozwalającego na import danych offline – MergeWorX

Wymagana struktura plików .csv

W plikach csv można zawrzeć kilka informacji dotyczących archiwizowanych zmiennych. Są to na przykład:

  • DataPoint – względny adres dostępu do zmiennej w module Hyper Historian;
  • Value – wartość danej zmiennej;
  • Quality – jej jakość (domyślnie to 0 – najlepsza);
  • Timestamp – stempel czasowy dla danej wartości.

Pliki powinny wyglądać tak, aby dla każdej zmiennej najpierw podać kolejność wprowadzanych parametrów – poprzez wypisanie kolejno powyższych słów kluczowych, a następnie zawarcie w kolejnych linijkach całego zbioru parametrów dla danej zmiennej. Przykład znajduje się poniżej.

Struktura pliku csv z danymi offline do importu w systemie SCADA
Struktura pliku csv z danymi offline do importu w systemie SCADA

Wczytanie pliku o takiej zawartości spowoduje wprowadzenie danych do tagu o nazwie Off_1 znajdującego się w folderze FolderOffline pod konfiguracją lokalnego HyperHistorian. Wprowadzane informacje dotyczą stempla czasowego i wartości – jest to niezbędne minimum.

Lokalizacja zmiennej w Hyper Historian
Lokalizacja zmiennej w Hyper Historian

Co więcej, w jednym pliku csv mogą być zawarte dane odnośnie więcej niż jednej zmiennej. Pierwszy sposób polega na powtórzeniu nagłówka z powyższego zdjęcia po ostatniej linijce pliku (ze zmienioną ścieżką do docelowej zmiennej) oraz dopisaniu nowych rekordów.

Druga opcja natomiast zakłada dodawanie informacji o zmiennych w plikach na przemian – po jednym rekordzie danych dla danego tagu na raz. W tym przypadku plik csv wyglądałby w następujący sposób.

Alternatywna struktura pliku csv
Alternatywna struktura pliku csv

Poniższy film pokazuje zarówno przykładową procedurę importu wartości dwóch zmiennych (pierwsza część), jak i metody ich wizualizacji na wykresach (druga część).

Import i wizualizacja danych offline

Import danych za pomocą HH SQL Query Engine

W tej sekcji przedstawiono przykład projektu zapewniającego zautomatyzowany import danych do systemu SCADA. Kluczowym punktem jest tu wykorzystanie silnika zapytań SQL, w jaki wyposażony jest Hyper Historian, jak również obecności tego modułu na liście serwerów dołączonych w SQL Management Studio. Dzięki powyższym dwóm faktom można stworzyć procedurę, która spowoduje wykonanie na serwerze dołączonym funkcji „INSERT”. Procedura zawierać będzie parametry dzięki czemu można ją wykorzystać do różnych zestawów danych.

Taką procedurę można wywołać na przykład za pomocą narzędzia GridWorX w systemie GENESIS64. Całkowite zautomatyzowanie procesu uzyskuje się dodatkowo dzięki wdrożeniu narzędzi BridgeWorX oraz trigger’ów. Pierwsze z nich odpowiada za wykonanie algorytmu importu danych, a drugie wywołuje pracę BridgeWorX po wykryciu nowego zestawu danych.

Procedura SQL do importu danych w systemie SCADA

Serwerem bazy danych wykorzystywanych w tym przypadku jest MS SQL Server 2014 Express. Oczywiście możliwych kodów procedur SQL, które realizuję wyżej postawione zadanie, jest dużo. Jeden z przykładowych można podejrzeć niżej.

Pobiera ona parametry takie, jak:

  • stempel czasowy danej wartości,
  • nazwę folderu w konfiguracji Hyper Historian, gdzie przechowywana jest zmienna,
  • nazwę zmiennej,
  • jakość odczytu,
  • wartość zmiennej.

Powyższą procedurę należy zainstalować np. pod konfiguracyjną bazą danych Hyper Historian w SQL Management Studio (razem z domyślnymi procedurami od ICONICS).

Procedura importu danych w SQL Management Studio

Kolejny krok to skonfigurowanie narzędzie GridWorX w pakiecie GENSIS64 w celu wykonywania powyższej procedury SQL.

Konfiguracja Hyper Historian

Pierwszą rzeczą, jaką należy wykonać, jest dostosowanie ustawień Loggera Hyper Historian, pokazanego na zdjęciu niżej. Odpowiada on za zapis danych do plików na dysku komputera.

Konfiguracja Loggera modułu archiwizacji danych od ICONICS
Konfiguracja Loggera modułu archiwizacji danych od ICONICS

Wszystkie ustawienia użytkownik może dostosować według własnych preferencji – zgodnie z instrukcjami lub plikami pomocy. Uwagę należy jednak zwrócić na opcję „Starting At”. Jest to początkowa data dla archiwizowanych wartości. Logger nie zapisze żadnych pomiarów posiadających stempel czasowy wcześniejszy od podanego w tym miejscu. Nie ważne, czy archiwizacja będzie wymuszana za pomocą MergeWorX, SQL Query Engine, czy w standardowy sposób.

Następny etap to dodanie archiwizowanego tagu pod konfiguracją Hyper Historian. Jego nazwa oraz folder, w jakim będzie się znajdował, determinują wartości parametrów przekazywanych do Data Manipulator’a w GridWorX. Przykład takiego tagu znajduje się na zdjęciu poniżej.

Konfiguracja archiwizowanej zmiennej offline w module Hyper Historian
Konfiguracja archiwizowanej zmiennej offline w module Hyper Historian

W tym przypadku odznaczono opcję „Is Collected”, dzięki czemu nie trzeba podawać tu ścieżki do archiwizowanej zmiennej (wszystkie dane pod tym tagiem pochodzą z ręcznego procesu ich wprowadzania). Możliwe jest jednak również edytowanie, wstawianie i usuwanie wartości zmiennych archiwizowanych automatycznie.

Wprowadzanie danych offline

W najprostszym przypadku można odnaleźć parametry należące do utworzonego wcześniej Data Manipulatora (za pomocą Data Explorer), wyedytować je, a następnie wywołać działanie procedury za pomocą zmiennej @@Execute.

'a widoczne w Data Browser
Parametry utworzonego Data Manipulator’a widoczne w Data Browser

Ścieżka dostępu do tych parametrów w oknie Data Explorer jej taka sam jak na powyższym zdjęciu. Wyszukiwarka danych w programie Data Explorer jest taka sama jak w oknie GENESIS.

Za pomocą Data Explorer można również śledzić to, jak przebiega import danych do zmiennej offline w systemie SCADA. Wystarczy wyszukać ją w drzewku po lewej stronie (patrz film poniżej) i przełączyć odczyt na tryb wykresu.

Przykład użycia Data Manipulatora

Automatyzacja procesu

Na powyższym filmie import danych offline do systemu SCADA realizowany jest ręcznie. Jest to dobry sposób tylko w przypadku, gdy istnieje potrzeba dodania lub edycji pojedynczych próbek danych.

Jeśli chodzi o zautomatyzowanie procesu importu danych, można posłużyć się narzędziami takimi jak BridgeWorX – służącym do graficznego tworzenia algorytmów wykonywanych w obrębie systemu SCADA. W ramach tego modułu użytkownik posiada szeroki wybór bloków funkcyjnych, z których można układać schematy przepływu danych (ang. Workflows). Co więcej, algorytmy BridgeWorX wykonywane są w systemie przy wystąpieniu określonych warunków – np. przy ich ręcznym uruchomieniu przez operatora, lub pobudzeniu przy pomocy dowolnego trigger’a.

Podobne rozwiązanie, które importuje dane z pliku JSON do tabeli w bazie danych SQL zostało już opisane na naszym blogu.

W przypadku omawianym w tym wpisie można wykorzystać zdecydowaną większość rozwiązań z artykułu, do którego link podano wyżej. Tak naprawdę, podmienić należy tylko element Data Manipulator (zarówno w konfiguracji GridWorX, jak i BridgeWorX), który realizuje zapis do baz danych. Na potrzeby archiwizacji w HyperHistorian należy zastosować Data Manipulator skonfigurowany na początku tej sekcji (lub analogiczny do niego).

Podsumowanie

Hyper Historian w połączeniu z innymi komponentami GENESIS64, jak na przykład GridWorX, czy BridgeWorX stanowi bardzo funkcjonalne narzędzie. Pozwala on nie tylko na efektywną i wydajną archiwizację cyklicznie monitorowanych zmiennych OPC, lecz także na integrację ze środowiskami takimi, jak MS SQL Server. Dodatkowo Hyper Historian wyposażony jest w mechanizmy importu danych offline, co sprawia, że staje się on jeszcze bardziej niezawodnym narzędziem, które pozwala wypełniać luki w danych spowodowane np. zerwaniem połączenia z serwerem OPC.

Czytaj więcej o Hyper Historian na stronie producenta.

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.

Źródło: Elmark

ZOSTAW ODPOWIEDŹ

Wprowadź swój komentarz!
Wprowadź swoje imię