7.3 KiB
Сквозная нумерация GAS: распределение адресов
Дата: 9 октября 2026 года.
УКСС выделен диапазон 0…11999: общий блок 0 и блоки узлов 1…11, по 1000 ID каждый. Соответствие технологических слов Modbus текущему профилю 167/v1 и новым ID УМП приведено в GAS_MODBUS_MAP.md. Новая нумерация назначена в документации; в прошивке пока действует профиль 167/v1.
Диапазоны проектов
В новой схеме числа без префикса 0x — десятичные. Каждому номеру узла соответствует блок 1000 адресов с базой номер × 1000.
| Проект / семейство | Первый ID | Последний ID включительно | Число адресов | Статус |
|---|---|---|---|---|
| УКСС | 0 | 11999 | 12000 | Выделено: 12 блоков по 1000 ID |
| Остальные проекты | 12000 | 65535 | 53536 | Свободно для последующего распределения |
Границы УКСС в hex: 0x0000…0x2EDF; свободная область начинается с 0x2EE0.
Резерв диапазона не означает, что каждый адрес уже реализован. Адреса обозначают логические 16-битные слова; память для незадействованных ID не выделяется. Параметр шириной 32 бита занимает два последовательных слова. Служебные слова также должны входить в выделенный диапазон проекта.
Узлы УКСС
Номера узлов: 1…11; 5 и 6 — УМП. Назначения 1…9 подтверждены в package.h; служебные адреса 10/11 определены в cntrl_adr.c.
| Номер | Назначение в текущем коде | Обозначение |
|---|---|---|
| 1 | Трансформаторный узел 1 | adr_TRN1 |
| 2 | Трансформаторный узел 2 | adr_TRN2 |
| 3 | Силовой узел 1 | adr_POW1 |
| 4 | Силовой узел 2 | adr_POW2 |
| 5 | УМП 1, LOAD | adr_LOA1 |
| 6 | УМП 2, LOAD | adr_LOA2 |
| 7 | Узел ENG1 | adr_ENG1 |
| 8 | Пульт | adr_PULT |
| 9 | Шкаф | adr_SHKF |
| 10 | Универсальный адрес / адрес общей посылки | CNTRL_ADDR_UNIVERSAL, ADDR_FOR_ALL |
| 11 | Адрес терминала | ADDR_TERMINAL |
Номер узла, тип платы Desk и ID параметра GAS — отдельные величины. Например, УМП 1 имеет Mode = 5, а тип обеих плат УМП равен dsk_LOAD = 6. Блок номера 10 зарезервирован для роли общего адреса; существующий номер 10 не идентифицирует отдельную физическую плату.
Назначенные блоки УКСС
Границы включительные. Все блоки содержат по 1000 слов, пересечений нет.
| Область | Первый ID, dec | Последний ID, dec | База, hex |
|---|---|---|---|
| Блок 0: общий резерв УКСС | 0 | 999 | 0x0000 |
| Трансформаторный узел 1, номер 1 | 1000 | 1999 | 0x03E8 |
| Трансформаторный узел 2, номер 2 | 2000 | 2999 | 0x07D0 |
| Силовой узел 1, номер 3 | 3000 | 3999 | 0x0BB8 |
| Силовой узел 2, номер 4 | 4000 | 4999 | 0x0FA0 |
| УМП 1, номер 5 | 5000 | 5999 | 0x1388 |
| УМП 2, номер 6 | 6000 | 6999 | 0x1770 |
| Узел ENG1, номер 7 | 7000 | 7999 | 0x1B58 |
| Пульт, номер 8 | 8000 | 8999 | 0x1F40 |
| Шкаф, номер 9 | 9000 | 9999 | 0x2328 |
| Резерв роли общего адреса, номер 10 | 10000 | 10999 | 0x2710 |
| Терминал, номер 11 | 11000 | 11999 | 0x2AF8 |
Правило адресации:
GAS_ID = номер_узла × 1000 + смещение
номер_узла = 0…11
смещение = 0…999
Технологические слова УМП
Для штатного технологического Modbus-адреса n = 0…127 в новой карте назначено смещение n:
УМП 1, номер 5: GAS_ID = 5000 + n → 5000…5127
УМП 2, номер 6: GAS_ID = 6000 + n → 6000…6127
| Параметр | Штатный Modbus, hex | УМП 1: новый GAS, dec | УМП 2: новый GAS, dec |
|---|---|---|---|
| Первое технологическое слово | 0x0000 |
5000 | 6000 |
DAC_go |
0x0050 |
5080 | 6080 |
DAC_stop |
0x0051 |
5081 | 6081 |
LOAD_CAN_TIMEOUT |
0x0052 |
5082 | 6082 |
LOAD_STATUS |
0x007C |
5124 | 6124 |
LOAD_ATTEMPTS |
0x007D |
5125 | 6125 |
LastMode |
0x007E |
5126 | 6126 |
Commands |
0x007F |
5127 | 6127 |
Смещения 128…999 в каждом блоке остаются резервом для расширений. Служебные параметры и новые данные в этих смещениях пока не назначены. Полная таблица всех 128 технологических слов: GAS_MODBUS_MAP.md.
Связь с текущей прошивкой
В существующей реализации база технологических GAS-регистров равна 0x5000 = 20480, а дескриптор находится на 0x5F00 = 24320. Это локальное окно профиля 167/v1, выбранное независимо от новой схемы сквозной нумерации.
Текущее 0x5000 не означает 5 × 1000: последнее вычисление даёт 5000 десятичных = 0x1388. Для адресации УМП 1 и УМП 2 по номеру узла потребуются разные базы, определяемые по Mode.
Штатные адреса Modbus, служебные окна регистратора, паспорта, защиты и EEPROM уже имеют собственные значения. При переносе сквозной карты нужно определить соответствие GAS ↔ адрес протокола: глобальный ID может отличаться от прежнего Modbus-адреса. Это позволяет отдельно согласовать новую нумерацию и совместимость существующих клиентов.
Диапазон УКСС и размеры блоков назначены. Перенос этих ID в обработчики прошивки и размещение служебных параметров в резерве — отдельные изменения реализации.