Alarmy i powiadomienia w systemie SCADA od ICONICS - poradnik konfiguracji cz. 2

20.10.2020 How to /
Alarmy i alerty w systemie SCADA
Wizerunek autora
Wiktor Susfał Były pracownik Elmark Automatyka S.A.
Producent: ICONICS
  • Zakłady przemysłowe
  • Woda i ścieki
  • Górnictwo

Druga część naszego poradnika dotyczącego alarmów oraz powiadomień w systemie SCADA ICONICS. GENESIS64 pozwoli Ci na zarządzanie, wizualizację oraz archiwizację informacji o usterkach lub działaniach operatorów w systemie. Za jego pomocą zbudujesz system zgodny z normą FDA 21CFR11. Dodatkowo, skonfigurujesz powiadomienia SMS lub e-mail, w tym w integracji z zewnętrznymi platformami komunikacyjnymi, by Twój system jeszcze szybciej ostrzegał Cię o anomaliach dotyczących Twojej działalności. 

Niżej przedstawiono kolejne lekcje i wpisy o konfiguracji systemu ICONICS GENESIS64 w kontekście alarmowania. 

 

 


 

Powiadomienia Twilio w systemie SCADA

 

O czym tu przeczytasz?

 

Wpis ten dodano, w celu przybliżenia nowej funkcjonalności w systemie SCADA ICONICS, jaką są powiadomienia Twilio. Czytając tę publikację dowiesz się, w jaki sposób – krok, po kroku – skonfigurować alerty przy użyciu tej zewnętrznej platformy komunikacyjnej.

Na przykładzie pokażemy, jakie działania należy podjąć w celu wysyłania powiadomień SMS do operatorów. Wszystko wprost z systemu SCADA. Dlatego, że powiadomienia SMS to nie jedyna funkcjonalność Twilio, opowiemy też o innych korzyściach płynących z integracji z tym serwisem.

Opcja integracji systemu SCADA od ICONICS z platformą Twilio jest dostępna od wersji 10.96 pakietuGENESIS64.

 

 

Czym jest Twilio?

 

Twilio to założona w 2008 roku platforma komunikacyjna, mająca na celu umożliwienie wykonywania połączeń (SMS, głosowych lub video) przy użyciu własnych programów. Platforma ta udostępnia użytkownikom własną infrastrukturę, która szybko i skutecznie pozwala połączyć się z każdym odbiorcą na całym świecie.

Użytkownicy mogą „wykupić” w serwisie Twilio numery telefonów, które następnie mogą być użyte w ich własnych aplikacjach. Aplikacje należące do użytkowników końcowych wykorzystują te numery, w celu wysyłania powiadomień do innych odbiorców.

Oprócz usług komunikacyjnych, platforma Twilio oferuje także inne, związane na przykład z uwierzytelnianiem, czy monitorowaniem ruchu sieciowego. Uwierzytelnianie za pośrednictwem:

  • loginu i hasła,
  • numeru telefonu,

a także możliwość użycia bezpiecznego protokołu https w komunikacji z programami użytkowników sprawiają, że jest to sposób na bezpieczne alerty w systemie SCADA.

Aby niepotrzebnie nie przedłużać wstępu teoretycznego, w celu zdobycia większej wiedzy o platformie Twilio, obejrzyj Webinarium (klik) na stronie tej firmy.

 

Powiadomienia Twilio w systemie SCADA GENESIS64

 

System SCADA – „GENESIS64” składa się z wielu usług. Jedną z nich jest „AlertWorX”, która odpowiada za obsługę alertów w systemie. Od wersji 10.96 całego systemu, rozbudowano ją o obsługę interfejsu REST API. Pozwala to jej w prosty sposób integrować się z usługami internetowymi – właśnie takimi, jak Twilio.

Za pomocą modułu alertów w systemie GENESIS64 wyślemy lub odbierzemy:

  • powiadomienie SMS,
  • wiadomość głosową,
  • wiadomość za pośrednictwem WhatsApp.

Przydatną funkcjonalnością jest również możliwość logowania danych o aktywności powiadomień z Twilio do bazy danych na serwerze SCADA.

 

Jak zacząć pracę z Twilio w GENESIS64?

 

Po pierwsze należy wspomnieć, że do stabilnej konfiguracji systemu SCADA z tym rodzajem powiadomień potrzebujemy:

  • płatnego (stałego) konta na platformie Twilio – sposób naliczania opłat można znaleźć pod tym linkiem (klik);
  • zewnętrznego IP dla serwera SCADA, tak aby był on osiągalny z poziomu innych urządzeń z dostępem do internetu.

