Генерация Modbus обвязки для ПЛК
Статья описывает модели подготовки данных и работу внешнего модуля «Генерация Modbus обвязки для ПЛК» из библиотеки StandardModules.dll.
Модели создания Modbus-устройства для ПЛК (лист MB.TcpDevs)
Section titled “Модели создания Modbus-устройства для ПЛК (лист MB.TcpDevs)”Модели создания Modbus-устройств представляют собой лист в составе модели ПЛК (MB.TcpDevs) по пути JSC\Usr\Prj\Conf\Models\PLC\Logic\{PLC}.

Лист MB.TcpDevs.
Рассмотрим подробнее каждый столбец:
- modbus.gate (Имя устройства Unimod) — название Modbus-устройств (в ПЛК), которые будут созданы во вкладке «Внешние коммуникации» → «Modbus» ПО Unimod PRO 2.
- modbus.name (Имя устройства Unimod).
- TAG (Тег).
- modbus.ipAddress — основной IP-адрес для опроса Modbus-устройства.
- modbus.ipPort (Основной порт) — номер порта Modbus-устройства.
- timeoutAnswer — время ожидания (мс) для modbus-связи.
- timeoutRequest — пауза между запросами (мс) для modbus-связи.
- modbus.ipAddressRes — резервный IP-адрес для опроса Modbus-устройства.
- modbus.ipPortRes (Резервный порт) — номер порта Modbus-устройства (резервный).
- slave — slave id устройства.
- Столбец с ключевым словом ING определяет путь до файла с описанием фреймов (модель описания фреймов устройства Modbus ПЛК опрос в Unimod2).
- Столбец с ключевым словом IGM определяет путь до модели карты с описанием регистров (
JSC\Usr\Prj\Conf\Models\PlcModbusDevices\). - Maps (Карта регистров) — имя листа в модели карты, на котором обозначена привязка регистров.
- prefix (Префикс) — часть строки, которая будет подставляться в начале тега в карте регистров.
- postfix (Постфикс) — часть строки, которая будет подставляться в конце тега в карте регистров.
Описание модели карт Modbus для опроса ПЛК Trei
Section titled “Описание модели карт Modbus для опроса ПЛК Trei”Каталог применимых карт Modbus задаётся в модели ПЛК для каждого устройства на листе MB.TcpDevs (см. раздел выше). Модель карт может содержать несколько карт (несколько листов). Для устройства можно указать одну карту (один лист).
В модели присутствуют листы, которые являются картами Modbus (наименование не стандартизовано).
На листах, описывающих карты Modbus, имеются следующие столбцы:
- frameName — имя фрейма привязки из модели, описывающей фреймы Modbus. В зависимости от типа фрейма (на чтение или запись) будет сформирована строка опроса.
- addressReg — адрес регистра.
- bitPosition — бит.
- EqtDesr — описание оборудования.
- DataType — тип канала, на который будет привязан регистр (
bool,real,uint,int,dint,double,udint). - techObj — имя тех. объекта (тег). Формируется из значения в данном столбце, к которому прикрепляется префикс и постфикс из модели ПЛК с описанием устройства.
- channel — канал тех. объекта для привязки регистра (без точки).
- InvalidTechObj — имя тех. объекта, к которому привязывается качество фрейма.
- InvalidChannel — канал тех. объекта, к которому привязывается качество фрейма.
Модель позволяет собрать привязку каждого регистра через столбцы:
- funcBefore и InvalidFuncBefore — часть строки, которая будет добавлена в правой части привязки в начало строки.
- funcAfter и InvalidFuncAfter — часть строки, которая будет добавлена в правой части привязки в конец строки.
- IGM.Path1 и IGM.Path2 — jsm для ST-кода привязки регистров сигналов и качества соответственно (имеют приоритет над
funcBefore/funcAfterиInvalidFuncBefore/InvalidFuncAfter).

Столбцы листа MBM.map.
Генерация Modbus для опроса ПЛК TREI
Section titled “Генерация Modbus для опроса ПЛК TREI”В StandardModules предусмотрена генерация опроса Modbus-устройств при помощи ПЛК Trei через генерацию в Unimod Pro 2.
Внешний модуль Генерация Modbus обвязки для ПЛК входит в библиотеку StandardModules.dll и предназначен для генерации Modbus-обвязки при опросе ПЛК TREI.
Минимальные требования
Section titled “Минимальные требования”Наличие моделей, описанных в разделах:
- модели создания Modbus-устройства для ПЛК (лист
MB.TcpDevs); - описание модели карт Modbus для опроса ПЛК Trei (
JSC\Usr\Prj\Conf\Models\PlcModbusDevices\); - модель описания фреймов устройства Modbus ПЛК опрос (Unimod2).
Подключение и запуск
Section titled “Подключение и запуск”Для генерации необходимо выбрать в панели навигации (слева внизу) иконку «ПЛК Конфигуратор». Предварительно выберите необходимый проект и подключите библиотеку StandardModules (файл StandardModules.dll).
![]()
Иконка «ПЛК Конфигуратор».
Для корректной работы модуля также необходимо перед выбором ПЛК активировать использование общего контекста.

