OpcDevices - Генератор устройств Opc
Данный материал описывает внешний модуль OpcDevices — исполнитель генерации OPC UA-устройств в alpha.DevStudio.
Ожидаемый результат: пользователь понимает, какие модели необходимо подготовить, как запустить модуль и какие объекты будут созданы.
Введение
Section titled “Введение”OpcDevices - Генератор устройств Opc — внешний модуль системы Uniplant Atomix для автоматизированного создания опроса устройств по протоколу OPC UA сервером Alpha. Модуль создаёт и настраивает OPC UA-серверы, карты адресов, сервисные узлы и диагностические IOS-представления.
Модуль запускается из внутреннего модуля «OPC Device Конфигуратор». Пользователь выбирает в конфигураторе одно или несколько OPC-устройств, после чего OpcDevices обрабатывает выбранные строки и создаёт соответствующую структуру проекта.

Рисунок 1 — Внутренний модуль «OPC Device Конфигуратор», из которого запускается генерация
Модели и файлы
Section titled “Модели и файлы”Исходные данные и результат генерации
Section titled “Исходные данные и результат генерации”| Описание | |
|---|---|
| Исходные данные | Строки экземпляров из OpcDeviceList.xlsx: TAG, GateTag, ServerTag, ConnectionPointName, PathDevStudio, тип устройства и другие параметры |
| Исходные данные | Подключаемый по IOBJ файл описания устройства с листами OPT.Device, OBJ.* и MBM.* |
| Исходные данные | Модель OBJTYPE типа OpcDev или OpcPlc, включая параметры листа NetDiag.opt |
| Исходные данные | Глобальная переменная OPC_DEVICES_DIRECTORY_PATH и выбранные в конфигураторе устройства |
| Результат генерации | Устройство или ПЛК с тегом GateTag и описанными в модели сетями |
| Результат генерации | Application с экземплярами, компонентом карты OPC и сформированной картой адресов |
| Результат генерации | Компонент OpcUaServer, добавленный в найденный или автоматически созданный OpcUaClient |
| Результат генерации | Сервисные узлы и диагностический IOS-экземпляр на сервере ServerTag |
Расположение файлов
Section titled “Расположение файлов”Перечень OPC-устройств находится по пути:
%JSC%\USR\PRJ\Conf\DevStudioDevs\OPC\OpcDeviceList.xlsx

Рисунок 2 — Расположение файла OpcDeviceList.xlsx в проекте
Каталог, в котором конфигуратор ищет все файлы описания OPC-устройств, задаётся глобальной переменной:
| Переменная | Назначение |
|---|---|
OPC_DEVICES_DIRECTORY_PATH | Путь к папке со всеми файлами описания OpcDevice |
Модель OpcDeviceList.xlsx
Section titled “Модель OpcDeviceList.xlsx”Файл содержит перечень экземпляров OPC-устройств и параметры, необходимые для их генерации. Поле ConnectionPointName задаёт имя точки подключения, используемое компонентом OpcUaServer в устройстве.
Описание экземпляра также содержит:
TAG— имя создаваемого компонентаOpcUaServer;GateTag— тег создаваемого устройства или ПЛК;ServerTag— сервер, в котором настраиваются клиент и диагностические узлы;PathDevStudio— путь размещения диагностического экземпляра на сервере;IOBJ— ссылка на файл описания конкретного устройства.
Точный состав полей может зависеть от используемой версии модели и типа устройства.
Модель OBJTYPE
Section titled “Модель OBJTYPE”Модель OBJTYPE определяет тип OPC UA-устройства, пути размещения объектов и правила создания диагностической структуры. Используются значения типа устройства:
OpcDev— OPC-устройство;OpcPlc— OPC-ПЛК.
Параметры листа NetDiag.opt задают пути и правила генерации: ManagerName, DevStudioDeviceNamePath, DevStudioServiceNamePath, DevStudioServiceTypePath, DevStudioIosTypePath, DevStudioIosAppName_1..N и DevStudioServicePathAdapter_1..N.

Рисунок 3 — Пример строки описания типа OpcDev
Файл описания устройства
Section titled “Файл описания устройства”Файл конкретного устройства подключается к строке экземпляра инструкцией IOBJ.

