2017-01-26 3 views
1

В моей лаборатории у меня есть стенд, который использует cRIO. С несколькими датчиками подключено 3 cRIO. Моя цель - манипулировать данными датчиков и видеть, как это влияет на другие процессы. Компания, которая установила тестовый стенд, написала очень сложную программу LabView.Как редактировать и получать данные из cRIO?

Я новичок в LabView. Я видел несколько ответов о создании веб-сервисов. Будет ли это полезно для редактирования данных? Инженер говорит, что данные непрерывно впрыскиваются в цикл, поэтому моя программа также должна работать аналогичным образом или полностью отключить другой цикл. Если да, то как мне заняться созданием веб-сервисов для такого масштабного проекта?

Есть ли более простой способ достичь моей цели. Человек посередине между контроллером и дистанционным (?) IO? Какой протокол там работает? Вы рекомендуете какие-либо библиотеки Python для этого?

+0

Чтобы получить конкретную справку, вам нужно будет увидеть некоторые детали вашего кода и/или конфигурации cRIO, но для начала: a) знаете ли вы, что в CIRIO есть код LabVIEW FPGA или он просто запущен механизм сканирования, и b) существует ли код LabVIEW на главном компьютере или все это на cRIO?В условиях кода/конфигурации может быть просто заменить ваши смоделированные данные датчиков на реальные входы, но если вы новичок в LabVIEW, это, вероятно, не идеальный начинающий проект. Я не вижу, как поможет веб-служба, если вы просто не хотите читать некоторые данные из cRIO в свой собственный код. – nekomatic

+0

Если вы еще не прочитали руководство по началу работы с LabVIEW/cRIO http://www.ni.com/pdf/manuals/372596b.pdf, которое может помочь вам разобраться, как настроена ваша система. Очевидно, вы не хотите начинать изменять конфигурацию системы, прежде чем знаете, что делаете, хотя ... – nekomatic

+0

Существует код представления лабораторных работ, который работает на трех FPGA и на главном главном компьютере. Код на главном компьютере, который, как мне кажется, просто создает отображение данных. Интерфейс на главном ПК позволяет редактировать значения после включения чего-то, называемого режимом имитации, но я хочу программно изменить данные. – gyani

ответ

0

Поскольку у вашего существующего приложения есть «режим моделирования», в котором данные, которые вы хотите изменить, можно установить вручную с помощью элементов управления на передней панели LabVIEW, вы можете программно управлять этими элементами управления из другого VI LabVIEW с использованием контрольных ссылок. Следующая LabVIEW фрагмент кода устанавливает значение элемента управления с индексом 0 в целевом VI указанного значения:

Control reference demo - LabVIEW 2014 VI snippet

Мы открываем ссылку на цель VI затем использовать узлы свойств (из палитры Control Application) чтобы вернуть ссылки на переднюю панель этого ВП, ко всем элементам управления на этой панели (в виде массива) и, наконец, записать свойство Value (Signaling) выбранного элемента управления. Для повторных изменений вам нужно только повторить, что последнее свойство записи. Просто закройте ссылку, когда закончите.

Чтобы узнать, какой элемент управления имеет индекс, прочитайте свойство Label.Text для каждого элемента управления в массиве, предоставив вам текст его метки блок-диаграммы - не обязательно такой же, как и его подпись на передней панели.

Если вы предпочитаете делать автоматизацию в Python, вы должны быть в состоянии использовать метод, описанный в this post, используя pywin32 модуль:

import win32com.client 
labview = win32com.client.Dispatch("Labview.Application") 
VI = labview.getvireference(r'C:\path\to\target.vi') 
VI.setcontrolvalue('Numeric','5') 

Это устанавливает значение элемента управления с этикеткой Numeric до 5. Однако код не будет работать, если целевой VI использует события LabVIEW для ответа на изменения контрольных значений, а не на опрос контрольных значений, поскольку он устанавливает Value элемента управления, но не его свойство Value (Signaling). К сожалению, ответ от rolfk на мой question on the NI forum предполагает, что нет способа сделать последнее - вам нужно будет написать промежуточный уровень LabVIEW и как-то отправить данные с Python. Это может использовать интерфейс COM для управления кодом LabVIEW в первом примере выше, если вы опросили value to set (и т. Д.) В цикле.

Если вы хотите выйти за рамки этого, у вас должно быть возможно либо изменить существующее приложение LabVIEW, чтобы вы могли ввести нужные данные, либо, если хотите, полностью заменить его и обработать отправку и получение данных до/от самих cRIO; но это будет слишком широкий вопрос, чтобы ответить без дополнительной информации о том, как система была реализована.

+0

Я пробую это, в настоящее время я могу связаться с VI, но я получаю только значения по умолчанию, а не живые значения. Я скоро поправлюсь. – gyani