Na potrzeby tego wpisu pokażemy natomiast jak w darmowy sposób przetestować omawianą tu funkcjonalność.

Konto w serwisie Twilio

Na potrzeby naszych testów musimy założyć konto trialowe na platformie Twilio. Pamiętamy oczywiście, że do stabilnego działania systemu należy wykonać jego upgrade do konta płatnego. W celu założenia darmowgo konta próbnego należy przejść do tego linku (klik).

Po wypełnieniu krótkiego formularza, należy użyć linku aktywacyjnego otrzymanego w wiadomości wysłanej na podany adres e-mail. Kolejnym krokiem jest natomiast weryfikacja numeru telefonu (fizycznego - służbowego lub prywatnego), który będzie przypisany do tego konta.

Po przejściu do właściwego interfejsu platformy Twilio, należy wybrać domyślny numer testowy.

 
 

Usługi systemu SCADA od ICONICS - sprawdzanie użytkownika

 

Zmienne środowiskowe na serwerze SCADA

Usługa składowa oprogramowania SCADA - AlertWorX komunikuje się z platformą Twilio z wykorzystaniem tzw. zmiennych środowiskowych Windows. Są to pewne wartości przypisywane dla użytkowników lub całego systemu.

W tym przypadku należy utworzyć 4 nowe zmienne środowiskowe. Należy również pamiętać, aby utworzyć zmienne środowiskowe dla użytkownika, pod którym działają usługi oprogramowania SCADA.

To, pod jakim użytkownikiem one działają, możemy sprawdzić na przykład wpisując "Usługi" (lub "Services") w menu start.

Jeśli obecnie zalogowanym użytkownikiem jest inny, niż w rubryce "Logowanie jako", należy przelogować się na właściwego użytkownika, w celu wykonania kolejnego kroku.

Kolejnym krokiem jest natomiast wpisanie frazy "Ustawienia" w menu "Start", a następnie wyszukanie opcji "Edytuj zmienne środowiskowe dla konta".

Otworzy się nowe okno. W nim natomiast, w sekcji poświęconej użytkownikowi, należy dodać 4 nowe zmienne (za pomocą opcji "Nowa.."):

  • Ico_Twilio_AccountSid - wartość SID skopiowana z interfejsu platformy Twilio;
  • Ico_Twilio_AuthToken - token uwierzytelniający skopiowany z interfejsu platformy Twilio;
  • Ico_Twilio_UserName - dowolna nazwa użytkownika (potem utworzymy użytkownika w systemie SCADA o takiej nazwie);
  • Ico_Twilio_Password - hasło dla powyższego użytkownika (również należy zapamiętać na późniejsze potrzeby).
 

Nie dodawaj żadnych specjalnych znaków do nazwy użytkownika lub jego hasła.

Nowy użytkownik w systemie SCADA

W tym miejscu trzeba zaznaczyć jedynie, aby nadać użytkownikowi w systemie SCADA taką samą nazwę oraz takie samo hasło, jakie wprowadziliśmy w zmiennych środowiskowych. Należy pamiętać, aby nadać mu uprawnienia co najmniej do wykonywania metod w systemie SCADA.

Następnie aktywujemy moduł "Security" w Workbench, aby zabezpieczenia działały.

 

Pamiętaj, aby zawsze mieć co najmniej jednego użytkownika - "administratora", który posiada pełnię praw w systemie SCADA.

Zewnętrzny adres IP dla serwera SCADA *

Jest to ponadprogramowa sekcja, która prezentuje, w jaki sposób udostępnić swój serwer SCADA w sieci - do testów. Jeśli posiadasz już zewnętrzne IP dla swojego serwera - możesz ją pominąć.

W celu testowego udostępnienia serwera w sieci (w wersji trialowej możliwe jest posiadanie przez ok. 7 godzin zewnętrznego adresu), należy pobrać program ngrok (klik)

Załóżmy, że plik .exe programu (w odpowiedniej wersji dla naszego systemu Windows) wypakowaliśmy po pobraniu do folderu "Pobrane".

W celu rozpoczęcia udostępniania naszego serwera lokalnego w internecie, uruchamiamy konsolę Windows - polecenie "cmd" w menu Start. Następnie wpisujemy:

  • cd Downloads - w tym przypadku tak wygląda przejście do katalogu z plikiem .exe programu ngrok;
  • ngrok http 80 - spowoduje to uruchomienie programu i przypisanie nam dwóch zewnętrznych adresów (dla protokołu http i https), które będą przekierowywały ruch bezpośrednio na nasz lokalny serwer, na port 80.
 
 
