Связь с СУБД MS Access

По сформулированному нами ТЗ, необходимо данные, получаемые от PLC по участку хранения, записывать в таблицу реляционной базы данных. Структура таблицы Storage1 файла базы данных MS Access Storage.mdb для накопления значений технологических параметров, поступающих в реальном времени от АРМ будет:

В Панели управления MS Windows в разделе Язык и региональные стандарты во вкладке Региональные параметры необходимо настроить в качестве разделителя целой и дробной части числа точку.

Приступим к разработке SQL-запроса и встраиванию его в проект. В Навигаторе проекта откроем слой Шаблоны_связей_с_СУБД и создадим новый компонент База_данных#1.

Откроем свойства шаблона и зададим ему аргументы:

Закроем свойства и двойным щелчком ЛК откроем шаблон на редактирование. Перед реализацией записи в файл БД MS Access С:\Storage.mdb данных по участку хранения зарегистрируем данный файл в качестве источника/приемника данных. По щелчку ЛК на экранной кнопке Администратор ODBC будет вызван диалог для создания пользовательского DSN:

Создадим с помощью клавиши Add новый источник/приемник данных - STORE.

Далее настроим его следующим образом:

и нажмем ОК. Таким образом, в числе прочих пользовательских DSN появится новый – STORE.

Нажмем OK и далее продолжим работу в редакторе шаблона База_данных#1. В строке DSN/Строка подключения – укажем созданный пользовательский DSN, в нашем случае STORE и проверим с помощью экранной клавиши Проверка правильность подключения к файлу базы данных в окне Отчет:

С помощью экранной кнопки Схема просмотрим структуру подключенной БД:

Далее либо с помощью Мастера запросов, либо непосредственно во вкладке Запрос создадим на языке SQL запрос, помещающий связанные с аргументами шаблона атрибуты каналов в таблицу Storage1 файла Storage.mdb с созданием новых записей:

Для использования Мастера запросов нажмем ЛК экранную кнопку Мастер и в открывшемся окне укажем тип создаваемого запроса INSERT:

нажмем кнопку Next;

выберем таблицу Storage1;

перейдем к следующему шагу нажатием кнопки Next.

Далее произведем последовательную привязку к полям БД соответствующих аргументов шаблона. При выделении ЛК поля БД из списка и последующем нажатии кнопки Привязка в открывающемся окне Значение столбца указывается привязываемый аргумент:

В нижнем окне Мастера запросов при этом будет формироваться запрос:

Завершаем создание запроса нажатием экранной кнопки Finish.

Отладка разработанного шаблона производится во вкладке Запрос с помощью иконки  . Предварительно необходимо задать значения аргументов по умолчанию в соответствующем столбце табличного редактора аргументов. Ход выполнения запроса отображается в окне Отчет:

Откроем дополнительное окно Навигатора проекта, настроив его на отображение группы Участок_Хранения узла АРМ. Выделим ЛК шаблон База_данных#1 и, удерживая ЛК нажатой, перетащим шаблон в группу Участок_Хранения. В группе Участок_Хранения будет создан канал класса Вызов База_данных#1, который и откроем для редактирования:

Для связывания аргументов созданного запроса с атрибутами каналов перейдем с помощью иконки  в табличный редактор аргументов и выполним привязку следующим образом:

Для формирования временной отметки будем использовать атрибут Время изменения канала Битовый_меандр#1, созданного в группе Участок_Хранения методом автопостроения по соответствующему компоненту-генератору в слое Источники/Приемники:

где

Перетащим созданный компонент в группу Участок_Хранения. Поскольку на каждом цикле пересчета базы каналов реальное значение канала Битовый_меандр#1 будет изменяться, то при записи в файл БД будет сохраняться временная отметка по текущему времени.

Теперь для того чтобы при запущенном на АРМ МРВ в файл БД Storage.mdb производилась запись данных по участку хранения, необходимо во входное значение канала класса Вызов База_данных#1 подавать с требуемой периодичностью номер выполняемого запроса, в нашем случае 1. Сделать это можно, например, с помощью программы или ГЭ Кнопка.  Создадим в слое Шаблоны_программ новую программу Запись_в_БД. Реализуем ее следующим образом:

Откомпилируем ее и, убедившись в корректности компиляции, перетащим в группу Участок_Хранения узла RTM_1.  Откроем на редактирование канал класса Вызов Запись_в_БД и установим в его основном бланке атрибут Период равный, например, пяти циклам.

Перейдем с помощью иконки  к аргументам канала и произведем привязку следующим образом:

Изменяя период пересчета данного канала, можно регулировать темп записи величин технологических параметров участка хранения в файл БД MS Access. Сохраним выполненную работу, нажав ЛК  .