Skip to content

Алгоритм обработки Modbus TCP

Техническая детализация алгоритма обработки Modbus TCP-устройств. Запуск выполняется из внутреннего модуля DevStMBDevice Конфигуратор; генерацию выполняет внешний модуль ModbusDevices.

РольМодуль / статья
Источник данныхModbusDeviceList.xlsx
Файл экземпляров (IOBJ)DsModbusDevices
Выбор и запускDevStMBDevice Конфигуратор
Выполнение алгоритмаModbusDevices

Исходные данные и результат генерации

Section titled “Исходные данные и результат генерации”
Описание
Исходные данныеСтрока экземпляра из ModbusDeviceList.xlsx (OBJ.*): TAG, Domain, GateTag, ServerTag, OBJTYPENAME, IP-адреса, Port, SlaveId, путь IOBJ
Исходные данныеФайл экземпляров из DsModbusDevices\ (листы OPT.Device, OBJ.*, MBM.map)
Исходные данныеМодель OBJTYPE из JSC\Conf\Models\ObjTypes\Diagnostic\Modbus\ (по OBJTYPENAME)
Результат генерацииModbus Slave в полевом домене DevStudio ([Domain].[TAG]) с настроенными адаптерами
Результат генерацииПЛК-представление в Application, карты адресов Modbus и файлы карт *.xml
Результат генерацииСигналы диагностики связи (Ping, Invalid, Fault), IOS-представления, ссылка в ModbusTcpMaster

Подробнее о полях моделей — в DevStudio. Modbus устройства и файле экземпляров.

Алгоритм обработки устройства Modbus TCP

Section titled “Алгоритм обработки устройства Modbus TCP”

Для каждой выбранной строки d в ModbusDeviceList.xlsx внешний модуль ModbusDevices выполняет следующие шаги:

Модуль считывает строку d и извлекает базовые параметры: Domain, GateTag, ServerTag, TAG, IP-адрес, Port, SlaveId, OBJTYPENAME и путь к файлу экземпляров (IOBJ).

Строки экземпляров на листе OBJ.* в ModbusDeviceList.xlsx

Рисунок 1 — Строки d на листе OBJ.*: колонки Domain, служебные @, GateTag, ServerTag, TAG

2. Загрузка модели устройства (OBJTYPE)

Section titled “2. Загрузка модели устройства (OBJTYPE)”

Модуль загружает файл модели по значению колонки OBJTYPENAME (например, MbTcpDevice) и считывает параметры с листа NetDiag.opt. Это определяет тип устройства, диагностику связи и количество сетевых адаптеров.

Колонка OBJTYPENAME в ModbusDeviceList.xlsx

Рисунок 2 — Колонка OBJTYPENAME на листе OBJ.*: тип OBJTYPE для генерации (напр. MbTcpDevice)

3. Загрузка файла экземпляров

Section titled “3. Загрузка файла экземпляров”

Модуль загружает файл экземпляров, указанный в колонке IOBJ, и обрабатывает его листы OBJ.*. По каждой строке d формируются дочерние объекты согласно OBJTYPENAME и Template.

Состав колонок — в разделе Листы OBJ.*.

4. Формирование карты Modbus

Section titled “4. Формирование карты Modbus”

Модуль считывает лист MBM.map из того же файла экземпляров: привязка тегов дочерних объектов к регистрам Modbus (Discretes Input, Coils, Input Registers, Holding Registers).

Описание колонок — в разделе Лист MBM.map.

5. Создание объектов в DevStudio

Section titled “5. Создание объектов в DevStudio”

На основе OBJTYPE, файла экземпляров и параметров строки ModbusDeviceList модуль создаёт:

  • Физическое устройство в полевом домене [Domain].[TAG] с сетевыми адаптерами по NetName, iTCPAddr_* (и резервным каналам — для моделей с несколькими адаптерами).
  • Драйвер Modbus Slave внутри устройства с адресом EqtAddress из внешних переменных OBJTYPE.
  • ПЛК-представление в Application по параметрам листа OPT.Device файла экземпляра (opt.plcName, AdressMapPath и др.).
  • Дочерние объекты Application по строкам OBJ.* файла экземпляра.
  • Карты адресов Modbus и файлы карт *.xml по листу MBM.map.
  • Объекты диагностики связи (Ping, Invalid, Fault) в сервисной ветке сервера и IOS-представление для мониторинга на HMI.

При включённой настройке «Очищать Application устройство перед созданием» (см. настройки модуля) существующие объекты Application и их IOS-представления удаляются перед повторной генерацией.

В менеджере ModbusTcpMaster на сервере DevStudio (имя задаётся на листе NetDiag.opt OBJTYPE) создаётся ссылка на сформированное Slave-устройство. Связь выполняется через GateTag из строки ModbusDeviceList.xlsx.

Модуль фиксирует успешное выполнение в логах и устанавливает отметку на карточке модуля в Uniplant Atomix. При пакетной обработке шаги 1–6 повторяются для каждого выбранного устройства.