№7 ODBC/OLEDB

ЛАБОРАТОРНА РОБОТА № 7.

Використання відкритих технологій доступу до баз даних в комп’ютерно-інтегрованих системах управління.

 

 

Тривалість: 4 акад. години (2 пари).

Мета: Навчитись користуватися технологіями доступу до баз даних для їх використання при побудові комп’ютерно-інтегрованих систем управління.

 

Лабораторна установка.

Лабораторна робота виконується на робочих місцях 2,3 (перша бригада), 4,5 (друга бригада), 7,8 (третя бригада) та 9,10 (четверта бригада). Лабораторна установка для робочих місць 2 та 3 зображена на рис.7.1. Комп’ютер РС1 використовується для всіх робочих місць в якості технологічного сервера.

Апаратне забезпечення. Лабораторна установка складається з двох пар: ПЛК TwidoMODBUS RTU – ПК та ПК робочого місця 1 (РС1). ПК між собою з’єднані за допомогою Ethernet з використанням комутатора (Switch).

Програмне забезпечення. На комп’ютерах використовується SCADA-програма VijeoCitect (Шнейдер Електрик), Microsoft Excel, вбудований в ОС Windows XP Адміністратор ODBC, Microsoft® SQL Server™ Management Studio Express (SSMSE, Microsoft), на РС1 -  Microsoft SQL Server 2000 (Microsoft).

Загальна постановка задачі. Цілі роботи:

1.      навчитись створювати БД для забезпечення ведення централізованого архіву;

2.      навчитись використовувати технології OLEDB та ODBC для доступу до джерел даних на прикладі SCADA VijeoCitect та Microsoft Excel;

3.      реалізувати поставлену задачу, оформлену у вигляді схеми інформаційних потоків, яка передбачає ведення централізованого архіву, та доступ до архівних даних з боку офісного прикладного забезпечення;

Деталізований опис постановки задачі. У лабораторній роботі необхідно реалізувати задачу, показану на моделі (рис.7.2) та схемі (рис.7.3) інформаційних потоків на прикладі варіанту для бригади 1. Система складається з трьох підсистем: підсистема 1, підсистема 2 та технологічний сервер.
 
 

Реалізацію системи умовно можна поділити на чотири етапи.

1.      У SCADA VijeoCitect кожної підсистеми реалізувується зчитування значень витрат пари з використанням вбудованих драйверів Modbus RTU (потоки 1,2): F31,F32 з PLC3 (підсистема 2); F21, F22 з PLC2 (підсистема 1). Діапазон витрат (0-10000 м3/год), періодичність зчитування 2 с;

2.      З використанням середовища Microsoft® SQL Server™ Management Studio Express, на віддаленому вузлі технологічного серверу, що базується на Microsoft SQL Server, створюється база даних (DB1), таблиця Т2 для підсистеми 1, та таблиця Т3 для підсистеми 2, зі значеннями колонок відповідно F21, F22 та F31, F32. Таблиці необхідно спроектувати таким чином, щоб в одній з колонок зберігався час запису (див. додаток 7.1).   

3.      У SCADA VijeoCitect кожної підсистеми необхідно реалізувати архівування значень витрат (потоки 3,4) у відповідній таблиці технологічного серверу. Для ведення архіву використовується технологія ODBC та вбудована в VijeoCitect мова CiCode. Спочатку налаштовується ODBC DSN, який посилається на потрібну базу даних. У SCADA VijeoCitect створюється DEVICE з посиланням на потрібну таблицю джерела даних DSN (див. додаток 7.2). Створюється CiCode функція для добавлення запису в таблицю з плинними значеннями змінної. Для періодичності запису 10 с, в VijeoCitect створюється EVENT, який буде викликати функцію добавлення запису.

