How do I close an open instrument handle following an error?

4 次查看(过去 30 天)
I'm using MATLAB 2018a on Windows 10 Enterprise.
I'm writing code to talk to and read from instruments that are on a LAN interface.
I use commands similar to:
instrOfInterest_handle = visa('agilent', sprintf('TCPIP0::%s::inst0::INSTR, IpAddressStruct.instrOfInterest)
to find the instrument handle, and then commands similar to:
fopen(instrOfInterest_handle);
to open communication with the instrument.
I normally close the communication with a command similar to
fclose(instrOfInterest_handle);
However, since I'm writing / developing the code, sometimes I make mistakes and the program I'm developing halts in an error state, before running the command to close the communcations.
When that happens, I'm unable to re-open the communication channel to the instrument. Instead, I get an error similar to:
Warning: : Unsuccessful open: The specified configuration:
TCPIP0::IpAddressOfInterest::inst0::INSTR is not available
Use INSTRHWINFO for a list of available configurations. Use INSTRFIND to determine if other instrument objects are connected to the requested instrument.
If I was getting an error similar to this when trying to write to a file, I'd run the
fclose('all');
command. However, there doesn't appear to be anything similar when writing to instruments.
The only way I've figured out to be able to re-open the communications channel to the instrument is to kill off MATLAB and then restart it.
I figure there has to be a better way; I just don't know what that better way is.

采纳的回答

Rik
Rik 2024-5-21
You may be interested in oncleanup. When a variable goes out of scope, that function can run code.
Alternatively you can put all code between open and close in a separate function. Then you can easily put that in a try catch block.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Instrument Connection and Communication 的更多信息

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by