OpcAddressMap
Данный материал описывает внешний модуль OpcAddressMap — генератор Excel-карты OPC-адресов для выбранного ПЛК.
Ожидаемый результат: пользователь понимает, какие данные нужны для запуска, куда сохраняется файл и как настройки влияют на состав карты.
Введение
Section titled “Введение”Внешний модуль OpcAddressMap (библиотека StandardModules.dll) формирует Excel-карту OPC-адресов для выбранного ПЛК на основе:
- модели ПЛК и моделей OBJTYPE — инстансы, каналы и признаки интеграции OPC;
- объектов Application в проекте alpha.DevStudio;
- уровней аварий и
AplhaAlarms.xlsи дерева событийEventLists; - настроек OPC UA-сервера в DevStudio.
Модуль не изменяет проект DevStudio — только создаёт итоговый файл документации в каталоге результатов.
Внешний вид модуля в Uniplant Atomix
Section titled “Внешний вид модуля в Uniplant Atomix”
Карточка внешнего модуля «OpcAddressMap» в Uniplant Atomix
Связь с моделью ПЛК и OBJTYPE
Section titled “Связь с моделью ПЛК и OBJTYPE”Карта OPC строится на пересечении данных модели ПЛК, шаблонов OBJTYPE и дерева IOS в DevStudio. Ошибки или пропуски в XLS-моделях напрямую влияют на состав строк в итоговом Excel.
Модель ПЛК
Section titled “Модель ПЛК”Источник — файл логики ПЛК (JSC\Usr\Prj\Conf\Models\PLC\Logic\{Имя_ПЛК}.xlsx), листы OBJ.*.
Для каждого инстанса в модели ПЛК задаётся:
| Поле в модели ПЛК | Роль для OpcAddressMap |
|---|---|
OBJTYPENAME | Ссылка на файл OBJTYPE с описанием каналов |
Template | Имя листа-шаблона в OBJTYPE (например, 4_20mA_R3) |
TAG | Имя тега/сигнала — попадает в колонку карты «тег», «сигнал» |
Модуль обходит инстансы выбранного объекта в Uniplant Atomix и для каждого канала подтягивает параметры из соответствующего листа OBJTYPE.
Модели OBJTYPE
Section titled “Модели OBJTYPE”Источник — JSC\Conf\Models\ObjTypes\{Имя_Типа}.xls (имя типа = OBJTYPENAME из модели ПЛК). На листе шаблона (Template) описаны каналы объекта.
Колонки OBJTYPE, важные для OPC-карты (см. листы шаблонов OBJTYPE):
| Колонка OBJTYPE | Роль для OpcAddressMap |
|---|---|
OpcIntegration | Признак «интеграция по OPC». При включённой настройке модуля «Учитывать параметр: интеграция по OPC» в карту попадают только каналы, где флаг задан |
DevStudioName | Имя канала в IOS — по нему выполняется сопоставление с объектами DevStudio при пересечении ПЛК и Application |
alarmLevel | Уровень аварии — для подстановки описаний из AplhaAlarms.xls |
| Шкалы, единицы, тип доступа и др. | Заполняют соответствующие поля строки OPC-карты (MinScale/MaxScale, единицы измерения, тип, комментарий и т.д.) |
Как данные сходятся в одну строку карты
Section titled “Как данные сходятся в одну строку карты”- Из модели ПЛК берётся инстанс (
OBJTYPENAME,Template,TAG). - Из OBJTYPE по листу
Template— параметры канала (OpcIntegration, шкалы, тип и т.д.). - Из DevStudio (IOS) — фактический объект и канал по
DevStudioName. - Из EventLists — позиция объекта в структуре ПЛК; из AplhaAlarms — текстовые описания по
alarmLevel.
Куда сохраняется результат
Section titled “Куда сохраняется результат”- Папка результата формируется по шаблону:
%JSC%\USR\PRJ\ResultFiles\PLC\<имя ПЛК>\Docs\OpcAddressMap - Если переменные ПЛК в шаблоне не подставились — в логе ошибка «Переменная(ые) не подставились», модуль может завершиться без файла.
- При отсутствии папки она создаётся автоматически.
- Папка появляется в Result-кнопках Uniplant Atomix (иконка папки — быстрый переход к каталогу).
- Имя файла:
<имя ПЛК>_OPCAddressMap.<расширение>, где расширение задаётся настройкой «Расширение файла» (xlsилиxlsx).
Подготовка и запуск
Section titled “Подготовка и запуск”Подготовка перед запуском
Section titled “Подготовка перед запуском”Перед генерацией модуль выполняет проверки и подготовку данных:
| Шаг | Что проверяется |
|---|---|
| Проект DevStudio | Открывается Solution/Project, загружаются домены и атрибуты Application |
| Шаблон Excel | Должна быть задана переменная JSC EXCEL_SIGNALS_TEMPLATE_PATH — путь к шаблону карты сигналов |
| OPC-сервер | По выбранному IOS Application ищется и проверяется конфигурация OPC UA |
| Модели событий | AplhaAlarms.xls и EventLists.xls (см. также Карты атрибутов и DS:Назначение базовых типов) |
Если шаблон Excel или данные OPC не найдены — модуль завершается с ошибкой в логе.
Поиск OPC UA-сервера
Section titled “Поиск OPC UA-сервера”- Имя выбранного объекта в настройках Uniplant Atomix должно содержать не менее трёх уровней:
<домен>.<узел>.<AlphaServer>. Иначе — ошибка «Не найден объект OPC сервера». - В DevStudio ищется узел с модулем OPC UA, имя которого задано настройкой «Название OPC UA сервера» (по умолчанию
UaServer), тип модуля —OpcUaModule. - Из найденного сервера в шаблон Excel подставляются имя, версия (
OPC UA) и TCP-порты (основной и резервный).
Сбор данных и формирование карты
Section titled “Сбор данных и формирование карты”- Собираются объекты управления (ControlObject) текущего ПЛК и выбранного IOS Application (полная развёртка дерева).
- Загружаются инстансы выбранного объекта из модели ПЛК.
- Подключаются описания уровней аварий из AplhaAlarms и позиции объектов из EventLists.
- Выполняется пересечение данных IOS и ПЛК по выбранному Application Object:
- при включённой настройке «Учитывать параметр: интеграция по OPC» — в карту попадают только инстансы с флагом интеграции OPC;
- при выключенной — все инстансы.
- Для каждой строки карты заполняются поля: позиция, имя, тег, сигнал, период опроса, шкалы (
MinScale/MaxScale), единицы, коэффициент, состояния и знаки, тип, тип доступа, источник метки времени, время, комментарий. - Шаблон Excel обрабатывается и сохраняется в результирующую папку. В логе: «Файл OpcAddressMap сохранен в …».
Поведение при ошибках
Section titled “Поведение при ошибках”- Любая ошибка в процессе работы фиксируется в логе («Во время работы модуля произошла ошибка …»).
- Итоговый файл может не создаться или оказаться неполным.
- Проект DevStudio модуль не изменяет.
Настройки модуля
Section titled “Настройки модуля”| Параметр | По умолчанию | Назначение |
|---|---|---|
| Расширение файла | xls | Формат итогового файла: xls или xlsx |
| Название OPC UA сервера | UaServer | Имя OPC-модуля внутри Alpha-сервера в DevStudio |
| Учитывать параметр: интеграция по OPC | включено | Фильтр по колонке OpcIntegration в OBJTYPE — только каналы с интеграцией OPC |

Окно «Настройки модуля» для OpcAddressMap в Uniplant Atomix