Рисунок 4 — Подключение файла описания устройства через IOBJ
Подключаемый файл содержит:
| Лист | Назначение |
|---|---|
OPT.Device | Параметры компонента OpcUaServer в устройстве и параметры сервера, добавляемого в OpcUaClient; в том числе правило размещения карты AdressMapPath |
OBJ.* | Экземпляры, создаваемые в Application устройства или ПЛК |
MBM.* | Исходные данные для формирования карты адресов OPC |
Что создаёт модуль
Section titled “Что создаёт модуль”1. Устройство или ПЛК
Section titled “1. Устройство или ПЛК”Создаётся устройство или ПЛК с тегом GateTag. Путь определяется выражением DevStudioDeviceNamePath из OBJTYPE на листе NetDiag.opt.
2. Сети
Section titled “2. Сети”В устройстве создаются сети в соответствии с их описанием в строке OpcDeviceList.xlsx.
3. Application и карта OPC
Section titled “3. Application и карта OPC”В Application создаются экземпляры с листов OBJ.* подключаемого файла по общим правилам обработки XLS-моделей.
На основе листов MBM.* формируется карта адресов. Компонент карты OPC размещается по правилу AdressMapPath, заданному на листе OPT.Device.
4. Компонент OpcUaServer
Section titled “4. Компонент OpcUaServer”В созданном устройстве добавляется компонент OpcUaServer с именем TAG из OpcDeviceList.xlsx. Его параметры, включая имя точки подключения, TCP-порт и путь к карте адресов, заполняются значениями из OpcDeviceList.xlsx и листа OPT.Device подключаемого файла.

Рисунок 5 — Пример созданного компонента OpcUaServer и его параметров
5. Подключение сервера к OpcUaClient
Section titled “5. Подключение сервера к OpcUaClient”В существующем сервере ServerTag, в менеджере ManagerName из OBJTYPE, модуль находит OpcUaClient и добавляет в него созданный OpcUaServer. Если OpcUaClient отсутствует, модуль автоматически создаёт его без вывода предупреждения. Параметры подключения заполняются по листу OPT.Device.
6. Сервисные узлы
Section titled “6. Сервисные узлы”На сервере ServerTag, по пути DevStudioServiceNamePath из OBJTYPE, создаются сервисные узлы типа DevStudioServiceTypePath. Количество узлов и правила формирования путей определяются параметрами DevStudioServicePathAdapter_1..N.
7. Диагностический IOS-экземпляр
Section titled “7. Диагностический IOS-экземпляр”На сервере ServerTag, по пути PathDevStudio из OpcDeviceList.xlsx, создаётся экземпляр диагностического типа DevStudioIosTypePath. Ссылки на сервисные сигналы инициализируются по правилам DevStudioIosAppName_1..N и DevStudioServicePathAdapter_1..N.
Запуск генерации
Section titled “Запуск генерации”- Укажите корректный
OPC_DEVICES_DIRECTORY_PATH. - Подготовьте
OpcDeviceList.xlsx, OBJTYPE и файлы, подключаемые черезIOBJ. - Убедитесь, что в проекте существуют серверы
ServerTag. Отсутствующие компонентыOpcUaClientбудут созданы автоматически. - Откройте «OPC Device Конфигуратор».
- Выберите OPC-устройства, которые необходимо создать.
- Во вкладке модулей запустите «OpcDevices - Генератор устройств Opc».
- Проверьте журнал, созданные устройства, карты OPC, подключения клиентов и диагностические узлы.
Диагностика
Section titled “Диагностика”| Ситуация | Ожидаемое поведение |
|---|---|
Не найден сервер ServerTag | Модуль записывает сообщение в журнал; серверная часть структуры не создаётся |
Не найден требуемый OpcUaClient | Клиент создаётся автоматически без предупреждения, после чего генерация продолжается |
Некорректен OPC_DEVICES_DIRECTORY_PATH | Конфигуратор не сможет собрать перечень файлов OPC-устройств |
Ошибка в IOBJ или отсутствует подключаемый файл | Невозможно создать экземпляры Application и карту адресов |
Связанные материалы
Section titled “Связанные материалы”- OpcAddressMap — генерация OPC-карты
- Правила заполнения XLS-моделей — служебные строки и инструкция
IOBJ - Состав библиотеки StandardModules.dll