ГлавнаяАкадемияМонтаж и пусконаладка контроллера → Проверка выходов в Node-RED

Проверка выходов в Node-RED

Урок 4 · Монтаж и пусконаладка контроллера · 15 мин · theory

Введение: Зачем нужен Node-RED для проверки выходов

После того как монтаж нагрузок завершен и они физически подключены к выходам контроллера, наступает один из самых ответственных этапов пусконаладочных работ (ПНР) — проверка каждого канала. Необходимо убедиться, что реле `RL-01` действительно управляет светом в гостиной, а аналоговый выход `AO-02` корректно диммирует подсветку в коридоре.

Традиционный подход к такой проверке часто включает в себя трудоемкие и неэффективные методы:

Все эти методы замедляют работу, требуют физического доступа к щиту и создают риск ошибок. Программный подход, использующий Node-RED, кардинально меняет этот процесс, превращая его из рутинной операции в быстрый и точный диагностический инструмент.

| Параметр сравнения | Традиционный метод проверки | Программный метод (Node-RED) |

| :----------------- | :---------------------------- | :----------------------------- |

| Скорость | Низкая (перемещения, коммутация) | Высокая (команды с ноутбука) |

| Точность | Зависит от человеческого фактора | 100% точность отправки команд |

| Требования | Временные выключатели, доп. провода | Ноутбук/планшет с доступом к сети |

| Безопасность | Риск короткого замыкания | Полностью безопасный |

| Гибкость | Только простые вкл/выкл | Имитация любых сценариев, групповые команды |

Центральным элементом этого подхода в экосистеме HI является специальный узел `hi_write`. Этот узел представляет собой программный интерфейс к физическим выходам контроллера. Вместо того чтобы физически подавать сигнал, вы просто отправляете сообщение на узел `hi_write`, и он напрямую отдает команду нужному реле или аналоговому выходу. Это позволяет вам, находясь в любой точке объекта (в пределах действия сети Wi-Fi), управлять любой нагрузкой, подключенной к контроллеру.

> 💡 Подсказка: Держите ноутбук или планшет с открытым редактором Node-RED под рукой во время всего процесса пусконаладки. Это сэкономит десятки часов на перемещениях между щитом и проверяемыми нагрузками.

Использование Node-RED не требует, чтобы на объекте уже были смонтированы и подключены чистовые настенные выключатели. Проверка может быть выполнена сразу после завершения монтажа в электрощите, что позволяет выявить и устранить ошибки на самой ранней стадии.

---

Управление релейными выходами через узел hi_write

Первый и самый базовый шаг в программной проверке — это научиться принудительно включать и выключать релейные выходы. Для этого мы будем использовать связку из двух простых узлов: `Inject` для отправки команды и `hi_write` для ее исполнения.

