Skip to content

Генерация файлов Codesys (ModuleCodesysMb)

Материал описывает внешний модуль ModuleCodesysMb из библиотеки StaburModules.dll.

Ожидаемый результат: после настройки модуля формируются файлы для импорта в Codesys на основе модели Modbus PLC.

См. также: Stabur модули (StaburModules.dll)

ModuleCodesysMb формирует файлы для импорта в Codesys по данным модели Modbus PLC.

Перед запуском убедитесь, что библиотека StaburModules.dll подключена в настройках внешних модулей.

Подключение библиотеки StaburModules.dll

Подключение библиотеки StaburModules.dll

Модуль:

  • собирает Modbus-фреймы из модели PLC;
  • формирует XML-файл для импорта в проект Codesys;
  • формирует файл глобального словаря переменных GVL;
  • при необходимости выгружает список фреймов в CSV;
  • при наличии шаблона устройства разбивает фреймы по нескольким устройствам, если один Modbus slave не вмещает все фреймы.

Модуль Генерация файлов Codesys во вкладке PLC

Расположение модуля во вкладке PLC

Что подготовить перед запуском

Section titled “Что подготовить перед запуском”
  1. Выбрать нужный PLC.
  2. Проверить корректность модели Modbus-каналов в PLC.
  3. Подготовить файл маппинга типов каналов.
  4. Подготовить папку для сохранения результатов.
  5. При необходимости подготовить шаблон устройства Codesys для Modbus slave.

Окно настроек модуля ModuleCodesysMb

Окно настроек модуля

Префикс библиотеки Luga_Base в проекте

Section titled “Префикс библиотеки Luga_Base в проекте”

Префикс библиотеки, используемый в проекте Codesys.

Типовое значение:

GA

Имя проекта Codesys, которое записывается в итоговый XML.

Пример:

StaburFull.project

Путь к папке файла для импорта

Section titled “Путь к папке файла для импорта”

Каталог, в который сохраняются результаты генерации.

Пример:

JSC\Usr\Prj\ResultFiles\PLC\CodesysMb

Имя основного XML-файла для импорта.

Пример:

import.xml

При включенной генерации GVL рядом создается файл с суффиксом _gvl:

import_gvl.xml

Путь к шаблону файла экспорта

Section titled “Путь к шаблону файла экспорта”

Путь к XML-шаблону Modbus slave в формате Codesys.

Как подготовить шаблон:

  1. Создайте Modbus Slave с требуемыми параметрами в проекте Codesys.
  2. Выполните экспорт в формате PLCopenXML.
  3. В экспорте выберите нужный Slave и сохраните файл.
  4. Укажите путь к этому XML в настройке модуля.

Экспорт PLCopenXML для подготовки шаблона

Подготовка шаблона через PLCopenXML экспорт

Выбор нужного Slave при экспорте

Выбор нужного Modbus Slave

Путь к XML шаблону в настройках модуля

Указание пути к XML-шаблону

Если путь указан, модуль:

  • создает XML с устройствами Modbus slave;
  • при большом количестве фреймов разбивает их на несколько устройств;
  • может подставлять настройки каналов из шаблона (например, период опроса).

Если путь не указан, создается только файл GVL.

Путь к файлу маппинга типов каналов

Section titled “Путь к файлу маппинга типов каналов”

Путь к Excel-файлу соответствия типов каналов и правил генерации.

Это обязательный файл. Если путь неверный или файл недоступен, модуль завершится с ошибкой.

Число, которое добавляется к адресу каждого Modbus-фрейма.

Пример:

-1

Максимальное количество фреймов (0 = без ограничений)

Section titled “Максимальное количество фреймов (0 = без ограничений)”

Ограничение числа фреймов в результате.

  • 0 — без ограничений;
  • положительное число — ограничение для пробной выгрузки и отладки.

При включении создается дополнительный CSV со списком фреймов.

Чтение: сплошная нумерация (без пропусков адресов внутри фрейма)

Section titled “Чтение: сплошная нумерация (без пропусков адресов внутри фрейма)”

Если включено, фреймы чтения собираются только из подряд идущих адресов без пропусков.

Запись: каждая команда в отдельный фрейм

Section titled “Запись: каждая команда в отдельный фрейм”

Если включено, каждая команда записи формируется как отдельный фрейм.

Период опроса (мс) — 0 = брать из шаблона

Section titled “Период опроса (мс) — 0 = брать из шаблона”
  • 0 — значение берется из шаблона устройства;
  • положительное значение — принудительно задает период опроса.

В зависимости от настроек формируются:

  • основной XML для импорта устройств и каналов в Codesys;
  • XML-файл глобального словаря переменных GVL;
  • CSV-файл со списком фреймов.

Типовой набор файлов:

import.xml
import_gvl.xml
import_frames.csv

Сгенерированные файлы import xml gvl csv

Пример набора сгенерированных файлов

Пример импортированных данных в Codesys

Пример результата после импорта в Codesys

  1. Загружает модель PLC и типы объектов.
  2. Читает файл маппинга.
  3. Формирует фреймы чтения и записи.
  4. При необходимости ограничивает количество фреймов.
  5. При необходимости выгружает фреймы в CSV.
  6. Если указан шаблон, заполняет его фреймами.
  7. При переполнении одного устройства создает несколько устройств в одном XML.
  8. Формирует файл глобального словаря GVL.

Рекомендуемая стартовая настройка

Section titled “Рекомендуемая стартовая настройка”
Префикс библиотеки Luga_Base в проекте:
GA
Имя проекта:
StaburFull.project
Путь к папке файла для импорта:
JSC\Usr\Prj\ResultFiles\PLC\CodesysMb
Имя выходного файла:
import.xml
Путь к шаблону файла экспорта:
Libraries\CodeSys\Templates\ModbusSlaveTemplate.xml
Путь к файлу маппинга типов каналов:
Libraries\CodeSys\Templates\CodesysMbMapping.xlsx
Сдвиг адреса фреймов:
-1
Максимальное количество фреймов:
0
Выгрузить фреймы в CSV:
Да
Чтение: сплошная нумерация:
Нет
Запись: каждая команда в отдельный фрейм:
Да
Период опроса (мс):
0

Типовые ошибки и проверки

Section titled “Типовые ошибки и проверки”

Не найден файл маппинга

Section titled “Не найден файл маппинга”

Проверьте корректность пути и доступность файла в настройке «Путь к файлу маппинга типов каналов».

Не удалось обработать файл маппинга

Section titled “Не удалось обработать файл маппинга”

Проверьте структуру Excel-файла и наличие обязательных данных для правил mapping.

Не указан шаблон устройства

Section titled “Не указан шаблон устройства”

Это не критическая ошибка: Modbus slave не будет создан, но файл GVL сформируется.

В результате мало фреймов

Section titled “В результате мало фреймов”

Проверьте:

  • параметр «Максимальное количество фреймов»;
  • корректность маппинга;
  • правила группировки каналов.

Адреса в Codesys отличаются от ожидаемых

Section titled “Адреса в Codesys отличаются от ожидаемых”

Проверьте параметр «Сдвиг адреса фреймов», исходные адреса PLC и настройки шаблона устройства.

Где смотреть результат

Section titled “Где смотреть результат”

Результаты сохраняются в каталог из настройки «Путь к папке файла для импорта».

Основной XML для импорта в Codesys берется из настройки «Имя выходного файла».