По сформулированному нами ТЗ, необходимо данные, получаемые от 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. Сохраним выполненную работу, нажав ЛК .