Аппаратное обеспечение платформы HI: от датчика до исполнительного механизма
COURSE-16-M02-L03 — Аппаратное обеспечение платформы HI: от датчика до исполнительного механизма
Введение в аппаратную архитектуру HI
В основе любой системы автоматизации на платформе HI лежит контроллер — специализированный промышленный компьютер, который служит мостом между физическим миром и цифровой логикой. В отличие от DIY-решений (таких как Arduino или Raspberry Pi), контроллер HI изначально спроектирован для надежной работы в режиме 24/7, интеграции с профессиональным оборудованием и простого масштабирования.
Этот урок посвящен ключевым аппаратным компонентам экосистемы HI. Мы разберем, как физические входы и выходы контроллера, его процессорные модули и коммуникационные интерфейсы работают вместе для сбора данных, принятия решений и управления объектом. Понимание этих основ является обязательным для любого инженера, планирующего внедрение систем автоматизации.
Компоненты сбора данных: Датчики и универсальные входы
Первоочередная задача любой системы автоматизации — сбор достоверных данных об окружающей среде. За это отвечают датчики, подключенные к входам контроллера.
Контроллер HI оснащен 22 универсальными входами (UI), которые являются его "органами чувств". Их универсальность означает, что каждый вход может быть программно сконфигурирован для работы с различными типами сигналов.
Типы поддерживаемых сигналов и датчиков:- "Сухой контакт" (Dry Contact): Самый простой и надежный тип сигнала. Используется для определения двух состояний: замкнуто или разомкнуто.
* Схема подключения: `WIRING-SENS-001`. Устройство подключается к двум клеммам: `GND` и любому `UI`.
- Датчики температуры 1-Wire: Цифровые датчики, которые могут подключаться на одну шину данных. Каждый датчик имеет уникальный 64-битный адрес.
* Схема подключения: `WIRING-SENS-004`. Подключаются к `GND`, `+V` (питание, если требуется) и `UI` (шина данных).
- Аналоговые датчики (0-10В / 4-20мА): Промышленные датчики, передающие значение в виде уровня напряжения или тока.
* Схема подключения: `WIRING-SENS-011`. Требует подключения к `GND` и `UI`.
💡 Совет: При проектировании всегда закладывайте 2-3 резервных входа для будущего расширения системы. Это стандартная практика, которая сэкономит время и деньги в будущем.
Практический пример: Обработка сигнала с датчика протечки* Используется узел `rpi gpio in` (или аналогичный для работы с GPIO), настроенный на пин, соответствующий `UI-05`.
* Узел отслеживает изменение состояния (от `1` к `0`).
* При срабатывании датчика формируется сообщение по стандартному контракту.
Контракт сообщения для события протечки:{
"value": true,
"source": "leak-sensor-bathroom-01",
"ts": 1678886400000,
"meta": {
"severity": "critical",
"location": "Санузел, 1 этаж"
}
}
Центральный процессорный модуль: Архитектура контроллера HI
"Мозг" системы — это процессорный модуль контроллера. Его архитектура специально разработана для решения задач автоматизации с разными требованиями к надежности.
- Основной процессор (4 ядра / 4 ГБ RAM):
* Среда исполнения: Node-RED. Здесь реализуется основная логика автоматизации: сценарии, интеграции, обработка данных. Это позволяет быстро создавать и отлаживать сложные потоки данных.
* Задачи: Обработка данных с датчиков, связь с облачными сервисами по MQTT, работа с базами данных (MySQL), интеграция по TCP/IP.
- Дополнительный микроконтроллер (ARM32):
* Задачи: Управление системами безопасности (пожарная сигнализация, защита от протечек), логика "safe-state" (перевод системы в безопасное состояние при сбое основного процессора), высокочастотное управление приводами.
- Энергонезависимая память (EEPROM):
* Преимущество: В отличие от SD-карты, EEPROM не подвержена износу от частых циклов перезаписи и гарантирует, что после сбоя питания или перезагрузки контроллер загрузит базовую рабочую конфигурацию.
⚠️ Предупреждение: Логику, отвечающую за безопасность (например, перекрытие воды при протечке), всегда следует дублировать или реализовывать на дополнительном ARM32-микроконтроллере. Это требование стандарта надежности HI.
Компоненты управления: Реле и исполнительные механизмы
Если датчики — это "органы чувств", то исполнительные механизмы — это "руки" системы. Контроллер HI оснащен 22 релейными выходами, способными коммутировать нагрузку до 16А при 250В AC.
Типовые управляемые нагрузки:- Освещение: Включение/выключение и диммирование (через внешние диммеры, управляемые реле).
- Розетки: Отключение неприоритетных потребителей для экономии энергии или в случае аварии.
- Сервоприводы: Управление шаровыми кранами (для перекрытия воды), вентиляционными заслонками.
- Клапаны: Управление клапанами радиаторов отопления, системами полива.
- Двигатели: Управление приводами ворот, штор, жалюзи.
* Узел `mqtt in` подписывается на топик `hi/office/light-main/set`.
* Узел `switch` проверяет payload сообщения (`"ON"` или `"OFF"`).
* В зависимости от команды, узел `rpi gpio out` (или аналогичный) переключает состояние реле `RL-10`.
* После выполнения узел `mqtt out` публикует актуальное состояние в топик `hi/office/light-main/state`.
ASCII-схема потока (`FLOW-CTRL-LIGHT-001`):[mqtt in: hi/office/light-main/set] -> [switch: "ON"/"OFF"] --+--("ON")--> [function: set ON] -> [gpio out: RL-10] -> [mqtt out: .../state]
|
+--("OFF")--> [function: set OFF] -> [gpio out: RL-10] -> [mqtt out: .../state]
Коммуникационные интерфейсы и протоколы
Контроллер HI — это интеграционный хаб, поэтому он оснащен широким набором проводных и беспроводных интерфейсов.
Встроенные интерфейсы:- Ethernet (TCP/IP): Основной интерфейс для подключения к локальной сети и интернету. Используется для доступа к Node-RED, обмена данными по MQTT, Modbus TCP.
- RS-485: Промышленный стандарт для создания надежных проводных шин.
* Применение: Подключение счетчиков электроэнергии, промышленных датчиков, модулей реле, систем вентиляции.
* 🔗 Справочник: `SKILL-MODBUS-PROTOCOLS`.
- CAN (Controller Area Network): Высоконадежная шина, используемая в автомобильной и промышленной автоматизации. Отличается высокой помехоустойчивостью.
- DALI (Digital Addressable Lighting Interface): Стандарт для профессионального управления освещением. Позволяет адресно управлять каждым светильником, диммировать и запрашивать его состояние.
- LoRaWAN: Беспроводная технология для связи на больших расстояниях (километры) с низким энергопотреблением. Идеальна для сбора данных с удаленных объектов (датчики на полях, мониторинг скважин).
- Zigbee / Bluetooth: Популярные протоколы для беспроводных устройств в умном доме (лампочки, розетки, датчики).
- GSM/4G: Модуль для обеспечения резервного канала связи или для работы на объектах без проводного интернета.
Организация питания системы
Надежность системы автоматизации напрямую зависит от качества ее питания.
- Питание контроллера: Контроллер HI питается от источника постоянного тока (DC) напряжением 12-24В.
- Источник питания (PSU): Необходимо использовать качественный промышленный блок питания с запасом по мощности не менее 30%.
- Источник бесперебойного питания (ИБП / UPS): Для критически важных объектов (управление отоплением, системы безопасности) установка ИБП для контроллера и ключевых исполнительных механизмов (например, приводов кранов) является обязательной.
- Питание периферии: Датчики и модули расширения могут питаться как от выделенных выходов контроллера, так и от отдельных блоков питания.
🔗 Стандарт подключения: `WIRING-POWER-001` описывает правила организации питания, заземления и защиты цепей.
---
Практические лаборатории
COURSE-16-M02-LAB05 — Чтение данных с датчика «сухого контакта» и отправка в MQTT
Цель: Научиться подключать простейший датчик типа "сухой контакт" (кнопку) к универсальному входу контроллера, обрабатывать его сигнал в Node-RED и публиковать событие в MQTT в стандартизированном формате. Оборудование:* Создайте новый поток с ID `FLOW-INPUT-DRYCONTACT-001`.
* Добавьте узел `rpi gpio in`, настройте его на отслеживание `UI-10`. Установите `debounce` (защита от дребезга) на `50 мс`.
* Соедините его с узлом `function`.
* В узле `function` напишите код для формирования сообщения по контракту. При нажатии (сигнал `0`) `msg.payload.value` должно стать `true`.
* Соедините узел `function` с узлом `mqtt out`.
* Настройте `mqtt out` на отправку сообщения в топик `hi/practice/button/state`.
// Входящее сообщение от gpio in: msg.payload = 0 или 1
// Нам нужно среагировать только на нажатие (переход в 0)
if (msg.payload == 0) {
msg.payload = {
"value": true,
"source": "practice-button-01",
"ts": Date.now(),
"meta": {
"input": "UI-10"
}
};
node.status({fill:"green", shape:"dot", text:"Pressed at " + new Date().toLocaleTimeString()});
return msg;
}
// Игнорируем отпускание кнопки
return null;
Рубрика оценивания:
- [3 балла] Физическое подключение выполнено аккуратно и соответствует схеме.
- [4 балла] Поток Node-RED создан, при нажатии на кнопку генерируется сообщение.
- [3 балла] Исходящее MQTT-сообщение полностью соответствует заданному JSON-контракту.
COURSE-16-M02-LAB06 — Управление реле по команде из MQTT
Цель: Научиться принимать команды из MQTT и управлять одним из релейных выходов контроллера для включения/выключения нагрузки (светодиода). Оборудование:* Создайте новый поток с ID `FLOW-OUTPUT-RELAY-001`.
* Добавьте узел `mqtt in` и подпишите его на топик `hi/practice/led/set`.
* Соедините его с узлом `switch`, который будет проверять `msg.payload` на строковые значения `"ON"` и `"OFF"`.
* От каждого выхода узла `switch` проведите связь к узлу `rpi gpio out`, настроенному на управление `RL-20`. Для ветки `"ON"` значение должно быть `1`, для `"OFF"` — `0`.
- [3 балла] Физическое подключение выполнено аккуратно, светодиод и резистор подключены правильно.
- [4 балла] Поток Node-RED принимает MQTT-команды и корректно переключает состояние GPIO.
- [3 балла] Система реагирует на команды `"ON"` и `"OFF"` без ошибок, светодиод включается и выключается.
---
Тест для самопроверки
COURSE-16-M02-QUIZ
a) Только для подключения датчиков температуры.
b) Для подключения различных типов датчиков: "сухих контактов", аналоговых, 1-Wire.
c) Только для питания внешних устройств.
d) Для подключения к сети Ethernet.
a) Для ускорения работы веб-интерфейса Node-RED.
b) Для хранения логов и архивов данных.
c) Для выполнения критически важной логики (ПЛК) и обеспечения безопасного состояния.
d) Для работы с беспроводными протоколами Zigbee и LoRaWAN.
a) 5 аналоговых входов, топология "звезда".
b) 1 универсальный вход в режиме 1-Wire, топология "шина".
c) 5 дискретных входов "сухой контакт".
d) Шину RS-485.
a) Диммируемую LED-лампу для управления яркостью.
b) Электрический теплый пол мощностью 4 кВт (18А).
c) Шаровой кран с питанием 220В AC и потреблением 0.1А.
d) Датчик движения с питанием 12В DC.
a) MQTT
b) TCP/IP
c) Modbus RTU (по RS-485)
d) DALI
a) Физическую схему подключения.
b) Стандартизированный формат данных (JSON) в `msg.payload` для обмена между узлами.
c) Лицензионное соглашение на использование Node-RED.
d) Список разрешенных MQTT-топиков.
a) Неисправность процессора контроллера.
b) Неправильная настройка MQTT-брокера.
c) Ошибка в физическом подключении (обрыв провода, неверные клеммы).
d) Недостаточная мощность блока питания.
a) Это требование протокола MQTT.
b) Для подтверждения, что команда была выполнена, и для синхронизации интерфейсов управления.
c) Для замедления работы системы.
d) Для записи логов в EEPROM.
a) GSM-модуль.
b) Источник бесперебойного питания (ИБП).
c) Дополнительный модуль реле.
d) Датчик CO₂.
a) Номер версии прошивки контроллера.
b) Уникальный ID сценария автоматизации.
c) Стандартизированный номер схемы подключения для определенного типа датчика.
d) Код ошибки при сбое оборудования.
(Ответы: 1-b, 2-c, 3-b, 4-c, 5-c, 6-b, 7-c, 8-b, 9-b, 10-c)---
📋 Мини-справочник по диагностике: «Если что-то не работает»
Проблема: Датчик не передает данные в Node-RED.
* [ ] Проверить надежность крепления проводов в клеммах контроллера и датчика.
* [ ] Проверить соответствие подключения схеме (`WIRING-XXX`). Не перепутаны ли `GND`, `+V`, `Data`?
* [ ] Проверить наличие питания на датчике (если требуется внешнее питание).
* [ ] Проверить, что узел ввода (`rpi gpio in`, `modbus-read`) настроен на правильный пин/адрес.
* [ ] Подключить узел `debug` сразу после узла ввода. Поступают ли какие-либо данные?
* [ ] Проверить статус узла. Не горит ли он красным, указывая на ошибку конфигурации?
Проблема: Реле не срабатывает по команде.
* [ ] Слышен ли щелчок реле при отправке команды?
* Да: Проблема в силовой цепи. Проверить подключение нагрузки, наличие напряжения на клемме `C` (общий).
* Нет: Проблема в цепи управления. Переходить к следующему пункту.
* [ ] Подключить узел `debug` к выходу узла, отправляющего команду на GPIO (`rpi gpio out`). Приходит ли на него `1` или `0`?
* [ ] Проверить, что узел `rpi gpio out` настроен на правильный пин, соответствующий нужному реле.
* [ ] Проверить логику потока: доходит ли сообщение от `mqtt in` до узла управления реле? Используйте `debug` на каждом шаге.
Проблема: Контроллер не виден в сети / не отвечает веб-интерфейс Node-RED.
* [ ] Проверить индикаторы на порту Ethernet контроллера и на коммутаторе. Есть ли линк?
* [ ] Проверить, что Ethernet-кабель надежно подключен с обеих сторон.
* [ ] Проверить индикатор питания на контроллере.
* [ ] Попробовать "пропинговать" IP-адрес контроллера с компьютера в той же сети (`ping 192.168.X.X`).
* [ ] Убедиться, что компьютер и контроллер находятся в одной IP-подсети.
* [ ] Перезагрузить контроллер по питанию, если предыдущие шаги не помогли.