Menu

Integracja oprogramowania SCADA z bazami danych przez interfejs ODBC

utworzone przez wrz 18, 20170 komentarzy

Ten artykuł opisuje sposób połączenia i wymiany danych między oprogramowaniem SCADA firmy WellinTech (KingSCADA i KingView 7.0), a bazami danych, których producenci udostępniają sterownik ODBC.

Współczesne systemy automatyki przemysłowej ewoluują w kierunku rozproszonych sieci mniejszych systemów, które wcześniej stanowiły autonomiczne zespoły. Przykładem może być międzynarodowa korporacja posiadająca rozproszone fabryki. Pracownicy centrali chcieliby mieć dostęp do danych z produkcji poszczególnych fabryk. Także mniejsze firmy posiadają systemy zarządzania zasobami ERP, w których zapisywane są dane zleceń, które powinny być przekazywane do wykonania. Najlepiej, aby wszystkie dane były wymieniane automatycznie.

Oprogramowanie SCADA firmy WellinTech wpisuje się w trend integracji automatyki z zewnętrznymi systemami informatycznymi, umożliwiając wymianę danych z bazami danych (także tymi dostępnymi zdalnie, tj. na innym komputerze). Zarówno KingSCADA i KingView dysponują interfejsem ODBC, który może być wykorzystany w tym celu.

W artykule przedstawiono sposób połączenia z bazami danych MS Access (plik *.mdb), MySQL oraz MS SQL Server 2012 Express. Producenci wymienionych baz danych przygotowali sterowniki zgodne ze standardem ODBC. Standard ten jest implementowany przez większość producentów baz danych.

 

Utworzenie źródła danych DSN

 

Pierwszym krokiem do uzyskania połączenia z bazą danych jest zdefiniowanie w systemie Windows źródła danych DSN (Data Source Name). KingSCADA i KingView są programami 32 bitowymi, dlatego wymagają 32 bitowego DSN.

Aby skonfigurować DSN należy uruchomić program [Administrator źródła danych ODBC] z lokalizacji:

  • w przypadku systemów 64 bit:

    %systemdrive%\Windows\SysWoW64\Odbcad32.exe

  • w przypadku systemów 32 bit:

    %systemdrive%\Windows\System32\Odbcad32.exe

Parametr %systemdrive% oznacza dysk systemowy, zazwyczaj jest to dysk C. Należy wybrać zakładkę [Systemowe DSN] i nacisnąć przycisk [Dodaj].

 

Po naciśnięciu przycisku wyświetlona zostanie lista dostępnych sterowników ODBC. Jeżeli na liście brakuje wymaganego sterownika, należy go zainstalować. Należy pamiętać, że sterownik musi być w wersji 32 bit.

 

Ustawienie DSN dla MS Access

 

Z listy dostępnych sterowników należy wybrać sterownik obsługujący pliki *.mdb. MS Access korzysta ze sterownika [Microsoft Access Database Engine], który można pobrać ze strony Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=13255 (dostęp 19.10.2016).

 

 

Na ekranie ustawień należy zdefiniować nazwę źródła danych, która zostanie użyta w oprogramowaniu SCADA jako parametr dsn. Po naciśnięciu przycisku [Wybierz] należy wskazać plik mdb bazy danych. Pozostałe opcje należy pozostawić bez zmiany. Konfigurację należy zapisać, naciskając przycisk [OK].

 

 

Ustawienie DSN dla MySQL

 

Z listy dostępnych sterowników należy wybrać sterownik obsługujący bazę MySQL. MySQL korzysta ze sterownika ODBC ze strony MySQL https://dev.mysql.com/downloads/connector/odbc/ (dostęp 19.10.2016).

 

Na ekranie ustawień należy zdefiniować nazwę źródła danych (Data Source Name), która zostanie użyta w oprogramowaniu SCADA jako parametr dsn. Dodatkowo należy podać adres bazy danych, nazwę i hasło użytkownika oraz wybrać bazę. Połączenie można sprawdzić, naciskając przycisk [Test]. W przypadku poprawnej konfiguracji powinna się pojawić informacja „Connection Successful”. Konfigurację należy zapisać, naciskając przycisk [OK].

 

 

Ustawienie DSN dla MS SQL Server 2012 Express (LocalDB)

 

Z listy dostępnych sterowników należy wybrać SQL Server Native Client 11.0. Na poniższych rysunkach przedstawiono kolejne kroki konfiguracji, które zapewniły poprawną komunikację z bazą danych.

 

 

 

 

 

Definicja bazy danych w SCADA

 

W KingSCADA w kategorii [Universal DataSource] jest [ODBC DataSource].

 