У програмі Microsoft Excel комп’ютера підсистеми 1, необхідно реалізувати зчитування архівних значень F21 та F31 за останні 5 хвилин (потік 5) та порівняння їх середніх значень у вигляді кругової діаграми. Періодичність вибірки – 1 хв. Доступ до архівних даних проводиться через механізми імпорту (див. додаток 7.4). Вибірка необхідних даних проводиться через SQL запити (див. додаток 7.3). Середнє значення розраховується вбудованими функціями Excel, порівняння середніх значень F21сер та F31сер проводиться через кругову діаграму.
 
 
 

Таб.7.1.

Параметр

бригада 1

бригада 2

бригада 3

бригада 4

підсист.1

підсист.2

підсист.1

підсист.2

підсист.1

підсист.2

підсист.1

підсист.2

робоче місце

2

3

4

5

7

8

9

10

Адр. Slave

2

3

4

5

7

8

9

10

бітова швидк.

19200

19200

19200

19200

9600

9600

9600

9600

паритет

парн

парн

парн

парн

непар

непар

непар

непар

стоп біт

1

1

1

1

1

1

1

1

змін.1 PLC

W21

%MW123

W31

%MW68

W21

%MW34

W31

%MW176

W21

%MW34

W31

%MW11

W21

%MW67

W31

%MW95

змін.2 PLC

W22

%MW124

W32

%MW69

W22

%MW35

W32

%MW177

W22

%MW35

W32

%MW12

W22

%MW68

W32

%MW96

назва БД, користувач, пароль

DB1,

користувач G1, пароль 1

DB2,

користувач G2, пароль 1

DB3,

користувач G3, пароль 1

DB4,

користувач G4, пароль 1

 

 

Послідовність виконання роботи.

1. Забезпечення читання змінних з ПЛК.

Зібрати лабораторну установку.

1.1)      У VijeoCitect реалізувати потоки 1 (підсистема 2) та 2 (підсистема 1). Результат перевірити в режимі виконання.

2. Створення БД та таблиць на технологічному сервері.

2.1)      На одному з робочих місць бригади (ПК підсистеми 1 або 2) запустити на виконання Microsoft® SQL Server™ Management Studio Express (SSMSE). З’єднатися с сервером: ім’я COMP1, схема аутентифікації - "SQL Server", користувач та пароль - відповідно до варіанту; опцію заповнити пароль не виставляти .

2.2)      Перевірити наявність бази даних відповідно до варіанту (наприклад для бригади 1 – DB1). У випадку наявності такої – видалити її.

2.3)      Створити базу даних, відповідно до варіанту.

2.4)      Створити таблицю T2 з наступними властивостями:

Стовпчик 1: Ім’я = F21, тип = char(10), дозволити значення null;

Стовпчик 2: Ім’я = F22, тип = char(10), дозволити значення null;

Стовпчик 3: Ім’я = DateTime, тип = datetime, дозволити значення null, Значення або прив’язка по замовченню – GetDate();

Вигляд конфігураційного вікна зафіксувати скриншотом.

2.5)      Створити таблицю T3 з наступними властивостями:

Стовпчик 1: Ім’я = F31, тип = char(10), дозволити значення null;

Стовпчик 2: Ім’я = F32, тип = char(10), дозволити значення null;

Стовпчик 3: Ім’я = DateTime, тип = datetime, дозволити значення null, Значення або прив’язка по замовченню – GetDate();

Вигляд конфігураційного вікна зафіксувати скриншотом.

3. Архівування даних в VijeoCitect.

3.1)      Сконфігурувати джерело даних ODBC з ім’ям DSN=CtTAB, що по замовченню повинна посилатися на потрібну базу даних, відповідно до варіанту.

-        "Пуск"->"Настройка"->"ПанельУправления"->"Администрирование"-> "Источники данных (ODBC)";

-        "Системный DSN", "Добавить";

-        вибрати драйвер SQL Server;

-        налаштувати драйвер на відповідне джерело даних:

§         ім’я (DSN-ім’я): CtTab;

§         аутентифікація: SQL;

§         користувач та пароль, відповідно до варінату;

-        перевірити з’єднання за допомогою тестової кнопки;

