Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

При анализе данных датчиков типичный рабочий процесс включает сбор сырых данных, конвертацию в пригодный формат и затем использование мощных аналитических возможностей MATLAB. Однако этап конвертации данных может быть трудоемким. Благодаря недавней интеграции MathWorks, MATLAB теперь может напрямую подписываться на данные и публиковать их через DDS — де-факто промежуточное ПО для коммуникаций IIoT. Это позволяет разработчикам прототипировать и тестировать аналитику в реальном времени с минимальными накладными расходами.

Начало работы

Перед началом убедитесь, что установлены MATLAB и RTI Connext DDS. В примерах использовались следующие версии:

Посмотрите видео установки, чтобы проверить правильность конфигурации всех компонентов: Installation Video.

Инициализация

После установки инициализируйте DDS в MATLAB следующими шагами:

Импорт IDL-файла автоматически генерирует соответствующие .m файлы для MATLAB. Например, для импорта ShapeType.idl:

> DDS.import('ShapeType.idl','matlab','f')

После импорта тип данных доступен для создания DataReader/DataWriter. Создайте Domain Participant:

> dp = DDS.DomainParticipant;

Подключите писателей и читателей для типа ShapeType в топиках Triangle и Square:

> dp.addWriter('ShapeType','Triangle') > dp.addReader('ShapeType','Square')

Подписка на данные в Shapes Demo

RTI Shapes Demo предоставляет предварительно настроенные топики для Square, Circle и Triangle, все основанные на ShapeType. Используйте демо для создания подписчика на топик Triangle; оставьте настройки QoS по умолчанию.

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

Публикация данных из MATLAB

С настроенным DataWriter опубликуйте зеленый треугольник:

%% Создание экземпляра ShapeType
myData = ShapeType;
myData.x = int32(75);
myData.y = int32(100);
myData.shapesize = int32(50);
myData.color = 'GREEN';
%% Запись данных в DDS
dp.write(myData);

Shapes Demo отображает единственный зеленый треугольник, как показано ниже:

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

Другие паттерны публикации:

%% Зеленые треугольники в линию на 1 Гц
for i=1:10
    myData.x = int32(20 + 10*i);
    myData.y = int32(40 + 10*i);
    dp.write(myData);
    pause(1);
end
%% Зеленые треугольники в окружность на 20 Гц
for i=1:1000
    angle = 10*pi * (i/200);
    myData.x = int32(100 + (50 * cos(angle)));
    myData.y = int32(100 + (50 * sin(angle)));
    myData.shapesize = int32(40);
    myData.color = 'GREEN';
    dp.write(myData);
    pause(0.05);
end

Демо визуализирует эти паттерны как показано:

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

Публикация данных в Shapes Demo

В Shapes Demo создайте издателя для топика Square. Выберите цвет (например, оранжевый) и оставьте QoS по умолчанию. Демо будет транслировать позицию X,Y квадрата каждые 30 мс.

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

Подписка на данные в MATLAB

Используйте DataReader Square для потребления данных из Shapes Demo. Прочитайте десять сэмплов с интервалом в одну секунду:

%% Чтение данных
for i=1:10
    dp.read()
    pause(1);
end

MATLAB выводит десять сообщений, похожих на скриншот ниже:

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

Продвинутый сценарий: трансформация и визуализация

После установки двунаправленной связи, преобразуйте полученные данные квадрата, поменяв местами X и Y координаты, переопубликуйте как красный треугольник и постройте график X-позиций во времени. Скрипт MATLAB ниже демонстрирует этот рабочий процесс:

%% Выделение массива для 100 сэмплов
xArray = zeros(1,100);
%% Сбор, трансформация и перепубликация
for i=1:100
    [myData, status] = dp.read();
    if ~isempty(myData)
        x = myData(1).x;
        y = myData(1).y;
        xArray(i) = x;
        yArray(i) = y;
        myData(1).y = x;
        myData(1).x = y;
        myData(1).color = 'RED';
        dp.write(myData(1));
    end
    pause(0.05);
end
%% Построение X-позиции
t = 1:100;
plot(t,xArray);
legend('xPos');
xlabel('Time');
ylabel('Position');
title('X Positions');

Shapes Demo теперь показывает красный треугольник, зеркалящий оранжевый квадрат, в то время как MATLAB отображает график X-позиций:

Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS Использование живых IoT-данных в MATLAB с интеграцией RTI Connext DDS

Интеграция DDS с MATLAB оптимизирует прием, внедрение и анализ данных. Хотя эта демо использует простое приложение Shapes, тот же подход работает для любого DDS-ориентированного IoT-источника данных. Для более глубокого понимания интеграции MATLAB с DDS посетите страницу MATLAB DDS Integration на сайте MathWorks. Для изучения Connext DDS обратитесь к ресурсам разработчика здесь.

Интернет вещей

  1. MQTT против DDS: выбор правильного M2M протокола для IoT
  2. Уроки Hannover Messe: 5 проверенных стратегий использования IT для промышленных операций
  3. Обеспечение соответствия данных в Интернете вещей
  4. Готово ли ваше производство к IoT? Практическое руководство
  5. Демократизация Интернета вещей: Next-Gen Satellite IoT приносит универсальную, доступную связность
  6. Раскрытие ценности данных IoT: безопасные стратегии на основе инсайтов
  7. Превращение данных IoT в бизнес-ценность: практическое руководство
  8. Использование IoT-данных для производственного совершенства
  9. Ведущие облачные платформы ИоТ-аналитики на 2026 год
  10. Типы данных в MATLAB: Полное руководство с примерами