RUBICON engineering center

Watchdog таймер ПЛК

Аббревиатура: WDT
Синонимы: watchdog, сторожевой таймер, WDT, плк watchdog
Watchdog (сторожевой таймер) — аппаратный или программный механизм ПЛК, который сбрасывает контроллер при «зависании» программы. Если основной цикл не успевает «погладить» таймер в заданное время — watchdog перезапускает ПЛК, переводя систему в безопасное состояние.

Watchdog timer (сторожевой таймер, WDT) — критически важный элемент надёжности ПЛК и встроенных систем. Обеспечивает автоматический выход из состояния «зависания» программы через аппаратный сброс.

Как работает

  1. ПЛК имеет аппаратный таймер (отдельный от основного CPU)
  2. При старте таймер взводится на заданное время (например, 500 мс)
  3. Основная программа периодически «гладит» (kick, feed, pet) таймер — сбрасывает его в ноль
  4. Если программа «зависла» и не гладит таймер — он доходит до нуля и аппаратно перезапускает CPU
  5. После перезапуска ПЛК переходит в безопасное состояние (все выходы в 0, уведомление оператору)

Два уровня watchdog в ПЛК

Аппаратный (hardware WDT)

  • Отдельная микросхема или встроенный в MCU таймер
  • Нельзя отключить программно (большинство современных ПЛК)
  • Триггерится если прошивка ОС «зависла» полностью
  • Время обычно 100–1000 мс

Программный / циклический (cycle watchdog)

  • Проверка максимального времени одного цикла PLC
  • Задаётся в настройках программы (например, 100 мс)
  • Если цикл длится дольше — ПЛК переходит в STOP с кодом ошибки
  • Защищает от бесконечных циклов в пользовательской программе

Что происходит при срабатывании

  • ПЛК в STOP — все дискретные выходы в 0, аналоговые в safe-state (0 мА или замороженное значение)
  • Светодиод ERROR — красный индикатор на фронте ПЛК
  • Запись в журнал — timestamp, причина, адрес цикла
  • Передача ошибки по сети — для систем с диспетчеризацией (OPC UA, Modbus)
  • Переход на резерв — для систем 1oo2 / 2oo3 (горячее резервирование)

Типичные настройки

| ПЛК | WDT default | Настраивается | |-----|-------------|---------------| | Siemens S7-1200 | 150 мс | Да, 1–6000 мс | | Siemens S7-1500 | 150 мс | Да, 1–20000 мс | | ОВЕН ПЛК200 (CODESYS) | 100 мс | Да, в task-настройках | | Beckhoff CX | 20 мс (base task) | Да, per-task | | Rockwell CompactLogix | 500 мс | Да, 1–65535 мс | | Segnetics SMH4 | 100 мс | Нет (фиксировано) |

Что делать после срабатывания

  1. Проверить журнал — найти причину (длинный цикл, цикл-из-цикла, задержка ввода-вывода)
  2. Проанализировать Scan Time Max — максимальное время цикла за все наблюдения
  3. Распределить нагрузку по задачам — медленные операции в low-priority task с большим периодом
  4. Избегать блокирующих вызовов — ожидание ответа по сети, большие расчёты в main cycle

Watchdog в сети

Modbus Watchdog

Master-ПЛК периодически посылает запрос slave. Если slave не получает запросов N секунд — считает связь потерянной и переходит в безопасное состояние. Реализуется на обеих сторонах.

Profinet IO Watchdog

Для каждого модуля ввода-вывода задаётся Update Time (например, 8 мс) и Watchdog Factor (например, 3). Если за 24 мс (8×3) модуль не получил update от CPU — модуль сам переходит в safe state. Это защищает от «молчаливых» сбоев CPU.

CANopen Node Guarding / Heartbeat

Контроль присутствия узлов на шине. Если heartbeat не поступает за T_heartbeat_consumer — узел считается упавшим.

Применение в ответственных системах

  • СИС (система ПАЗ) — watchdog обязателен по IEC 61511
  • Автоматика с резервированием 2oo3 — срабатывание WDT триггерит голосование и переход на резерв
  • Критичные процессы — криогенные установки, реакторы, подачи горячей воды в бойлеры (защита от перегрева)
  • Автоматика безопасности — противопожарные системы, газоанализ, HIPPS

Watchdog — не роскошь, а необходимый минимум надёжности. В промышленных ПЛК отключить его обычно нельзя.

Частые вопросы

  • Как узнать что ПЛК перезагрузился по watchdog?
    В журнале ошибок ПЛК ищите записи типа «Scan time overrun», «Cycle time exceeded», «CPU in STOP by WDT». В Siemens TIA Portal — Online → Diagnostics buffer, в CODESYS — Device → Log, в Rockwell — Controller Properties → Major Faults. Timestamp и код ошибки позволяют найти цикл где зависло. Если причина не очевидна — включите на этой задаче опцию «Save context on timeout» (CODESYS) или просто логируйте Scan Time Max и Scan Time в OPC UA/SCADA для долгосрочного анализа.
  • Можно ли отключить watchdog для отладки?
    В большинстве промышленных ПЛК аппаратный watchdog отключить нельзя — он часть архитектуры CPU. Можно только увеличить время (например, с 150 мс до 1000 мс), чтобы отладочные операции не триггерили его. Для разработки — в CODESYS есть симулятор на ПК без WDT; в TIA Portal — PLCSIM. На реальном железе никогда не рекомендуется убирать watchdog даже «временно» — забудете вернуть, объект уедет в прод, в первый же сбой — застревание на долгое время с опасностью аварии.

Источники

  1. IEC 61131-2 — Programmable controllers. Part 2: Equipment requirements and tests — IEC
  2. IEC 61508 — Functional safety of electrical/electronic/programmable electronic safety-related systems — IEC
Автор: Sergey
Опубликовано: 28.10.2026
Обновлено: 27.10.2026
Watchdog таймер ПЛК — сторожевой таймер и защита от зависания | РУБИКОН