База знаний RD[AI]

Реверс-инжиниринг конфигурационных файлов АСУ ТП: amcfg.lst и UmasV.txt

Практический разбор форматов конфигурационных файлов на примере legacy-систем UMAS-V / Mega-Guard: что можно понять без исходного проекта, бинарников и живой поддержки вендора.

Коротко: в legacy-АСУ ТП конфигурационные файлы часто дают больше практической пользы, чем попытка сразу декомпилировать исполняемые модули. По ним можно восстановить точки, HMI-группы, физические каналы, блокировки, Modbus-адреса и границы между мониторингом и управлением.

Зачем вообще читать конфигурационные файлы

В большинстве проектов по legacy-АСУ ТП исходного кода нет. Есть только то, что осталось на носителях системы: исполняемые модули, файлы ресурсов и конфигурационные файлы. Именно конфигурационные файлы — самый доступный и при этом самый информативный слой.

В отличие от бинарных исполняемых модулей, конфигурация в большинстве промышленных систем часто хранится в читаемом текстовом формате. Это не случайность: конфигурацию должны были редактировать инженеры на этапе пусконаладки, иногда прямо на объекте, без полноценной среды разработки.

Из конфигурационных файлов можно получить полный список точек системы, структуру отображения на HMI, часть логики блокировок, маппинг на внешние устройства и топологию системы. Это уже достаточная база для первичного отчёта, оценки рисков и подготовки следующей фазы миграции.

Что такое amcfg.lst

amcfg.lst — главный конфигурационный файл системы аварийного мониторинга UMAS-V. По сути, это плоская база данных всех точек системы: входов, устройств, групп, строк HMI, блокировок и операторских текстов.

Типовая строка может выглядеть так:

Iono    P.no    Type    Gr    Li    BlockBy    Text
1618    1007    DI      1     50    0          DG1 PS PMS Alarm
ПолеЧто означает
IonoНомер входа или канала в системе. Префикс часто помогает понять шкаф, модуль или физическую зону.
P.noPoint Number — уникальный идентификатор точки, который используется для перекрёстных ссылок.
TypeТип точки: DI, AI, DO, DEV, S.IO, PAG и другие.
GrГруппа на HMI. Показывает, где логически живёт точка.
LiСтрока внутри группы. Вместе с Gr задаёт позицию точки в операторском представлении.
BlockByНомер точки, при активном состоянии которой текущая точка блокируется. 0 означает отсутствие такой блокировки.
TextОператорский текст точки. Именно его часто видят на экране или панели.

Что искать в первую очередь

Подсчёт типов точек

Сначала нужно понять, сколько в системе DI, AI, DO, AO и служебных объектов. Это быстро показывает, является ли система только мониторинговой или действительно управляет исполнительными механизмами.

Анализ BlockBy

Все точки с BlockBy=0 активны без внешней блокировки. Точки с ненулевым BlockBy нужно связать с теми точками, которые их блокируют. Так появляется граф зависимостей и режимных ограничений.

Структура Gr и Li

Группировка по Gr показывает, как разработчик системы разделял объект: генераторы, ГРЩ, вспомогательные системы, системные параметры, панели, аварии. Распределение Li внутри группы помогает понять приоритет и порядок отображения.

Iono как след физического размещения

Префиксы Iono часто дают привязку к шкафам, модулям или физическим каналам. Группировка по этому полю помогает понять, какие сигналы живут рядом физически, а какие пересекают границы шкафов.

Что такое UmasV.txt

Если amcfg.lst отвечает на вопрос «что подключено», то UmasV.txt помогает понять, как система устроена и с чем она общается. В нём могут быть параметры контроллеров, сетевые настройки, Modbus-каналы и ссылки на файлы ввода/вывода.

Особенно важны секции, связанные с Modbus: COM-порт, скорость, чётность, стоп-биты, slave-адреса и тип протокола. Если эти параметры не перенести точно, новая система может иметь правильные теги, но не сможет получить данные с полевых устройств.

Отдельно нужно искать привязки к файлам уровня ioman. В таких файлах могут находиться параметры полярности контактов и активного уровня дискретных входов. Без них остаётся неясным, что означает единица на входе: норму или тревогу.

Типичные находки при анализе amcfg.lst

Архитектура «только чтение» у PMS-интерфейса

