я работал с этим пространством имен
using Ivi.Visa.Interop;
я создаю 2 свойства
//Open up a new resource manager
private static ResourceManager _rm;
//Open a new Formatted IO 488 session
private static FormattedIO488 _instr;
и затем я открываю инструмент
public string OpenInstrument()
{
try
{
//Open up a handle to the instrument with a iTimeOut second timeout
_instr.IO = (IMessage)_rm.Open(instrumentAdress, AccessMode.NO_LOCK, iTimeOut, "");
//Reset the device
_instr.WriteString("*RST", true);
//Check if any error exist
return CheckPSError(_instr) ? "true" : "false";
}
catch (Exception ex)
{
return "Open Instrument exception : " + ex.Message;
}
}
для каждой команды i проверьте, есть ли ошибки, сообщенные прибором
private bool CheckPSError(FormattedIO488 instr)
{
instr.WriteString("SYST:ERR?", true);
string errStr = instr.ReadString();
if (errStr.Contains("No error"))
//If no error, then return
return true;
//If there is an error, read out all of the errors and return them in an exception
else
{
string errStr2 = "";
do
{
instr.WriteString("SYST:ERR?", true);
errStr2 = instr.ReadString();
if (!errStr2.Contains("No error")) errStr = errStr + "\n" + errStr2;
} while (!errStr2.Contains("No error"));
throw new Exception("Exception: Encountered system error(s)\n" + errStr);
}
}