pythonpython-3.xvisagpibpyvisa

pyVISA: Return instrument to local mode programmatically


I am using pyVISA to control some instruments in a GPIB network. When I create a resource manager, all the instruments in my GPIB network enter remote mode, so the front panel displays are locked and do not update. When I close the resource manager, the instruments remain in remote mode.

import visa

rm = visa.ResourceManager()

#Connect to a specific instrument
MyInstrument = rm.open_resource('GPIB0::10::INSTR')

#Do stuff
print(MyInstrument.query("*IDN?"))

#close resource manager
rm.close()

In this particular case I only want to control one instrument in the network, but need the others to be powered on, with front panel displays live.

Is there a way to exclude the "extra" instruments from the resource manager programmatically (don't want to have to disconnect the GPIB cables or switch off GPIB comms manually if I can help it) and/or something like a "go to local" command I can send to either the whole network or a specific instrument, so the front panels are live once the instrument in question has been configured as needed?

UPDATE:

After some experimentation and further reading, I found the following returns my instrument to local mode:

#Return single instrument to local with 
#GTL command (VI_GPIB_REN_ADDRESS_GTL = 6)
MyInstrument.control_ren(6)

#Return all instruments in network to local by 
#deasserting remote enable line (VI_GPIB_REN_DEASSERT = 0)
MyInstrument.control_ren(0)

The values 0 and 6 are constants set in pyVISA (http://pyvisa.readthedocs.io/en/stable/_modules/pyvisa/constants.html) Seems I should be able to specify a variable name here instead of the constant so there is obviously something else I am not understanding, but at least I have a working solution now.


Solution

  • There is a call available to control the remote/local state of the device.

    GPIBInstrument.control_ren(mode)
    

    Controls the state of the GPIB Remote Enable (REN) interface line, and optionally the remote/local state of the device.

    Corresponds to viGpibControlREN function of the VISA library.

    (Source)