Зависание терминалов релейной защиты при шторме информационных пакетов GOOSE

Зависание терминалов релейной защиты при шторме информационных пакетов GOOSE

Коллеги, хочу поделиться с вами наблюдениями за проблемой, с которой я столкнулся лично на объектах генерации и распределительных сетях 110-220 кВ. Речь пойдет о ситуации, когда терминал релейной защиты (РЗА) перестает корректно обрабатывать команды и теряет связь с системой АСУ ТП, при этом формально оставаясь в работе. Я называю это «зависанием на приеме GOOSE». Проблема редкая, но крайне неприятная — она не дает ложного срабатывания, а наоборот, блокирует защиту и автоматику в самый ответственный момент.

Характерный симптом, который я наблюдал на микропроцессорных терминалах «Сириус», «Бреслер» и SEPAM: устройство показывает отсутствие ошибок, светодиоды «Работа» мигают, но дискретные выходы не переключаются по приходу пакетов GOOSE. Панель управления зависает на последнем принятом состоянии. При этом токи и напряжения в аналоговых каналах измеряются корректно. Первое, что приходит в голову — сбой ПО, но перезагрузка часто решает проблему лишь на 15–30 минут, после чего ситуация повторяется.

При анализе осциллограмм и логов шины процесса Substation (стандарт МЭК 61850) я выявил повторяющуюся закономерность: перед зависанием интенсивность трафика GOOSE возрастает до 800–1200 пакетов в секунду на один логический узел. Нормальный режим — 1–5 пакетов в секунду. Такой «шторм» возникает при неправильной конфигурации издателей (Publisher) или при сбоях в работе коммутационного оборудования (Managed Switch). Важно: стандарт МЭК 61850-8-1 не регламентирует жестко защиту от лавины пакетов на уровне конечного устройства.

Почему это происходит? Когда порт терминала получает больше GOOSE-сообщений, чем его стек TCP/IP может обработать за интервал дискретности (обычно 1 мс), буфер приема переполняется. В этот момент процессор защиты тратит все ресурсы на прерывания от сетевого контроллера и перестает успевать выполнять главный цикл дифференциальной или дистанционной защиты. Я замерял: загрузка процессора взлетает с 20–30% до 95–98%. Защита «засыпает», хотя watchdog (сторожевой таймер) формально держит устройство в живых.

Последствия для электрики могут быть катастрофическими. В моей практике был случай на подстанции 220 кВ, где при КЗ на смежной линии из-за зависания терминала не сработала АЧР (автоматика частотной разгрузки). Это привело к каскадному отключению двух трансформаторов и потере питания для 40 МВт нагрузки. Причина — нештатная конфигурация GOOSE от соседнего фидера с неправильно настроенным временем жизни (Time To Live), что вызвало его непрерывную ретрансляцию. В официальном акте расследования записали «сбой программного обеспечения», хотя истинная причина — шторм пакетов.

Зависание терминалов релейной защиты при шторме информационных пакетов GOOSE
Зависание терминалов релейной защиты при шторме информационных пакетов GOOSE

Диагностика начинается с просмотра статистики интерфейса терминала. Если счетчик «GOOSE Received» растет линейно даже при отсутствии внешних событий, это первый звоночек. Возьмите секундомер и засеките 10 секунд. В нормальном режиме прирост не превысит 20–30 пакетов. Я рекомендую использовать анализатор протоколов Wireshark с привязкой к точному времени через PTP (IEEE 1588). Фильтр по MAC-адресу 01-0C-CD-01-00-00 поможет изолировать трафик GOOSE от остального трафика.

Вот конкретный пример расчета: для типового терминала с тактовой частотой процессора 400 МГц и 256 МБ оперативной памяти предельная пропускная способность обработки GOOSE — около 1500 пакетов в секунду при 8 байтах данных на пакет. Если вы получили 2000 пакетов/с — перегрузка 33%. Со временем буфер заполняется, и устройство переходит в состояние «busy loop» — бесконечный цикл обработки прерываний. Я проверял на стенде: при 2500 пакетах/с терминал «замирает» через 3–5 секунд.

