OPC-ODBC bridge. Запись данных OPC в базу данных через ODBC
Задача:
Требуется контролировать и записывать несколько OPC тегов в базу данных. Необходимо, чтобы каждая переменная записывалась в свою колонку.
Таблица в базе данных MS Access имеет следующую структуру:
Рис.1. OPC ODBC. Структура таблицы
Данная структура таблицы удобна при небольшом количестве переменных, которые должны соответствовать одной метке времени.
Требования:
- Advanced OPC Data Logger Professional или пробная версия;
- Модуль "DDE server" для opc logger (опционально, для тестирования);
- Модуль "ODBC database" для opc logger.
Предполагается что:
Вы работали ранее с OPC серверами и имеете представление об организации обмена данными между OPC клиентом и OPC сервером.
Решение:
Необходимо добавить переменные в Opc Logger. Для этого необходимо добавить конфигурацию в программу, если вы не сделали этого ранее. Для создания конфигурации воспользуйтесь кнопкой с плюсом в главном окне программы. В появившемся диалоговом окне перейдите к закладке "Настройки OPC" (рис.2).
Рис.2. OPC ODBC. Настройки OPC
На этой закладке необходимо создать:
- Группу OPC тегов и определить ее параметры (рис.3);
- Добавить необходимые теги OPC (рис.4).
Рис.3. OPC ODBC. Настройки группы
Если опция "Активно" включена, то данные собираются с OPC сервера и экспортируются;
Если опция "Экспортировать всю группу" включена, то данные из всей группы экспортируются одновременно. Если значение переменной изменилось, то экспортируется новое значение, иначе экспортируется предыдущее значение из внутреннего буфера. Это значит, что каждая колонка в базе данных будет иметь свое значение. Если данная опция отключена, то данные могут быть записаны в базу данных в виде 4 колонок (которые выбираются дополнительными опциями):
- Имя переменной
- Значение переменной
- Качество переменной
- Метка времени переменной
Пример данных в главном окне программы, если опция включена:
Каждая переменная имеет уникальное имя. С этим именем переменная будет экспортироваться (рис.5).
Пример данных в главном окне программы, если опция выключена:
Как видно из примера выше переменные имеют фиксированные имена:
- ITEM_NAME – переменная, которая содержит имя изменившегося OPC тега;
- ITEM_VALUE – переменная, которая содержит значение изменившегося OPC тега;
- UPDATE_DATE_TIME – переменная, которая содержит метку времени изменившегося OPC тега;
- ITEM_QUALITY – переменная, которая содержит качество (quality) изменившегося OPC тега.
В этом примере требуется экспортировать каждую OPC переменную в свою колонку. Поэтому опция "Экспортировать всю группу" должна быть включена. В результате, после обновления переменных, в главном окне программы будет видно экспортируемые данные (рис.5).
Рис.4. OPC ODBC. Добавление OPC переменных
- Необходимо указать имя компьютера, на котором находится OPC сервер, и нажать "Обновить". Если сервер находится на локальном компьютере, то нужно оставить это поле пустым или указать там LOCALHOST. Для доступа к удаленным серверам необходимо установить пакет OPC Core Components Redistributable, который свободно можно скачать с сайта opcfoundation.org. Затем настроить DCOM для доступа к удаленным серверам;
- Выберите имя сервера из списка. Если сервера нет в списке, то это значит, что вы неправильно настроили DCOM или не установили OPC Core Components Redistributable. В этом случаем можно ввести уникальный идентификатор сервера в поле "ClsID". После выбора сервера нажмите "Подсоединится"
- В появившемся списке переменных отметьте "галочкой" те теги, которые вы хотите добавить. Если список пустой, то сервер не поддерживает получения списка переменных. Тогда укажите список переменных вручную.
- Нажмите "OK", для того, чтобы переменные были добавлены в выбранную группу (рис.2)
Рис.5. OPC ODBC. Главное окно программы.
На рисунке 5 показана структура экспортируемых данных:
- Имя переменной (до квадратных скобок). Данное имя необходимо использовать в модулях экспорта данных;
- Код типа данных в квадратных скобках. Программа использует этот параметр при экспорте;
- Значение указано после знака "=".
Если опция "Экспорт всех изменившихся данных одной строкой" на рис.3 включена, то данные будут экспортироваться в виде одной строки, как на рис.5. Данная опция обязательно при экспорте в базу данных. Если данная опция отключена, то данные будут иметь вид:
Рис.5. Пример данных.
Т.е. экспортируются только изменившееся значения, каждая переменная экспортируется одной строкой, что удобно для восприятия и записи в лог-файл.
Теперь, необходимо настроить экспорт данных в базу данных. Для этого необходимо перейти к странице "Модули-Экспорт данных" (рис.6)
Рис.6. OPC ODBC. Выбор модулей экспорта данных.
Здесь можно активировать модуль DDE server, чтобы проверить, что данные готовы для экспорта. Активируйте модуль в списке
и нажмите "OK", чтобы применить изменения. Затем откройте эту страницу снова, выберите модуль DDE server в списке и нажмите "Настроить". В появившемся окне, на закладке "Активные переменные" должны отображаться переменные, которые были добавлены ранее (рис.7).
Рис.7. OPC ODBC. Активные переменные.
Теперь необходимо настроить модуль экспорта данных "ODBC database" для записи данных в базу данных Microsoft Access. Активируйте этот модуль в списке (рис.6) и нажмите "Настроить".
Рис.8. OPC ODBC. Настройка экспорта в базу данных.
Активируйте указанные на рисунке 8 опции. Данные опции включают запись в базу данных, при этом соединение с базой данных будет постоянным и будет установлено только при первой необходимости.
На следующей странице (рис.9) необходимо:
- выбрать имя ODBC соединения. Если нет готового ODBC соединения, то его можно создать в системном менеджере ODBC соединений, нажать кнопку "Настройка", а затем, нажав "Обновить";
- Указать путь и имя к ранее созданной базе Microsoft Access.
Рис.9. OPC ODBC. Настройка соединения с базой данных.
Далее необходимо "связать" имя переменной OPC с именем колонки в таблице. Это можно сделать на странице "Связывание" (рис. 10).
Рис.10. OPC ODBC. Связывание переменных и колонок таблицы.
Перед тем, как "связать" переменные и колонки необходимо импортировать описание таблицы из базы данных или составить это описание вручную, нажимая кнопку "Добавить" для каждой нужно колонки. Но гораздо проще импортировать описание, нажав "Импорт" (рис.11).
Рис.11. OPC ODBC. Импорт описания таблицы.
Для выполнения импорта необходимо:
- Нажать импорт и согласиться с очисткой списка переменных;
- Выбрать таблицу из списка и нажать OK;
- Описание колонок будет скопировано в окно "Связывание". Вы можете удалить ненужные колонки (например, в данном примере колонка ID содержит счетчик, который увеличивается автоматически) и указать имя переменной в поле "Имя переменной парсера". Необходимо проконтролировать, что тип данных переменной соответствует типу данных колонки, иначе возникнут ошибки при экспорте данных.
Нажмите "OK" во всех диалоговых окнах, чтобы применить изменения. Если все верно настроено, то в главном окне программы будут отображаться сообщения об успешном экспорте данных (рис.12) (если протокол активирован в опциях программы) и данные будут записаны в таблицу (рис.13).
Рис.12. OPC ODBC. Протокол сообщений.
Рис.13. OPC ODBC. Записанные данные.
Архив с тестовым OPC сервером, базой данных и конфигурацией программы можно скачать здесь. Для использования файлов из архива необходимо:
- Необходимо запустить OPC сервер один раз перед использованием;
- Импортировать конфигурацию (файл с расширением *.ini) (Команды-Загрузка резервной копии);
- Изменить путь к базе данных в свойствах модуля экспорта данных.
Сопутствующие статьи:
Настройка DCOM и OPC на Windows 2008 и Windows 7
Настройка DCOM и OPC на Windows 10, 11, Windows Server 2019, 2022