How can a Labview VI be run as a background task through an ActiveX call ? (without keeping ActiveX busy)

a 夏天 提交于 2019-12-02 04:03:13

You can either:

  • Launch LabVIEW.exe as a process, specifying VI as argument (search help for this). There is for sure a way to tell Matlab to not wait for end of process execution
  • Run the VI dynamically, using VI server, inside a launcher VI, and have Matlab call the launcher VI. The latter will return immediately after calling your VI, and Matlab will not wait for your main VI to end.

I finally found the answer (thanks to smercurio_fc on the NI forum):

To run the VI in the background (without waiting until done):
vi.Run(1);

To run it and wait until its execution is complete:
vi.Run(0);
or
vi.Run;

In the background execution mode with vi.Run(1), execution can be interrupted with vi.Abort. During execution, input and output values can be changed with vi.SetControlValue and vi.GetControlValue.
For instance, to get the value of a numerical control 'z' during execution:
vi.GetControlValue('z')

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!