12-16-2009 01:41 PM
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
12-18-2009 04:33 PM
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.
12-18-2009 06:51 PM
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
12-21-2009 11:00 AM
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.