Node-RED в автоматизации
Open-source визуальная платформа программирования потоков данных на Node.js. Применяется в IIoT, малой автоматизации, прототипах. Разработка через drag-and-drop соединения узлов (nodes). Поддерживает Modbus, MQTT, OPC UA, REST, базы данных.
Node-RED — визуальный программный инструмент для создания потоков обработки данных. Разработан IBM в 2013 как внутренний инструмент, с 2016 — open-source проект OpenJS Foundation. Применяется в IIoT, автоматизации, умных домах, прототипировании.
Как это работает
Разработка проекта — визуальная. На полотне (flow) размещаются узлы (nodes), соединяются связями:
- Input nodes — получение данных: MQTT subscribe, Modbus read, HTTP endpoint, OPC UA read, serial port
- Processing nodes — обработка: function (JavaScript код), switch, change, template, calculation
- Output nodes — отправка: MQTT publish, Modbus write, HTTP request, SQL insert, email, Telegram
Результат — исполняемый flow, запускаемый на Node.js runtime.
Применение в автоматизации
IIoT шлюзы
Node-RED часто используется как IoT-шлюз на промышленных мини-ПК (Raspberry Pi, Advantech UNO, Siemens IOT2050):
- Чтение данных с ПЛК по Modbus TCP
- Преобразование в JSON
- Отправка в облако по MQTT или HTTPS
- Локальное хранение в SQLite при разрыве связи
Малая автоматизация
- Простая логика для небольших объектов (сарай, теплица, малая котельная)
- Интеграция разнородных устройств (Modbus + API погоды + Telegram)
- Диспетчеризация с нестандартными протоколами
Прототипы и MVP
- Быстрая разработка прототипа SCADA/HMI (за часы, не дни)
- Проверка идеи до написания серьёзного кода
- Обучение программированию без синтаксиса
Пример flow
Задача: читать температуру с датчика Modbus и слать в Telegram при превышении 80°C.
Flow из 4 узлов:
- Modbus Read (каждые 10 секунд, регистр 0x3000)
- Function (пересчёт в °C, проверка на >80)
- Switch (блокировать если <80)
- Telegram sender (отправка сообщения)
Готово за 10 минут без строчки кода (кроме function узла с 3 строками).
Протоколы (через модули из npm)
- node-red-contrib-modbus — Modbus RTU/TCP
- node-red-contrib-opcua — OPC UA client/server
- node-red-contrib-mqtt — MQTT (встроенно)
- node-red-contrib-s7 — Siemens S7 PLC
- node-red-contrib-ethernet-ip — Allen-Bradley EtherNet/IP
- Сотни других для специфических задач
Отличия от SCADA
Node-RED — НЕ SCADA. Это инструмент для:
- Flow данных (ETL, трансформация)
- Простой логики
- Интеграции устройств
У Node-RED нет (или слабо развито):
- Полноценной мнемосхемы (есть Dashboard, но ограниченный)
- Alarm management с иерархией
- Исторических трендов (есть, но примитивные)
- Многопользовательского доступа с ролями
- Redundancy серверов
Для реального SCADA — Node-RED не замена. Для IoT-шлюза, прототипа, малых проектов — отличный инструмент.
В промышленности
- Siemens — встроен в контроллеры SIMATIC IOT2050 как опция
- Advantech — на WISE-PaaS Edge
- Промышленные Raspberry Pi — стандартное решение
Производитель: OpenJS Foundation (ex-IBM), open-source
Частые вопросы
Можно ли на Node-RED сделать полноценную SCADA?
Для малых проектов (до 100 тегов, 1-2 оператора) — да, с модулем node-red-dashboard. Для реальной SCADA (сотни-тысячи тегов, несколько операторов, иерархия тревог) — нет. Не хватает alarm management, redundancy, многопользовательского доступа с ролями, нормальных трендов. Node-RED — для flow и интеграции, не для полноценной SCADA. Используйте связку: Node-RED как шлюз (сбор данных) + SCADA (визуализация и управление).Безопасно ли использовать Node-RED в промышленности?
Для внутренних (не критичных) задач — безопасно, если грамотно развёрнут: за firewall, с аутентификацией, с регулярными обновлениями. Для критичных объектов (нефтегаз, энергетика КИИ) — не применяется по следующим причинам: нет сертификации по ФСТЭК, зависит от npm-экосистемы (уязвимости в сторонних модулях), open-source без ответственности разработчика. На КИИ-объектах используются только сертифицированные SCADA.
Источники
- Node-RED Documentation — OpenJS Foundation