3.2)      У VijeoCitect створити DEVICE (System->Devices) типу SQL з іменем "Archive", зв’язаний з ODBC, створеним в п 3.1 (DSN=CtTAB). Вказати ім’я таблиці відповідно до варіанту. Вказати формат таблиці, відповідно до варіанту за прикладом:

{F21,10}{F22,10}

Вигляд конфігураційного вікна зафіксувати скриншотом.

3.3)      У VijeoCitect створити новий файл Cicode (Активний Проект->Cicode Files->Create a new Cicode Page) з довільною назвою і записати в ньому функцію з іменем FnWriteToSQL за прикладом, наведеним в додатку 7.2. Зберегти файл.

3.4)      У VijeoCitect cтворити генератор подій EVENT (System->Events) для виклику функції FnWriteToSQL 1 раз/10с (відповідно до параметрів інформаційного потоку). У параметрах новоствореного EVENT задати:

Name = EventWriteDB

Action =FnWriteToSQL()

Period = 00:00:10

Вигляд конфігураційного вікна зафіксувати скриншотом.

3.5)      Скомпілювати проект VijeoCitect. Після вдалої компіляції необхідно активувати генератор подій для системи виконання.   У Citect Exlporer запустити ComputerSetupWizard (Tools->ComputerSetupWizard), вибрати режим CustomSetup, у вікні Network Setup вибрати "No Networking", у вікні EventsSetup виставити опцію "Enable Events on This Computer" та "EventWriteDB". Запустити виконавчу систему VijeoCitect.

3.6)      Спостерігати за роботою системи протягом 1 хв, у випадку з’явлення повідомлення "Не вдається відкрити базу даних" перевірити всі підпункти пунктів 2 та 3, та досягнути вдалого результату.

3.7)      Не зупиняючи виконавчу систему VijeoCitect, переглянути зміст таблиць Т2 та Т3 в базі даних технологічного серверу, використовуючи SSMSE. Якщо даних в таблицях немає перевірити всі підпункти пунктів 2 та 3, та досягнути вдалого результату.

3.8)      Періодично оновлюючи таблицю (наприклад через "Выполнить код SQL") дочекатися, коли з’являться записи в таблицях Т2 та Т3 старіше за 5 хвилин. Вигляд таблиць Т2 та Т3 зафіксувати скриншотом.

3.9)      У SSMSE для таблиці Т2 показати область SQL-кода. Відредагувати запит змінивши його на вибірку полів F21 та DateTime таблиці Т2 за останні 5 хвилин. Вигляд таблиці Т2 та SQL-запиту зафіксувати скриншотом.

3.10)  У SSMSE для таблиці Т3 показати область SQL-кода. Записати запит на вибірку полів F31 та DateTime таблиці Т3 за останні 5 хвилин. Вигляд таблиці Т3 та SQL-запиту зафіксувати скриншотом.

4. Реалізація вибірки архівних даних в Excel.

4.1)      На РС підсистеми 1 завантажити Excel. Імпортувати дані з таблиць T2 та Т3 використовуючи OLE DB. У властивостях зовнішніх даних "Изменить запрос", визначіть рядок підключення, тип команди та текст команди. Результат зафіксуйте скриншотом та занотуйте. У властивостях діапазону зовнішніх даних визначіть фонове обновлення екрану кожну хвилину.

4.2)      Повторити пункт 4.1 для таблиці Т3 але в інших комірках.

4.3)      У параметрах зовнішніх даних "Изменить запрос" змініть тип команди на SQL, в полі тексту команди введіть запит як в пункті 3.9. Результат зафіксуйте скриншотом.

4.4)      Повторити пункт 4.3 для таблиці зовнішніх даних з таблиці Т3, з запитом аналогічним як в пункті 3.10.

4.5)      Для перетворення текстових даних в числові в сусідніх колонках напроти полів зі значеннями F21 та F31 використати функцію Excel "ЗНАЧЕН", яка знаходиться в бібліотеці категорії "текстовые". Новостворені колонки назвати F2 та F31ч. На основі створених даних побудувати діаграму типу "График". Результат зафіксуйте скриншотом.  

