Strukturalny język zapytań (SQL) może pomóc użytkownikom oprogramowania SCADA poprawić ich łączność i zdolność do wysyłania i odbierania danych.
W skrócie
Strukturalny język zapytań (SQL) może pomóc użytkownikom systemów SCADA w lepszym zarządzaniu danymi.
Baza danych SQL jest prostsza i łatwiejsza w użyciu niż inne bazy danych i może dać użytkownikom większą swobodę w zarządzaniu i obsłudze danych.
Wykorzystanie strukturalnego języka zapytań (SQL) w automatyce nie jest niczym nowym. Bazy danych SQL działają w tle wielu różnych systemów od dziesięcioleci, ale nawet dziś są tacy, którzy wahają się przed łączeniem SQL z oprogramowaniem automatyki przemysłowej, takim jak kontrola nadzorcza i akwizycja danych (SCADA). Jednak w miarę jak coraz więcej użytkowników oprogramowania SCADA odczuwa presję nadążania za dzisiejszym połączonym, opartym na danych światem, SQL zyskał więcej zasłużonej uwagi.
Baza danych może być często jednym z najważniejszych elementów każdego systemu sterowania. Przez wiele lat rozwoju stawało się coraz bardziej jasne, że systemy sterowania zintegrowane z bazami danych wykorzystującymi otwarte standardy (takie jak SQL) mają znaczną przewagę nad systemami wykorzystującymi zastrzeżone bazy danych, dlatego połączenie SQL i platformy aplikacji przemysłowych jest tak cenne.
Język programowania SQL
Według American National Standards Institute (ANSI), SQL jest standardowym językiem programowania do zarządzania danymi w systemie zarządzania relacyjnymi bazami danych (RDBMS) i jednym z najczęściej używanych języków dla relacyjnych baz danych. Po raz pierwszy został opracowany dla IBM w latach 70. i jest używany konsekwentnie od prawie 50 lat do przechowywania danych i zarządzania nimi w bazach danych SQL.
Jego główną funkcją jest szybkie i wydajne zadawanie pytań dotyczących małych i bardzo dużych ilości danych za pomocą instrukcji SQL lub “zapytań”, które pozwalają użytkownikom przechowywać, aktualizować, pobierać, wyszukiwać lub usuwać określone dane w bazie danych.
Inżynierowie oprogramowania konstruują zapytania SQL przy użyciu różnych komponentów języka SQL, takich jak identyfikatory, zmienne i warunki wyszukiwania, aby utworzyć prawidłową instrukcję. Mogą również zapisywać zapytania SQL do późniejszego wykorzystania jako “procedury składowane”, dzięki czemu użytkownicy nie muszą przepisywać często używanych zapytań. Te możliwości są częścią tego, co sprawia, że SQL jest tak wydajny; nawet zastrzeżone bazy danych często używają tej samej podstawowej struktury.
Relacyjne bazy danych SQL
Podczas gdy wszystkie bazy danych przechowują dane do przyszłego lub ciągłego użytku, istnieje wiele rodzajów baz danych, które różnią się strukturą. Najczęściej używanym typem są relacyjne bazy danych. W relacyjnej bazie danych każdy punkt danych jest powiązany z otaczającymi go danymi, a jej funkcją jest organizowanie i wyszukiwanie danych relacyjnych.
“Bazy danych SQL są jedną z najważniejszych technologii wykorzystywanych do przechowywania danych i uzyskiwania do nich dostępu” – powiedział Kevin McClusky, główny architekt technologiczny Inductive Automation.
Użytkownicy mogą myśleć o bazie danych SQL jako posiadającej dwie główne funkcje: pobieranie dostępu, które odbywa się za pomocą języka SQL; i przechowywanie, które odbywa się za pomocą silnika bazy danych. Bazy danych SQL organizują dane w pliki i określone obszary przechowywania na fizycznym dysku twardym lub serwerach online w bazie danych SQL opartej na chmurze.
Baza danych SQL ma strukturę podobną do tabel programu Excel z wierszami, kolumnami i komórkami, co ułatwia organizowanie i pobieranie dowolnej ilości danych. Struktura ta jest szczególnie przydatna w przypadku danych w czasie rzeczywistym i szeregów czasowych (lub historycznych). Pomaga ona organizować dane, które są powiązane z innymi danymi w tabelach według cech wspólnych, pokazując obraz zdarzenia lub zestawu danych.
Jednym z najpotężniejszych aspektów bazy danych SQL jest jej zdolność do “odpytywania” lub zadawania pytań dotyczących danych i ustanawiania z nimi relacji. Zapytania SQL umożliwiają użytkownikom przeprowadzanie analiz, odpowiadanie na złożone pytania oraz manipulowanie i agregowanie danych bez wielu kroków, dzięki czemu dane mogą być pobierane z wielu tabel, kojarzenie rekordów ze wspólnymi typami pól, wykorzystywanie relacji w danych i precyzyjne kontrolowanie, gdzie dane trafiają, a jakie dane są wykluczane.
Na przykład, firma może mieć dwie różne tabele dla swoich pracowników – jedną dla ich danych osobowych, takich jak imię i nazwisko, adres i data urodzenia, a drugą tabelę zawierającą szczegóły dotyczące wynagrodzenia każdego pracownika. Podczas gdy tabele pracowników i wynagrodzeń istnieją oddzielnie w bazie danych, ich dane mogą być ze sobą powiązane i potencjalnie pobierane razem. Powiązanie to odbywa się poprzez ustanowienie unikalnego identyfikatora (powszechnie znanego jako klucz podstawowy) w jednej tabeli, do którego można się odwołać w drugiej tabeli. Na przykład unikalny numer identyfikacyjny pracownika może być kluczem podstawowym w tabeli pracowników, a ten identyfikator może być używany jako obcy identyfikator (powszechnie znany jako klucz obcy) w tabeli wynagrodzeń. Pozwala to na powiązanie danych pracownika w tabeli employees z danymi jego wynagrodzenia w tabeli salaries, a wszystko to za pomocą pojedynczej wartości unikalnego identyfikatora pracownika. Zdolność do tworzenia tego powiązania lub relacji jest powodem, dla którego tego typu bazy danych są określane jako relacyjne bazy danych.
Tworząc te relacje między tabelami, można następnie pisać zapytania podsumowujące zagregowane wyniki z wielu tabel, takie jak wynagrodzenia pracowników według działów. Jeśli baza danych SQL jest połączona z halą produkcyjną, użytkownicy mogą znaleźć średnią temperaturę w pomieszczeniu lub kilku pomieszczeniach, kiedy lub czy maszyny kontrolujące temperaturę uległy awarii lub jak długo działały, odchylenie standardowe między zestawami danych z wielu przestojów i wiele więcej w czasie rzeczywistym.
Zapytania SQL mogą być zarówno proste, z jednym lub dwoma wierszami kodu wysyłającymi zapytanie do pojedynczej tabeli, jak i niezwykle złożone, z setkami wierszy kodu wysyłającymi zapytania do wielu tabel razem. Ogólnie rzecz biorąc, im krótsze i bardziej zwięzłe zapytanie, tym lepiej. “Zapytania są naprawdę tylko tak złożone, jak tego potrzebujesz” – powiedział McClusky. Zakres i elastyczność zapytań SQL jest częścią tego, co sprawia, że relacyjne bazy danych SQL są potężnymi i wszechstronnymi narzędziami do wyszukiwania, przechowywania i zarządzania danymi.
Cztery korzyści SQL
Wiele trendów technologicznych pojawia się i znika każdego roku. Jednak po prawie pięciu dekadach SQL wciąż ma się dobrze. Oto cztery główne powody, dla których SQL utrzymuje swoją pozycję: prostota, skalowalność, dostępność i różnorodność opcji.
1. Prostota
SQL jest wysoce rozwinięty i bardzo łatwy do nauczenia. Istnieje wiele bezpłatnych zasobów do nauki SQL, a znalezienie osoby lub inżyniera IT znającego SQL zwykle nie stanowi problemu, ponieważ tak wiele osób z niego korzysta. Poza tym, użytkownicy muszą tylko zrozumieć kilka podstawowych działań, aby pobierać, aktualizować, usuwać lub agregować dane.
2. Skalowalność
Bazy danych SQL nie są zbyt drogie, w przeciwieństwie do wielu zastrzeżonych baz danych, i mogą obsługiwać duże ilości danych, dzięki czemu są łatwo skalowalne dla każdej firmy. Niektóre z najpopularniejszych baz danych SQL są nawet darmowe, jak MySQL i Postgres.
3. Dostępność
Otwarte technologie, takie jak bazy danych SQL, są dostępne dla każdego i łatwo dostępne, w przeciwieństwie do technologii zastrzeżonych, które są zwykle za wysokim paywallem i często trudne do wyodrębnienia lub migracji danych. Użytkownicy mogą również integrować bazy danych SQL z wieloma innymi technologiami i nie muszą trzymać się jednego dostawcy i korzystać z ograniczonej, niestandardowej bazy danych.
4. Wiele opcji
“Innym powodem, dla którego uważam, że nadal jest tak silny, jest to, że istnieje wiele różnych opcji. SQL to standardowy język zapytań, który jest dostępny w wielu różnych bazach danych, a w przypadku baz danych SQL nie ma uzależnienia od dostawcy. Nie są Państwo zmuszeni do korzystania z jednego typu bazy danych SQL. Mają Państwo wiele opcji” – powiedział McClusky.
Co z alternatywnymi rozwiązaniami SQL?
Na początku XXI wieku łączenie baz danych SQL z historykiem było rzadkością, co prowadziło do problemów podczas pracy z bardzo dużymi ilościami danych. Aby pomóc w rozwiązaniu tego problemu skalowalności przy jednoczesnym kontynuowaniu korzystania z niektórych podstawowych struktur bazy danych SQL, inżynierowie oprogramowania opracowali NoSQL w 1998 roku, a następnie NewSQL w 2011 roku. Problemy ze skalowalnością, które NoSQL i NewSQL miały rozwiązać, są jednak znacznie rzadsze teraz, gdy przestrzeń dyskowa jest bardziej przystępna cenowo i ponieważ można połączyć bazę danych SQL z historykiem, aby stworzyć wysokowydajną bazę danych. Popularność NoSQL wzrosła w ostatnich latach. MongoDB i DynamoDB firmy Amazon Web Services to obecnie dwie najpopularniejsze bazy danych NoSQL.
Zbieranie i przechowywanie danych szeregów czasowych
Kolejną ważną zaletą baz danych SQL jest to, że pomagają one użytkownikom uzyskać większą wartość z danych szeregów czasowych organizacji. Dane szeregów czasowych to sekwencja punktów danych, które są oznaczane czasem w kolejnych odstępach czasu. Te punkty danych mogą być przechowywane, zazwyczaj w bazie danych, a następnie pobierane w celu wyświetlenia w tabelach lub wykresach, które pokazują dowolny rodzaj danych progresywnych w czasie, takich jak temperatury, wagi, objętości i inne.
Niektórzy uważają, że dane szeregów czasowych są przydatne tylko do określania stanu poszczególnych punktów danych w określonym momencie, śledzenia określonych trendów i niewiele więcej. Jednak dane szeregów czasowych są w rzeczywistości jednym z najbardziej wartościowych produktów pochodzących z monitorowania maszyn i procesów podłączonych do systemu SCADA. Dane szeregów czasowych mogą potencjalnie pomóc zaoszczędzić miliony dolarów na przestojach, stworzyć bardziej szczegółowe plany poprawy efektywności energetycznej i wiele więcej.
Jednak wiele organizacji nie gromadzi danych szeregów czasowych, ponieważ albo nie mają środków do ich gromadzenia, albo aplikacji do ich przechowywania i pobierania. Zasadniczo istnieją trzy opcje przechowywania danych szeregów czasowych: w programowalnych sterownikach logicznych (PLC), w zastrzeżonych rejestrach procesów lub w bazach danych SQL.
Przechowywanie danych w sterownikach PLC nie jest dobrym rozwiązaniem. Im więcej danych przechowuje sterownik PLC, tym mniej wydajny się staje, co nieuchronnie spowalnia ogólne działanie. Trudno jest również odzyskać dane przechowywane w sterowniku PLC, jeśli nie ma połączenia z bazą danych, ponieważ użytkownicy muszą fizycznie podłączyć się, aby je odzyskać.
Historie procesów są lepsze niż sterowniki PLC, ale mogą być bardzo drogie. Nie są również tak wszechstronne jak bazy danych SQL i nie pozwalają użytkownikom na łatwą aktualizację bazy danych.
“Mogą Państwo znaleźć świetne rozwiązanie, ale znajduje się ono w zamkniętym ekosystemie od konkretnego dostawcy, co nie przyniesie Państwu żadnych korzyści w przyszłości, gdy nadejdzie kolejny cykl aktualizacji” – powiedział McClusky.
Bazy danych SQL są zazwyczaj najlepszym wyborem do przechowywania danych szeregów czasowych. Są one dobrze przygotowane do obsługi dużych ilości danych szeregów czasowych dla systemów SCADA i wzbogacają dane szeregów czasowych, umieszczając je w prostym formacie, który może odczytać cała organizacja.
Wiele dużych systemów korporacyjnych od lat korzysta z baz danych SQL. “Te bazy danych są czasami bazami danych IT, które są zarządzane i zawierają informacje z innych sekcji firmy. Czasami są one powiązane z oprogramowaniem do planowania zasobów przedsiębiorstwa (ERP)” – powiedział McClusky. Oprogramowanie do zarządzania relacjami z klientami (CRM) i MES również od dawna wykorzystuje bazy danych SQL. Podłączając system SCADA lub aplikację do bazy danych SQL, użytkownicy mogą szybko i sprawnie udostępniać te informacje i sprawić, że dane będą bardziej dostępne dla innych systemów.
Po umieszczeniu w bazie danych SQL, dane szeregów czasowych mogą opowiadać wielowarstwowe historie o każdym aspekcie produkcji lub ujawniać niewidoczne trendy, które mogą zaoszczędzić organizacji fortunę. Nakładając na siebie te informacje, użytkownicy mogą zobaczyć, jak każdy system wpływa na drugi w czasie rzeczywistym i znaleźć nowe sposoby na poprawę wydajności i zwiększenie rentowności.
Załóżmy na przykład, że producent blach zauważa, że jedna z linii produkcyjnych wyczerpuje się szybciej niż inna, mimo że obie linie działają prawidłowo. Po sprawdzeniu baz danych SQL połączonych z zapasami materiałów dla każdej linii i stwierdzeniu, że otrzymują one taką samą ilość surowca. Następnie użytkownik sprawdza bazę danych SQL podłączoną do systemu SCADA zbierającego dane szeregów czasowych ze sterowników PLC i czujników maszyn.
Po porównaniu dwóch linii produkcyjnych użytkownik zauważa, że jedna z nich produkuje blachę o kilka mikrometrów grubszą niż druga. Może to być problem pomiarowy z maszyną, maszyna może być zużyta i wymagać wymiany, a może nie została prawidłowo skonfigurowana. Nawet jeśli dodatkowe kilka mikrometrów mieści się w akceptowalnym zakresie, naprawienie problemu pozwoli zaoszczędzić dużą ilość zapasów i kapitału na przyszłość – wszystko dzięki przechowywaniu danych szeregów czasowych w łatwo dostępnych bazach danych SQL.
Łączenie OT i IT
W tym momencie SQL może brzmieć jak spełnienie marzeń, ale nie wszyscy w branży automatyki byli początkowo zwolennikami baz danych SQL. Specjaliści OT, a w szczególności użytkownicy SCADA, byli sceptycznie nastawieni do używania SQL do danych szeregów czasowych, preferując własne bazy danych zaprojektowane specjalnie do tego zadania. Jednak specjaliści IT zazwyczaj postrzegają zastrzeżone bazy danych z ich zastrzeżonym kodem i tłumaczami kodu jako kolejną przeszkodę w uzyskaniu cennych danych i skutecznej komunikacji z innymi częściami firmy.
Nigdy nie jest łatwo sprawić, by eksperci po przeciwnych stronach problemu spojrzeli sobie w oczy, ale na szczęście narzędzia takie jak Ignition i SQL mogą sprawić, że obie strony podziału OT-IT znów będą ze sobą współpracować. Podłączenie systemu SCADA do bazy danych SQL to duży krok w kierunku wzajemnego zrozumienia między działami IT i OT.
“System SCADA będzie pozyskiwał te dane. Potrzebuje gdzieś umieścić te dane, a jeśli umieścisz je w bazie danych SQL, masz wszystkie zalety bazy danych SQL” – powiedział McClusky.
Dzięki integracji tych technologii nie trzeba martwić się o podłączanie zastrzeżonych baz danych, które mogłyby powodować problemy i utrudniać działanie reszty systemu. Ponadto, większość pracowników IT jest zaznajomiona z SQL, więc dla tych, którzy modernizują swoje systemy SCADA z bazami danych SQL i platformami automatyki przemysłowej, takimi jak Ignition, zwykle nie jest konieczne uczenie personelu, jak z nich korzystać.
Chociaż nadal istnieje pewna niechęć do łączenia SQL ze SCADA, SQL i inne otwarte standardowe technologie stają się coraz bardziej popularne.
“Powiedziałbym, że dla ludzi, którzy modernizują swoją infrastrukturę i wcześniej mieli starszą konfigurację z produkcją i przechodzą na Ignition, absolutnie SQL rośnie i powinien rosnąć” – powiedział McClusky. Wynika to z faktu, że bazy danych SQL są kompatybilne z każdą nową technologią lub aplikacją wykorzystującą te otwarte standardy. Integracja baz danych SQL i SCADA oferuje wiele korzyści, ponieważ technologia zmienia się bardzo szybko, a SQL może nadążyć za popytem ze względu na swoją interoperacyjność.