Informator Techniczny nr 8 09-11-1998 INFORMATOR TECHNICZNY WONDERWARE Wonderware IndustrialSQL Server i Microsoft SQL Server Wspólne cechy i różnice Czasami po wysłuchaniu informacji o przemysłowej bazie danych firmy Wonderware - programie IndustrialSQL Server, zdarza się nam usłyszeć z ust naszych klientów pytanie: czym właściwie ten IndustrialSQL Server różni się od Microsoft SQL Server a?. Pytanie takie pada szczególnie ze strony osób mniej zaangażowanych w używanie zaawansowanych narzędzi SQL. Postaramy się w takim razie pokrótce naświetlić zasadnicze różnie i punkty wspólne obu produktów. Microsoft SQL Server Microsoft SQL Server jest to jeden z czołowych systemów zarządzania relacyjnymi bazami danych (Relational Database Managment Systems - RDBMS). Produkty takie jak MS SQL Server, IBM DB/2, Oracle, Informix czy Sybase SQL Server SA to czołowe bazy danych używane szeroko w biznesie i zapewniające następujące funkcje: zbieranie i odzyskiwanie danych, czuwanie nad spójnością tych danych, prace w środowisku wielodostępnym wraz z zapewnieniem odpowiednich praw dostępu do odpowiednich informacji, tworzenie kopii zapasowych danych oraz ich odtwarzanie replikowanie danych na inne komputery lub systemy i pewnie jeszcze wiele innych... Historia MS SQL Server a wywodzi się z roku 1987 kiedy to firma Sybase udostępniła firmie Microsoft prawa do używania swojego produktu o nazwie Sybase SQL Server. W ten sposób w roku 1989 stało się możliwe powstanie produktu o nazwie DataServer pracującym pod systemem operacyjnym OS/2 (pamiętajmy, ze wtedy jeszcze firma Microsoft współpracowała z firma IBM nad rozwijaniem tego systemu). W 1992 roku powstała ostatnia wersja serwera bazy danych Microsoft na OS/2, zaś w 1993 roku powstał SQL Server 4.2 dla Windows NT - była to tez pierwsza 32-bitowa wersja tego programu. W roku 1995 firma Microsoft wydala SQL Server a 6.0 i była to pierwsza autorska wersja SQL Server a od Microsoft, wtedy tez wprowadzono podstawowe narzędzie do zarządzania serwerami SQL - SQL Server Enterprise Manager. Obecnie na rynku dostępna jest wersja 6.5 wprowadzona na rynek w 1996 roku, ale na przełomie listopada i grudnia 1998 roku spodziewane jest pojawienie się wersji 7.0 - znacząco poprawionej i udoskonalonej. MS SQL Server jest baza danych pracująca w architekturze klient-serwer, umożliwia prace wielu użytkowników jednocześnie, jest ściśle zintegrowany z systemem operacyjnym Windows NT (m.in. konta użytkowników bazy danych mogą być pobierane z listy użytkowników systemu operacyjnego, zapewnia zgodność z rodzina serwerów Microsoft BackOffice, korzysta z wątków systemu NT i architektury wieloprocesorowej). Jego język SQL jest zgodny ze standardem SQL ANSI-92 czyli ogólnie obowiązująca specyfikacja tego języka. Architekturę MS SQL Server a przedstawia poniższy rysunek. Zarówno na komputerze klienta jak i na komputerze serwera musza działać odpowiednie biblioteki sieciowej komunikacji. Klient wysyła do serwera zapytanie SQL zaś serwer odpowiada na to wysyłając dane czyli zestaw rekordów spełniających podane w zapytaniu warunki. Klient może porozumiewać się z serwerem wprost czyli poprzez odpowiednie biblioteki np. TCP/IP, potoki (named pipes) i inne, albo za pomocą uniwersalnego ASTOR Sp. z o.o. Dział Oprogramowania Przemysłowego ul. Smoleńsk 29, 31-112 Kraków tel.: 012 428-63-30 fax: 012 428-63-09 e-mail: wonderware1@astor.com.pl http://www.astor.com.pl
interfejsu ODBC 1, który jest swego rodzaju translatorem ogólnego protokółu komunikacyjnego ODBC, rozumianego przez wszystkie liczące się programy pod Windows, na protokół komunikacyjny SQL Server a. Komputer-klient Aplikacja Komputer-serwer SQL Server ODBC DBLib ODS Client NetLibrary SQL Server NetLibrary Sieć Dane MS SQL Server został zaprojektowany przez programistów do tego aby być używany w warunkach biurowych, gdzie wykonywane transakcje (polecenia zapisu i/lub odczytu) SA wykonywane częściej lub rzadziej ale zawsze z pewnymi przerwami (czasami rzędu kilku sekund, czasem rzędu kilkudziesięciu minut) - np. wypisywanie kolejnych faktur czy tez wykonywanie kolejnych analiz. Naturalne możliwości człowieka nie pozwalają na analizowanie dużych ilości informacji w nieskończenie krótkim czasie. Człowiek musi mięć chwile czasu aby wpisać dane do faktury, aby przeanalizować odczytane przez siebie dane i wyciągnąć z nich jakiś wniosek - te krótkie odstępy pomiędzy pobieraniem danych w zupełności wystarczają MS SQL Server owi aby w warunkach biurowych wykonywać swoja prace (zapisywanie i udostępnianie danych) bardzo sprawnie. IndustrialSQL Server W takim razie co to jest Wonderware IndustrialSQL Server? IndustrialSQL Server jest to oprogramowanie wykorzystujące Microsoft SQL Server do spełniania specyficznej funkcji: ciągłego pobierania dużej ilości szybkozmiennych danych z procesu technologicznego. IndustrialSQL Server został od początku zaprojektowany do tego zadania (a wiec np. NIE do zastosowań w biurze, bo tam bardzo dobrze radzi sobie MS SQL Server). Oczywiście aby spełniać takie zadanie dobrze, został wyposażony w odpowiednie i zaawansowane mechanizmy zbierania danych, buforowania, a następnie efektywnego ich odczytywania. IndustrialSQL Server jest wiec rozszerzeniem MS SQL Server a - nie jest ani jego odpowiednikiem, ani zastępnikiem. Spójrzmy na poniższy rysunek przedstawiający porównanie architektury obydwu programów. Widać, ze IndustrialSQL Server dysponuje większa ilością modułów - jest tu m.in.: 1 Interfejs ODBC (Open DataBase Connectivity) jest to uniwersalny interfejs umożliwiający aplikacjom dostęp do bazy danych za pomocą jednego protokołu ODBC. Technologia ta uniezależnia programy klienckie od formatu składowania danych występujących w systemach zarządzania bazami danych. 2
moduł odpowiedzialny za pobieranie i buforowanie danych z programów komunikacyjnych do sterowników PLC (Storage) - dane mogą być pobierane w dwóch trybach: cyklicznym z minimalnym gwarantowanym czasem 1 s lub zdarzeniowym - w tym trybie gwarantowana rozdzielczość czasowa wynosi 3 ms (wybór trybu zbierania może się być niezależny dla każdej zbieranej zmiennej i odbywa się poprzez zaznaczenie jednego checkboxa), moduł odpowiedzialny za kompresje i zapis buforowanych danych w strukturach IndustrialSQL Server a (Data Store), moduł odpowiedzialny za odpowiednie odczytywanie danych (w dziedzinie czasu, w dziedzinie częstości, z zadana rozdzielczością czasowa, z zadana strefa nieczułości ze względu na wartość lub na czas, z zadana ilością próbek, itd.). W końcu moduł SQL Parser/Switch analizuje zapytanie klienta i jeżeli odnosi się ono do rozszerzeń IndustrialSQL Server a to je przechwytuje, a jeśli nie to podaje je standardowemu MS SQL Server owi. Moduł IO to nic innego jak klient protokółu komunikacyjnego SuiteLink (specjalizowany protokół komunikacyjny firmy Wonderware do przesyłania dużych ilości danych, zgodny jeśli chodzi o format ramki danych ze specyfikacja OPC). MS SQL Server na pewno nie posiada w sobie zawartych programów komunikacyjnych do sterowników PLC, zaś w przypadku IndustrialSQL Server a, jeżeli chcemy pobierać dane z węzła na którym pracuje InTouch i program komunikacyjny to...po prostu wskazujemy katalog aplikacji InTouch a i to wszystko! Nie musimy wykonywać żadnych zapytań SQL, nie musimy martwic się o uwarunkowania czasowe, ani o dopisywanie nowych rekordów - to wszystko wykonuje za nas IndustrialSQL Server, bo w końcu do tego został stworzony. MS SQL Server IndustrialSQL Server Server NetLibrary ODS SQL Server Server NetLibrary ODS SQL Parser/Switch Retrieval Data Store Storage SQL Server I/O Dlaczego jeszcze IndustrialSQL Server jest czymś więcej niż MS SQL Server? IndustrialSQL Server zawiera ponad 1000 dodatkowych obiektów definiujących dodatkowe tablice baz danych, widoki (predefiniowane zapytania łączące w sobie dane z kilku tablic), indeksy, procedury zachowane (stored procedures), wyzwalacze (triggers), uprawnienia użytkowników. Dodatkowe tablice wspomniane wyżej są tworzone i zarządzane przez IndustrialSQL Server a i użytkownik pakietu nie musi już ich definiować ani wypełniać na własna rękę. Na etapie konfiguracji systemu są one wypełniane automatycznie np. w wyniku wskazania katalogu aplikacji programu InTouch. Tablice zawierają m.in.: dane konfigurujące zbieranie danych: 3
konfiguracje zbieranych zmiennych - jednostki inżynierskie, parametry ich zbierania, skalowanie, definicje topologii systemu - węzły z których są zbierane dane, nazwy programów komunikacyjnych, tematy komunikacji, definicje hierarchii grup zmiennych - grupy publiczne dostępne dla wszystkich klientów (np. zmienne z maszyny A, pomiary ciśnień itd.), grupy prywatne tworzone dla konkretnych użytkowników (np. wskaźniki wydajności linii produkcyjnej), konfiguracje tworzonych automatycznie podsumowań i definicje zdarzeń, które maja być automatycznie wykrywane, dane historyczne - każdy typ zmiennych (dyskretne, analogowe, łańcuchy znakowe) składowany jest w innej tablicy, ponadto dane historyczne mogą być odtwarzane w kilka sposobów (np. nazwy zmiennych i ich wartości jako kolejne wiersze wyniku zapytania, albo nazwy zmiennych jako nagłówki kolumn), dane bieżące, podsumowania i zdarzenia - dla każdej zbieranej zmiennej IndustrialSQL Server może tworzyć automatycznie podsumowania (tj. wyznaczać minimum, maksimum, średnia lub sumę) co godzinę, zmianę, dobę i tydzień. Konfiguracja poszczególnych rodzajów podsumowań jak i okresów czasowych odbywa się poprzez zwykle pola typu checkbox. Ponadto IndustrialSQL Server może automatycznie wykrywać zaistnienie zdarzeń (definiowanych przez użytkownika jako warunki logiczne) oraz może wykonywać odpowiednie akcje w przypadku ich zaistnienia (wykonanie zdjęcia systemu, wywołanie odpowiedniego programu, wysłanie informacji poczta elektroniczna lub na pager itd.). Dane dystretne Dane analog. (tryb zdarzen/) Dane analog. (tryb cykliczny) Moduł dyskretny Moduł analog. Aktywny obraz zmiennych System zbierania i zapisu danych w IndustrialSQL Serverze Moduł znakowy Dane znakowe Driver systemowy Driver komunikacyjny Program komunikacyjny Program komunikacyjny Program komunikacyjny IndustrialSQL to nazwa języka poleceń SQL, rozszerzonego względem TransactSQL obecnego w MS SQL Serverze. Język IndustrialSQL umożliwia m.in. tworzenie zapytań z zadawaniem rozdzielczości zwracanych danych (np. zapytanie następującej treści: należy podąć dane na temat przepływu za ostatnia dobę z dokładnością do 1 minuty, ale tylko wtedy gdy wartość ciśnienia zmieniła się o co najmniej 1 dm 3 /min ). Inna możliwością jest zadawanie ilości wierszy jakie maja być zwrócone w zapytaniu (np. należy podąć 100 pomiarów ciśnienia za ostatnia zmianę, co spowoduje podanie 100 pomiarów oddalonych od siebie o 4 minuty i 48 sekund). Ponadto język IndustrialSQL Server umożliwia tworzenie zapytań ciągłych tzn. takich w których tylko raz pytamy się o dane zmienne a serwer bazy 4
danych za każdym razem gdy ona się zmieni przesyła nam aktualna wartość. Poniżej pokazano przykładowy tekst zapytania realizujący taka funkcjonalność. EXEX ww_setcontinuous ON SELECT DateTime, TagName, Value FROM AnalogLive WHERE TagName ReactLevel Większość wspomnianych wyżej cech jest w praktyce bardzo trudna do osiągnięcia w standardowym MS SQL Serverze lub wręcz nieosiągalna. Przyszłość Wydanie Microsoft SQL Server 7.0 jest planowane na przełom listopada i grudnia 1998 roku. Co nowego przyniesie? Jego możliwości zostały tak rozszerzone aby mógł stanowić konkurencje pod względem wydajności i wielkości aplikacji dla takich baz jak Oracle czy Informix. Tak wiec m.in. będzie oferował wsparcie dla dostarczycieli danych OLE DB czy tez będzie dysponował rozszerzonymi możliwościami replikowania danych. Następna wersja IndustrialSQL Server a będzie korzystała z nowych możliwości MS SQL Server a 7.0, a wiec będzie zgodna ze specyfikacja OLE DB oraz będzie udostępniała lepsze możliwości integracji danych z procesów technologicznych z danymi administracyjno-ekonomicznymi. Ukazanie się IndustrialSQL Server 7.x planowane jest w pierwszej połowie 1999 roku. Podsumowanie W poniższej tabeli zawarto porównanie najważniejszych cech Microsoft SQL Server a i IndustrialSQL Server a. Szybkość zbierania danych Łatwość konfiguracji i serwisu Adekwatność do zastosowań w przemyśle Microsoft SQL Server szybkość zbierania danych uwzględniająca pracę biurową (rzadkie transakcje) rozdzielczość czasowa przystosowana do warunków biurowych brak wbudowanej kompresji danych konieczność ręcznego sterowania zapisem danych za pomocą języka SQL logowanie zdarzeń należy obsłużyć osobno pisząc kod SQL obciążenie komputera ręczne definiowanie odpowiedzi na zdarzenia zależność od programisty SQL bardzo dobra baza danych dla biura brak dedykowanych narzędzi do łatwej analizy danych z przemysłu IndustrialSQL Server szybkość zbierania danych dostosowana do przemysłu (nawet kilkadziesiąt tysięcy sygnałów jednocześnie) rozdzielczość czasowa - 3.3 ms wbudowana kompresja danych w locie nie ma potrzeby pisania kodu SQL - tylko konfiguracja wbudowany mechanizm logowania zdarzeń możliwość definiowania odpowiedzi na zdarzenia bardzo dobra baza danych dla przemysłu dedykowani klienci dla danych 5
Integracja z innym oprogramowaniem dla przemysłu odtwarzanie danych z archiwum należy obsłużyć ręcznie konieczność wykonywania specjalizowanych aplikacji w celu zapisu lub odczytu informacji w bazy danych z przemysłu - trendy, wykresy x-y elastyczne odtwarzanie danych z archiwum (CD-ROM) wbudowany mechanizm integracji z pakietem wizualizacyjnym Wonderware InTouch 6