W KingView w oknie TouchExplorer jest dostępny [SQL access manager].

 

Jeżeli z poziomu Scady ma być tworzona tabela, należy zdefiniować jej szablon przez [Table template]. Odczytywanie i zapisywanie danych wymaga ustawienia powiązania między kolumnami bazy danych a tagami. Mapowanie takie tworzy się narzędziem [Bind list]. Nie dotyczy to dostępu do danych w KingSCADA z wykorzystaniem funkcji z kategorii Dataset.

 

Szablon tabeli

 

Szablon tabeli jest definiowany w [Table template]. W oknie można ustawić nazwę szablonu [Table Template Name], nazwę kolumny [Field Name], typ [Tag Type], rozmiar [Tag Length], czy ma być indeksem [Index Type] oraz czy może być pusta NULL. Aby dodać kolumnę do listy, należy nacisnąć przycisk [Add Item]. Naciśnięcie przycisk [OK] zapisuje bieżącą postać szablonu.

 

Mapowanie kolumn na tagi

 

Mapowanie kolumn na tagi jest niezbędne przy wymianie danych między SCADA a bazą danych, gdy wykorzystywane są wbudowane funkcje SQL. W oknie ustawień można zdefiniować nazwę mapy [Bind List Name]. Poniżej nazwie kolumny [Field Name] przyporządkowuje się tag [Tag]. Aby dodać element listy, należy nacisnąć przycisk [Add Item]. Zmiany zatwierdza się naciśnięciem przycisku [OK].

 

 

Połączenie i wymiana danych

 

Oprogramowanie WellinTech umożliwia wykonywanie operacji na bazie danych z wykorzystaniem wbudowanych funkcji oraz kontrolek ActiveX.

 

Wbudowane funkcje

 

W celu korzystania z bazy danych należy zdefiniować tag identyfikujący połączenie oraz po jednym tagu dla każdej kolumny tabeli (tagi wykorzystane w mapowaniu [Bind List]). Dla programisty są dostępne podstawowe operacje na bazie danych. Nazwy tych funkcji zaczynają się od „SQL”. Podstawową funkcją jest SQLConnect(DeviceID, ConnParams), która nawiązuje połączenie.

Funkcja przyjmuje dwa parametry:

  • DeviceID – identyfikator połączenia

  • ConnParams – ciąg parametrów połączenia zawierający DSN i opcjonalnie nazwę, hasło użytkownika, np. “dsn=kvdb2” – przy połączeniu z DSN kvdb2, “dsn=mysql_kvdb3;uid=root;pwd=wti2ck3sa” – przy połączeniu z DSN mysql_kvdb3, na koncie użytkownika root z hasłem wti2ck3sa.

W przypadku KingSCADA występuje dodatkowa kategorii Dataset, dla której nie jest potrzebne mapowanie, odczytywane dane są przechowywane w pamięci w formie tabeli. Do każdej komórki można się odwołać poprzez podanie numeru wiersza i kolumny.

 

Kontrolka KVADODBGrid

 

KingView posiada kontrolkę ActiveX KVADODBGrid, która umożliwia podgląd i modyfikowanie danych w istniejących tabelach bazy danych. Opis korzystania z kontrolki znajduje się w dokumentacji KingView 7.0 w rozdziale 14.3.4.

Aby umożliwić zmiany w bazie danych z poziomu tabeli, należy w konfiguracji tabeli w zakładce [Table] zaznaczyć pole [Changeable database(D)].

Opisywana kontrolka może być wykorzystana również w KingSCADA po zarejestrowaniu jej w systemie Windows.

Uwaga. Aby umożliwić odczyt danych z bazy MySQL musi ona wspierać zapytania ANSI (zawierające znak “). W celu weryfikacji można wpisać poniższe polecenie

SELECT @@GLOBAL.sql_mode;

Powinno zwrócić ciąg zawierający ANSI_QUOTES. Jeżeli tak nie jest, należy edytować plik konfiguracyjny MySQL. Do klucza sql_mode należy dodać wartość ANSI_QUOTES. Alternatywnie można w konsoli MySQL wpisać SET GLOBAL sql_mode = ‘ANSI_QUOTES’;, jednak ta zmiana zostanie utracona przy zatrzymaniu usługi MySQL.

 

Podsumowanie

 

Oprogramowanie SCADA firmy WellinTech umożliwia zapis, odczyt, edycję danych w zewnętrznych bazach danych. Jest to użyteczne w przypadku integrowania systemów automatyki przemysłowej z zewnętrznymi systemami informatycznymi.

Zapraszamy do zapoznania się z ofertą oprogramowania SCADA.

[AnythingPopup id="1"]