Алгоритм обработки Modbus TCP
Техническая детализация алгоритма обработки Modbus TCP-устройств. Запуск выполняется из внутреннего модуля DevStMBDevice Конфигуратор; генерацию выполняет внешний модуль ModbusDevices.
Контекст
Section titled “Контекст”| Роль | Модуль / статья |
|---|---|
| Источник данных | 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 выполняет следующие шаги:
1. Инициализация
Section titled “1. Инициализация”Модуль считывает строку d и извлекает базовые параметры: Domain, GateTag, ServerTag, TAG, IP-адрес, Port, SlaveId, OBJTYPENAME и путь к файлу экземпляров (IOBJ).

Рисунок 1 — Строки d на листе OBJ.*: колонки Domain, служебные @, GateTag, ServerTag, TAG
2. Загрузка модели устройства (OBJTYPE)
Section titled “2. Загрузка модели устройства (OBJTYPE)”Модуль загружает файл модели по значению колонки OBJTYPENAME (например, MbTcpDevice) и считывает параметры с листа NetDiag.opt. Это определяет тип устройства, диагностику связи и количество сетевых адаптеров.

Рисунок 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-представления удаляются перед повторной генерацией.
6. Привязка к ModbusTcpMaster
Section titled “6. Привязка к ModbusTcpMaster”В менеджере ModbusTcpMaster на сервере DevStudio (имя задаётся на листе NetDiag.opt OBJTYPE) создаётся ссылка на сформированное Slave-устройство. Связь выполняется через GateTag из строки ModbusDeviceList.xlsx.
7. Завершение
Section titled “7. Завершение”Модуль фиксирует успешное выполнение в логах и устанавливает отметку на карточке модуля в Uniplant Atomix. При пакетной обработке шаги 1–6 повторяются для каждого выбранного устройства.
Связанные материалы
Section titled “Связанные материалы”- DevStMBDevice Конфигуратор — сквозной сценарий
- ModbusDevices — Генератор устройств Modbus — настройки модуля
- DevStudio. Modbus устройства — модель верхнего уровня