Установка значения элемента управления массивом VI Labview через ActiveX (с Matlab) - PullRequest
3 голосов
/ 17 февраля 2012

У меня есть Labview VI, который я собираюсь запустить из Matlab через ActiveX.У него есть один аргумент (то есть один Labview control ), который имеет числовой массив типа 1D.Метод, используемый для вызова ВП из Matlab через ActiveX, подробно описан в предыдущем посте .

Я пытаюсь установить значение этого элемента управления массивом в Matlab перед запуском ВП (то естьMatlab передаст аргумент VI, а затем запустит его; никакие действия не должны выполняться вручную через интерфейс Labview).

Получение значения с помощью метода GetControlValue работает нормально (я получаю хороший массив Matlab).Однако, когда я пытаюсь установить значение этого же элемента управления с помощью SetControlValue, используя значение, возвращаемое GetControlValue, значение элемента управления становится пустым (как видно из значения Пустая матрица: 1 на 0 получено Matlab после повторного использования GetControlValue и в Labview, где значения элемента управления становятся неактивными).

Та же процедура отлично работает, когда элемент управления представляет собой одно числовое значение. Что здесь происходит не так?

См. Снимок экрана ниже:

Setting the value of the 'y' 1D array control doesn't work

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

(Источник: 0utlaw на форуме NI).

Полезное решение этой проблемы заключается в использовании Matrix control в Labview.Затем Matlab может передавать обычные массивы, и Labview отображает эти массивы Matlab в матрицу.Работает, как и ожидалось, с двумерными массивами.

0 голосов
/ 19 февраля 2012

Вы можете скомпилировать VI в DLL и вызывать вашу функцию таким образом.Это абстрагирует систему типов LabVIEW и среду ее выполнения.

Не могли бы вы подробнее рассказать о проблеме, которую вы пытаетесь решить?

...