### Шаг 1: Создание тестового потока

  • Откройте веб-интерфейс Node-RED вашего контроллера.
  • Создайте новую вкладку (flow) и назовите ее "Тестирование ПНР", чтобы отделить эти временные потоки от основной логики проекта.
  • На левой панели в палитре узлов найдите узел `Inject` (стандартный узел Node-RED) и перетащите его на рабочее поле.
  • В разделе "HI Platform" найдите узел `hi_write` и также перетащите его на поле. Соедините выход узла `Inject` с входом узла `hi_write`.
  • Ваш простейший тестовый поток готов. Теперь его нужно настроить.

    ### Шаг 2: Настройка узлов

    Настройка узла `hi_write`:
  • Дважды щелкните по узлу `hi_write`, чтобы открыть его окно конфигурации.
  • В поле "Name" (Имя) укажите понятное название, например, "Управление светом: Гостиная".
  • В поле "Pin" (Контакт) вы увидите выпадающий список всех доступных физических выходов контроллера. Для нашего примера выберем релейный выход `ro-1` (Relay Output 1).
  • Нажмите "Done", чтобы сохранить настройки.
  • Настройка узлов `Inject` для включения и выключения:

    Нам нужно два узла `Inject`: один для включения, другой для выключения.

  • Дважды щелкните по первому узлу `Inject`.
  • В поле "Payload" (Полезная нагрузка) выберите тип `boolean` (логический).
  • Установите значение в `true`. Это команда "включить".
  • В поле "Name" дайте ему имя "ВКЛ".
  • Нажмите "Done".
  • Теперь скопируйте и вставьте этот узел (Ctrl+C, Ctrl+V), чтобы создать его дубликат.

  • Дважды щелкните по копии узла.
  • В поле "Payload" измените значение с `true` на `false`. Это команда "выключить".
  • В поле "Name" измените имя на "ВЫКЛ".
  • Нажмите "Done".
  • Подключите оба узла `Inject` ("ВКЛ" и "ВЫКЛ") к одному и тому же узлу `hi_write`. Ваша схема должна выглядеть так:

    [Inject: ВКЛ] --+
    

    |--> [hi_write: Управление светом: Гостиная]

    [Inject: ВЫКЛ] --+

    ### Шаг 3: Тестирование

    Теперь все готово к проверке.

  • Нажмите кнопку "Deploy" (Развернуть) в правом верхнем углу интерфейса, чтобы применить изменения.
  • Нажмите на квадратную кнопку слева от узла `Inject` с именем "ВКЛ".
  • * Что произойдет: Узел `Inject` отправит сообщение, где `msg.payload` имеет значение `true`.

    * Ожидаемый результат: Вы услышите отчетливый щелчок реле внутри контроллера. Светодиодный индикатор, соответствующий выходу `ro-1`, загорится. Подключенная к этому реле нагрузка (например, лампа) включится.

  • Теперь нажмите на кнопку узла `Inject` с именем "ВЫКЛ".
  • * Что произойдет: Узел `Inject` отправит сообщение, где `msg.payload` равен `false`.

    * Ожидаемый результат: Вы снова услышите щелчок реле. Индикатор `ro-1` погаснет, и нагрузка выключится.

    Контракт сообщения для `hi_write` (реле):
    // Сообщение для включения реле
    

    {

    "payload": true

    }

    // Сообщение для выключения реле
    

    {

    "payload": false

    }

    Повторите этот процесс для каждого релейного выхода, который вы хотите проверить, создавая копии узла `hi_write` и настраивая их на разные контакты (`ro-2`, `ro-3` и т.д.). Этот простой метод позволяет за 10-15 минут "прощелкать" все 22 реле и убедиться в их работоспособности и правильности подключения нагрузок.

    ---

    Создание простого интерфейса для тестирования в Dashboard

    Постоянно нажимать кнопки `Inject` в редакторе Node-RED удобно, но для комплексной проверки, когда нужно управлять десятками нагрузок, лучше создать временный графический интерфейс. Для этого идеально подходит пакет Node-RED Dashboard.

    > ⚠️ Внимание: Тестовые интерфейсы в Dashboard не должны оставаться в конечном проекте, сдаваемом заказчику. Они не имеют аутентификации и могут создать угрозу безопасности. Удаляйте или деактивируйте их после завершения ПНР.

    ### Шаг 1: Настройка Dashboard

    Предполагается, что `node-red-dashboard` уже установлен на вашем контроллере.

  • В правой части редактора Node-RED найдите иконку графика (Dashboard) и перейдите на эту вкладку.
  • Нажмите "+ tab", чтобы создать новую вкладку интерфейса. Назовите ее "Тестирование ПНР".
  • Внутри этой вкладки создайте группу, нажав "+ group". Назовите ее, например, "Релейные выходы 1-8".
  • Это создаст структуру для нашего будущего тестового пульта.

    ### Шаг 2: Создание интерактивного переключателя

    Мы заменим пару узлов `Inject` на один узел `ui_switch`, который представляет собой интерактивный переключатель в веб-интерфейсе.

  • Удалите узлы `Inject` ("ВКЛ" и "ВЫКЛ"), которые мы создали ранее.
  • В палитре узлов, в разделе "dashboard", найдите узел `ui_switch` и перетащите его на поле.
  • Подключите выход `ui_switch` к входу узла `hi_write`.
  • Дважды щелкните по `ui_switch` для настройки:
  • * Group: Выберите созданную группу `[Тестирование ПНР] Релейные выходы 1-8`.

    * Label: Введите название, которое будет отображаться в интерфейсе, например, "Свет: Гостиная (RO-1)".

    * On Payload / Off Payload: Убедитесь, что для "On" установлено `boolean` `true`, а для "Off" — `boolean` `false`. Это значения по умолчанию, и они идеально подходят для управления реле через `hi_write`.

  • Нажмите "Done" и "Deploy".
  • ### Шаг 3: Проверка через веб-интерфейс

  • Откройте новую вкладку в вашем браузере и перейдите по адресу `http://:1880/ui`.
  • Вы увидите созданную нами страницу "Тестирование ПНР". На ней будет один переключатель "Свет: Гостиная (RO-1)".
  • Кликните по этому переключателю. Он изменит свое положение. Одновременно с этим вы должны услышать щелчок реле, и нагрузка включится. Повторный клик выключит ее.
  • Этот метод гораздо удобнее, так как позволяет управлять нагрузкой с любого устройства в сети (включая смартфон), просто открыв нужную страницу.

    Создайте по одному `ui_switch` для каждого используемого релейного выхода, присваивая им понятные имена и связывая с соответствующим узлом `hi_write` (или одним узлом `hi_write`, если вы используете динамическую маршрутизацию по `msg.topic`, но на этапе ПНР проще создать отдельные связи). Разместите их в интерфейсе по группам, соответствующим их физическому расположению на объекте (например, "1 этаж", "2 этаж", "Уличное освещение").

    ---

    Тестирование аналоговых выходов 0-10В

    Кроме дискретных релейных выходов, контроллер HI оснащен аналоговыми выходами, которые чаще всего используются для управления диммируемыми светильниками по протоколу 0-10В. Принцип их проверки схож с реле, но есть ключевое отличие в формате управляющего сигнала.

    Если реле понимает только два состояния (`true`/`false`), то аналоговый выход управляется числовым значением. В экосистеме HI для узла `hi_write` принят диапазон от 0 до 100, где `0` соответствует 0В на выходе (свет выключен), а `100` — 10В (максимальная яркость).

    Для плавной регулировки идеально подходит узел `ui_slider` из пакета Dashboard.

    ### Шаг 1: Сборка потока для диммирования

  • В палитре узлов найдите `ui_slider` (в разделе "dashboard") и перетащите его на рабочее поле вашей тестовой вкладки.
  • Добавьте еще один узел `hi_write`.
  • Соедините выход `ui_slider` с входом `hi_write`.
  • ### Шаг 2: Настройка узлов

    Настройка узла `hi_write` для аналогового выхода:
  • Дважды щелкните по новому узлу `hi_write`.
  • В поле "Name" укажите "Диммер: Кухня".
  • В поле "Pin" выберите один из аналоговых выходов, например, `ao-1` (Analog Output 1).
  • Нажмите "Done".
  • Настройка узла `ui_slider`:
  • Дважды щелкните по узлу `ui_slider`.
  • Group: Выберите подходящую группу в вашем тестовом дашборде.
  • Label: "Яркость: Кухня (AO-1)".
  • Range (Диапазон): Установите `min` в `0` и `max` в `100`. Это гарантирует, что слайдер будет генерировать значения именно в том диапазоне, который ожидает `hi_write`.
  • Step (Шаг): Установите `1`, чтобы регулировка была плавной.
  • Убедитесь, что опция "Send value only on release" (Отправлять значение только при отпускании) отключена, чтобы видеть изменения яркости в реальном времени при перемещении ползунка.
  • Нажмите "Done" и "Deploy".
  • > 💡 Подсказка: Иногда внешние системы могут передавать данные в другом формате, например, 0-255. Используйте узел `Range` для удобного и наглядного преобразования таких диапазонов в стандартный для HI диапазон 0-100.

    ### Шаг 3: Проверка

  • Откройте интерфейс Dashboard (`/ui`). Вы увидите новый элемент — слайдер.
  • Начните плавно перемещать ползунок слайдера от 0 к 100.
  • Ожидаемый результат:
  • * Подключенный к выходу `ao-1` диммируемый светильник будет плавно увеличивать свою яркость.

    * Если светильник еще не подключен, вы можете проверить выход с помощью мультиметра в режиме измерения постоянного напряжения (DCV). Подключите щупы к клеммам `ao-1` и `GND`. Напряжение на выходе должно плавно меняться от 0В до 10В по мере движения слайдера.

    Контракт сообщения для `hi_write` (аналоговый выход):
    // Сообщение для установки 50% яркости
    

    {

    "payload": 50

    }

    // Сообщение для выключения света
    

    {

    "payload": 0

    }

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

    ---

    Групповое тестирование и имитация сценариев

    После того как каждый выход проверен индивидуально, полезно провести групповое тестирование. Его цель — не создать финальные пользовательские сценарии, а проверить стабильность системы под пиковой нагрузкой. Это помогает выявить потенциальные проблемы, такие как просадки напряжения, недостаточная мощность блоков питания или автоматов защиты.

    > 🔗 Связанный материал: Подробно и правильно пользовательские сценарии разбираются в курсе "Логика и автоматизация": COURSE-05-M02-L01 'Создание и управление сценами'.

    ### Пример 1: Сценарий "Включить все"

    Самый простой стресс-тест — одновременно включить все мощные нагрузки.

  • Разместите на поле один узел `Inject`. Назовите его "Включить весь свет". В его `payload` можно установить любое значение, оно не будет использоваться.
  • Разместите на поле столько узлов `Change`, сколько групп света вы хотите включить.
  • В каждом узле `Change` настройте правило: `Set` `msg.payload` `to` `boolean` `true`.
  • После каждого узла `Change` поставьте соответствующий узел `hi_write`, настроенный на нужное реле (`ro-1`, `ro-2` и т.д.).
  • Соедините выход одного `Inject` со входами всех узлов `Change`.
  • Схема потока:
                   +--> [Change: set true] -> [hi_write: ro-1]
    

    |

    +--> [Change: set true] -> [hi_write: ro-2]

    [Inject] --+-->+--> [Change: set true] -> [hi_write: ro-3]

    ("All ON") | |

    +--> [Change: set true] -> [hi_write: ro-4]

    |

    +--> [Change: set true] -> [hi_write: ro-5]

    При нажатии на кнопку `Inject` все указанные реле сработают одновременно. Наблюдайте за поведением системы: не "моргнул" ли свет в других помещениях, не отключился ли какой-либо автомат в щите, не перезагрузился ли сам контроллер. Аналогичную схему можно собрать для одновременного выключения.

    ### Пример 2: Имитация сценария "Я ушел"

    Этот тест позволяет проверить последовательную работу выходов, что тоже может быть важно.

  • Используйте один узел `Inject` в качестве триггера.
  • Создайте цепочку из узлов `hi_write` и `Delay` (Задержка).
  • Схема потока:
  • * `Inject` -> `hi_write` (выключить свет в гостиной)

    * `hi_write` (гостиная) -> `Delay` (установить задержку 2 секунды)

    * `Delay` (2с) -> `hi_write` (выключить свет в коридоре)

    * `hi_write` (коридор) -> `Delay` (установить задержку 2 секунды)

    * `Delay` (2с) -> `hi_write` (выключить свет на кухне)

    При запуске этого потока свет будет гаснуть последовательно. Это менее нагрузочный тест, но он позволяет убедиться в корректной временной координации команд и отсутствии логических сбоев.

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

    ---

    Итоги и лучшие практики

    Программная проверка выходов с помощью Node-RED — это современный, быстрый и надежный метод, который должен стать стандартом для каждого инсталлятора систем автоматизации HI. Он позволяет перейти от кустарных методов к структурированному и документированному процессу пусконаладки.

    Подведем итоги и сформулируем ключевые правила:

    1. Отправка команды: Вы кликаете по кнопке в интерфейсе Node-RED или Dashboard.

    2. Индикация на контроллере: Вы видите, как загорается или гаснет светодиод нужного выхода на корпусе контроллера.

    3. Реакция нагрузки: Вы слышите щелчок реле и видите, как включается/выключается свет или другой прибор.

    ### Что дальше?

    Освоив методы проверки выходов, вы готовы к следующему шагу — тестированию входов. В следующем уроке мы разберем, как с помощью Node-RED считывать состояние датчиков, кнопок и других устройств, подключенных ко входам контроллера, и убедиться в их корректной работе.