W dalszych krokach używać będziemy adresu domeny dla protokołu http - konfiguracja szyfrowanego protokołu wymaga poczynienia dodatkowych ustawień w IIS Manager.

Konfiguracja powiadomień w module AlertWorX

W końcu przygotowaliśmy wszystkie prerekwizyty potrzebne do dodanie konfiguracji powiadomień Twilio dla modułu AlertWorX.

W celu dostosowania jego opcji, przechodzimy do programu "Workbench" (podobnie jak dla modułu "Security") i przechodzimy do poniższej lokalizacji w sekcji "Project Explorer". Tam natomiast wybieramy PPM pozycję "Twilio Configurations" i używamy opcji "Add...".

 

W ustawieniach nowej konfiguracji przechodzimy do zakładki "Phone Numbers" i dodajemy nowy numer telefonu. Jego nazwa jest dowolna, gdyż obowiązuje tylko w obrębie systemu GENESIS64.

Należy zwrócić uwagę, że:

  • podawany tu numer telefonu to wirtualny numer skopiowany z serwisu Twilio - to nim posługiwać się będzie system SCADA;
  • w polu "Callback URL" podaje się jedynie nazwę domeny / adres IP - bez żadnych dodatkowych prefiksów. Nazwę domeny wygenerowano w tym przypadku przy użyciu programu "ngrok" (patrz - sekcja wyżej).
 

Następnie, przechodzimy do zakładki "General Settings", oznaczamy tę konfigurację jako domyślną (opcja "Is Default...") i wybieramy domyślny numer telefonu ("Default Phone Number") spośród wcześniej dodanych.

Przed przystąpieniem do kolejnej części warto wiedzieć, że aktywności dotyczące AlertWorX (w tym również jego usług związanych z Twilio) mogą być logowane do bazy danych. Może to być zarówno domyślna baza, jak i wskazana przez użytkownika.

W celu określenia bazy danych na posiadanym serwerze SQL, należy przejść do gałęzi "General Settings" pod modułem AlertWorX i zaznaczyć opcję "Use a custom database for logging".

W tym przypadku utworzyliśmy nową bazę (po prostu wpisując pożądaną nazwę) o nazwie "BAZA_ALERTWORX".

 

Końcowa konfiguracja konta Twilio

Podczas dostosowywania ustawień AlertWorX podaliśmy tzw. "Callback URL". Jest to, innymi słowy, kanał komunikacji, dzięki któremu platforma Twilio może powiadamiać nasz system SCADA o aktualnych zdarzeniach. Bez tej komunikacji, system SCADA nie miałby informacji zwrotnej na przykład o statusie dostarczenia danej wiadomości SMS.

Podobne ustawienie musimy również poczynić w serwisie Twilio. W tym celu należy przejść do menu zarządzania numerami telefonów na tej platformie. Można to zrobić, na przykład klikając ten link (KLIK).

Po wybraniu numeru używanego przez system SCADA z dostępnej listy, przeniesiemy się do kolejnej strony z jego ustawieniami. Tam, w celu konfiguracji powiadomień SMS dla systemu SCADA, należy przewinąć stronę do sekcji "Messaging". Wszystkie opcje z rozwijanych list należy ustawić jak na zdjęciu poniżej, natomiast pole z adresem URL (oznaczone na zielono) trzeba odpowiednio uzupełnić.  

W zielone pole oznaczone powyżej należy wprowadzić adres URL zbudowany w poniższy sposób:

http://<Nazwa_Użytkownika_SCADA>:<Hasło>@<Domena_lub_IP>/fwxapi/twilio/sms

W tym przypadku, adres URL powinien więc wyglądać, jak poniżej.

http://AplikacjaICONICS:a@41ca5c35.ngrok.io/fwxapi/twilio/sms

Pamiętaj, że nazwa użytkownika w systemie SCADA, jego hasło oraz nazwa domeny prawdopodobnie różnią się w Twoim przypadku.

 

Jak wysłać powiadomienie Twilio z systemu SCADA?

 

Jeśli dokonaliśmy wszystkich potrzebnych konfiguracji, opisanych wyżej, pierwszy, krokiem jest restart usług:

  • ICONICS Alert REST Service,
  • ICONICS Web API Service.

Można to zrobić na przykład z poziomu okna "Usługi" w systemie Windows. Co więcej, usługi te należy restartować po każdorazowej zmianie zmiennych środowiskowych w systemie.

Przechodząc dalej należy wiedzieć, że do wysyłania powiadomień AlertWorX używa wstępnie przygotowanych metod bazujących na architekturze REST.

