How do I close an open instrument handle following an error?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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.
0 commentaires
Réponse acceptée
Rik
le 21 Mai 2024
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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Test and Measurement dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!