Генерация файлов Codesys (ModuleCodesysMb)
Материал описывает внешний модуль ModuleCodesysMb из библиотеки StaburModules.dll.
Ожидаемый результат: после настройки модуля формируются файлы для импорта в Codesys на основе модели Modbus PLC.
См. также: Stabur модули (StaburModules.dll)
Назначение модуля
Section titled “Назначение модуля”ModuleCodesysMb формирует файлы для импорта в Codesys по данным модели Modbus PLC.
Перед запуском убедитесь, что библиотека StaburModules.dll подключена в настройках внешних модулей.

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

Расположение модуля во вкладке PLC
Что подготовить перед запуском
Section titled “Что подготовить перед запуском”- Выбрать нужный PLC.
- Проверить корректность модели Modbus-каналов в PLC.
- Подготовить файл маппинга типов каналов.
- Подготовить папку для сохранения результатов.
- При необходимости подготовить шаблон устройства Codesys для Modbus slave.
Основные настройки
Section titled “Основные настройки”
Окно настроек модуля
Префикс библиотеки Luga_Base в проекте
Section titled “Префикс библиотеки Luga_Base в проекте”Префикс библиотеки, используемый в проекте Codesys.
Типовое значение:
GAИмя проекта
Section titled “Имя проекта”Имя проекта Codesys, которое записывается в итоговый XML.
Пример:
StaburFull.projectПуть к папке файла для импорта
Section titled “Путь к папке файла для импорта”Каталог, в который сохраняются результаты генерации.
Пример:
JSC\Usr\Prj\ResultFiles\PLC\CodesysMbИмя выходного файла
Section titled “Имя выходного файла”Имя основного XML-файла для импорта.
Пример:
import.xmlПри включенной генерации GVL рядом создается файл с суффиксом _gvl:
import_gvl.xmlПуть к шаблону файла экспорта
Section titled “Путь к шаблону файла экспорта”Путь к XML-шаблону Modbus slave в формате Codesys.
Как подготовить шаблон:
- Создайте Modbus Slave с требуемыми параметрами в проекте Codesys.
- Выполните экспорт в формате PLCopenXML.
- В экспорте выберите нужный
Slaveи сохраните файл. - Укажите путь к этому XML в настройке модуля.

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

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

Указание пути к XML-шаблону
Если путь указан, модуль:
- создает XML с устройствами Modbus slave;
- при большом количестве фреймов разбивает их на несколько устройств;
- может подставлять настройки каналов из шаблона (например, период опроса).
Если путь не указан, создается только файл GVL.
Путь к файлу маппинга типов каналов
Section titled “Путь к файлу маппинга типов каналов”Путь к Excel-файлу соответствия типов каналов и правил генерации.
Это обязательный файл. Если путь неверный или файл недоступен, модуль завершится с ошибкой.
Сдвиг адреса фреймов
Section titled “Сдвиг адреса фреймов”Число, которое добавляется к адресу каждого Modbus-фрейма.
Пример:
-1Максимальное количество фреймов (0 = без ограничений)
Section titled “Максимальное количество фреймов (0 = без ограничений)”Ограничение числа фреймов в результате.
0— без ограничений;- положительное число — ограничение для пробной выгрузки и отладки.
Выгрузить фреймы в CSV
Section titled “Выгрузить фреймы в CSV”При включении создается дополнительный CSV со списком фреймов.
Чтение: сплошная нумерация (без пропусков адресов внутри фрейма)
Section titled “Чтение: сплошная нумерация (без пропусков адресов внутри фрейма)”Если включено, фреймы чтения собираются только из подряд идущих адресов без пропусков.
Запись: каждая команда в отдельный фрейм
Section titled “Запись: каждая команда в отдельный фрейм”Если включено, каждая команда записи формируется как отдельный фрейм.
Период опроса (мс) — 0 = брать из шаблона
Section titled “Период опроса (мс) — 0 = брать из шаблона”0— значение берется из шаблона устройства;- положительное значение — принудительно задает период опроса.
Что формирует модуль
Section titled “Что формирует модуль”В зависимости от настроек формируются:
- основной XML для импорта устройств и каналов в Codesys;
- XML-файл глобального словаря переменных
GVL; - CSV-файл со списком фреймов.
Типовой набор файлов:
import.xmlimport_gvl.xmlimport_frames.csv
Пример набора сгенерированных файлов

Пример результата после импорта в Codesys
Алгоритм работы
Section titled “Алгоритм работы”- Загружает модель PLC и типы объектов.
- Читает файл маппинга.
- Формирует фреймы чтения и записи.
- При необходимости ограничивает количество фреймов.
- При необходимости выгружает фреймы в CSV.
- Если указан шаблон, заполняет его фреймами.
- При переполнении одного устройства создает несколько устройств в одном XML.
- Формирует файл глобального словаря
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 берется из настройки «Имя выходного файла».