我想在Matlab中通过ActiveX执行Labview VI。
我使用以下命令:
e=actxserver('LabVIEW.Application');
vipath='C:\DATA\Labview\test.vi';
vi=invoke(e,'GetVIReference',vipath);
vi.Run;
这样可以正常工作,看到VI在其前面板上执行。 但是,Matlab一直等到VI终止。 我希望Labview无声地运行VI,而不告诉Matlab(通过ActiveX)等待。
如何在不保持ActiveX忙的情况下执行VI?有标准的方法吗? (我假设应该有,考虑到多任务导向的Labview是什么 - 这不是Matlab标准形式的情况)。
答案 0 :(得分:1)
你可以:
答案 1 :(得分:1)
我终于找到了答案(感谢NI论坛上的smercurio_fc):
在后台运行VI(不等到完成):
vi.Run(1);
运行它并等待其执行完成:
vi.Run(0);
或
vi.Run;
在使用 vi.Run(1)的后台执行模式下,可以使用 vi.Abort 中断执行。在执行期间,可以使用vi.SetControlValue和vi.GetControlValue更改输入和输出值。
例如,要在执行期间获取数字控制'z'的值:
vi.GetControlValue( 'Z')