通过ActiveX设置Labview VI的数组控件的值(使用Matlab)

时间:2012-02-17 11:05:50

标签: matlab activex labview

我有一个Labview VI,我打算通过ActiveX从Matlab运行。它有一个参数(即一个Labview 控件),它是1D数字数组的类型。
用于通过ActiveX从Matlab调用VI的方法在previous post中详细说明。

我试图在运行VI之前在Matlab中设置此数组控件的值(也就是说,Matlab会将参数传递给VI然后运行它;不会通过Labview界面手动执行任何操作)。

通过GetControlValue方法获取值可以正常工作(我得到了一个很好的Matlab数组)。但是,当我尝试使用SetControlValue返回的值GetControlValue设置同一控件的值时,控件的值变为空(从值空矩阵:1中可见)在再次使用GetControlValue之后由Matlab获得的-by-0 ,在Labview中,控件的值变为灰色)。

当控件是单个数值时,相同的步骤可以正常工作。
这到底出了什么问题?

请参阅下面的屏幕截图:

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

2 个答案:

答案 0 :(得分:0)

您可以将VI编译为DLL并以这种方式调用您的函数。这抽象出了LabVIEW的类型系统及其COM运行时。

您能提供有关您要解决的问题的更多详细信息吗?

答案 1 :(得分:0)

(来源:NI论坛上的0utlaw)。

此问题的有用解决方法是在Labview中使用 Matrix控件。 然后Matlab可以传递通常的数组,Labview将这些Matlab数组映射到矩阵。也可以按预期使用2D数组。