Для підрахунку середнього арифметичного по кожній із колонок F21ч та F31ч використати функцію  Excel "СРЗНАЧ", яка знаходиться в бібліотеці категорії "Статистические". На основі середніх даних побудувати кругову діаграму (необхідні дані вибрати Crtrl).

Оформлення роботи.

До захисту готовляться всі зафіксовані сриншоти та занотовані результати з поясненнями.

 

Перевірка виконання роботи та питання до захисту.

Викладачем вибірково перевіряється виконання всіх пунктів роботи та занотовані результати. Кожен результат студент повинен пояснити. У випадку виникнення помилок або запитань щодо проведення певного пункту, цей пункт необхідно буде повторити.

1.      Які програмні засоби і навіщо доступаються до архівних даних? Який тип СУБД використовувався в даній лабораторній роботі в якості джерела даних? Які програмні засоби в даній лобораторній роботі доступалися до даного джерела? Які відкриті технології доступу до баз даних при цьому використовувалися?

2.      Як вирішується питання стандартизації інтерфейсу до СУБД через використання мови SQL? Що таке діалект SQL, який діалект використовувався в СУБД в даній лабораторній роботі? Які особливості СУБД були використані в лабораторній роботі?  

3.      Поясніть синтаксис оператору вибірки SELECT? Де і навіщо в даній лабораторній роботі використовувався даний оператор? Поясніть використання оператору SELECT на основі занотованих результатів.

4.      На яких технологіях базується ODBC. Як ідентифікується джерело даних в ODBC? Поясніть всю послідовність створення DSN, яку Ви проводили в лабораторній роботі.

5.      Наведіть послідовність операцій, яку необхідно зробити користувачеві для вказівки джерела даних програмі клієнту ODBC на прикладі підключення його в VijeoCitect.

6.      Поясніть призначення об’єктів Connection (Connection String) та Command в технології ADO/OLE DB? Яким чином формується Рядок Підключення? Прокоментуйте дані та інші поля на прикладі пункту 4.3 даної лабораторної роботи.

7.      Чи можна доступитись до джерел даних ODBC через інтерфейс OLE DB та ADO? Обґрунтуйте свою відповідь.

Поясніть пункти 3.3 та 3.4 даної лабораторної роботи. Поясніть програму написану на CiCode.

 

Додаток 7.1. Робота з Microsoft SQL Server Management Studio Express   (SSMSE).

 

Д7.1.1. Загальні положення. Середовище Microsoft® SQL Server™ Management Studio Express (SSMSE) надає графічний інтерфейс для управління більшістю реляційних СУБД SQL Server версії 2005 та нижче. Середовище SSMSE можна безкоштовно завантажити з офіційного сайту Microsoft.

У середовищі SSMSE всі операції з базами даних можна проводити з використанням як графічних засобів так і SQL запитів.

 Д7.1.2. З’єднання з необхідним Сервером. По замовченню ярлик для SSMSE знаходиться в "Пуск->Программы->Microsoft SQL Server 2005-> SQL Server Management Studio Express ". Підключення до необхідного екземпляру SQL Server проводиться наступним чином:

"меню Файл->Подключить к обозревателю объектов…"

У діалоговому вікні вказати необхідне ім’я екземпляру Серверу, тип аутентифікації ("проверка подлинности"), ім’я користувача та пароль (рис.7.4). При необхідності зв’язку з віддаленим SQL Cервером його ім’я вказується в форматі:

ім’я_комп’ютера\ім’я_екземпляру_сервера

У даній лабораторній роботі для підключення до MS SQL Server 2000, достатньо вказати тільки ім’я_комп’ютера, тобто COMP1.

 
 

