'fclose()' causes matlab to hang, am I missing a toolbox?

4 views (last 30 days)
I am running a simple instrument control script using the visa command:
dpo4104 = visa('NI', 'USB0::0x0699::0x0401::C021522::0::INSTR');
fopen(dpo4104);
query(dpo4104,'*IDN?');
fclose(dpo4104);
which seems to execute fine, but the fclose function causes MATLAB to hang. I can't ctrl-c the process, and I can't do anything to resolve the problem except killing my MATLAB process and restarting.
The fclose() function works in other cases, as I can pass in an undefined object identifier and it will throw an error.
Please help!
  1 Comment
Adam
Adam on 7 Aug 2014
This may not be relevant as I am not familiar with what query does, but due to the way file buffering and access generally works the time spent doing the file access will usually show up as the fclose line as it does the heavy work there.
So when I have run profile in the past my e.g. fread instruction takes next to no time, but fclose takes a surprisingly long time. In my case it was really the file reading that took the time, it is just that the time taken to do this is assigned to the fclose line of code.
I'm sure there are others with far more expertise in the details of file buffering though and when work actually happens on different file access instructions.

Sign in to comment.

Answers (3)

Vinod
Vinod on 20 May 2014
Have you tried this with a different instrument (other than your DPO4104)? Also, what version of NI VISA are you using?

Liz Dreyer
Liz Dreyer on 28 Jul 2014
Did you solve this problem?
I am having a similiar issue. fclose() is causing MATLAB to hang when I try to close a VISA-USB object. It works when I communicate with a serial object.
Thanks!

Walter Roberson
Walter Roberson on 21 Nov 2016

Categories

Find more on Instrument Control Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!