Node-RED, инструмент с открытым исходным кодом, основанный на потоковом программировании, предоставляет разработчикам гибкий подход к визуальному программированию, позволяя IOTМаршрутизатор EG Edge Computing Gateway легко подключаться к различным источникам данных для их обработки и преобразования. EG Edge Computing Gateway способен собирать и анализировать данные в режиме реального времени на границе, где они генерируются, что снижает требования к пропускной способности и повышает эффективность обработки данных. Он также может собирать данные по различным протоколам (например, Modbus, MQTT, OPC UA и т. д.) и выполнять необходимое преобразование и хранение данных.
I. Основные функции пограничного вычислительного шлюза EG
EG Edge Computing Gateway играет роль среднего уровня сбора и обработки данных в системе и гибко обрабатывает данные от множества датчиков и устройств для фильтрации и предварительного анализа в режиме реального времени. EG Edge Computing Gateway имеет следующие функции:
Преобразование протокола: Поддержка протоколов передачи данных между различными устройствами, таких как Modbus, OPC UA, MQTT и др.
Локальная обработка и анализ: Обеспечивает вычислительную мощность для фильтрации, преобразования и простого анализа данных.
Хранение и передача данных: Передает обработанные данные по сети в базу данных в облаке или на локальном сервере.
II. Механизм работы Node-RED
Node-RED предоставляет редактор потоков на основе браузера, который позволяет пользователям перетаскивать узлы для создания потоков обработки данных. Каждый узел имеет входные и выходные характеристики и способен выполнять определенные задачи по обработке данных. Node-RED имеет богатую поддержку плагинов, таких как Modbus, MQTT, OPC UA и т. д., что делает его способным интегрировать множество источников данных.
III. Сбор и обработка данных
Процесс референции: регулярно собирать данные с ведомых устройств через шлюз EG, форматировать собранные данные в формат, распознаваемый базой данных MySQL, и загружать в собственную базу данных MySQL пользователя. В качестве примера возьмем сбор данных о ведомых устройствах Modbus RTU, процесс работы выглядит следующим образом:
1. Подключитесь к базе данных MySQL
Сначала убедитесь, что установлен узел MySQL, затем в редакторе Node-RED добавьте узел MySQL и настройте параметры подключения к базе данных, включая хост, порт, имя пользователя, пароль и имя базы данных.
Используйте узел MySQL для настройки параметров подключения к базе данных MySQL пользователя, конфигурация будет завершена и развернута, а индикация connected будет означать, что подключение успешно.
2. Сбор данных о рабах
Использование Modbus RTU для сбора данных
Настройте адрес и порт узла Modbus и укажите регистры данных для сбора.
Создайте процесс сбора данных для подключения узла Modbus к узлу MySQL. Настройте узел таймера для периодического запуска задачи сбора данных, чтобы обеспечить точность данных в реальном времени.
3. Форматирование данных
Когда данные загружаются в базу данных MySQL, они должны быть отформатированы в правильном SQL-запросе в соответствии с требованиями MySQL. Для форматирования данных используйте узел вычисления функций. Формат данных, которые необходимо преобразовать, выглядит следующим образом:
Формат выходных данных узла Modbus | Описание | Формат MySQL SQL для загрузки данных |
{ "temp": 31.0, "hum": 45.5 } | Преобразует данные объекта, выводимые узлом Modbus слева, в SQL-запрос, требуемый MySQL справа. | INSERT INTO my_table (temp, hum) VALUES (25.55, 45.5); |
Код образца:
var data = msg.payloadvar sql = `INSERT INTO my_table (temp, hum) VALUES(${data.temp},${data.hum});`msg.topic = sqlreturn msg;
4. Загрузка данных
После завершения форматирования данных соедините узел вычисления функций и узел MySQL и нажмите на узел инъекции, чтобы выполнить сбор и загрузку данных. При успешном тестировании можно настроить узел инъекции на периодическое выполнение, чтобы обеспечить сбор и загрузку данных в базу данных MySQL через регулярные промежутки времени.
Пограничный вычислительный шлюз EG собирает данные через регулярные промежутки времени и преобразует их в форматы, поддерживаемые MySQL. Этот метод позволяет обрабатывать в реальном времени и хранить в долгосрочной перспективе большие объемы данных полевых устройств. Это повышает эффективность обработки данных и может служить основой для последующего анализа данных и принятия решений. Внедрение пограничных вычислений позволяет выполнять первичную обработку данных в непосредственной близости от источника данных, снижая зависимость от облачных вычислений и уменьшая задержку и стоимость передачи данных.
Примечание: Если вам нужно получить данные из базы данных MySQL, вы также можете загрузить узел MySQL, передав в свойство msg.topic запрос на получение данных с помощью SQL-запроса.