Na potrzeby tego wpisu, użyjemy jednej z nich - służącej do wysyłania wiadomości SMS. Nosi ona nazwę "TwilioSendSmsMsg". Przyjmuje ona 2 lub 11 argumentów, w zależności od tego, w jaki sposób jest używana.

Na nasze potrzeby - proste wywołanie powiadomienia SMS - wykorzystamy wersję dwuargumentową. Przyjmie ona:

  • numer telefonu docelowego odbiorcy wiadomości;
  • treść wiadomości (w formacie tekstowym).

Drugi sposób użycia tej metody (11 argumentów) odnosi się do używania jej z modułem CFSWorX od ICONICS - do inteligentnego powiadamiania kadry pracującej w terenie. Pozostałe argumenty dotyczą np. alarmu, który wywołał wysłanie powiadomienia itp. Tym przypadkiem teraz jednak się nie zajmiemy.

Zapamiętać należy jedynie fakt, że aby metoda działała poprawnie musi przyjąć 2 lub 11 argumentów - nie ma wartości pośrednich.

Prosty interfejs SCADA - wysyłanie powiadomienia

Zbudujemy teraz prosty interfejs SCADA. Będzie on zawierał tylko jeden przycisk. Przycisk realizuje komendę "Call Method". W ustawieniach komendy podajemy, jaka metoda ma zostać wywołana oraz uzupełniamy listę atrybutów.

Pierwszy z atrybutów - numer telefonu - powinien być podany w następującym formacie (dla Polski):

48-XXX-XXX-XXX
 

 

Podsumowanie

 

W tym miejscu kończy się ten całkiem obszerny wpis pokazujący, jak ustawić powiadomienia w systemie SCADA w integracji z zewnętrzną platformą Twilio.

Oczywiście nie pokazaliśmy wszystkich dostępnych funkcji w praktyce. Powiadomienia Twilio pozwalają na wysyłanie alertów w postaci wiadomości tekstowych, głosowych oraz WhatsApp z poziomu systemu SCADA do operatorów w terenie.

Co więcej, powiadomienia Twilio można integrować z nowym rozwiązaniem od ICONICS - CFSWorX do inteligentnego powiadamiania kadry serwisowej. Co za tym idzie, taki pracownik terenowy może również zatwierdzać alarmy odpowiadając na przychodzące do niego alerty.

Kolejną rzeczą jest fakt, że istnieje możliwość dostosowania swojego serwera tak, aby używał bezpiecznego (szyfrowanego) protokołu https do komunikacji z platformą Twilio.

Następnym zagadnieniem jest sposób, w jaki można automatycznie wpływać na zawartość wiadomości tekstowej wysyłanej za pomocą metody "TwilioSendSmsMsg". Aby podstawić zmienną w miejsce statycznego tekstu, należy posłużyć się Globalnymi Aliasami. Zapisując do nich np. wartości zmiennych przekonwerterowane na typ tekstowy można dynamicznie budować treść SMS.

Trochę tego dużo, prawda? Dlatego też możesz przetestować funkcje systemu GENESIS64 osobiście, pobierając darmowe DEMO ze strony producenta (KLIK).

W razie pytań, napisz do nas na adres: iconics@elmark.com.pl .

 


 

Inteligentne powiadamianie kadry terenowej - CSFWorX od ICONICS

 

Jak zacząć pracę z CFSWorX?

 

CFSWorX to narzędzie, które pozwala na zautomatyzowane powiadamianie kadry serwisowej o występujących awariach. Dokonuje tego za pomocą konfigurowalnych algorytmów.

CFSWorX od ICONICS umożliwia zarówno wysyłanie informacji do operatorów, jak i odczyt danych z ich urządzeń mobilnych - dzięki integracji z MobileHMI. Pobierane informacje dotyczą położenia serwisantów, ich harmonogramów, czy kondycji urządzeń mobilnych.

Na potrzeby tego wpisu, aby przybliżyć wygląd podstawowych opcji tego narzędzia, przyjrzymy się jego konfiguracji po stronie serwera SCADA. W celu dokonania tego zadania należy więc na serwerze otworzyć program Workbench (dla pakietu GENESIS64 w wersji 10.96 lub wyższej).

W sekcji "Project Explorer" należy wyszukać gałąź "Connected Field Worker". Pod nią znajduje się większość potrzebnych opcji.

 

Konfiguracja CFSWorX

 

Pierwszym, co rzuca się w oczy, jest zakładka "Field Workers". Pozwala ona na definiowanie listy dostępnych pracowników. Można to zrobić na trzy różnie sposoby:

  • dodając ich ręcznie, do zakładki "Local-Default";
  • importując informacje z Microsoft Dynamics 365;
  • importując dane z Active Directory.
 

