LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

gpib write or read sometimes hogs cpu

Hi Matt,

So, I did the following:

1.  Open srs_filter_setparms.vi, select File->Save as..., select "Open additional copy" and called the new one srs_filter_setparms_copy.vi.  Copy is not part of the .lvproj or .lvlib.  In my test_sr640.vi, I replaced srs_filter_setparms.vi with the copy.  Run test_sr640.vi. 

Result:  runs fine, no hangs, with complex vi in memory. 

2. Replace srs_filter_setparms.vi icons in the complex vi with the copy.  Then run test_sr640.vi again. 

Result:  hangs.

3. From scratch, create new vi's for srs_filter_setparms.vi, sr640_visa_init.vi and sr640_visa_close.vi.  Used no copy/paste, remade everything from scratch from the pallette.  Then replaced the vi's in test_sr640.vi with the new ones.  Run test_sr640.vi.

Result: runs fine, no hangs, complex vi still in memory.

4. Replace init, setparms and close icons in the comples vi with the created from scratch vi's.  Then run test_sr640.vi  again.

Result:  hangs.

 

Arrgh.

 

 

Hope this helps.

Bob  

0 Kudos
Message 21 of 24
(780 Views)

Hi Bob,

Try these two things while I investigate further on my end. Can you try lowering the priority on the top level VI to normal and see if that affects the way the subvi executes. Also, try changing the VISA calls in the subvi to synchronous from asynchronous.

Matt
Applications Engineer
National Instruments
0 Kudos
Message 22 of 24
(760 Views)

Matt,

Either changing the execution priority of the big vi OR selecting synchronous reads and writes seems to fix the problem.  I no longer remember why the priority was set high on the big vi.  Perhaps if I leave it at normal I will eventually find  out via whatever change in performance occurs.  I see no downside to using the synchronous setting for the reads and writes, since there is nothing else important going on while the sr640 is being programmed.

 

I didn't even realize this asynchronous/synchronous setting existed, nor do I understand how to use asynchronous read/write.  Can you point me at some documentation that tells me what the difference is to LabView and/or the performance of my application?

 

Thanks for finding this!

 

Bob 

0 Kudos
Message 23 of 24
(751 Views)

Hi Bob,

Glad to hear! Take a look at this Knowledgebase that has a lot of good information about the difference between asynchronous and synchronous VISA calls.

Matt
Applications Engineer
National Instruments
0 Kudos
Message 24 of 24
(729 Views)