LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Timers do and communication not working on RT system on PXI chassis

I am having problems with my application when I "Install it to a real-time target". When I run the program in debug mode everything works fine.

I have two programs. One runs on a real-time OS on a PXI chassis Controller (Client). The other runs on my Windows 7 PC (host).

When I run the Client application in debug mode (Run->Debug Project) everything works fine. When I run the Client application in the release mode (Run->Install Program to Real-time execution target) things do not work.

 

It appears that the timers do do start. The Client application does receive communication sent from the Host application but is not able to send communication from the Client to the Host.

 

I have been fighting this for a while and have tried to get help through emailing the support but have not had much luck that way. I think I need a phone call with an application engineer.

0 Kudos
Message 1 of 5
(2,623 Views)

Could you please clarify a couple of things. Are you working in LabVIEW? I don't know of a "Run" menu in LabVIEW, nor a "Debug Project" option anywhere. You run a real-time VI in debug mode by clicking the Run arrow for that VI.

 

What do you mean by "timers do not start"?

 

If you are working in LabVIEW, are you using any property nodes on the block diagram of the real-time VI? That can cause problems.

 

Can you share your code, preferably as a zip file including the project and all associated VIs?

0 Kudos
Message 2 of 5
(2,620 Views)

It is not LabView. I am developing software with LabWindows\CVI. I've seemed to narrow things down a bit. When I send a message to my application on the PXI Controller it is  calling a function PostDeferredCall(...). The deferred function is never called. Not sure why it works when I am running the code in Debug Mode but not when I install it on the target. In my while loop in my RTmain() function it looks like this:

 while (!RTIsShuttingDown () && !gDone)
 {
  /* Your code. */

  /* Sleep for some amount of time to give the desired loop rate */
  /* and to allow lower priority threads to run.                 */
  SleepUS (1000);
  ProcessSystemEvents ();
        

 }

 

I thought the deferred function was supposed to be called in the Main thread? Not sure where it is hanging up yet.

 

0 Kudos
Message 3 of 5
(2,588 Views)

@DPearce wrote:

It is not LabView. I am developing software with LabWindows\CVI.


Then you will probably have better luck posting in the LabWindows/CVI forum. This is the LabVIEW area.

0 Kudos
Message 4 of 5
(2,585 Views)
0 Kudos
Message 5 of 5
(2,582 Views)