Ускорьте Time-to-Market с профессиональными инструментами RTI Connext DDS
Осталось всего две недели до демо.
У нас был единственный шанс с высокими ставками доставить полностью функциональную систему управления микросетью, которая должна:
- Работать на процессорах Intel и ARM
- Целевые платформы Linux и Windows
- Включать приложения на C, C++, Java, Scala, Lua и LabVIEW
- Коммуницировать с легаси-оборудованием через протоколы ModBus и DNP3
- Выполнять управление в реальном времени, выполняя все вышеперечисленные требования
В этом посте я поделюсь реальными вызовами, с которыми мы столкнулись, и как инструменты, входящие в RTI Connext DDS Professional, помогли нам решить проблемы интеграции за пару дней. Я выделю частые проблемы и конкретные инструменты RTI, решившие каждую, и предоставлю ссылки на поддерживающие видео и статьи для тех, кто хочет глубже погрузиться. Моя цель — дать вам практическую отправную точку для применения инструментов RTI к ускорению вашей DDS-разработки.
Большое демо
Это была первая работающая демонстрация Open Field Message Bus (OpenFMB) Smart Grid Interoperability Panel — нового подхода к пограничному управлению устройствами сети с использованием IoT-технологий вроде DDS.
Ниже блок-схема системы, показывающая аппаратные архитектуры, ОС и языки программирования:
По мере подключения каждого участника мы столкнулись с рядом вызовов. Следующие разделы описывают каждую проблему и инструменты, которые мы использовали для решения. Сканируйте заголовки, чтобы увидеть, сталкивались ли вы с похожими проблемами в вашей DDS-системе, затем кликайте по ссылкам, чтобы изучить новые техники устранения неполадок. Подумайте, как бы вы диагностировали эти проблемы без упомянутых инструментов.
Проблема: Проблемы сетевой конфигурации
Инструменты: RTI DDS PingКоманда Oak Ridge National Labs строила LabVIEW GUI, служащую основным дисплеем. Их ноутбук не видел данных от любых сетевых клиентов. Сначала мы проверили, что машина в той же подсети — классический шаг «проверь основы». В то время как стандартная утилита ping подтверждает базовую достижимость, она не верифицирует, что порты DDS обнаружения открыты. Утилита rtiddsping делает именно это, и за секунды раскрыла, что файрвол гос. ноутбука блокировал DDS трафик обнаружения. Для подробного руководства по базовой диагностике см. этот пост сообщества.
Проблема: Публикует ли мое приложение данные?
Инструменты: Spy, Admin ConsoleЧастый вопрос среди вендоров, новичков в DDS — ведет ли себя их приложение правильно: публикует ли оно данные в ожидаемых интервалах и имеют ли данные смысл? Мы использовали RTI DDS Spy, легковесного подписчика, который может фильтровать по конкретным типам и топикам и печатать каждый полученный сэмпл. Каждый вендор выполнял быструю проверку с Spy сразу после запуска своего приложения.
Если тот же топик обновляется множеством издателей, переключатель «-showSampleIdentity» раскрывает, какой издатель отправил последний сэмпл.
здесь.
Проблема: Несоответствие типов данных
Инструменты: Admin Console, MonitorОдин вендор сообщил, что после предыдущего теста они видели данные от другого приложения, но во время демо данные исчезли. Admin Console сразу идентифицировал несоответствие типа данных — два топика с одинаковым именем, но определенные разными IDL структурами. Такие несоответствия трудно обнаружить, особенно для больших, сложных типов. Admin Console использует данно-ориентированную природу DDS для интроспекции типов данных, понятных каждому участнику, представляя как упрощенный вид, так и вид «эквивалентный IDL» для побочного сравнения. Это бесценно, когда у вас нет исходного IDL для каждого приложения.
В этом случае вендор использовал устаревший IDL из старого GitHub коммита. После получения последних файлов, запуск rtiddsgen сгенерировал обновленный тип-специфичный код, и быстрая перекомпиляция восстановила полную совместимость.
Проблема: QoS несоответствие
Инструменты: Admin Console, MonitorПомимо обнаружения, QoS несоответствия — самая частая проблема интеграции для DDS пользователей. С таким количеством ручек для настройки, как обеспечить совместимость? Проект OpenFMB столкнулся с несколькими QoS несоответствиями изначально. Admin Console быстро их обнаруживает и подсвечивает конфликтующие настройки. Вы можете кликнуть имя QoS, чтобы перейти прямо к документации. QoS информация, обменянная во время обнаружения, позволяет Admin Console автоматически флагировать несоответствия.
Проблема: Верификация производительности системы
Инструменты: Admin Console, MonitorПока Spy дает сырой текстовый вывод, визуализация данных во времени дает более ясную картину поведения системы. Встроенная визуализация данных Admin Console помогла нам быстро оценить общую производительность системы и прокрутить исторические данные для трассировки текущего состояния. Для короткого вводного видео см. это видео, и для глубокого погружения смотрите это видео.
Проблема: Тюнинг производительности
Инструменты: Monitor, Admin ConsoleДля тюнинга производительности Monitor — инструмент выбора. Он работает со специальной версией библиотек DDS, которые периодически публикуют метрики реального времени производительности из вашего приложения. Отладочные библиотеки минимально инвазивны, и Monitor агрегирует данные для анализа.
С Monitor вы можете инспектировать:
- Статистику передачи и приема
- Пропущенные дедлайны
- Cache high-water marks
- QoS несоответствия
- Конфликты типов данных
- Потерянные или отклоненные сэмплы
- Потерю живости
Многие QoS настройки не афишируются во время обнаружения, потому что они влияют на локальное управление ресурсами и тюнинг производительности. Monitor позволяет их изучить. Смотрите это вводное видео для быстрого тура.
Проблема: Трансформация данных на лету
Инструменты: Prototyper с Lua, DDS Toolkit для LabVIEWНам нужен был большой GUI для отображения состояния микросети в реальном времени. Oak Ridge National Labs предложило построить GUI в LabVIEW. DDS Toolkit для LabVIEW позволяет извлекать DDS данные и использовать их в LabVIEW VIs. Однако Toolkit не поддерживает массивы последовательностей, которые являются частью модели данных OpenFMB. Нам нужно было быстрое решение, способное читать эти сложные типы.
Prototyper с Lua, новая фича в Connext DDS Pro 5.2, позволяет быстро создавать DDS-приложения с минимальным кодированием: определяйте топики и domain participants в XML, добавляйте простой Lua-скрипт, и вы работаете в DDS домене за минуты. (См. блог Джанпьера о Prototyper.)
Того вечера я написал Lua-скрипт, инструктирующий Prototyper читать сложные DDS топики, содержащие массивы последовательностей, и перепубликовать их в уплощенный топик для LabVIEW GUI. Я протестировал скрипт офлайн, используя ранее записанные живые данные, что привело к следующему разделу.
Проблема: Разрозненная разработка
Инструменты: Record, Replay, Prototyper с LuaOpenFMB демо строили географически разбросан
Интернет вещей
- Построение надежной системы мониторинга временных рядов: интеграция RTI Connext DDS с Telegraf и InfluxDB
- Connext DDS в промышленном IoT: 5 ключевых инсайтов для надежности, безопасности и масштабируемости
- Воспроизведение ROS2 LiDAR данных с RTI Recording Service и DDS
- Запуск AUTOSAR Adaptive Platform 18.03 с поддержкой DDS — прорыв для автономных автомобилей
- Использование данных в Интернете надежности: стратегии эффективного управления
- GDPR-комплаенс: почему сопротивление бесполезно и как защитить компанию
- Повысьте зрелость S&OP, данных и систем планирования для будущего успеха
- Устранение производственных узких мест: 5 проверенных инструментов эффективности
- Создайте свою интегрированную операционную платформу с Nexus Apps
- Ускорение производственной линии: 3 проверенных инструмента для скорости и эффективности