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

时间:2013-11-28 14:44:08

标签: 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中的'z'值更改为10 但实际上VI并未读取该值且 VI应用程序未响应此值

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

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

2 个答案:

答案 0 :(得分:2)

没有看到代码,这是不可能的,但这里有几个猜测:

您是否正在使用值更改事件阅读控件?此事件仅通过更改UI或通过调用控件的Value(Signaling)属性来触发。我不确定你是否可以从ActiveX接口访问这个属性,但你可以尝试获取对控件的引用(虽然我不知道如何从ActiveX接口完成。也许VI有一个方法?) 。如果不能,最好的方法是更改​​VI以轮询控件。您还可以使用另一个循环,只要控件发生更改就会触发事件,但如果您这样做,我建议您使用单独的控件来传递该值。

另一种可能性 - 在修改它之前从控制器的终端读取值,并且您的代码使用线路上的值,而不是控件的值。

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

答案 1 :(得分:0)

知道了!控制变量'z'在事件结构中,并且它被设置为'z'的值变化。所以,我暂时把它删除了,效果很好。

但是,我不知道如何使用事件结构来控制它使用Matlab active x

相关问题