10-27-2011 09:56 AM
TestStand has the option to "Run VI on a Remote Computer" under LabVIEW Advanced Settings. My understanding is the VI is run under the "Main Application Instance" if no project path is provided.
If the Remote Computer is running a LabVIEW executable (using the LabVIEW Run-Time Engine), is it possible to Run a VI on the Remote Computer within the executable?
I attempted to select the "Always Run VI in LabVIEW Run-Time Engine" but this did not appear to run under the executable namespace. I am aware that VI server can be used to communicate with the remote computer executable. However, if TestStand was capable of calling a VI within an EXE this would eliminate the need to create VI server wrapper functions.
Any advice is appreciated. Thanks!
Solved! Go to Solution.
10-28-2011 04:57 PM
Hi LVB,
I am not sure if I understand your question. If your program is coded to call a subVi, then when you compile it into an application and deploy it, as long as you include the subVi being called as well as all other dependencies, your LabVIEW executable should call a Vi.
If you are referring to changing the Vi that your executable is calling dynamically, I would recommend the use of a DLL over an executable. This way you can configure inputs and outputs and have, for instance, an input or function into your DLL be a filepath to the Vi that you want to call. Please let me know if I have addressed your questions.
Regards,
Jackie
10-28-2011
07:43 PM
- last edited on
05-15-2025
04:43 PM
by
Content Cleaner
Jackie,
Another computer (server) is running a LabVIEW executable under the LabVIEW Run-Time Engine. I would like to know if it is possible to access and run one of the VIs inside of the executable using NI TestStand. See the articel below for a description on applicaiton instances:
Working with Application Instances
The knowledgebase article below is similar to my goal with the following exceptions:
- The LabVIEW Development Environment is run under NI TestStand
- The LabVIEW Run-Time Environment is on a remote computer
How Can I Communicate Between the LabVIEW Run-Time Environment and the Development Environment on th...
10-31-2011
03:53 PM
- last edited on
05-15-2025
04:44 PM
by
Content Cleaner
Hi LVB,
I believe the fundamental question is if you can access a Vi within an Executable, which for the reasons listed in this article, is not possible regardless of the program you are using:
Accessing VIs Inside of a LabVIEW Executable or DLL in LabVIEW 8.2 and Later
The ability to access Vis within an executable was changed from LV 8.2 and later because of code security and Microsoft Vista compatibility. This is explained in depth in this article. Please let me know if I have misunderstood your question.
Good luck!
Jackie
10-31-2011
07:59 PM
- last edited on
05-15-2025
04:44 PM
by
Content Cleaner
@Jackie_B wrote:
Hi LVB,
I believe the fundamental question is if you can access a Vi within an Executable, which for the reasons listed in this article, is not possible regardless of the program you are using:
Accessing VIs Inside of a LabVIEW Executable or DLL in LabVIEW 8.2 and Later
The ability to access Vis within an executable was changed from LV 8.2 and later because of code security and Microsoft Vista compatibility. This is explained in depth in this article. Please let me know if I have misunderstood your question.
Good luck!
Jackie
Jackie, it IS possible to access a VI within an LabVIEW executable. This connection is made through VI Server (TCP) or ActiveX to with the EXE.
The article you reference states that pre LabVIEW 8.2, it was not necessary to enable ActiveX or VI Server to achieve this. LabVIEW 8.2 and beyond requires the developer to explicitly enable remote access.
I am trying to make VI calls to an executable that will be running VI server and exporting the VIs I wish to call. If you look at the LabVIEW Advanced Settings for the LabVIEW module, you can notice that the Remote Host, Project Path, and VI Path are required. I believe this is for the VI server calls that will be made. How does TestStand under the hood make the "Run VI on Remote Computer" calls? How do I configure TestStand to make these calls to an EXE running VI server?
11-03-2011
09:05 AM
- last edited on
05-15-2025
04:46 PM
by
Content Cleaner
Hi LVB,
Teststand will simply call a LabVIEW module, what the module does depends on the program written in LabVIEW. Therefore, to access an executable remotely from LabVIEW, please refer to the following articles and examples:
Using VI Server to Pass Data Between a VI and a LabVIEW Executable
Once you have successfully configured your LabVIEW program to communicate to a remote executable, all you will need to do to make this successful in Teststand is to drop a LabVIEW Action Step onto your Sequence and point it to where the Vi is stored.
Regards,
Jackie
11-14-2011 12:23 PM
Hi LVB,
I have been looking into this a bit more and I believe I have the solution you are looking for. First off, I will be updating the article How Can I Communicate Between the LabVIEW Run-Time Environment and the Development Environment on th..., as the string you must include in your executable's INI file is no longer the following:
[name_of_exe]
server.tcp.enabled=True
server.tcp.access="+localhost"
server.tcp.port=3362
but needs to look like the following, which can be copied directly from LabVIEW's ini file (found at C:\Program Files\National Instruments\LabVIEW\LabVIEW.ini):
[name_of_exe]
server.tcp.enabled=True
server.tcp.acl="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
server.tcp.port=3362
Once you configure your executable file, you can call the Vi within the executable directly by using a code module. Drop an action step into Teststand, go to Advanced Settings and configure the settings to run your Vi remotely. Input just the Vi name into your Remote Vi Path, as it will throw an error if you use the full path. For instance, if I had a Vi named cubed.vi, I would input this into the Remote Vi Path instead of C:\Users\Admin\Desktop\cubed.vi. You should then be able to call this successfully. Please let me know if you have any further questions. I hope that this is helpful for you.
Regards,
Jackie
11-14-2011 03:21 PM
Hi LVB,
There is a better way to achieve the TCP/IP functionality in the executable than what I reported. You can avoid editing the ini file altogether by right clicking on My Computer in your project and selecting Properties. You can then select Vi Server and configure the server for TCP/IP communication. When you build your executable for this project, it will automatically configure the INI file. Please let me know if you have any further questions!
Regards,
Jackie
02-16-2012 02:16 AM
Hi
We are making a project where RTOS is using for RT program. We using PXI-1052 + RTD and Thermocouple SCXI module for Datalogging and control the actuater and motor. Now I want to create .EXE and Installer to run the same Host VI in Different PC where LabVIEW is not installed.
Can we create .EXE or installer which can log the data from different sensors and update it in .exe VIs?
Regards,
Srikant
AE
02-16-2012 06:29 AM
This doesn't sound like a TestStand question, just a LabVIEW question. Re-post in the LabVIEW forum.
If your different PC system has no LabVIEW, not even the RTE, then you can include as part of the Installer to installing the LabVIEW RTE which you will need to run your application.