NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Calling VI's from Remote System using TestStand

Hi,

I am trying to call a remote vi's present in PXI RT Controller from my host pc using teststand using Specify Module->Advanced Tab options. I have placed all the vi's on the RT system which i am calling from the remote system. Whereas as when i run my teststand sequence from the host pc it gives a error telling "Model entry point single point could not be exected" sometimes.

I have gone the manual "using labview with teststand" appendix A calling labview VI's on Remote Systems. The VI which i am trying to call from Remote Sytem is an which invokes the hardware like Initilizing,Self Test and close the instument handle,it calls many other sub vi's on the remote system.

It gives many errors when i try to run my sequence on my host, i am not able to understand what may be the problem.

I am attaching list of errors i have faced while execution of my sequence.

Kindly help me out in this regard.

Thanks in advance.

-Anil
Anil-B'lore
0 Kudos
Message 1 of 8
(4,417 Views)
Anil,
By looking at the errors you got, TestStand cannot communicate with the PXI RT Controller. If you have LabVIEW installed in your test machine, can LabVIEW communicate with the PXI Controller? Does the PXI Controller has the TCP/IP Protocal on? Does it allow your test machine to communicate with it (VI Server: TCP/IP Access has the IP address of your test machine or it has an '*')?

I also see that you get the error message "VIs of same name already in memory...". You mentioned that you placed all the test VIs on the RT system. In the Specify Module->Advanced Tab, do you specify a Remove VI Path? Typically, this error occurs when a Remote VI Path is specified; if a VI with the same name is already loaded in memory in the RT system and its full path does not match the specify Remote VI Path in the advance options dialog, TestStand will give the error you are seeing. If you know for sure that the test VIs will be in memory when TestStand runs your tests, you can just specify the VI name on the Remote VI Path. TestStand will not check for full path. If will just assume it is in memory.

Regards,
Jose
Message 2 of 8
(4,402 Views)
HI Jose,

Thanks for your reply. For your better understanding of my system i have attached the ATE Outline.bmp of my system settings,the pxi rt controller present in my ATE can communicate with the RT system without any problem. YES the PXI contrller has got TCP/IP protocol on it. YES the test machine can communicate with the RT controller with out any problem. the vi server->TCP/IP access has set to * and also the ip address of the RT controller. The very common error msg i get is "model entry point Single Pass could not be executed" which i have attached as "error.bmp" and i have also attached my specify module and advanced setting snaps for your understanding.

The VI's which i am calling from teststand does hardware initilizing and selftest,suppose let us assume that i am calling a VI called Init.vi i have copied the vi to the RT controller to the desired path whereas this vi again calls multiple sub vi's whereas i am calling only the main vi i.e Init.vi Is this creating any problem ??

I am attaching my sequence file,1256.llb for your better understanding. Kindly look into it and let me know where i am going wrong.

Thanks in advance.

-Anil
Anil-B'lore
0 Kudos
Message 3 of 8
(4,380 Views)
Thank you for sending your test VIs and sequence. It made finding the problem easier.
By looking at the files you sent, you are using TestStand 3.0 and LabVIEW 7.0. There is problem with running 7.0 VIs on a remote system from TestStand 3.0. TestStand 3.0 can only run 7 (or 😎 remote VIs on a remote system per session.
Each TestStand LabVIEW step opens a unique reference to the remote VI it needs to run. Even if the same VI is called from multiple steps, each step has its own unique reference to the remote VI. After opening 7 remote VI references, LabVIEW gives an error that it cannot communicate with the Real-Time system. Unloading all modules from TestStand does not fix the problem. Your test VI makes 12 remote VI calls and that's why you are seeing a problem. You can verify this is the problem you are seeing by modifying your test sequence and only make 3 or 4 remote VI calls.
Unfortunately, this problem was not caught before TestStand 3.0 and LabVIEW 7.0 were released. This problem has been fixed in LabVIEW 7.1 and TestStand 3.1. The fix in LabVIEW 7.1 allows TestStand 3.0 to work as expected. The fix in TestStand 3.1 allows it to work with LabVIEW 7.0.
It is unfortunate that the only fix to the problem you are seeing is to upgrade to TestStand 3.1 or LabVIEW 7.1.

Regards,
Jose
Message 4 of 8
(4,360 Views)
Hi Jose,

Thanks for your prompt reply. I limited my sequence to only 4 lines, my sequence ran twice without giving any error the 3rd time it pops up a error msg. As per your conclusion its correct.

The better option would be upgrade to TestStand 3.1,I will upgrade to TestStand 3.1 and i will come back to you in this regard.

I have 1 more query, How will it call the Sub VI's present in the test V's. In my Initilize SW1 test step when u open the block diagarm of this VI there are another 3 VI's how will these vi will be executed when i call Initilize.VI i.e i have not copied these vi's to RT system , how will it find these VI's at the time of execution??

-Anil
Anil-B'lore
0 Kudos
Message 5 of 8
(4,345 Views)
If you specify a Remove VI Path, all the SubVIs need to be on the remote system.

If the Remote VI Path is empty, then TestStand downloads the test VI specified in the "Edit LabVIEW VI Call" dialog including all its subVIs. When TestStand downloads VIs to a remote system running LabVIEW Real-Time, the VIs are not saved to disk. They only reside in memory.

One thing to note is that TestStand does not download DLLs. If you test VI uses a DLL, the DLL must be already present on the remote system before the test VI is loaded by TestStand. To download DLLs, you can use the new FTP step type shipped with TestStand 3.1.

I hope this answers your question.

Regards,
Jose
Message 6 of 8
(4,329 Views)
Hi Jose,

In my case i have specified the remote vi path but whereas i have not placed all the sub vi's on the remote system. Instead Of placing the vi's separtely can we place a .llb itself to the rt system ? Will the sub vi's be searched and loaded automatically when we call the main vi ?? Is it possible to give a llb path instead of vi path in "Edit LabVIEW VI Call" ?? If so how will the path looks like ? Oh 🙂 is this is also one of the reason for not executing the remote vi's(not placing the sub vi's) ?? I dont know i am not sure about this.

Is there any detailed manual on remote vi's using teststand , i have gone through Appendix A of "Using LabVIEW with TestStand" but i feel its very limited. If you do have any kindly forwared to me.

Regards,

-Anil
Anil-B'lore
0 Kudos
Message 7 of 8
(4,316 Views)
Hi Anil,
You can call VIs inside an llb. The easiest way to make sure all the subVIs are found is to package your top level VI with all its subVIs into an LLB file.
The llb will look like a directory in the Edit LabVIEW VI Call dialog. For example, the path of a VI called Test.vi inside an llb called TestVIs.llb will look like C:\ANIL\TestVIs.llb\Test.vi.

If you only copy the top level VI to the RT system and don't copy its subVIs, the top level VI will not be loaded because it is not able to find its subVIs. You can either download the VI by leaving blank the Remote VI Path or you can copy all the VIs to the RT system.

We don't have a detailed manual on how to call remote VIs using TestStand. The only thing we have is the "Using LabVIEW with TestStand". However, if you need more help, feel free to call our support line or post to this forum.

Regards,
Jose
0 Kudos
Message 8 of 8
(4,268 Views)