07-09-2014 11:20 PM
Hi,
I have a VI (Clocks.vi) that I use to generate various sinewaves out of my PXI chassis. This program is located in the PXI folder in my project (otherwise I get an error like 'ressource missing' or equivalent when I try to run it).
I also have various top level VIs located in the computer folder in my project.
In one of them (Locking Interface.vi), I try to start Clocks.vi asynchronously. I believe I followed the steps described in the help, however it seems that LV starts a clone of Clocks.vi that doesn't have any effect. If I try to change the sinewaves (amplitude, frequency...) from the front pannel that pops up, nothing happens. But if I double click Clocks.vi in the project window, a new (identical) front pannel pops up that does work as it should.
I've also tried to locate Locking Interface.vi in the PXI folder in the project but then none of the VIs that I call asynchronously (including Clocks.vi) pop up at all. (No error message either - and I made sure that the VI preferences still state 'open front pannel when called').
What is the problem? How should I fix it?
Thanks.
07-10-2014 12:33 AM
07-10-2014 01:12 AM
Hi Mike,
Chassis: PXIe-1062Q
Controller: PXIe-8133
Clocks: PXI-5404 (2 units)
FPGA: PXI-7852R (4 units)
Do you need any other information? (I'm self taught in labview programming and know virtually nothing about the hardware...)
Thanks.
07-10-2014 08:07 AM
Well to start, due to the way your code written there is no way to tell what the problem is because you haven't connected any of the error clusters or provided any way to display errors that occur.
Mike...
07-13-2014 08:43 PM
Hi Mike,
Right, I use to have them connected but then decided to clear my front pannel of all those error clusters when everything seemed to work a while ago. I realised the bug just now. I reconnected them but this did not give me more insight. It really just looks like my top level VI (located on the computer) opens a clone of Clocks.vi on the computer instead of running it on the PXI chassis (where it is located in my project). As a result, Clocks.vi doesn't work and the full error message is:
------
Insufficient location information or the device or resource is not present in the system.
If the resource descriptor is an IVI name, it must match the entry in the IVI Configuration Store in a case sensitive manner.
------
which is the same as what I get when I locate Clocks.vi on the computer and try to run it manually.
Is there a way to start a VI asynchronously from the computer but making sure it runs on the PXI chassis?
Thanks.
07-13-2014 10:59 PM
07-14-2014 01:27 AM
Hi,
"The procedure is to first insure that the VI you are wanting to run on the remote computer is on that computer. "
How do I ensure that? Is placing that VI in the PXI folder in the LV project enough?
"Next, when you open the application reference, you specify the IP address of that remote computer"
Ok this is new to me. I tried to do that but I now have an error when trying to open an application reference:
-----
Insufficient location information or the device or resource is not present in the system.
If the resource descriptor is an IVI name, it must match the entry in the IVI Configuration Store in a case sensitive manner.
-----
I did wire the IP address of my PXI (as it appears in the LV project).
However I did not wire any 'Port number or service name' since I have now idea what that is and hoped that the default value would work. I tried to read the help about it but it is far too jargony and beyond my almost inexistant knowledge about network connectivity for my understanding.
Is there a quick and easy fix for that problem or do I need to learn the basics of network protocols / jargon to make it work? Do you know where I can find information about that written for absolute beginners?
Thanks.
07-14-2014 07:12 AM
I'm assuming you have Windows on the PXI controller. If this is the case, then you need to treat it like a normal computer. I highly recommend making an executable that the controller can run. You can then remotely tell the controller to run that executable.
I would also make a communication scheme to talk over TCP/IP so that your PC and the controller can communicate. The STM is a great library for this.
07-14-2014 12:26 PM
It sounds like you might need some training on realtime applications and how they interact with the rest of the world.
In terms, of the call process, there are examples that show the whole process, but basically the device to which you are wanting to connect has an IP address. in addition all applications utilizing the network interface on that device has a different port number. Some port numbers are reserved (like 80 or 8080 for the HTTP protocol, or 21 for FTP) others are more open. The default port number for LV is 3363. When creating an executable you can define the port that the application will use to listen for incoming connections.
To get this part working, you might want to experiment with connectivity between two PCs and then go to the RT system.
So for what you need, LV needs to be running on the remote computer -- which means you need to have an executable built and deployed to the system. The RT tutorials will explain how to do that.
Mike...
PS: Note that if there is a DNS server on the network, you can also use the machine name to address the device instead of an IP address.
07-15-2014 01:05 AM
Thanks, I'll have a look at those tutorials.