Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何通过Active X更改LabVIEW控制值(在已经运行的VI中)?_Matlab_Activex_Labview - Fatal编程技术网

Matlab 如何通过Active X更改LabVIEW控制值(在已经运行的VI中)?

Matlab 如何通过Active X更改LabVIEW控制值(在已经运行的VI中)?,matlab,activex,labview,Matlab,Activex,Labview,我正在尝试在我的VI中设置一个控制值(它已经在运行) 我使用以下命令: e=actxserver('LabVIEW.Application'); vipath='C:\DATA\Labview\test.vi'; vi=invoke(e,'GetVIReference',vipath); % my control parameter is z which is DBL (double precision) vi.SetControlValue('z',10) 一切似乎都很好我可以看到VI中

我正在尝试在我的VI中设置一个控制值(它已经在运行)

我使用以下命令:

e=actxserver('LabVIEW.Application');
vipath='C:\DATA\Labview\test.vi';
vi=invoke(e,'GetVIReference',vipath); 
% my control parameter is z which is DBL (double precision)
vi.SetControlValue('z',10) 
一切似乎都很好我可以看到VI中的“z”值变为10,但实际上VI没有读取该值,VI应用程序没有响应该值


VI是由其他人开发的第三方应用程序。不幸的是,我没有特权在这个论坛上发布它的图片(我需要10分)


我试图从Matlab控制变量“z”。“z”是.dll文件的输入。请注意,我可以通过VI中的前面板控制来实现这一点,但不能像前面描述的那样使用Matlab。

如果没有看到代码,就无法判断,但这里有几个猜测:

是否使用值更改事件读取控件?此事件仅由UI中的更改或通过调用控件的Value(Signaling)属性触发。我不确定您是否可以从ActiveX接口访问此属性,但您可以尝试获取控件的引用(尽管我也不知道如何从ActiveX接口访问此属性。可能VI有一个方法?)。如果不能,最好的方法可能是更改VI以轮询控件。您还可以有另一个循环,它将在控件更改时触发事件,但是如果您这样做,我建议您有一个单独的控件来传递该值

另一种可能性-在修改控件之前,从控件的终端读取该值,并且代码使用导线上的值,而不是控件中的值


如果没有帮助,请发布代码。

明白了!控制变量“z”在事件结构中,并且它被设置为“z”的值更改。所以,我只是暂时移除了它,它工作得很好


但是,我不知道如何使用Matlab active x使用事件结构来控制它。VI是由其他人开发的第三方应用程序。不幸的是,我没有特权在这个论坛上发布它的图片(我需要10分),我试图从Matlab控制变量“z”。“z”是.dll文件的输入。请注意,我可以通过VI中的前面板控制来实现这一点,但不能像前面所述使用Matlab。您应该能够将以下LabVIEW代码移植到Matlab: