Skip to content

DevStudio. Modbus устройства

Назначение: описание структуры модели верхнего уровня ModbusDeviceList.xlsx — файла перечня Modbus-устройств проекта и параметров их опроса.

Ожидаемый результат: разработчик понимает состав листов, назначение колонок на листах OBJ.* и связь полей с моделями OBJTYPE и файлами экземпляров DsModbusDevices.

ModbusDeviceList.xlsx задаёт перечень Modbus-станций проекта и параметры их TCP-опроса. По этим данным alpha.Server через модули Uniplant Atomix создаёт в alpha.DevStudio физические Slave-устройства, Application с картой регистров и диагностику связи.

ModbusDeviceList.xlsx — Excel-модель верхнего уровня, в которой перечисляются Modbus-устройства проекта (шлюзы, ПЛК, панели, модули ввода-вывода и др.) и параметры их опроса по протоколу Modbus TCP.

По данным файла внутренний модуль DevStMBDevice Конфигуратор отображает список устройств для выбора; внешний модуль ModbusDevices загружает соответствующие модели OBJTYPE из библиотеки Diagnostic\Modbus, подключает файлы экземпляров из DsModbusDevices\ и создаёт объекты в DevStudio.

Общие правила разбора ячеек (#, H, @, d, VQ, IOBJ и др.) — в Правилах заполнения Excel-файлов. Принцип связи с OBJTYPE — в Связи с моделями верхнего уровня.

Расположение в проекте

Section titled “Расположение в проекте”
ЭлементПуть
Файл моделиJSC\Usr\Prj\Conf\DevStudioDevs\Modbus\ModbusDeviceList.xlsx
Каталог моделей экземпляровJSC\Usr\Prj\Conf\Models\DsModbusDevices\
Модели OBJTYPE устройстваJSC\Conf\Models\ObjTypes\Diagnostic\Modbus\

Подключение файлов экземпляров по IOBJ — в Modbus. Файл экземпляров DsModbusDevices.

Типовая книга ModbusDeviceList.xlsx содержит один или несколько листов OBJ.*. Имя листа задаёт группу устройств (по назначению, подсистеме или типу оборудования).

ЛистНазначение
OBJ.*Экземпляры Modbus-устройств; каждая строка d — одно опрашиваемое устройство (станция Modbus TCP)

В отличие от NetSwitches.xls, в рассматриваемом проекте нет листов Options и @* — все рабочие данные сосредоточены на листах OBJ.*.

Каждый лист с именем OBJ.* содержит таблицу экземпляров Modbus-устройств. Структура заголовка совпадает с общими правилами Excel-моделей:

  • строка #инструкции колонок (VQ, @, IOBJ и др.);
  • строка H — имена переменных;
  • строка @ — краткие описания колонок;
  • строки d — экземпляры (по одной строке на устройство).

Каждая строка d описывает одно Modbus-устройство (станцию Modbus TCP).

ПеременнаяОбязательностьОписание
DomainдаПолевой домен DevStudio (подстанция), в котором создаётся физическое устройство. Имя должно совпадать с доменом, указанным в проекте alpha.DevStudio
(служебные @)На части листов между Domain и GateTag — объект, префикс и постфикс ячейки; участвуют в формировании TAG и GateTag
GateTagдаТег шлюза Modbus. Используется при привязке Slave-устройства к менеджеру ModbusTcpMaster на сервере
ServerTagдаТег сервера обработки (IOS_App), на котором выполняется опрос и создаётся IOS-представление
TAGдаИмя опрашиваемого устройства (станция Modbus TCP). Передаётся в OBJTYPE как [TAG]
PathDevStudioдаПуть размещения объекта диагностики связи в дереве DevStudio (например, root.G0_D1810BX0.NetDiagnostic.JL_CN_1002)
HmiTagИмя экрана/группы для генерации мнемосхем HMI
OBJTYPENAMEдаТиповой блок OBJTYPE из библиотеки Diagnostic\Modbus — определяет шаблон генерации устройства и диагностики
parentDescrКраткое наименование (отображаемое имя)
EqtDescrОписание оборудования
TitleСокращённое обозначение
SystemPositionдаПозиция / титул (подстанция, напр. G0-D1810BX0)
NetNameдаИмя сетевого адаптера (сеть проекта, напр. G-ASUE-L2-M1)
iTCPAddr_1iTCPAddr_4даЧетыре октета IP-адреса основного интерфейса
NetName2для резервированияИмя второго адаптера
iTCPAddr2_1iTCPAddr2_4для резервированияОктеты IP второго интерфейса
PortдаTCP-порт Modbus (типично 502)
SlaveIdдаАдрес Modbus Slave
IOBJдаПуть к файлу экземпляров в DsModbusDevices\

Расширенные колонки резервирования (OBJ.TestDevice)

Section titled “Расширенные колонки резервирования (OBJ.TestDevice)”

На тестовом листе OBJ.TestDevice для OBJTYPE с несколькими адаптерами дополнительно заданы поля резервных каналов:

ПеременнаяОписание
NetName_resИмя резервного сетевого адаптера (основной канал)
iTCPAddr_res_1iTCPAddr_res_4Октеты IP резервного основного канала
NetName_res2Имя второго резервного адаптера
iTCPAddr_res2_1iTCPAddr_res2_4Октеты IP второго резервного канала
Port_resTCP-порт резервного канала

Эти поля используются моделями OBJTYPE с несколькими адаптерами (например, MbTcpPlc_4Adapters).

Типы объектов (OBJTYPENAME) и связь с OBJTYPE

Section titled “Типы объектов (OBJTYPENAME) и связь с OBJTYPE”

Значение OBJTYPENAME выбирает модель OBJTYPE и способ генерации устройства в DevStudio. Цепочка данных совпадает с другими моделями верхнего уровня (см. Связь с моделями верхнего уровня):

  1. На листе OBJ.* объявляется строка экземпляра с переменными (TAG, Domain, GateTag, ServerTag, IP-адреса, Port, SlaveId и др.).
  2. По OBJTYPENAME определяется файл OBJTYPE; значения колонок подставляются как внешние переменные — в т.ч. на листе DevSt.attributes (атрибут EqtAddress: [iTCPAddr_1].[iTCPAddr_2].[iTCPAddr_3].[iTCPAddr_4]:[Port] Slave [SlaveId]).
  3. Через IOBJ подключается файл экземпляров.
OBJTYPENAMEНазначениеСтатья OBJTYPE
MbTcpDeviceModbus TCP-устройство с одним сетевым адаптеромMbTcpDevice
MbTcpDevice_2AdaptersModbus TCP-устройство с двумя адаптерамиMbTcpDevice_2Adapters
MbTcpPlc_4AdaptersModbus TCP-устройство с четырьмя адаптерами и резервированиемMbTcpPlc_4Adapters

В примере ModbusDeviceList.xlsx проекта GPP_AUCS используются: MbTcpDevice (основная масса устройств) и MbTcpPlc_4Adapters (тестовый экземпляр).

Модуль загружает OBJTYPE по имени из OBJTYPENAME и считывает параметры с листа NetDiag.opt — они определяют пути в DevStudio, менеджер ModbusTcpMaster, типы IOS-представлений и количество сетевых адаптеров.

Дальнейшая обработка (выбор устройства, запуск генерации) — во внутреннем модуле DevStMBDevice Конфигуратор и внешнем модуле ModbusDevices (ModbusDevices).

Примеры строк экземпляров

Section titled “Примеры строк экземпляров”
ПолеЗначение
DomainG0-D1810BX0
GateTagG0-D1810BX0-JL-CN-1002-1A
ServerTagG0-D1810BX0-JL-CS-1001-SRV001
TAGG0-D1810BX0-JL-CN-1002-1A
PathDevStudioroot.G0_D1810BX0.NetDiagnostic.JL_CN_1002
OBJTYPENAMEMbTcpDevice
SystemPositionG0-D1810BX0
NetNameG-ASUE-L2-M1
iTCPAddr_1iTCPAddr_410.2.64.60
Port502
SlaveId1
IOBJEKF\G0-D1810BX0-JL-CN-1002-1A