LD после аварии: установка «залипла», reset не помогает
Почему в ladder после аварии установка залипает и reset не сбрасывает: SET/RESET, приоритет сетей, OR-ветки, квитирование vs сброс latch.

Оператор нажал «Сброс аварии», лампа на мнемосхеме погасла, а насос всё равно не разрешают к пуску - в online LD катушка Permit_Start по-прежнему true, хотя кнопка reset отпущена. Или наоборот: авария квитирована, а красная «залипшая» установка держит весь участок в Stop. Наладчик говорит: «reset не доходит». Вы открываете ladder - три сети, две катушки на один физический выход, SET/RESET в разном порядке, и одна OR-ветка от датчика, который ещё true после механического сброса.
LD (Ladder Diagram) на объекте часто переживает десятилетия правок: latch добавляли «временно», reset вешали на HMI-бит без сброса latch в ПЛК, приоритет сетей IEC не учитывали. Статья разбирает, почему после аварии установка залипает и reset не помогает. Не базовый курс LD и не UX кнопок HMI - только latch, приоритет, OR-ветки и безопасный сброс.
Короткий ответ
В LD «залипание» после аварии - это latch (катушка SET/RS или самодержание через NO-контакт своей катушки), который остаётся true, потому что: условие SET всё ещё true (датчик, interlock, необработанная причина аварии); reset подключён не к той катушке или только квитирует HMI-alarm, не сбрасывая latch в ПЛК; две катушки на один выход - reset сбрасывает одну, вторая снова устанавливает; порядок сетей - нижняя сеть перезаписывает reset верхней в том же scan; OR-ветка подаёт set с другого входа. Сбрасывают latch по R входу RS или по break self-hold, после того как причина аварии false. «Квитировать» и «сбросить latch» - разные действия.
Latch, SET и self-hold: что остаётся true
Классическое самодержание: катушка M1 с параллельным NO-контактом M1 держит себя после импульса Start. Stop break - размыкает цепь. Если Stop только на HMI и не break self-hold в LD - latch остаётся.
SET/RESET coils (где поддерживаются): SET один scan установил, пока нет RESET - true. Две SET от разных аварий на одну катушку - любая держит.
RS / SR блоки: приоритет Reset или Set при одновременном true - по стандарту и настройке блока (RS: reset dominant или set dominant - читайте свойство в CODESYS).
После аварии Alarm_High SET latch Line_Trip. Reset с HMI сбрасывает alarm display, latch Line_Trip не тронут - пуск запрещён правильно, оператор думает «reset не работает».
Reset не помогает: типовые причины
Квитирование ≠ сброс latch. Ack на SCADA гасит horn и красную рамку; coil Trip в ПЛК остаётся. Нужен отдельный бит Reset_Trip в ladder, с условиями безопасности.
Reset импульс один scan, а нижняя сеть с SET снова true в том же scan - latch мгновенно вернулся. Решение: reset dominant SR, или условие SET false до reset, или задержка на повторный set.
Две катушки на один %Q или одну VAR - запрещённая, но частая практика. Сеть 1 reset, сеть 3 set - побеждает порядок исполнения.
OR-ветка: Trip := A OR B OR C. Reset сбрасывает только следствие одного FB, B ещё true от датчика уровня после аварии.
Reset без interlock: причина аварии не устранена - датчик всё ещё в alarm zone, SET каждый scan. Reset «не помогает» - это правильная блокировка; чинят процесс или датчик.
Приоритет сетей в одном POU
В CODESYS LD сети исполняются сверху вниз. Нижняя катушка на ту же переменную перезаписывает верхнюю в конце scan.
Пример: сеть 2 RESET coil M_Trip; сеть 5 SET M_Trip от Temp_High - если Temp_High still true, после reset снова set.
Диагностика: online, смотрите порядковый номер сети, где последний writer на coil.
Рефакторинг: одна катушка - одна сеть; логику собирают в RS или в ST IF NOT Alarm THEN Trip := FALSE.
Подробнее про релейную логику - LD как работает; про две катушки - приоритет сетей в том же духе, что техдолг LD.
OR-ветка и «лишний» set
Start_Permit = NOT Trip OR Manual_Bypass - bypass забыли выключить, latch вроде сброшен, но bypass держит пуск. Или Trip формируется OR из пяти условий, reset только по одному.
В online раскройте каждый контакт OR перед latch. Часто «залипший» - это NC контакт датчика, который после аварии stuck closed в поле.
Online: как смотреть, не force опасные выходы
Безопасный режим, механизмы отключены. Online ladder: power flow на reset rung - горит ли при нажатии HMI. Следите coil latch - меняется ли на false на один scan. Если мигнул false и снова true - SET ниже или parallel OR.
Watch: Reset_PB, Ack, Trip, сырые датчики alarm. Сравните с HMI: какой бит реально идёт в ПЛК (Modbus map).
Не держите force Reset := TRUE постоянно - маскирует логику для следующей аварии.
Квитировать vs сбросить: матрица для проектировщика HMI
Кнопка «Квитировать» - journal, horn, unacked state. «Сброс аварии» / «Reset trip» - coil в ПЛК при выполнении условий (нет active alarm, двери закрыты, zero speed). Одна кнопка на оба - путаница на пуске. Цвета и подписи - hmi-operator-ierarhiya-ekranov-avarii-trendy-bez-peregruza.
В LD регламент: reset trip только при NOT причинах set; иначе сообщение оператору «устраните причину».
SR и RS: dominant side
При одновременном S и R: если dominant Set - reset «не помогает» в один scan с удерживаемым alarm input. Меняют на RS reset dominant или убирают параллельный set на время reset pulse (один scan falling edge HMI).
Документируйте в комментарии сети: RS dominant reset.
Контакты NC/NO и «залипшее» восприятие
Датчик аварии - NC в цепи set: при норме ток идёт, при аварии размыкается - SET latch. После устранения датчик вернулся в NC, но latch уже держит parallel NO. Reset break self-hold - оператор видит «залипло». Если reset только с HMI, а NC контакт физически ещё в alarm - схема вводит в заблуждение.
Плавающий (floating) вход без pull-up после замены датчика даёт случайный SET - latch «сам» включается. Диагностика: online контакт, мультиметр на клемме.
Несколько сетей на одну физическую катушку %Q
Запрещено по стилю, но в legacy: %Q0.0 в сети 4 и %Q0.0 в сети 9. Reset в сети 4, set в сети 9 от Manual - выход ON, reset «не помог». Рефакторинг: одна катушка %Q, логика OR в одной сети или в ST.
После замены ПЛК или миграции LD
Импорт legacy: SET/RESET coils маппятся иначе, приоритет сетей сбился. Симптом после первой аварии на новом железе - «раньше reset работал». Сравните export до/after, прогоните table-driven test всех trip/reset.
Импортозамещение: теги совпали, логика нет - про имена; здесь - про coil logic.
Пусковая цепочка: Permit, Trip, Ready
На объекте три логических слоя: Trip (аварийное отключение), Permit (разрешение после условий), Start (импульс пуска). Оператор сбрасывает Trip на HMI, но Permit false из-за Door_Open - «reset не помог». В ladder смотрите не только latch Trip, но и NC Door_Open в сети Permit ниже.
Документируйте на мнемосхеме: какая лампа - Trip, какая - блокировка без latch.
Импульс reset с HMI: один scan
Кнопка «Сброс» на экране часто SetBit на один scan или пока нажата. Если ladder ждёт rising edge, а HMI шлёт level - reset не виден. Сверьте Modbus map: pulse 500 ms, coil или holding bit.
Дублирующий reset в LD (две сети на Reset_Trip) и на HMI - race в одном scan.
Безопасность: когда reset запрещён
По SIL/company policy reset Trip только при нулевой скорости, закрытых кожухах, отсутствии gas alarm. Если reset «не работает» при открытой двери - это не баг. Не обходите force без оформления; функциональная безопасность - отдельный контур, но interlock в LD часто рядом.
Наследие: контакты «вместо» RS
Старый код: five rungs self-hold вместо одного RS. Reset break одну ветку, parallel NO другой ветки держит. Рефакторинг в один RS с комментарием dominant - долг, но снижает ночные звонки.
Журнал и расследование «залипания»
Архивируйте coil Trip, Reset_PB, ключевые датчики - 1 с. После инцидента видно: reset пришёл, SET снизу снова true через 20 ms. Без тренда спор «оператор не нажал» / «ПЛК косячит».
Тест на стенде перед FAT
Таблица сценариев: авария → Trip true → reset без устранения → Trip остаётся; устранение → reset → Trip false → пуск. Каждый сценарий - скрин online ladder и HMI. Один прогон занимает 30 минут, экономит смену на пуске.
Если reset на HMI вызывает только AckAlarm() в SCADA без записи в %MX ПЛК, ladder никогда не увидит сброс - типовая ошибка интеграции «две базы». На FAT проверяют oscilloscope логики: нажатие reset → бит в ПЛК true хотя бы один scan → coil Trip меняется.
Состояние катушки, где latch и безопасный сброс
| Состояние катушки | Где latch | Как сбросить безопасно |
|---|---|---|
| True после аварии, Ack не помог | SET coil / self-hold | Reset coil или R на RS; break hold |
| True, reset импульс мигнул | SET ниже по сетям | Порядок сетей; RS reset dominant |
| True, датчик alarm active | OR / SET от датчика | Устранить причину; не force reset |
| Две катушки на одну VAR | Сеть 3 set после reset | Одна катушка; одна сеть |
| HMI reset, coil false в watch | Неверная привязка HMI | Modbus map; правильный бит |
| True только в Manual | Bypass latch | Выключить bypass; регламент |
| SR set dominant при alarm | Блок SR | RS или reset dominant |
| True после power return | Retain на latch | Отдельная инициализация FirstScan |
| Q физический ON, coil OFF | Две катушки на %Q | Исправить дубли; одна точка |
Вопросы с пуска
Reset должен сбрасывать аварию на экране?
Может только квитировать. Trip latch - отдельная логика, если так спроектировано.
Почему latch после кратковременной аварии?
Self-hold или SET без автоматического reset по возврату датчика - by design. Добавьте auto-reset только если безопасность позволяет.
Можно ли удалить LD и переписать на ST?
Для новых interlock часто да; LD на объекте оставляют, если понятен электрикам. LD технический долг.
Force reset на пуске - норма?
Разово для диагностики. В эксплуатации - нет.
FBD RS то же самое?
Да по смыслу latch; синтаксис другой. См. материалы по FBD EN/ENO - другой класс «пропадания», не latch.
Можно ли вынести interlock из LD в FBD?
Да, если команде проще сопровождать. Latch тогда через RS в FBD - те же правила reset.
Почему после midnight latch сам сбросился?
Скрипт HMI, расписание или PLC task по calendar - ищите writer на coil в другом POU.
На практике
На ПЛК СТАБУР в CODESYS и MasterSCADA LD остаётся популярным для interlock на насосах и задвижках. Единый регламент reset/kvit на всех линиях объекта снижает путаницу при смене персонала - не зависит от бренда железа.
