LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Odd behavior of timed loops

Hi,
 
In this Light Combat Aircraft application ,i am using timed loops in RT which is interfaced with windows through TCP Read/Write.
 
The results will be updated normally over the windows side only if  server timed loop run in tandem with other loops
 
(all are independent timed loops) in RT.The behavior of loops in RT  are most of the time looks same,but some times behaving strangely ,
 
in the sense, these timed loops takes more time to finish its iteration or sometimes all loops looks hanging.So synchronization
 
is lost between the Windows and RT.Sometimes Windows loops are also running strangely than the normal.I am using functional globals
 
for transferring data between loops.Kindly go through the program struts attached.
 
Note: I am accessing different PXI cards across different loops(AO,DIO,AI cards).SImultaneous access of the same  card across different timed loops are protected though Semaphores .
 
 
 
jeyaseelan P
AutoTEC Systems Pvt Ltd,
Bangalore-46
0 Kudos
Message 1 of 5
(3,262 Views)

I dont find any such behavior when two different windows PCs are used for this application.That is when PXI RT is replaced by

another windows PC

 

jeyaseelan P
AutoTEC Systems Pvt Ltd,
Bangalore-46
0 Kudos
Message 2 of 5
(3,256 Views)

Hello,

Which version of LabVIEW are you using?

Thank you,

Emilie

Applications Engineer

0 Kudos
Message 3 of 5
(3,153 Views)
Hi
 
I am using LabView 8.0.Now the timed loops are running as expected after i synchronized all these loops
 
by attaching a single arror in cluster to the error in of all the timed loops. But the functional globals are not
 
transferring data correctly most of the time.Sometimes it is transferring.That is,after  writing  a boolean
 
true to the func global  in one loop, that  func global not reading  true in the other timed loop after its
 
updation.Is it anything to do with re-entrancy?If so how should i overcome this?.
 
I followed the below mentioned procedure after creating Func global.(Single while loop with uninitialized
 
shift register for holding data for write,read,Init operation)
 
In VI properties->Execution ->subroutine
 
Right click the Vi,selected "Skip if subVi is busy".
 
Thanks
jeyaseelan P
AutoTEC Systems Pvt Ltd,
Bangalore-46
0 Kudos
Message 4 of 5
(3,090 Views)
Hello,
One detail you may want to consider:
Make sure your global variables are set as nonreenttrant. The behavoir you had previously described leads me to believe that this perhaps is not the case. This may be the reason why your timed loops may have worked only when your started them all at the same time; in other words, you had managed to syncronize them.
 
Emilie Kopp | Applications Engineer | National Instruments
0 Kudos
Message 5 of 5
(3,044 Views)