Д7.1.3. Добавлення та знищення бази даних. Добавлення бази даних (БД) в графічному редакторі SSMSE можна зробити через контекстне меню "Базы данных" вибраного екземпляру Серверу. У діалоговому вікні (рис.7.5) достатньо вказати ім’я новостворюваної БД і нажати "Ок", база даних створиться з параметрами по замовченню, що задовольняє умовам даної лабораторної роботи.

Видалення БД проводиться в її контекстному меню. Враховуючи, що користувачам в даній лабораторній роботі не надані адміністративні права на знищення журналів, у діалоговому вікні перед знищенням необхідно зняти опцію "Удалить журналы резервного копирования и восстановления базы данных", інакше БД не буде видалена.
 
Д7.1.4. Створення та видалення таблиць в базі даних. У SSMSE Таблиці створюються в контекстному меню бази даних "Таблицы". При створенні викликається конструктор таблиць (рис.7.6) в якому задається структура таблиці: стовпці та при необхідності їх зв’язки. Збереження структури таблиці проводиться в меню "Файл->Сохранить Таблицу". Конструктор таблиці також можна викликати вже після створення таблиці, викликавши в її контекстному меню команду "Изменить".
 
 
 
Д7.1.5. Вибірка та модифікація даних в SSMSE. Перегляд та редагування записів таблиць графічними засобами проводиться в конструкторі запитів, через контекстне меню "Открыть таблицу" (рис.7.7). При цьому в головному меню з’являється пункт "Конструктор запросов", в якому в підменю "Область" можна вибрати різні типи відображення (Області). Так вибірку потрібних даних можна проводити за допомогою SQL запитів в області SQL-кода. Перевірку SQL-коду та запуск його на виконання можна проводити через відповідні команди меню "Конструктора запросов".
 
 

Додаток 7.2. Робота VijeoCitect з базами даних SQL.

 

Д7.2.1. Загальні положення. У VijeoCitect є декілька механізмів роботи з джерелами даних типу SQL. Один з найпростіших – це використання спеціальних об’єктів для роботи з зовнішніми пристроями – DEVICE разом з CiCode командами.

Об’єкти DEVICE створюються в Project Editor в розділі System->Devices. Одним із типів DEVICE є ODBC джерело даних типу таблиця. VijeoCitect підтримує роботу тільки з символьним (текстовим) типом даних. Базу даних та таблицю в ній необхідно створити перед її використанням в Device.      

Д7.2.2. Налаштування параметрів DEVICE для роботи з SQL джерелами даних. Для роботи з DEVICE типу SQL необхідно сконфігурувати наступні поля (рис.7.8):

Name – довільна назва пристрою, наприклад DevDB    

Format – формат таблиці, тобто назва та ширина в символах колонок таблиці. Наприклад, формат - {Name,16}{Water,8}{Sugar,8}{Flour,8}{Salt,8}{Yeast,8}{Milk,8} буде визначати таблицю наступного вигляду:
 
 

вказує на ім’я DSN  "ExmplDataBase", ім’я користувача (UID) рівним "G1", пароль (PWD) рівним "1".

FileName – ім’я таблиці в базі даних, до якої необхідно підключитись

Type – для SQL типу пристрою вибирається SQL_DEV  

NoFiles – кількість файлів, для SQL типу пристрою дорівнює -1

Поля Time, Period, Prpcess, ClusterName, Comment в даній лабораторній роботі необхідно залишити порожніми.
 
 

Д7.2.3. Добавлення записів в джерело даних DEVICE з використанням CiCode. Добавлення нових записів в CiCode проводиться через функції DevAppend, зміна значень полів запису через функцію DevSetField. Робота даних функцій з конкретним Device проводиться через дескриптор (handle), який повертається функцією DevOpen.

Роботу функцій розглянемо через функцію користувача FnWriteToSQL, яка заносить новий запис в DEVICE з ім’ям Archive, та полями F21 та F22, які вміщують значення витрат.    

 

