Matlab 如何通过Active X更改LabVIEW控制值(在已经运行的VI中)?
我正在尝试在我的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中
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: