How do I close an open instrument handle following an error?
조회 수: 7 (최근 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.
댓글 수: 0
채택된 답변
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!