FUNCTION FnWriteToSQL()

         INT hDev; //дескриптор пристрою

         ErrSet(1);     //обробку помилок робить програма користувача  

        

         //відкрити DEVICE з іменем Archive, який буде посилатись на таблицю T2

         hDev=DevOpen("Archive",0);

        

         IF hDev = -1 THEN                   //якщо помилка відкриття

                   Message("Не вдається відкрити базу даних","Не вдається відкрити базу даних",0); 

         ELSE                                        //якщо помилки немає

                   //добавити новий запис в таблицю

                    DevAppend(hDev);

                  

                   //записати в поле F21 значення змінної PLC2_F21

                   DevSetField(hDev, "F21", RealToStr(PLC2_F21,5,2));

                   //де F21 – назва колонки в таблиці бази данних                    

                   //PLC2_F21 – назва змінної в VijeoCitect, значення якої треба записувати               

 

                   //записати в поле F22 значення змінної PLC2_F22    

                   DevSetField(hDev, "F22", RealToStr(PLC2_F22,5,2));

                   //де F22 – назва колонки в таблиці бази данних                    

                   //PLC2_F22 – назва змінної в VijeoCitect, значення якої треба записувати  

 

         END

DevClose(hDev);

END 

 

Додаток 7.3. Використання SQL запитів.

 

Д7.3.1. SQL запити на вибірку. Загальний вигляд SQL-запита на вибірку рядків(записів) з таблиць:

SELECT список_полів_через_кому

FROM таблиця_БД

WHERE  умова_вибірки_записів

 

Наприклад, наступний запит повертає всі поля таблиці Т2, які задовольняють умові більшості поля DateTime за '2006-09-19 00:00:00':

SELECT *     

FROM  T2

WHERE T2.DateTime>'2006-09-19 00:00:00'

Д7.3.2. Використання вбудованих функцій MS SQL Server. MS SQL Server дає можливість створювати власні та використовувати існуючі функції (Function) та збережені процедури (Stored Procedure). В лабораторній роботі в запитах SQL використовуються вбудовані функції SQL Server для роботи із датою та часом: DATEADD та GETDATE.

DATEADD (частина, кількість, дата_час) – добавляє до вказаної дати та часу вказану кількість частин (секунд, хвилин, годин і т.д.)

GETDATE() – повертає плинне значення дати та часу. Формат часових даних – datetime, маже мати вигляд ’yyyy-mm-dd hh:mi:ss’, наприклад: '2006-10-10 12:36:48'. Параметр частина в функціях задається відповідними буквами, тобто "yyyy"-рік,  "mm" – місяць, "dd" – хвилини, "hh"- години, "mi" – хвилини, "ss" – секунди.

Наприклад, наступний запит повертає поля F21 та DateTime таблиці Т2 за останні 5 хвилин, при умові що в полі DateTime зберігається дата та час збереження.

SELECT F21, DateTime     

FROM  T2

WHERE T2.DateTime> DATEADD ("mi",-5,GETDATE())

 

Додаток 7.4. Імпорт даних в Excel.

 

У таблиці Excel можна імпортувати зовнішні дані, наприклад із баз даних, використовуючи  інтерфейс OLE DB або ODBC.

В лабораторній роботі використовується імпорт даних із баз даних та файлів використовуючи  інтерфейс OLE DB. Імпорт даних через OLE DB проводиться наступним чином: "Данные->Импорт внешних данных->Импортировать данные…". При виборі цього способу імпорту необхідно вказати джерело даних, настройки якого збережені в файлі, або створити нове Підключення за допомогою кнопки "Создать". Для повної настройки джерела даних в меню майстра Підключення треба вибрати пункт "Дополнительно", після чого вибрати необхідного провайдера даних та налаштувати параметри Підключення. Після вставки даних в таблицю Excel можна змінити Рядок Підключення, Тип та Текст Команди через контекстне меню вставлених даних "Изменить запрос".  Наприклад можна змінити тип запиту на SQL, і вписати SQL-запит в поле "Текст команды"

 
Оставить комментарии Вы можете здесь http://pupena-san.blogspot.com
Comments