Если в группе, связанной с PMS, нет DO и AO, это сильный признак, что система мониторинга не управляет генераторами, а только принимает их состояние. Это важно: разработчику замены не нужно воспроизводить управляющую логику PMS, если исходная система её не выполняла.

Перекрёстный мониторинг критических тревог

Иногда точка физически приходит в один шкаф, а логически относится к зоне другого. Это может быть не ошибкой, а осознанной кросс-публикацией критической тревоги между узлами. Такое решение нужно заметить и отдельно описать в отчёте.

Параллельные каналы диагностики

Один объект может присутствовать несколько раз: через PMS, релейную защиту, контроллер двигателя или отдельный модуль. Это не обязательно дубль. Часто это разные источники информации об одном агрегате.

Граница между «нет данных» и «нет сигнала»

Если у целой группы точек BlockBy=0, это может быть системным решением: эти сигналы не должны подавляться никаким режимом. Для новой системы это превращается в требование к логике отображения и аларминга.

ФайлЧто содержитПочему важен
UmasV.txtПараметры контроллеров и Modbus-каналовБез него неясно, как система общается с полевыми устройствами
ioman009ioman014Параметры I/O, полярность, активные уровниПомогает понять смысл физического состояния входа
mb-addr.sdv / modbus.datТаблицы Modbus-адресовДаёт маппинг регистров по slave-устройствам
lauer.datТексты и элементы панелей оператораПомогает восстановить, что видел оператор
alarmdat.*Базы тревог и событийДополняет картину аларминга и исторических событий

Практическая последовательность анализа

  1. Откройте amcfg.lst и подсчитайте количество строк. Это даст масштаб системы.
  2. Разберите строки в таблицу: отдельные колонки для Iono, P.no, Type, Gr, Li, BlockBy, Text.
  3. Сгруппируйте точки по Type, чтобы понять, система мониторит или управляет.
  4. Сгруппируйте точки по Gr, чтобы восстановить логическую карту HMI.
  5. Найдите все точки с BlockBy != 0 и постройте граф зависимостей.
  6. Сравните префиксы Iono с физическими шкафами, если доступны фото или схемы.
  7. Откройте UmasV.txt и выпишите все каналы связи, параметры портов и slave-адреса.

Ограничения конфигурационных файлов

Конфигурация показывает не всё. Она хорошо отвечает на вопросы «что подключено», «как сгруппировано», «как отображается» и «какие есть явные зависимости». Но она не всегда показывает алгоритмы фильтрации, задержки, внутреннюю обработку, квитирование тревог и поведенческую логику исполняемых модулей.

Для полной реконструкции поведения нужен следующий уровень: анализ бинарных модулей, понимание целевой архитектуры, проверка RTOS-окружения и сопоставление результата с документацией, логами и фактическими наблюдениями на объекте.

Вывод для разработчика замены

amcfg.lst и UmasV.txt — это фундамент для инженерного разбора legacy-АСУ ТП. По ним можно составить спецификацию I/O, структуру тегов, карту HMI, список Modbus-каналов, перечень неопределённостей и первичное ТЗ для следующей фазы.

Главное — не превращать конфигурационный анализ в гадание. Каждый вывод нужно маркировать: подтверждено файлом, вероятно по структуре, требует проверки, не удалось установить. Тогда результат можно безопасно передать в проектирование, а не оставить в виде набора догадок.

Есть пакет конфигов, дампов или старых файлов проекта?

Пришлите список файлов, фрагмент структуры папок и краткое описание системы. Мы оценим, что можно восстановить по конфигурационному уровню и где потребуется более глубокий инженерный разбор.

Обсудить задачу

FAQ

Можно ли восстановить систему только по amcfg.lst?

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

Если есть только текстовые конфиги, это уже полезно?

Да. Даже неполный набор текстовых конфигов помогает оценить масштаб системы, типы сигналов, группы, физическое размещение и границы неопределённости.

RD[AI] публикует внутренние базы по таким системам?

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

Комментарии

Комментарии проходят модерацию и появляются на странице после подтверждения.

Загружаем комментарии...

Оставить комментарий

Отправляя комментарий, вы соглашаетесь с Политикой конфиденциальности. Комментарий будет опубликован только после модерации.

Заявка на инженерный разбор