3.3.4 Описание модели карты Modbus-фреймов (файл Frames*.xls
)
3.3.4.1 Назначение модели карты Modbus-фреймов
Модель карты Modbus-фреймов — это Excel-файл, используемый системой AutomiqAutomation для описания структуры запросов Modbus, опрашивающих устройства (например, МУПС-3, МОПС-3, КАУ-2).
Данный файл определяет:
- состав и типы регистров (DI, COIL, IR, HR),
- порядок байт (endianness),
- период опроса,
- структуру массивов данных,
- диагностические переменные.
Этот файл является входными данными для генератора Modbus-обвязки в проекте Unimod 2. Он используется совместно с моделью ПЛК (на листе MB.*
) через ссылку в столбце ING
.
🔗 Расположение:
JSC\Conf\Models\System\Modbus\Devices\{Имя_устройства}.xls
Примеры: FramesMops3Ext.xls
, FramesKAU2_9030.xls
.
3.3.4.2 Структура листа Frames
Лист Frames
содержит описание всех фреймов (запросов), которые будут сформированы в Unimod 2 для опроса устройства.
Структура листа:
Столбец | Описание |
---|---|
# |
Признак объявления переменных |
VQ |
Признак переменной конфигурации (Variable Qualifier) |
H |
Заголовки столбцов |
@ |
Комментарии (описание назначения столбцов) |
d |
Строки с данными фреймов |
3.3.4.3 Ключевые столбцы на листе Frames
Столбец | Описание |
---|---|
FrameName |
Имя фрейма (например, status , commands ). Используется для формирования имени массива данных. |
type |
Тип данных: 16-bit Unsigned , 16-bit Signed , 32-bit Float , bool и др. |
function |
Функция Modbus: - 01 (0x01) READ COILS - 02 (0x02) READ CONTACTS - 03 (0x03) READ HOLDING REGISTERS - 04 (0x04) READ INPUT REGISTERS - 15 (0x0F) WRITE MULTIPLE COILS - 16 (0x10) WRITE MULTIPLE REGISTERS |
endianness |
Порядок байт: 1-0 , 0-1 , 1-0-3-2 , 2-3-0-1 и др. |
beginDataRemote |
Начальный адрес регистра на устройстве. |
variablesCount |
Количество регистров в запросе. |
pollingPeriod |
Период опроса в миллисекундах (например, 1000 ). |
comment |
Комментарий к фрейму (например, ass , commands ). |
beginVariableLocal |
Имя локальной переменной (массива) в Unimod. Часто используется шаблон [modbus.name]_[FrameName] . |
diagVariable |
Имя диагностической структуры (например, [modbus.name]_[FrameName]_DIAG ). |
address |
Адрес slave-устройства (например, [slave] ). |
API.ALG |
Алгоритм расчета параметров фрейма (например, начального адреса или количества переменных). |
3.3.4.4 Пример (из FramesMops3Ext.xls
)
# |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
VQ |
---|---|---|---|---|---|---|---|---|---|---|---|---|
H |
FrameName |
type |
function |
endianness |
beginDataRemote |
variablesCount |
pollingPeriod |
comment |
beginVariableLocal |
diagVariable |
address |
|
@ |
Имя фрейма (массив для чтения\записи) |
Тип данных |
Функция Modbus |
Порядок байт |
Начальный адрес |
Количество переменных |
Период опроса (мс) |
Комментарий |
Имя фрейма (массив для чтения\записи) |
Диагностическая структура |
Для каждого фрейма указывается адрес Slave |
|
d |
status |
16-bit Unsigned |
03 (0x03) READ HOLDING REGISTERS |
1-0 |
0 |
28 |
1000 |
ass |
[modbus.name]_status |
[modbus.name]_status_DIAG |
[slave] |
|
d |
commands |
16-bit Unsigned |
16 (0x10) WRITE MULTIPLE REGISTERS |
1-0 |
0 |
2 |
1000 |
cmd |
[modbus.name]_commands |
[modbus.name]_commands_DIAG |
[slave] |
3.3.4.5 Связь с моделью ПЛК
Модель карты фреймов связывается с моделью ПЛК через лист MB.*
.
Параметр в MB.* |
Связь с Frames*.xls |
---|---|
ING |
Указывает путь к файлу с фреймами (например, [ING.Path]\FramesMops3Ext.xls ) |
modbus.name |
Используется в шаблонах beginVariableLocal и diagVariable |
slave |
Передается в поле address |
💡 Процесс генерации:
- Система читает лист
MB.*
модели ПЛК.- Находит путь в
ING
.- Загружает файл
Frames*.xls
.- Для каждого фрейма создает:
- массив данных в глобальном словаре Unimod,
- диагностическую структуру,
- Modbus-запрос с указанным периодом и функцией,
- ST-код для привязки (
*_inST
,*_outST
,*_statusST
и др.).
3.3.4.6 Вывод
Модель карты Modbus-фреймов — это ключевой элемент для автоматизации опроса Modbus-устройств. Она обеспечивает:
- единый формат описания запросов для всех устройств,
- автоматическую генерацию массивов, диагностики и ST-кода,
- согласованность между конфигурацией ПЛК и данными на устройстве.
Правильное описание фреймов критически важно для стабильной и надежной работы системы автоматизации.