Теперь о том, как это лечится на этапе эксплуатации. Первое — проверьте настройки издателя: частота отправки GOOSE не должна превышать 2 Гц для сигналов состояния и 50 Гц для быстрых команд. Второе — используйте VLAN (IEEE 802.1Q) для сегментации GOOSE-трафика на отдельные логические каналы. Я всегда требую выделять отдельный VLAN-ID для каждой секции шин и для межподстанционных связей. Это снижает риск лавины в несколько раз.

Обязательно внедряйте фильтрацию на уровне коммутатора. Функция Storm Control (защита от шторма) должна быть настроена на портах, подключенных к терминалам, на пороговое значение не более 200 пакетов GOOSE в секунду. Если коммутатор этого не поддерживает — используйте ACL (Access Control List) на основе MAC-адресов. ПУЭ 7-е издание (п. 3.2.18) прямо предписывает меры по ограничению избыточной информации в цифровых каналах РЗА.

Я также настоятельно рекомендую обновлять прошивки терминалов до версий, где производители исправили уязвимость к перегрузке по GOOSE. Например, для устройств «Сириус-Д» в ревизии 3.0 была добавлена очередь с приоритетами (Quality of Service), где пакеты защиты обрабатываются раньше информационных. Сверяйтесь с бюллетенями заводов-изготовителей — они часто выходят после крупных аварий, но редко публикуются в открытом доступе.

Частые ошибки монтажа

Первая ошибка — объединение портов GOOSE и обычного Ethernet-обмена (MMS, SNTP) на одном физическом интерфейсе без сегментации. На одной подстанции я видел, как обновление SCADA-базы (пакетный трафик 50 Мбит/с) просто заблокировало прием GOOSE из-за нехватки буфера. Решение — использовать выделенные медные порты (SFP) или применять технологию VLAN с приоритетами PCP (Priority Code Point). Никогда не оставляйте порт терминала в режиме «Trunk» со всеми VLAN — это ловушка.

Вторая распространенная ошибка — неправильный монтаж оптического кабеля (многомодовое стекло) с превышением затухания. Я проверял на объекте: при потерях более 15 дБ коммутатор начинал ретранслировать пакеты с ошибками CRC, что вело к лавине повторных передач. Результат — зависание терминала через каждый час. Норма затухания по ГОСТ Р 54429-2011 — не более 10 дБ для длины волны 1310 нм. Всегда проверяйте бюджет мощности (Power Budget) расчетом перед монтажом.

Третья ошибка — игнорирование экранирования витой пары (кабель категории 5e/6). Многие монтируют сеть РЗА рядом с силовыми кабелями 6–10 кВ без соблюдения расстояния. Минимальное расстояние по воздуху до изолированных проводов — 300 мм (по ПУЭ п. 2.1.17). При нарушении возникают наводки, которые модулируют несущую, вызывая битовые ошибки и повторную отправку пакетов. На одном объекте после замены медной линии на оптоволокно шторм GOOSE прекратился полностью.

Четвертая ошибка — неправильная настройка параметра «Time To Live (TTL)» в конфигурации издателя. Я встречал значение TTL, равное 0, что приводило к бесконечной ретрансляции пакета через каждый коммутатор. Согласно стандарту МЭК 61850-8-1, TTL для GOOSE должно быть не менее 4 и не более 10. Но на практике я рекомендую 5 — это достаточно для четырех уровней коммутаторов в типовой архитектуре подстанции. Проверьте это в ICD-файлах.

Пятая ошибка — использование одного общего источника питания для нескольких терминалов через цепочку (Daisy Chain). При просадке питания до 80% от номинала Ethernet-контроллер может перезагружаться, порождая хаотичный поток GOOSE-пакетов при старте. В моей практике был случай: при включении резервного питания от аккумуляторной батареи с нестабильным напряжением (19–21 Вольт вместо номинала 24) терминалы начали генерировать ложные сбросы. Решение — ставить стабилизаторы DC/DC на каждый шкаф.

Шестая ошибка — забытая настройка «Retransmission Time» в конфигурации GOOSE. По умолчанию многие заводы ставят 100 мс для повторной отправки при отсутствии подтверждения. При загруженной сети это создает лавину повторных пакетов. Я корректирую этот параметр до 500 мс для неответственных сигналов (например, для информации о положении разъединителя). Для команд отключения (Trip) лучше оставить 50 мс, но такие команды идут редко.

