Наиболее гибкая архитектура будет заключаться в использовании некоторой комбинации TCP / IP, UDP и веб-сервисов в зависимости от типа связи, который вам необходим.
Это также дает вам гибкость в перемещении различных частей кода ввода / вывода между cRIO (или другим устройством) и хост-ПК, поскольку одни и те же протоколы будут работать независимо от того, подключены ли вы к другому устройству или на одной и той же машине.
Опции достаточно подробно описаны в главе 4 Руководства для разработчиков NI CompactRIO , но вкратце:
- TCP / IP для сообщений, команд или потоковых данных, где данные не могут быть потеряны
- UDP для широковещательных обновлений, где низкая задержка важнее, чем 100% целостность
- Веб-сервисы для доступа к текущим значениям (тегам) - я бы сказал, что они также подходят для коротких сообщений или команд.
В LabVIEW есть примеры для всего этого, и вы сможете без особых проблем реализовать соответствующий конец Python-сообщения, как только вы поймете основы - и аналогичным образом замените MATLAB или что-то еще для кода LabVIEW в будущее (если вы действительно должны).
Имейте в виду, что то, что вы можете делать с веб-службами, сильно изменилось в LabVIEW за последние несколько лет, поэтому, если вы посмотрите на какие-либо примеры в Интернете, убедитесь, что они в курсе последних возможностей.
Кроме того, я сам не имею опыта работы с этим, но вы можете изучить ZeroMQ , в котором доступны привязки для Python , LabVIEW и многих других языки.