Po prawej stronie okna, gdy wybierzemy danego pracownika z listy, można skonfigurować dla niego wiele opcji. Między innymi chodzi tu o:

  • dodanie źródła danych na temat jego harmonogramu (SheduleWorX);
  • wskazanie zasobów i alarmów, za które jest on odpowiedzialny (zakładki "Alarms" i "Assets");
  • oraz, co więcej, dodanie informacji kontaktowych jak adres e-mail, czy numer telefonu (zakładki "Email", "SMS").

Do definicji algorytmów, na podstawie których CFSWorX powiadamia kadrę serwisową wykorzystuje się taki sam mechanizm, jak dla narzędzia Workflow, czy BridgeWorX.

Tak samo jak dla powyższych narzędzi, tak i tu najpierw tworzymy szablon algorytmu (Template). Wykorzystujemy przy tym szereg gotowych elementów (bloczków), które należy połączyć, by utworzyły ścieżkę przepływu informacji.

 

Następnie, w zakładce "Workflows" definiujemy to, który szablon wykona się na podstawie zadanych przez nas warunków. Algorytmy są wyzwalane na podstawie wybranych alarmów lub specjalnych zmiennych (triggers).

 

Prosty przykład użycia w systemie SCADA

 

Aby zakończyć ten wpis przykładem praktycznym, zaprezentujemy prosty przypadek konfiguracji CFSWorX. Zbudujemy prosty algorytm, zwierający statyczną listę pracowników. Będzie on wzbudzany przez pewien alarm. Gdy algorytm się wywoła, będzie w każdym obiegu swojej pętli wysyłał wiadomość e-mail do kolejnego pracownika z listy. Czynności będą zapętlać się, dopóki wspomniany alarm nie zostanie zatwierdzony w systemie.

Będziemy potrzebować więc następujących komponentów:

  • aktywnej konfiguracji AlarmWorX Server'a, która zawiera wspomniany alarm:
  • domyślnego węzła E-Mail pod konfiguracją AlertWorX:
Konfiguracja alarmu w AlarmWorX
Konfiguracja alarmu w AlarmWorX64
 
Konfiguracja połączenia e-mail

Powyższe zdjęcie przedstawia konfigurację węzła e-mail do współpracy z serwerem Gmail. Użytkownik, który nie chce zmieniać serwera e-mail, musi jedynie wprowadzić swój adres e-mail (Username, From Address) i hasło (Password).

Do współpracy z CFSWorX najważniejsze są opcje w sekcji "Hardware and Data".

 

  • przykładowego szablonu algorytmu pod konfiguracją CFSWorX:

Algorytm w tym przypadku pobiera (za każdym obiegiem pętli) dane kontaktowe kolejnego pracownika ze statycznej listy (bloczek Fixed Contact List). Następnie, wysyła do niego wiadomość e-mail i czeka 25 sekund. Bloczek "Ack" służy sprawdzeniu, czy dany alarm, który wywołał algorytm, został już zatwierdzony. Jeśli tak nie jest, algorytm wraca do punktu pierwszego.

 

  • nowej konfiguracji w folderze "Workflows", pod węzłem Connected Field Worker, do której przypiszemy obiekt typu "Workflow", z nowo utworzonym szablonem; tam też określamy, w jaki sposób algorytm jest wywoływany.

 

Nowa konfiguracja w folderze Wrokflows

 

Przed rozpoczęciem prezentowania rozwiązania, należy się jeszcze upewnić, że poniższe 6 usług działa w systemie Windows.

 

Podsumowanie

 

Na potrzeby wpisu wykonano również prosty interfejs SCADA. Za jego pomocą można wzbudzić alarm, który wywoła wykonanie się algorytmu. Dopiero zatwierdzenie alarmu, pojawiającego się w oknie kontrolki "AlarmWorX Viewer", spowoduje zaprzestanie działania algorytmu.

CFSWorX - prosty interfejs SCADA
CFSWorX - prosty interfejs SCADA
 
Mobilna aplikacja CFSWorX - zatwierdzanie alarmu
Mobilna aplikacja CFSWorX - zatwierdzanie alarmu
 

Przedstawiono tu oczywiście tylko próbkę możliwości narzędzia CFSWorX. Aby uzyskać więcej informacji na temat tej aplikacji np. odnośnie możliwych sposobów powiadamiania kadr serwisowych, skontaktuj się z nami pod adresem e-mail: iconics@elmark.com.pl.

Czytaj więcej o systemie SCADA na stronie Producenta - ICONICS (KLIK).

 


 

Skontaktuj się ze specjalistą Elmark

Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!