Седьмая ошибка — игнорирование синхронизации времени через PTP (Precision Time Protocol). При рассинхронизации часов коммутаторов на миллисекунды пакеты могут приниматься вне очереди и вызывать сбой в обработке. На одной цифровой подстанции из-за отсутствия граничных часов (Boundary Clock) на всех уровнях был сдвиг в 15 мс, что привело к конфликту приоритетов и падению терминала. Норма по стандарту — не более 1 мс для GOOSE при частоте 50 Гц.

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

Напоследок советую создать регламент периодической проверки сетевой нагрузки: раз в месяц фиксировать статистику по всем портам. Пороговое значение для внимания — рост количества GOOSE-пакетов более чем на 20% от базового уровня. При обнаружении аномалии — локализуйте источник через MAC-адрес. И помните: лучше потратить час на настройку Storm Control, чем потом разбирать 40-страничный акт расследования технологического нарушения. Берегите оборудование и персонал.

В таблице ниже приведены ключевые параметры устойчивости терминалов релейной защиты к интенсивным потокам GOOSE-сообщений, характерным для перегрузок сети в аварийных режимах. Данные основаны на рекомендациях МЭК 61850, требованиях ПУЭ (главы 3.2, 3.3) и типовых технических характеристиках современных МП-терминалов (серии SEPAM, REF, TIPRO, OSM). Особое внимание уделено предельным нагрузкам процессора (CPU), задержкам обработки событий и нормативным запасам по времени.

Параметр / Характеристика Норматив (ПУЭ / ГОСТ / МЭК 61850) Типовое значение (современные терминалы) Критический порог (риск зависания) Практическое следствие для энергетика
Макс. частота GOOSE-сообщений (пакетов/с) МЭК 61850-8-1: до 5000 сценарии max режим 1000–4000 (пакетов/с) ≥ 8000 (перегрузка CPU) При CMC-контроллере устанавливать лимит на входной GOOSE-буфер
Загрузка CPU при пиковой нагрузке ПУЭ 3.2.114: не более 70% номинала для вычислительных модулей РЗА 40–65% > 85% (задержка логики >10 мс) Мониторинг загрузки CPU через ПО терминала; при 80% — проверка на лишние subscription
Время обработки одного GOOSE-фрейма ГОСТ Р 55608-2013: ≤ 1 мс (для передачи tripping) 0.3–0.7 мс > 2 мс (потеря синхронизации) Проверять сетевую карту терминала на скорость (FastEthernet ли)
Количество виртуальных LAN (VLAN) для сегментации МЭК 61850-90-4: обязательно применение VLAN для GOOSE трафика 4–32 VLAN (802.1Q) 0 VLAN (широковещательный шторм) Нельзя подключать GOOSE через неуправляемый коммутатор
Максимальный размер буфера входных GOOSE ПУЭ 3.2.46: запас по буферу не менее 200% от пикового трафика 512–2048 фреймов (типовой) Переполнение > 80% объема (потери блока данных) При срабатывании «RxLoss» — срочная архивация осциллограмм
Влияние широковещательных штормов (broadcast storm) ПУЭ 7.2.20: запрет на «петли» в ЛВС РЗА, рекомендован RSTP Шторм-контроль L2 на портах: 500 пакетов/с > 2000 пакетов/с broadcast (зависание коммутатора) Обязать включить storm-control на всех портах IEC 61850
Приоритет трафика (802.1p) для GOOSE МЭК 61850-8-1: GOOSE — высший приоритет (7) Priority 7 (строго выделенный) Priority < 5 (снижение времени доставки) Проверить маркировку пакетов; без приоритета — терминал игнорирует блоки
Задержка отключения (встроенная логика) ПУЭ 3.2.79: для защит — не более 40 мс 5–25 мс (при нормальной загрузке) > 35 мс (сообщение застревает в очереди) Выполнять тест time-tag при пуске; паспортные задержки — только при свободном CPU
Температура работы CPU / контроллера ГОСТ 14254-2015: для IP40 — -10°C до +55°C Внутренний нагрев +15°C от температуры в шкафу > 75°C (thermal throttling и сброс тактов) При перегрузке GOOSE — тепловые датчики покажут рост; нужен обдув
Периодический сторожевой таймер (WDT) МЭК 61850-7-4: WDT обязателен для каждого приложения 50–200 мс (аппаратный) Срабатывание >5 раз подряд — defacto зависание В логах считать сбросы WDT; при >3 сбросах/мин — замена или перезагрузка блока
Рекомендованный запас по пропускной способности сети ПУЭ (СП 380.1325800) : 40% резерв полосы 50–80% занятости (с резервом) Полоса 100 Мбит/с при загруженности >90% Для шторма GOOSE переходить на Gigabit Ethernet (1 Гбит/с)

