Skip to content

Генерация 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 в модели ПЛК

Лист 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

Столбцы листа 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).

Для генерации необходимо выбрать в панели навигации (слева внизу) иконку «ПЛК Конфигуратор». Предварительно выберите необходимый проект и подключите библиотеку StandardModules (файл StandardModules.dll).

Иконка «ПЛК Конфигуратор»

Иконка «ПЛК Конфигуратор».

Для корректной работы модуля также необходимо перед выбором ПЛК активировать использование общего контекста.

Активация использования общего контекста

Активация использования общего контекста.

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

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

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

Модуль для генерации Modbus-обвязки

Модуль для генерации Modbus-обвязки.

ПараметрОписание
Генерить только обвязку входов/выходов и качествоПозволяет сгенерировать файлы и тех. объекты, необходимые для привязки регистров, без дополнительной обвязки фреймов (без подключаемых jsm IGM.Path1 и IGM.Path2 модели обвязки фреймов).
Делить фреймы по пустым адресамСоздаёт новый фрейм при автоматической генерации фреймов в случае, когда адреса не имеют сквозной нумерации. Например, если в карте регистров указаны адреса фрейма DI — 1, 2 и 4, 5, они попадут в один фрейм DI с начальным адресом 1 и количеством элементов 5, если параметр деактивирован; если параметр активирован, будут созданы два фрейма DI с начальным адресом 1 и количеством 2, и фрейм DI с начальным адресом 4 и количеством 2.

По завершении работы модуля в логах появится строка о завершении работы модуля. Также у модуля будет стоять галочка.

Завершение работы модуля — лог

Завершение работы модуля — статус

Завершение работы модуля.

Модуль создаёт и настраивает объекты Unimod Pro 2:

Объекты Unimod Pro 2, созданные модулем

Объекты Unimod Pro 2, созданные модулем.

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

Порядок действий при работе с модулем

Section titled “Порядок действий при работе с модулем”

1. В модели ПЛК на листе MB.* сконфигурируйте устройство:

Добавление в модель ПЛК Modbus-устройства

Добавление в модель ПЛК Modbus-устройства.

2. Пропишите путь к фреймам (ING).

3. Сконфигурируйте файл с фреймами. Для работы данного модуля указывать количество переменных и начальный адрес не обязательно: в зависимости от регистров и их количества модуль автоматически произведёт расчёт фреймов.

Пример конфигурации Modbus-фреймов

Пример конфигурации Modbus-фреймов.

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

5. Заполните Modbus-карту.

Пример конфигурации Modbus-карты

Пример конфигурации Modbus-карты.

Так как опрос ведётся контроллером, экземпляры тех. объектов, участвующих в обвязке Modbus-устройств, заводятся в обычном режиме: в модели ПЛК на листах OBJ.*.

Импорт файлов осуществляется в следующем порядке:

  1. Запустите AutomiqAutomation, подключив модули StandardModules.dll.
  2. Выберите ПЛК.
  3. Настройте генерацию ПЛК.

Настройки ПЛК

Настройки ПЛК.

  1. Запустите общую генерацию ПЛК (для создания общего контекста).
  2. Запустите модуль «Генерация Modbus обвязки для ПЛК» и дождитесь его выполнения.
  3. Через вкладку «Результат сборки»«Unimod» выполните импорт FBD и ST.
  4. Выполните общую генерацию ПЛК.
  5. Через вкладку «Результат сборки»«Unimod» выполните копирование словаря в Unimod (тех. объекты формируются в основной словарь).
  6. В Unimod Pro 2 импортируйте сгенерированный словарь (массивы для опроса, диагностические объекты, вспомогательные объекты).
  7. Через вкладку «Результат сборки»«Unimod» в блоке Modbus, с предварительно закрытым проектом, через генератор выполните Импорт Modbus, удостоверьтесь в успешном добавлении Modbus-устройств и запросов.

Модуль автоматически создаёт необходимые фреймы (если в карте Modbus в столбце ModbusFrame указанные фреймы существуют в модели фреймов). Если фрейм описан полностью (имеется начальный адрес и количество адресов) или фрейм с таким именем единственный, имя фрейма для Unimod Pro 2 остаётся без изменений; в противном случае к имени добавляется начальный адрес (через нижнее подчёркивание).

Примеры созданных файлов

Section titled “Примеры созданных файлов”

Глобальный словарь

Глобальный словарь.

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

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

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

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

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

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

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

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

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

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

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

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

← Состав библиотеки StandardModules.dll