Отправка сигнала / текста с Linux-машины в Labview в окне

В настоящее время я разрабатываю программу сбора данных для своего эксперимента на C ++ с машины на базе Linux (Ubuntu), у меня также есть много виртуальных машин в Labview, которые запрограммированы в Windows для управления инструментами эксперимента (двигатели, генератор сигналов ...) . Цель состоит в том, чтобы установить двустороннюю связь между двумя компьютерами, Linux спросит, какие виртуальные устройства должны быть выполнены, и когда это будет завершено, отправит сигнал обратно на машину Linux. Мои вопросы:

  1. Могу ли я отправить сигнал или команду в Labview в Windows из Linux (Терминал, и это может быть реализовано в моем коде C) и наоборот? Как?
  2. TCP Labview может быть решением? Или я должен попытаться настроить взаимодействие между ПК через последовательный порт (который легко настроить физически)?

person Le Hoang Nguyen    schedule 19.07.2016    source источник


Ответы (2)


Лучший (а также самый простой) способ - реализовать связь клиент-сервер на основе TCP (TCP гарантирует, что данные будут передаваться без потерь. При использовании других механизмов, таких как UDP или последовательный порт, вы всегда должны убедиться, что ваши команды принимаются правильно).

На сайте LabVIEW у вас будет TCP-прослушиватель (сервер), который будет прослушивать команды с Linux-машины на указанном вами порту.

После приема команды код LabVIEW может выполнять работу и отвечать через одно и то же TCP-соединение.

Это очень хорошая статья по вашему вопросу: https://decibel.ni.com/content/docs/DOC-9131

person Khachik Sahakyan    schedule 19.07.2016

Есть несколько вариантов обмена данными между C ++ и LabVIEW. (Как и Linux / Windows).

Если вы хотите запустить LabVIEW на вашем компьютере с Linux, вы можете использовать несколько коммуникационных архитектур LabVIEW. Вот технический документ NI. http://www.ni.com/white-paper/12079/en/ Предоставляет такие варианты, как общая переменная, сетевые потоки, веб-службы, TCP / IP.

Вы также можете взять свой код LabVIEW, скомпилировать его в DLL и вызвать его из C ++, чтобы использовать некоторые из вышеперечисленных функций. В противном случае вам, вероятно, придется перейти на маршрут TCP / IP или веб-службу.

Я бы рекомендовал использовать TCP / IP, это довольно просто реализовать с обеих сторон. Если вы более знакомы с последовательными протоколами, вы также можете использовать их для связи.

person Michael Ward    schedule 19.07.2016