Поскольку у вашего существующего приложения есть «режим моделирования», в котором данные, которые вы хотите изменить, можно установить вручную с помощью элементов управления на передней панели LabVIEW, вы можете программно управлять этими элементами управления из другого VI LabVIEW с использованием контрольных ссылок. Следующая LabVIEW фрагмент кода устанавливает значение элемента управления с индексом 0 в целевом VI указанного значения:
Мы открываем ссылку на цель 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; но это будет слишком широкий вопрос, чтобы ответить без дополнительной информации о том, как система была реализована.
Чтобы получить конкретную справку, вам нужно будет увидеть некоторые детали вашего кода и/или конфигурации cRIO, но для начала: a) знаете ли вы, что в CIRIO есть код LabVIEW FPGA или он просто запущен механизм сканирования, и b) существует ли код LabVIEW на главном компьютере или все это на cRIO?В условиях кода/конфигурации может быть просто заменить ваши смоделированные данные датчиков на реальные входы, но если вы новичок в LabVIEW, это, вероятно, не идеальный начинающий проект. Я не вижу, как поможет веб-служба, если вы просто не хотите читать некоторые данные из cRIO в свой собственный код. – nekomatic
Если вы еще не прочитали руководство по началу работы с LabVIEW/cRIO http://www.ni.com/pdf/manuals/372596b.pdf, которое может помочь вам разобраться, как настроена ваша система. Очевидно, вы не хотите начинать изменять конфигурацию системы, прежде чем знаете, что делаете, хотя ... – nekomatic
Существует код представления лабораторных работ, который работает на трех FPGA и на главном главном компьютере. Код на главном компьютере, который, как мне кажется, просто создает отображение данных. Интерфейс на главном ПК позволяет редактировать значения после включения чего-то, называемого режимом имитации, но я хочу программно изменить данные. – gyani