Есть ли способ, которым я могу разработать Python GUI для управления ВП LabVIEW? - PullRequest
1 голос
/ 04 апреля 2019

Я настраиваю программное обеспечение, которое будет построено на Python3, для тестовых стендов, и в настоящее время эти наборы используют оборудование National Instruments cRIO и другое оборудование NI. Система работает на компьютере Windows.

Для управления этим оборудованием нам понадобятся VI и subVI, построенные на LabVIEW. Я знаю, что LabVIEW поставляется с собственным пользовательским интерфейсом, но я все же хотел бы разработать свой графический интерфейс на Python, потому что не все установки в будущем будут использовать аппаратное обеспечение NI или LabVIEW. В будущем могут появиться плагины MATLAB.

Я видел онлайн-уроки, в которых можно использовать функции python в ВП LabVIEW, но есть ли для меня какая-то точка отсчета, где я могу использовать ВП LabVIEW и иметь GUI, построенный на Python?

Заранее благодарю за помощь.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Я согласен, что лучшим выбором, вероятно, является прямая реализация связи на основе TCP / IP, но если вы хотите что-то более простое (особенно если ваше общение выполнено в стиле «Вот набор инструкций для запуска ВП, запустите VI, а затем дайте мне результаты ") вы можете посмотреть на

  • Инструмент Wiresmith CLI (пакет VI в выпусках на GitHub в настоящее время новее, чем доступный через VIPM), или
  • Инструмент NI CLI, установленный по умолчанию в LabVIEW 2018, но доступный с поддержкой версий с 2014 года Ссылки для скачивания , Документация .

В частности, инструмент Wiresmith использует TCP / IP для подключения к указанному вами ВП (или exe), а затем может записывать сообщения обратно на консоль, используя простой ВП.

Недавно я использовал это с SCons (система сборки на основе Python) и нашел его довольно полезным, но это, вероятно, намного более простой интерфейс, чем система полного тестирования.

2 голосов
/ 05 апреля 2019

Наиболее гибкая архитектура будет заключаться в использовании некоторой комбинации TCP / IP, UDP и веб-сервисов в зависимости от типа связи, который вам необходим. Это также дает вам гибкость в перемещении различных частей кода ввода / вывода между cRIO (или другим устройством) и хост-ПК, поскольку одни и те же протоколы будут работать независимо от того, подключены ли вы к другому устройству или на одной и той же машине.

Опции достаточно подробно описаны в главе 4 Руководства для разработчиков NI CompactRIO , но вкратце:

  • TCP / IP для сообщений, команд или потоковых данных, где данные не могут быть потеряны
  • UDP для широковещательных обновлений, где низкая задержка важнее, чем 100% целостность
  • Веб-сервисы для доступа к текущим значениям (тегам) - я бы сказал, что они также подходят для коротких сообщений или команд.

В LabVIEW есть примеры для всего этого, и вы сможете без особых проблем реализовать соответствующий конец Python-сообщения, как только вы поймете основы - и аналогичным образом замените MATLAB или что-то еще для кода LabVIEW в будущее (если вы действительно должны).

Имейте в виду, что то, что вы можете делать с веб-службами, сильно изменилось в LabVIEW за последние несколько лет, поэтому, если вы посмотрите на какие-либо примеры в Интернете, убедитесь, что они в курсе последних возможностей.

Кроме того, я сам не имею опыта работы с этим, но вы можете изучить ZeroMQ , в котором доступны привязки для Python , LabVIEW и многих других языки.

...