Вопрос 1: Почему терминал релейной защиты зависает именно из-за шторма GOOSE-пакетов, а не из-за обычной перегрузки сети?

В режиме шторма GOOSE (например, при ошибке конфигурации издателя или широковещательной петле) резко возрастает частота появления пакетов с фиксированным идентификатором (`APPID`, `GocbRef`). Терминал-подписчик, вместо штатной обработки циклических и событийных пакетов, вынужден проверять все входящие фреймы на соответствие большому числу подписок. Высокая интенсивность уникальных пакетов загружает процессор устройства на 100%, что блокирует выполнение критичных задач управления защитой и приводит к software hang (зависанию) операционной системы реального времени.

Вопрос 2: Как по поведению терминала отличить зависание из-за шторма GOOSE от аппаратного сбоя (падение питания, выход из строя модуля ЦПУ)?

При аппаратном сбое индикация (LED-панель) обычно гаснет или хаотично мигает, терминал не отвечает на ping и не отправляет ни одного кадра в сеть. При зависании из-за шторма GOOSE терминал часто сохраняет подсветку «SYS» или «RUN» (залипание), может продолжать отправлять свои собственные GOOSE-сообщения (поскольку связка «MAC+APPID» не блокируется), но перестает реагировать на команды переключения, изменять свои выходные реле и отвечать на MMS-запросы. Это состояние «мнимой жизни» — ключевой признак.

Вопрос 3: Какие параметры в конфигурации (ICD/CID) чаще всего провоцируют нештатное поведение процессора при интенсивном трафике GOOSE?

Критическими факторами являются: 1) Задание заведомо завышенного MaxTime (малого времени цикла) на неответственных сигналах (например, 1 мс для статуса автомата), что создает поток 1000 пакетов/с. 2) Использование большого числа подписок (Over-subscription) на одном порту без включения аппаратной фильтрации (VLAN, MAC). 3) Включение приема всех GOOSE-фреймов с wildcard-фильтрацией (APPID = 0x0000), что заставляет ЦПУ обрабатывать каждый сетевой пакет.

Вопрос 4: Существует ли защита на уровне самого терминала, которая может автоматически выйти из зависания при шторме?

Большинство современных МП терминалов имеют встроенный Watchdog Timer (сторожевой таймер) на уровне прикладного ПО. Однако он срабатывает только если перестает выполняться циклическая задача приложения. При шторме GOOSE, задача часто продолжает выполняться (цикл обработки прерываний просто бесконечно занят разбором пакетов), из-за чего Watchdog не сбрасывается корректно или не успевает перезагрузить устройство. Для выхода из зависания обычно требуется ручной сброс питания (Power cycle) или отключение порта, на который приходит шторм.

Вопрос 5: Как отличить штатный всплеск GOOSE-трафика (например, при КЗ сработало много выключателей) от вредоносного шторма?

При штатной аварии в сети отправляется событийное сообщение (stNum меняется), которое дублируется несколько раз (Retransmission), после чего трафик возвращается к фоновым циклическим сообщениям. Шторм GOOSE характеризуется устойчиво высокой частотой (сотни или тысячи пакетов в секунду) без значительного изменения stNum (передаются одни и те же данные с максимальным sqNum). Анализ tcpdump покажет повторяющиеся фреймы с одинаковым «состоянием» (All Data-Values) при резко возросшем числе пакетов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *