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

2 次查看(过去 30 天)
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 个评论
Adam
Adam 2014-8-7
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.

请先登录,再进行评论。

回答(3 个)

Vinod
Vinod 2014-5-20
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 2014-7-28
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 2016-11-21

类别

Help CenterFile Exchange 中查找有关 Instrument Control Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by