Активация использования общего контекста.
Далее необходимо выбрать интересующий ПЛК. По необходимости перейдите в модель ПЛК и удостоверьтесь в существовании листа MB.* и в его корректной конфигурации. Далее во вкладке «МОДУЛИ» будет находиться модуль «Генерация Modbus обвязки для ПЛК» и его настройки.

Настройки модуля для генерации Modbus-обвязки.

Модуль для генерации Modbus-обвязки.
Параметры модуля
Section titled “Параметры модуля”| Параметр | Описание |
|---|---|
| Генерить только обвязку входов/выходов и качество | Позволяет сгенерировать файлы и тех. объекты, необходимые для привязки регистров, без дополнительной обвязки фреймов (без подключаемых jsm IGM.Path1 и IGM.Path2 модели обвязки фреймов). |
| Делить фреймы по пустым адресам | Создаёт новый фрейм при автоматической генерации фреймов в случае, когда адреса не имеют сквозной нумерации. Например, если в карте регистров указаны адреса фрейма DI — 1, 2 и 4, 5, они попадут в один фрейм DI с начальным адресом 1 и количеством элементов 5, если параметр деактивирован; если параметр активирован, будут созданы два фрейма DI с начальным адресом 1 и количеством 2, и фрейм DI с начальным адресом 4 и количеством 2. |
По завершении работы модуля в логах появится строка о завершении работы модуля. Также у модуля будет стоять галочка.
![]()

Завершение работы модуля.
Результаты генерации
Section titled “Результаты генерации”Модуль создаёт и настраивает объекты Unimod Pro 2:

Объекты Unimod Pro 2, созданные модулем.
- Диагностические тех. объекты, относящиеся к опросу, в глобальный словарь (типы
MODBUS_DIAG,RF_TRIG,CTU, массив переменных опроса), имена которых определяются в файле определения фреймов —beginVariableLocal,diagVariable. - Файлы импорта ST — 5 файлов с именем, задаваемым на листе
MB.*модели ПЛК в столбцеmodbus.name, с добавлением постфикса:_inST— обвязка регистров на чтение;_outST— обвязка регистров на запись;_statusST— обвязка каналов качеством фреймов;_actWriteST— для активации фреймов на запись;_resetWriteST— для деактивации фреймов на запись.
- Два тех. объекта:
numиi— типаint, для прохождения по массиву и отслеживания изменения команд. - Массив переменных опроса для сохранения состояния команд на предыдущем цикле.
- Устройство Modbus во вкладке коммуникаций (имя, задаваемое на листе
MB.*модели ПЛК в столбцеmodbus.name). - Modbus-запросы.
Порядок действий при работе с модулем
Section titled “Порядок действий при работе с модулем”1. В модели ПЛК на листе MB.* сконфигурируйте устройство:

Добавление в модель ПЛК Modbus-устройства.
2. Пропишите путь к фреймам (ING).
3. Сконфигурируйте файл с фреймами. Для работы данного модуля указывать количество переменных и начальный адрес не обязательно: в зависимости от регистров и их количества модуль автоматически произведёт расчёт фреймов.

Пример конфигурации Modbus-фреймов.
4. Пропишите путь к файлу, содержащему Modbus-карты (IGM), и имя листа с Modbus-картой (Maps).
5. Заполните Modbus-карту.

Пример конфигурации Modbus-карты.
Так как опрос ведётся контроллером, экземпляры тех. объектов, участвующих в обвязке Modbus-устройств, заводятся в обычном режиме: в модели ПЛК на листах OBJ.*.
Импорт результатов
Section titled “Импорт результатов”Импорт файлов осуществляется в следующем порядке:
- Запустите AutomiqAutomation, подключив модули
StandardModules.dll. - Выберите ПЛК.
- Настройте генерацию ПЛК.

Настройки ПЛК.
- Запустите общую генерацию ПЛК (для создания общего контекста).
- Запустите модуль «Генерация Modbus обвязки для ПЛК» и дождитесь его выполнения.
- Через вкладку «Результат сборки» → «Unimod» выполните импорт FBD и ST.
- Выполните общую генерацию ПЛК.
- Через вкладку «Результат сборки» → «Unimod» выполните копирование словаря в Unimod (тех. объекты формируются в основной словарь).
- В Unimod Pro 2 импортируйте сгенерированный словарь (массивы для опроса, диагностические объекты, вспомогательные объекты).
- Через вкладку «Результат сборки» → «Unimod» в блоке Modbus, с предварительно закрытым проектом, через генератор выполните Импорт Modbus, удостоверьтесь в успешном добавлении Modbus-устройств и запросов.
Модуль автоматически создаёт необходимые фреймы (если в карте Modbus в столбце ModbusFrame указанные фреймы существуют в модели фреймов). Если фрейм описан полностью (имеется начальный адрес и количество адресов) или фрейм с таким именем единственный, имя фрейма для Unimod Pro 2 остаётся без изменений; в противном случае к имени добавляется начальный адрес (через нижнее подчёркивание).
Примеры созданных файлов
Section titled “Примеры созданных файлов”
Глобальный словарь.

Опрос регистров Modbus (*_inST).

Регистры команда Modbus (*_outST).

Состояние опроса регистров Modbus (*_invalidST).

Активация записи регистров (*_actWriteST).

Сброс команд Modbus (*_resetWriteST).

Окно Modbus-запросов (Внешние коммуникации → Modbus-TCP Master).