def __init__(self, name, address, reset=False): logging.info(__name__ + ' : Initializing instrument Newport ESP100') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) # Add functions self.add_function('init_default') self.add_function('define_home') self.add_function('move_1000mu_p') self.add_function('move_0100mu_p') self.add_function('move_0010mu_p') self.add_function('move_0001mu_p') self.add_function('move_1000mu_n') self.add_function('move_0100mu_n') self.add_function('move_0010mu_n') self.add_function('move_0001mu_n') # Add parameters self.add_parameter('position', tags=['sweep'], flags=Instrument.FLAG_GETSET, units='mm', minval=-300, maxval=300, type=types.FloatType) self.add_parameter('ismoving', flags=Instrument.FLAG_GET, type=types.StringType) #self.init_default() if reset: self.init_default()
def __init__(self, name, address): ''' Initializes the LeCroy 44Xi. Input: name (string) : name of the instrument address (string) : VICP address Output: None ''' logging.debug(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self._values = {} # Add parameters self.add_parameter('timebase', type=types.FloatType, flags=Instrument.FLAG_GETSET) self.add_parameter('vertical', type=types.FloatType, flags=Instrument.FLAG_GETSET, channels=(1, 4), channel_prefix='ch%d_') self.add_parameter('msize', type=types.FloatType, flags=Instrument.FLAG_GETSET) # Make Load/Delete Waveform functions for each channel for ch in range(1, 5): self._add_save_data_func(ch) self.get_all()
def __init__(self, name, address, ctr_addr=1, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address, baud_rate=57600, data_bits=8, stop_bits=1, parity=visa.no_parity, term_chars='\r\n') self._ctr_addr = ctr_addr self.add_parameter('position', flags=Instrument.FLAG_GETSET, type=types.FloatType, units='mm') self.add_parameter('state', flags=Instrument.FLAG_GET, type=types.StringType) self.add_parameter('velocity', flags=Instrument.FLAG_GETSET, type=types.FloatType, units='mm/s') # Functions self.add_function('stop_motion') self.add_function('set_state_ready') self.add_function('get_error') self.add_function('go_home') self.add_function('go_left') self.add_function('go_right') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the Agilent_E8257D, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=False ''' logging.info(__name__ + ' : Initializing instrument Agilent_E8257D') Instrument.__init__(self, name, tags=['physical']) # Add some global constants self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('power', flags=Instrument.FLAG_GETSET, units='dBm', minval=-135, maxval=16, type=types.FloatType) self.add_parameter('phase', flags=Instrument.FLAG_GETSET, units='rad', minval=-numpy.pi, maxval=numpy.pi, type=types.FloatType) self.add_parameter('frequency', flags=Instrument.FLAG_GETSET, units='Hz', minval=1e5, maxval=20e9, type=types.FloatType) self.add_parameter('status', flags=Instrument.FLAG_GETSET, type=types.StringType) self.add_function('reset') self.add_function ('get_all') if (reset): self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self._channels = ('A', 'B', 'C', 'D') self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('kelvin', flags=Instrument.FLAG_GET, type=types.FloatType, channels=self._channels, units='K') self.add_parameter('sensor', flags=Instrument.FLAG_GET, type=types.FloatType, channels=self._channels, units='') self.add_parameter('heater_range', flags=Instrument.FLAG_GETSET, type=types.IntType, format_map={ 1: '25 W', 2: '2.5 W', 3: '250 mW', 4: '25 mW', 5: '2.5 mW', }) self.add_parameter('heater_output', flags=Instrument.FLAG_GET, type=types.FloatType, units='%') self.add_parameter('mode', flags=Instrument.FLAG_GETSET, type=types.IntType, format_map={1: 'Local', 2: 'Remote', 3: 'Remote, local lock'}) self.add_parameter('pid', flags=Instrument.FLAG_GETSET, type=types.TupleType, channels=(1,4)) self.add_parameter('setpoint', flags=Instrument.FLAG_GETSET, type=types.FloatType, channels=(1,4)) self.add_function('local') self.add_function('remote') if reset: self.reset() else: self.get_all()
def __init__(self, name, address): ''' Initializes the RS_Step_Attenuator, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address Output: None ''' logging.info(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) # Add some global constants self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('attenuation', flags=Instrument.FLAG_SET, units='dB', minval=1, maxval=139, type=types.IntType) self.set_attenuation(139)
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address, baud_rate=115200, data_bits=8, stop_bits=1, parity=visa.no_parity, term_chars='\r\n') self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('power', flags=Instrument.FLAG_GET, type=types.FloatType, units='W') self.add_parameter('head_info', flags=Instrument.FLAG_GET, type=types.StringType) self.add_parameter('wavelength', flags=Instrument.FLAG_GETSET, type=types.FloatType, units='m') self.add_parameter('filter_freq', flags=Instrument.FLAG_GETSET, type=types.IntType, units='Hz') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): logging.info(__name__ + ' : Initializing instrument Newport ESP100') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) # Add functions self.add_function('init_default') self.add_function('define_home') self.add_function('move_1000mu_p') self.add_function('move_0100mu_p') self.add_function('move_0010mu_p') self.add_function('move_0001mu_p') self.add_function('move_1000mu_n') self.add_function('move_0100mu_n') self.add_function('move_0010mu_n') self.add_function('move_0001mu_n') # Add parameters self.add_parameter('position',tags=['sweep'], flags=Instrument.FLAG_GETSET, units='mm', minval=-300, maxval=300, type=types.FloatType) self.add_parameter('ismoving', flags=Instrument.FLAG_GET, type=types.StringType) #self.init_default() if reset: self.init_default()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('power', flags=Instrument.FLAG_GET, type=types.FloatType, units='W') self.add_parameter('head_info', flags=Instrument.FLAG_GET, type=types.StringType) self.add_parameter('wavelength', flags=Instrument.FLAG_GETSET, type=types.FloatType, units='m') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False, **kwargs): Instrument.__init__(self, name, address=address, reset=reset, **kwargs) self._address = address self._visa = visa.instrument(self._address, baud_rate=57600, data_bits=8, stop_bits=1, parity=visa.no_parity, term_chars='', timeout=2) self.add_parameter('mode', flags=Instrument.FLAG_SET, type=types.IntType, format_map={ 0: 'CONT', 1: 'SINGLE', }, doc=""" Get/set mode: 0: Continuous 1: Single measurement """) self.add_parameter('refvoltage', flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, type=types.IntType, format_map={ 0: 5, 1: 3, 2: 1, 3: 0.5, 4: 0.3, 5: 0.1, }, units='V') self.add_parameter('units', flags=Instrument.FLAG_SET, type=types.IntType, format_map={ 0: '%', 1: 'um', 2: 'mm', 3: 'V', 4: 'mS', 5: 'S', }) self.add_parameter('position', flags=Instrument.FLAG_GET, format='%.03f, %.03f, %.03f') if reset: self.reset() else: self.set_mode(1) self.set_units('%') self.get_all()
def __init__(self, name, address): ''' Initializes the Cryocon62, and comunicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address Output: None ''' logging.info(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('temperature', type=types.FloatType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1,2)) self.add_parameter('units', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1,2)) self.add_parameter('sensor_index', type=types.IntType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1,2)) self.add_parameter('vbias', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1,2)) self.add_parameter('channel_name', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1,2)) self.add_parameter('sensor_name', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1,2))
def __init__(self, name, address, reset=False): ''' Initializes the HP_33120A, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false Output: None ''' Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('frequency', type=types.FloatType, flags=Instrument.FLAG_GETSET, minval=10e-3, maxval=1e6, units='Hz') self.add_parameter('amplitude', type=types.FloatType, flags=Instrument.FLAG_GETSET, minval=-10, maxval=10, units='V') self.add_parameter('offset', type=types.FloatType, flags=Instrument.FLAG_GETSET, minval=-10, maxval=10, units='V') self.add_parameter('burst_count', type=types.IntType, flags=Instrument.FLAG_GETSET, minval=1, maxval=10000, units='#') self.add_parameter('burst_status', type=types.StringType, flags=Instrument.FLAG_GETSET, option_list=( 'on', 'off' )) self.add_function('reset') self.add_function('get_all') self.add_function('send_trigger') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the HP_8753C, and communicates with the wrapper Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false ''' Instrument.__init__(self, name) self._address = address self._visainstrument = visa.instrument(self._address) self._visainstrument.timeout = 30 # BEWARE! in case of low IFWB, it might be # necessary to add additional delay # ( ~ numpoints / IFBW ) yourself! # see for example get_trace() self._visainstrument.send_end = False self._visainstrument.term_chars = '' # BEWARE! need to end strings with ';' yourself! self.add_parameter('IF_Bandwidth', flags=Instrument.FLAG_GETSET, type=types.IntType) self.add_parameter('numpoints', flags=Instrument.FLAG_GETSET, type=types.IntType) self.add_parameter('start_freq', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('stop_freq', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('power', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_function('set_freq_3GHz') self.add_function('set_freq_6GHz') self.add_function('set_measurement_S11') self.add_function('set_measurement_S22') self.add_function('set_measurement_S12') self.add_function('set_measurement_S21') self.add_function('set_format_logm') self.add_function('set_format_phas') self.add_function('set_lin_freq') self.add_function('set_conversion_off') self.add_function('set_average_off') self.add_function('set_smooth_off') self.add_function('set_correction_off') self.add_function('set_trigger_exttoff') self.add_function('set_trigger_hold') self.add_function('send_trigger') self.add_function('reset') self.get_all()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('units', flags=Instrument.FLAG_GETSET, type=types.StringType) self.add_parameter('mode', flags=Instrument.FLAG_GETSET, format_map={ 'S': 'Sample', 'C': 'Continuous' }, type=types.StringType) self.add_parameter('length', flags=Instrument.FLAG_GET, type=types.FloatType) self.add_parameter('lastval', flags=Instrument.FLAG_GET, type=types.FloatType, units='cm') self.add_parameter('interval', flags=Instrument.FLAG_GETSET, type=types.IntType, minval=0, units='s') self.add_parameter('alarmlim', flags=Instrument.FLAG_GETSET, type=types.FloatType, minval=0, units='cm') self.add_function('local') self.add_function('remote') self.add_function('measure') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, type, reset=False, freq=1e6, pow=None): ''' Initializes the HP_8657A/B, and communicates with the wrapper. This instrument does not support GPIB talking, so 'get' functions are not available. Only use with reset=True, otherwise warning will be given. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=False freq (float) : initial frequency in Hz, default=1e9 pow (float) : initial power in dBm, default=-143.4 ''' logging.info(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) lim = HP_8657.LIMITS[type] self._address = address self._visainstrument = visa.instrument(self._address) sleep(1) # Implement parameters self.add_parameter('frequency', type=types.FloatType, flags=Instrument.FLAG_SET, minval=lim['minfreq'], maxval=lim['maxfreq'], units='Hz', format='%.04e', tags=['sweep']) self.add_parameter('power', type=types.FloatType, flags=Instrument.FLAG_SET, minval=lim['minpow'], maxval=lim['maxpow'], units='dBm', tags=['sweep']) self.add_parameter('status', type=types.StringType, flags=Instrument.FLAG_SET) # Implement functions self.add_function('reset') # (re)set device to specified values if reset: if pow is None: pow = lim['minpow'] self.reset(freq, pow) else: logging.warning('instrument does not support getting of values \ you need to run set_power and set_frequency manually!')
def __init__(self, name, address): ''' Initializes the Cryocon62, and comunicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address Output: None ''' logging.info(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('temperature', type=types.FloatType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1, 2)) self.add_parameter('units', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1, 2)) self.add_parameter('sensor_index', type=types.IntType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1, 2)) self.add_parameter('vbias', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1, 2)) self.add_parameter('channel_name', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1, 2)) self.add_parameter('sensor_name', type=types.StringType, channel_prefix='ch%d_', flags=Instrument.FLAG_GET, channels=(1, 2))
def __init__(self, name, address, reset=False): ''' Initializes the RS_SMR40, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false Output: None ''' logging.info(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('frequency', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=1e9, maxval=40e9, units='Hz', format='%.04e', tags=['sweep']) self.add_parameter('power', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=-30, maxval=25, units='dBm', tags=['sweep']) self.add_parameter('status', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET) self.add_function('reset') self.add_function('get_all') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the HP_4195A, and communicates with the wrapper Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false ''' Instrument.__init__(self, name) self._address = address self._visainstrument = visa.instrument(self._address) self._visainstrument.timeout = 30 # BEWARE! in case of low IFWB, it might be # necessary to add additional delay # ( ~ numpoints / IFBW ) yourself! self.add_parameter('resbw', flags=Instrument.FLAG_GETSET, type=types.IntType) self.add_parameter('numpoints', flags=Instrument.FLAG_GETSET, type=types.IntType) self.add_parameter('start_freq', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('stop_freq', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('power', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('center_freq', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('span_freq', flags=Instrument.FLAG_GETSET, type=types.FloatType) self.add_parameter('att_t1', flags=Instrument.FLAG_GETSET, type=types.IntType) self.add_parameter('att_r1', flags=Instrument.FLAG_GETSET, type=types.IntType) self.add_parameter('sweep_time', flags=Instrument.FLAG_GET, type=types.FloatType) #self.add_function('set_measurement_S11') #self.add_function('set_measurement_S22') #self.add_function('set_measurement_S12') #self.add_function('set_measurement_S21') #self.add_function('set_format_logm') #self.add_function('set_format_phas') #self.add_function('set_lin_freq') #self.add_function('set_log_freq') #self.add_function('set_trigger_continuous') #self.add_function('set_trigger_single') #self.add_function('set_trigger_manual') #self.add_function('send_trigger') #self.add_function('reset') self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the HP_81110A, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false Output: None ''' Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self._channels = self._get_number_of_channels() self.add_parameter('delay', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=0.0, maxval=999, units='sec',channel_prefix='ch%d_') self.add_parameter('width', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=-6.25e-9, maxval=999.5, units='sec',channel_prefix='ch%d_') self.add_parameter('high', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=-9.90, maxval=10.0, units='Volts',channel_prefix='ch%d_') self.add_parameter('low', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=-10.0, maxval=9.90, units='Volts',channel_prefix='ch%d_') self.add_parameter('status', type=types.StringType, channels=(1, self._channels), flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET,channel_prefix='ch%d_') self.add_parameter('display', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET) self.add_function('reset') self.add_function('get_all') self.add_function('set_mode_triggered') self.add_function('set_mode_continuous') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the Agilent_E8257D, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=False ''' logging.info(__name__ + ' : Initializing instrument Agilent_E8257D') Instrument.__init__(self, name, tags=['physical']) # Add some global constants self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('power', flags=Instrument.FLAG_GETSET, units='dBm', minval=-135, maxval=16, type=types.FloatType) self.add_parameter('phase', flags=Instrument.FLAG_GETSET, units='rad', minval=-numpy.pi, maxval=numpy.pi, type=types.FloatType) self.add_parameter('frequency', flags=Instrument.FLAG_GETSET, units='Hz', minval=1e5, maxval=20e9, type=types.FloatType) self.add_parameter('status', flags=Instrument.FLAG_GETSET, type=types.StringType) self.add_function('reset') self.add_function('get_all') if (reset): self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): logging.info(__name__ + ' : Initializing instrument Fluke PM5138A') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) # Add functions self.add_function('init_default') self.add_function('get_all') # Add parameters self.add_parameter('frequency', flags=Instrument.FLAG_GETSET, units='Hz', minval=0, maxval=16000, type=types.FloatType) self.add_parameter('ac_amplitude', flags=Instrument.FLAG_GETSET, units='V', minval=-15, maxval=25, type=types.FloatType) self.add_parameter('dc_amplitude', flags=Instrument.FLAG_GETSET, units='V', minval=-15, maxval=25, type=types.FloatType) self.add_parameter('dutycycle', flags=Instrument.FLAG_GETSET, units='pct', minval=0, maxval=100, type=types.FloatType) if reset: self.init_default() self.get_all()
def __init__(self, name, address, reset=False): logging.info(__name__ + ' : Initializing instrument EG&G Model 5209') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) #self.init_default() # Sensitivity self._sen = 1.0 # Add functions self.add_function('init_default') self.add_function ('get_all') self.add_function ('auto_measure') self.add_function ('auto_phase') # Add parameters self.add_parameter('value', flags=Instrument.FLAG_GET, units='V', type=types.FloatType,tags=['measure']) self.add_parameter('frequency', flags=Instrument.FLAG_GET, units='mHz', type=types.FloatType) self.add_parameter('sensitivity', flags=Instrument.FLAG_GETSET, units='', minval=1, maxval=15, type=types.IntType) self.add_parameter('timeconstant', flags=Instrument.FLAG_GETSET, units='', minval=1, maxval=15, type=types.IntType) self.add_parameter('sensitivity_v', flags=Instrument.FLAG_GETSET, units='V', minval=0.0, maxval=15.0, type=types.FloatType) self.add_parameter('timeconstant_t', flags=Instrument.FLAG_GETSET, units='s', minval=0.0, maxval=15.0, type=types.FloatType) self.add_parameter('filter', flags=Instrument.FLAG_GETSET, units='', minval=0, maxval=3, type=types.IntType) if reset: self.init_default() #self.get_all() self.get_sensitivity_v()
def __init__(self, name, address, reset=False): logging.info(__name__ + ' : Initializing instrument Fluke PM5138A') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) # Add functions self.add_function('init_default') self.add_function ('get_all') # Add parameters self.add_parameter('frequency', flags=Instrument.FLAG_GETSET, units='Hz', minval=0, maxval=16000, type=types.FloatType) self.add_parameter('ac_amplitude', flags=Instrument.FLAG_GETSET, units='V', minval=-15, maxval=25, type=types.FloatType) self.add_parameter('dc_amplitude', flags=Instrument.FLAG_GETSET, units='V', minval=-15, maxval=25, type=types.FloatType) self.add_parameter('dutycycle', flags=Instrument.FLAG_GETSET, units='pct', minval=0, maxval=100, type=types.FloatType) if reset: self.init_default() self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the HP_81110A, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false Output: None ''' Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self._channels = self._get_number_of_channels() self.add_parameter('delay', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=0.0, maxval=999, units='sec', channel_prefix='ch%d_') self.add_parameter('width', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=-6.25e-9, maxval=999.5, units='sec', channel_prefix='ch%d_') self.add_parameter('high', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=-9.90, maxval=10.0, units='Volts', channel_prefix='ch%d_') self.add_parameter('low', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, self._channels), minval=-10.0, maxval=9.90, units='Volts', channel_prefix='ch%d_') self.add_parameter('status', type=types.StringType, channels=(1, self._channels), flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channel_prefix='ch%d_') self.add_parameter('display', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET) self.add_function('reset') self.add_function('get_all') self.add_function('set_mode_triggered') self.add_function('set_mode_continuous') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('mode', flags=Instrument.FLAG_GETSET, type=types.IntType, minval=0, maxval=3, format_map={ 0: 'A, B for preset T', 1: 'A - B for preset T', 2: 'A + B for preset T', 3: 'A for preset B', }, doc="""Get / set mode""") self.add_parameter('counter', flags=Instrument.FLAG_GET, type=types.IntType, channels=('A', 'B')) self.add_parameter('count', flags=Instrument.FLAG_GET, channels=('A', 'B', 'T'), doc=""" Start counting and return data (all n periods). Channel A, B, or T (= A and B as tuple) """) self.add_parameter('counter_input', flags=Instrument.FLAG_GETSET, type=types.IntType, channels=('A', 'B', 'T'), minval=0, maxval=3, format_map={ 0: '10MHz', 1: 'Input 1', 2: 'Input 2', 3: 'Trigger' }, doc="""Get / set input""") self.add_parameter('counter_preset', flags=Instrument.FLAG_GETSET, type=types.IntType, channels=('B', 'T'), minval=1, maxval=9e11, format='%1.1e', doc=""" Get / set preset count for a channel, 1 <= n <= 9e11. If input is 10MHz the units are 100ns periods, only one significant digit can be used. """) self.add_parameter('periods', flags=Instrument.FLAG_GETSET, type=types.IntType, minval=1, maxval=2000, doc=""" Get / set number of periods to measure. """) self.add_parameter('current_period', flags=Instrument.FLAG_GET, type=types.IntType, doc=""" Get current period number. """) self.add_parameter('disc_slope', flags=Instrument.FLAG_GETSET, type=types.IntType, channels=('A', 'B', 'T'), format_map={ 0: 'RISE', 1: 'FALL', }, minval=0, maxval=1, doc="""Get/set discriminator scope""") self.add_parameter('disc_level', flags=Instrument.FLAG_GETSET, type=types.FloatType, channels=('A', 'B', 'T'), minval=-0.3, maxval=0.3, units='V', doc=""" Get/set discriminator level, -0.3V < 0 < 0.3V """) if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False, clock=1e9, numpoints=1000): ''' Initializes the AWG520. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false numpoints (int) : sets the number of datapoints Output: None ''' logging.debug(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self._values = {} self._values['files'] = {} self._clock = clock self._numpoints = numpoints # Add parameters self.add_parameter('waveform', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), channel_prefix='ch%d_') self.add_parameter('output', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), channel_prefix='ch%d_') self.add_parameter('wlist', type=types.StringType, flags=Instrument.FLAG_GET) self.add_parameter('trigger_mode', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET) self.add_parameter('trigger_impedance', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=49, maxval=2e3, units='Ohm') self.add_parameter('trigger_level', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=-5, maxval=5, units='Volts') self.add_parameter('clock', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=1e6, maxval=1e9, units='Hz') self.add_parameter('numpoints', type=types.IntType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=100, maxval=1e9, units='Int') self.add_parameter('filename', type=types.StringType, flags=Instrument.FLAG_SET, channels=(1, 4), channel_prefix='ch%d_') self.add_parameter('amplitude', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), minval=0, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('offset', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker1_low', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker1_high', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker2_low', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker2_high', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('status', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 4),channel_prefix='ch%d_') # Add functions self.add_function('reset') self.add_function('get_all') self.add_function('clear_waveforms') self.add_function('set_trigger_mode_on') self.add_function('set_trigger_mode_off') self.add_function('set_trigger_impedance_1e3') self.add_function('set_trigger_impedance_50') # Make Load/Delete Waveform functions for each channel for ch in range(1,5): self._add_load_waveform_func(ch) self._add_del_loaded_waveform_func(ch) if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False, **kwargs): Instrument.__init__(self, name, address=address, reset=False, **kwargs) self._address = address self._visa = visa.instrument(self._address, baud_rate=38400, data_bits=8, stop_bits=1, parity=visa.no_parity, term_chars='\r\n', timeout=2) self._clear_buffer() self._last_error = '' self._last_ccon_warning = [0, 0, 0] self.add_parameter('version', flags=Instrument.FLAG_GET, type=types.StringType) self.add_parameter('mode', flags=Instrument.FLAG_GETSET, channels=(1, 3), type=types.StringType, format_map={ 'e': 'ext', 's': 'stp', 'g': 'gnd', 'c': 'cap', }, doc="mode is one of 'ext', 'stp', 'gnd' or 'cap', or first letter") self.add_parameter('frequency', flags=Instrument.FLAG_GETSET, channels=(1, 3), type=types.IntType, minval=0, maxval=8000) self.add_parameter('voltage', flags=Instrument.FLAG_GETSET, channels=(1, 3), type=types.IntType, minval=0, maxval=70) self.add_parameter('capacitance', flags=Instrument.FLAG_GET, channels=(1, 3), type=types.IntType) self._speed = [0, 0, 0] self.add_parameter('speed', type=types.TupleType, flags=Instrument.FLAG_SET|Instrument.FLAG_SOFTGET, doc=""" Set speed for continuous motion mode. """) self.add_function('step', parameters=[{ 'name': 'channel', 'type': types.IntType, }, { 'name': 'steps', 'type': types.IntType, }]) self.add_function('start') self.add_function('stop') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False, clock=1e9, numpoints=1000): ''' Initializes the AWG520. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false numpoints (int) : sets the number of datapoints Output: None ''' logging.debug(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self._values = {} self._values['files'] = {} self._clock = clock self._numpoints = numpoints # Add parameters self.add_parameter('trigger_mode', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET) self.add_parameter('trigger_impedance', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=49, maxval=2e3, units='Ohm') self.add_parameter('trigger_level', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=-5, maxval=5, units='Volts') self.add_parameter('clock', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=1e6, maxval=1e9, units='Hz') self.add_parameter('numpoints', type=types.IntType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=100, maxval=1e9, units='Int') self.add_parameter('filename', type=types.StringType, flags=Instrument.FLAG_SET, channels=(1, 2), channel_prefix='ch%d_') self.add_parameter('amplitude', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), minval=0, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('offset', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker1_low', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker1_high', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker2_low', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('marker2_high', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), minval=-2, maxval=2, units='Volts', channel_prefix='ch%d_') self.add_parameter('status', type=types.StringType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, channels=(1, 2), channel_prefix='ch%d_') # Add functions self.add_function('reset') self.add_function('get_all') self.add_function('clear_waveforms') self.add_function('set_trigger_mode_on') self.add_function('set_trigger_mode_off') self.add_function('set_trigger_impedance_1e3') self.add_function('set_trigger_impedance_50') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self._channels = ('A', 'B', 'C', 'D') self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('kelvin', flags=Instrument.FLAG_GET, type=types.FloatType, channels=self._channels, units='K') self.add_parameter('sensor', flags=Instrument.FLAG_GET, type=types.FloatType, channels=self._channels, units='') self.add_parameter('heater_range', flags=Instrument.FLAG_GETSET, type=types.IntType, format_map={ 1: '25 W', 2: '2.5 W', 3: '250 mW', 4: '25 mW', 5: '2.5 mW', }) self.add_parameter('heater_output', flags=Instrument.FLAG_GET, type=types.FloatType, units='%') self.add_parameter('mode', flags=Instrument.FLAG_GETSET, type=types.IntType, format_map={ 1: 'Local', 2: 'Remote', 3: 'Remote, local lock' }) self.add_parameter('pid', flags=Instrument.FLAG_GETSET, type=types.TupleType, channels=(1, 4)) self.add_parameter('setpoint', flags=Instrument.FLAG_GETSET, type=types.FloatType, channels=(1, 4)) self.add_function('local') self.add_function('remote') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False, **kwargs): Instrument.__init__(self, name, address=address, reset=False, **kwargs) self._address = address self._visa = visa.instrument(self._address, baud_rate=38400, data_bits=8, stop_bits=1, parity=visa.no_parity, term_chars='\r\n', timeout=2) self._clear_buffer() self._last_error = '' self._last_ccon_warning = [0, 0, 0] self.add_parameter('version', flags=Instrument.FLAG_GET, type=types.StringType) self.add_parameter( 'mode', flags=Instrument.FLAG_GETSET, channels=(1, 3), type=types.StringType, format_map={ 'e': 'ext', 's': 'stp', 'g': 'gnd', 'c': 'cap', }, doc="mode is one of 'ext', 'stp', 'gnd' or 'cap', or first letter") self.add_parameter('frequency', flags=Instrument.FLAG_GETSET, channels=(1, 3), type=types.IntType, minval=0, maxval=8000) self.add_parameter('voltage', flags=Instrument.FLAG_GETSET, channels=(1, 3), type=types.IntType, minval=0, maxval=70) self.add_parameter('capacitance', flags=Instrument.FLAG_GET, channels=(1, 3), type=types.IntType) self._speed = [0, 0, 0] self.add_parameter('speed', type=types.TupleType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, doc=""" Set speed for continuous motion mode. """) self.add_function('step', parameters=[{ 'name': 'channel', 'type': types.IntType, }, { 'name': 'steps', 'type': types.IntType, }]) self.add_function('start') self.add_function('stop') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): ''' Initializes the SR830. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values, default=false Output: None ''' logging.info(__name__ + ' : Initializing instrument') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) self.add_parameter('mode', flags=Instrument.FLAG_SET, type=types.BooleanType) self.add_parameter('frequency', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=1e-3, maxval=102e3, units='Hz', format='%.04e') self.add_parameter('phase', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=-360, maxval=729.99, units='deg') self.add_parameter('harmonic',type=types.IntType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=1, maxval=19999) self.add_parameter('amplitude', type=types.FloatType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, minval=0.004, maxval=5.0, units='V', format='%.04e') self.add_parameter('X', flags=Instrument.FLAG_GET, units='V', type=types.FloatType) self.add_parameter('Y', flags=Instrument.FLAG_GET, units='V', type=types.FloatType) self.add_parameter('R', flags=Instrument.FLAG_GET, units='V', type=types.FloatType) self.add_parameter('P', flags=Instrument.FLAG_GET, units='deg', type=types.FloatType) self.add_parameter('tau', type=types.IntType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, format_map={ 0 : "10mus", 1 : "30mus", 2 : "100mus", 3 : "300mus", 4 : "1ms", 5 : "3ms", 6 : "10ms", 7 : "30ms", 8 : "100ms", 9 : "300ms", 10 : "1s", 11 : "3s", 12 : "10s", 13 : "30s", 14 : "100s", 15 : "300s", 16 : "1ks", 17 : "3ks", 18 : "10ks", 19 : "30ks" }) self.add_parameter('out', type=types.FloatType, channels=(1,2,3,4), flags=Instrument.FLAG_GETSET, minval=-10.5, maxval=10.5, units='V', format='%.3f') self.add_parameter('in', type=types.FloatType, channels=(1,2,3,4), flags=Instrument.FLAG_GET, minval=-10.5, maxval=10.5, units='V', format='%.3f') self.add_parameter('sensitivity', type=types.IntType, flags=Instrument.FLAG_GETSET, format_map={ 0 : "2nV", 1 : "5nV", 2 : "10nV", 3 : "20nV", 4 : "50 nV", 5 : "100nV", 6 : "200nV", 7 : "500nV", 8 : "1muV", 9 : "2muV", 10 : "5muV", 11 : "10muV", 12 : "20muV", 13 : "50muV", 14 : "100muV", 15 : "200muV", 16 : "500muV", 17 : "1mV", 18 : "2mV", 19 : "5mV", 20 : "10mV", 21 : "20mV", 22 : "50mV", 23 : "100mV", 24 : "200mV", 25 : "500mV", 26 : "1V" }) self.add_parameter('reserve', type=types.IntType, flags=Instrument.FLAG_GETSET, format_map={0:'High reserve', 1:'Normal', 2:'Low noise'}) self.add_parameter('input_config', type=types.IntType, flags=Instrument.FLAG_GETSET, format_map={0:'A', 1:'A-B', 2:'CVC 1MOhm', 3:'CVC 100MOhm'}) self.add_parameter('input_shield', type=types.BooleanType, flags=Instrument.FLAG_GETSET, format_map={False:'Float', True:'GND'}) self.add_parameter('input_coupling', type=types.BooleanType, flags=Instrument.FLAG_GETSET, format_map={False:'AC', True:'DC'}) self.add_parameter('notch_filter', type=types.IntType, flags=Instrument.FLAG_GETSET, format_map={0:'off', 1:'1xline', 2:'2xline', 3:'both'}) self.add_parameter('ref_input', type=types.BooleanType, flags=Instrument.FLAG_GETSET, format_map={False:'external', True:'internal'}) self.add_parameter('ext_trigger', type=types.IntType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, format_map={0:'Sine', 1:'TTL rising edge', 2:'TTL falling edge'}) self.add_parameter('sync_filter', type=types.BooleanType, flags=Instrument.FLAG_GETSET | Instrument.FLAG_GET_AFTER_SET, format_map={False:'off', True:'on'}) self.add_parameter('filter_slope', type=types.IntType, flags=Instrument.FLAG_GETSET, format_map={0:'6dB/oct.', 1:'12dB/oct.', 2:'18dB/oct.', 3:'24dB/oct.'}) self.add_parameter('unlocked', type=types.BooleanType, flags=Instrument.FLAG_GET, format_map={False:'locked', True:'unlocked'}) self.add_parameter('input_overload', type=types.BooleanType, flags=Instrument.FLAG_GET, format_map={False:'normal', True:'overload'}) self.add_parameter('time_constant_overload', type=types.BooleanType, flags=Instrument.FLAG_GET, format_map={False:'normal', True:'overload'}) self.add_parameter('output_overload', type=types.BooleanType, flags=Instrument.FLAG_GET, format_map={False:'normal', True:'overload'}) self.add_function('reset') self.add_function('get_all') if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('units', flags=Instrument.FLAG_GETSET, type=types.StringType) self.add_parameter('rate', flags=Instrument.FLAG_GETSET, type=types.FloatType, minval=0, units='A/s') self.add_parameter('heater', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('magnetout', flags=Instrument.FLAG_GET, type=types.FloatType, units='T', format='%.05f') self.add_parameter('supplyout', flags=Instrument.FLAG_GET, type=types.FloatType, units='T', format='%.05f') self.add_parameter('sweep', flags=Instrument.FLAG_GETSET, type=types.StringType) self.add_parameter('lowlim', flags=Instrument.FLAG_GETSET, type=types.FloatType, minval=-9.0, maxval=9.0, units='T', format='%.05f') self.add_parameter('uplim', flags=Instrument.FLAG_GETSET, type=types.FloatType, minval=-9.0, maxval=9.0, units='T', format='%.05f') self.add_parameter('field', flags=Instrument.FLAG_GETSET, type=types.FloatType, minval=-9000.0, maxval=9000.0, units='mT', format='%.02f', tags=['sweep']) self.add_function('local') self.add_function('remote') self.add_function('sweep_up') self.add_function('sweep_down') if reset: self.reset() else: self.get_all()
def __init__(self, name, address=None): Instrument.__init__(self, name, tags=['measure']) self._address = address self._visains = visa.instrument(address) self.add_parameter('function', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: 'DCV', 1: 'ACV', 2: 'Ohms', 3: 'DCI', 4: 'ACI', 5: 'ACVdB', 6: 'ACIdB', }) self.add_parameter( 'range', type=types.FloatType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, minval=0, maxval=7, ) self.add_parameter('zero', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: 'Disabled', 1: 'Enabled', 2: 'Value', }) self.add_parameter('zero_value', type=types.FloatType, flags=Instrument.FLAG_GETSET) self.add_parameter('rate', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: '4.5 digit', 1: '5.5 digit', }) self.add_parameter( 'filter', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, ) self.add_parameter('trigger', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: 'Cont (talk)', 1: 'One-shot (talk)', 2: 'Cont (get)', 3: 'One-shot (get)', 4: 'Cont (X)', 5: 'One-shot (X)', 6: 'Cont (ext)', 7: 'One-shot (ext)', }) self.add_parameter('delay', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, minval=0, maxval=999999, units='msec') self.add_parameter('interval', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, minval=15, maxval=999999, units='msec') self.add_parameter('error', type=types.IntType, flags=Instrument.FLAG_GET) self.add_parameter('value', type=types.FloatType, flags=Instrument.FLAG_GET, tags=['measure']) self.add_function('set_defaults') self.add_function('self_test') self.add_function('read') self.set_defaults()
def __init__(self, name, address=None): Instrument.__init__(self, name, tags=['measure']) self._address = address self._visains = visa.instrument(address) self.add_parameter('function', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: 'DCV', 1: 'ACV', 2: 'Ohms', 3: 'DCI', 4: 'ACI', 5: 'ACVdB', 6: 'ACIdB', }) self.add_parameter('range', type=types.FloatType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, minval=0, maxval=7, ) self.add_parameter('zero', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: 'Disabled', 1: 'Enabled', 2: 'Value', }) self.add_parameter('zero_value', type=types.FloatType, flags=Instrument.FLAG_GETSET) self.add_parameter('rate', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: '4.5 digit', 1: '5.5 digit', }) self.add_parameter('filter', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, ) self.add_parameter('trigger', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, option_map={ 0: 'Cont (talk)', 1: 'One-shot (talk)', 2: 'Cont (get)', 3: 'One-shot (get)', 4: 'Cont (X)', 5: 'One-shot (X)', 6: 'Cont (ext)', 7: 'One-shot (ext)', }) self.add_parameter('delay', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, minval=0, maxval=999999, units='msec') self.add_parameter('interval', type=types.IntType, flags=Instrument.FLAG_SET | Instrument.FLAG_SOFTGET, minval=15, maxval=999999, units='msec') self.add_parameter('error', type=types.IntType, flags=Instrument.FLAG_GET) self.add_parameter('value', type=types.FloatType, flags=Instrument.FLAG_GET, tags=['measure']) self.add_function('set_defaults') self.add_function('self_test') self.add_function('read') self.set_defaults()
def __init__(self, name, address, reset=False): Instrument.__init__(self, name) self._address = address self._visa = visa.instrument(self._address) self.add_parameter('identification', flags=Instrument.FLAG_GET) self.add_parameter('mode', flags=Instrument.FLAG_GETSET, type=types.IntType, minval=0, maxval=3, format_map={ 0: 'A, B for preset T', 1: 'A - B for preset T', 2: 'A + B for preset T', 3: 'A for preset B', }, doc="""Get / set mode""") self.add_parameter('counter', flags=Instrument.FLAG_GET, type=types.IntType, channels=('A', 'B')) self.add_parameter('count', flags=Instrument.FLAG_GET, channels=('A', 'B', 'T'), doc=""" Start counting and return data (all n periods). Channel A, B, or T (= A and B as tuple) """) self.add_parameter('counter_input', flags=Instrument.FLAG_GETSET, type=types.IntType, channels=('A', 'B', 'T'), minval=0, maxval=3, format_map = { 0: '10MHz', 1: 'Input 1', 2: 'Input 2', 3: 'Trigger' }, doc="""Get / set input""") self.add_parameter('counter_preset', flags=Instrument.FLAG_GETSET, type=types.IntType, channels=('B', 'T'), minval=1, maxval=9e11, format = '%1.1e', doc=""" Get / set preset count for a channel, 1 <= n <= 9e11. If input is 10MHz the units are 100ns periods, only one significant digit can be used. """) self.add_parameter('periods', flags=Instrument.FLAG_GETSET, type=types.IntType, minval=1, maxval=2000, doc=""" Get / set number of periods to measure. """) self.add_parameter('current_period', flags=Instrument.FLAG_GET, type=types.IntType, doc=""" Get current period number. """) self.add_parameter('disc_slope', flags=Instrument.FLAG_GETSET, type=types.IntType, channels=('A', 'B', 'T'), format_map={ 0: 'RISE', 1: 'FALL', }, minval=0, maxval=1, doc="""Get/set discriminator scope""") self.add_parameter('disc_level', flags=Instrument.FLAG_GETSET, type=types.FloatType, channels=('A', 'B', 'T'), minval=-0.3, maxval=0.3, units='V', doc=""" Get/set discriminator level, -0.3V < 0 < 0.3V """) if reset: self.reset() else: self.get_all()
def __init__(self, name, address, reset=False, change_display=True, change_autozero=True): ''' Initializes the Keithley_2700, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values change_display (bool) : If True (default), automatically turn off display during measurements. change_autozero (bool) : If True (default), automatically turn off autozero during measurements. Output: None ''' # Initialize wrapper functions logging.info('Initializing instrument Keithley_2700') Instrument.__init__(self, name, tags=['physical']) # Add some global constants self._address = address self._visainstrument = visa.instrument(self._address) self._modes = [ 'VOLT:AC', 'VOLT:DC', 'CURR:AC', 'CURR:DC', 'RES', 'FRES', 'TEMP', 'FREQ' ] self._change_display = change_display self._change_autozero = change_autozero self._averaging_types = ['MOV', 'REP'] self._trigger_sent = False # Add parameters to wrapper self.add_parameter('range', flags=Instrument.FLAG_GETSET, units='', minval=0.1, maxval=1000, type=types.FloatType) self.add_parameter('trigger_continuous', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('trigger_count', flags=Instrument.FLAG_GETSET, units='#', type=types.IntType) self.add_parameter('trigger_delay', flags=Instrument.FLAG_GETSET, units='s', minval=0, maxval=999999.999, type=types.FloatType) self.add_parameter('trigger_source', flags=Instrument.FLAG_GETSET, units='') self.add_parameter('trigger_timer', flags=Instrument.FLAG_GETSET, units='s', minval=0.001, maxval=99999.999, type=types.FloatType) self.add_parameter('mode', flags=Instrument.FLAG_GETSET, type=types.StringType, units='') self.add_parameter('digits', flags=Instrument.FLAG_GETSET, units='#', minval=4, maxval=7, type=types.IntType) self.add_parameter('readval', flags=Instrument.FLAG_GET, units='AU', type=types.FloatType, tags=['measure']) self.add_parameter('readlastval', flags=Instrument.FLAG_GET, units='AU', type=types.FloatType, tags=['measure']) self.add_parameter('readnextval', flags=Instrument.FLAG_GET, units='AU', type=types.FloatType, tags=['measure']) self.add_parameter('integrationtime', flags=Instrument.FLAG_GETSET, units='s', type=types.FloatType, minval=2e-4, maxval=1) self.add_parameter('nplc', flags=Instrument.FLAG_GETSET, units='#', type=types.FloatType, minval=0.01, maxval=50) self.add_parameter('display', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('autozero', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('averaging', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('averaging_window', flags=Instrument.FLAG_GETSET, units='%', type=types.FloatType, minval=0, maxval=10) self.add_parameter('averaging_count', flags=Instrument.FLAG_GETSET, units='#', type=types.IntType, minval=1, maxval=100) self.add_parameter('averaging_type', flags=Instrument.FLAG_GETSET, type=types.StringType, units='') self.add_parameter('autorange', flags=Instrument.FLAG_GETSET, units='', type=types.BooleanType) # Add functions to wrapper self.add_function('set_mode_volt_ac') self.add_function('set_mode_volt_dc') self.add_function('set_mode_curr_ac') self.add_function('set_mode_curr_dc') self.add_function('set_mode_res') self.add_function('set_mode_fres') self.add_function('set_mode_temp') self.add_function('set_mode_freq') self.add_function('set_range_auto') self.add_function('set_trigger_cont') self.add_function('set_trigger_disc') self.add_function('reset_trigger') self.add_function('reset') self.add_function('get_all') self.add_function('read') self.add_function('readlast') self.add_function('send_trigger') self.add_function('fetch') # Connect to measurement flow to detect start and stop of measurement qt.flow.connect('measurement-start', self._measurement_start_cb) qt.flow.connect('measurement-end', self._measurement_end_cb) if reset: self.reset() else: self.get_all() self.set_defaults()
def __init__(self, name, address, reset=False): logging.info(__name__ + ' : Initializing instrument EG&G Model 5209') Instrument.__init__(self, name, tags=['physical']) self._address = address self._visainstrument = visa.instrument(self._address) #self.init_default() # Sensitivity self._sen = 1.0 # Add functions self.add_function('init_default') self.add_function('get_all') self.add_function('auto_measure') self.add_function('auto_phase') # Add parameters self.add_parameter('value', flags=Instrument.FLAG_GET, units='V', type=types.FloatType, tags=['measure']) self.add_parameter('frequency', flags=Instrument.FLAG_GET, units='mHz', type=types.FloatType) self.add_parameter('sensitivity', flags=Instrument.FLAG_GETSET, units='', minval=1, maxval=15, type=types.IntType) self.add_parameter('timeconstant', flags=Instrument.FLAG_GETSET, units='', minval=1, maxval=15, type=types.IntType) self.add_parameter('sensitivity_v', flags=Instrument.FLAG_GETSET, units='V', minval=0.0, maxval=15.0, type=types.FloatType) self.add_parameter('timeconstant_t', flags=Instrument.FLAG_GETSET, units='s', minval=0.0, maxval=15.0, type=types.FloatType) self.add_parameter('filter', flags=Instrument.FLAG_GETSET, units='', minval=0, maxval=3, type=types.IntType) if reset: self.init_default() #self.get_all() self.get_sensitivity_v()
def __init__(self, name, address, reset=False, change_display=True, change_autozero=True): ''' Initializes the Keithley_2100, and communicates with the wrapper. Input: name (string) : name of the instrument address (string) : GPIB address reset (bool) : resets to default values change_display (bool) : If True (default), automatically turn off display during measurements. change_autozero (bool) : If True (default), automatically turn off autozero during measurements. Output: None ''' # Initialize wrapper functions logging.info('Initializing instrument Keithley_2100') Instrument.__init__(self, name, tags=['physical']) # Add some global constants self._address = address self._visainstrument = visa.instrument(self._address) self._modes = ['VOLT:AC', 'VOLT:DC', 'CURR:AC', 'CURR:DC', 'RES', 'FRES', 'TEMP', 'FREQ'] self._change_display = change_display self._change_autozero = change_autozero self._averaging_types = ['MOV','REP'] self._trigger_sent = False # Add parameters to wrapper self.add_parameter('range', flags=Instrument.FLAG_GETSET, units='', minval=0.1, maxval=1000, type=types.FloatType) self.add_parameter('trigger_count', flags=Instrument.FLAG_GETSET, units='#', type=types.IntType) self.add_parameter('trigger_delay', flags=Instrument.FLAG_GETSET, units='s', minval=-1, maxval=999999.999, type=types.FloatType) self.add_parameter('trigger_source', flags=Instrument.FLAG_GETSET, units='') self.add_parameter('mode', flags=Instrument.FLAG_GETSET, type=types.StringType, units='', option_list=self._modes) self.add_parameter('resolution', flags=Instrument.FLAG_GETSET, units='#', type=types.StringType) self.add_parameter('readval', flags=Instrument.FLAG_GET, units='AU', type=types.FloatType, tags=['measure']) self.add_parameter('nplc', flags=Instrument.FLAG_GETSET, units='#', type=types.FloatType, minval=0.01, maxval=50) self.add_parameter('display', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('autozero', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('averaging', flags=Instrument.FLAG_GETSET, type=types.BooleanType) self.add_parameter('averaging_count', flags=Instrument.FLAG_GETSET, units='#', type=types.IntType, minval=1, maxval=100) self.add_parameter('averaging_type', flags=Instrument.FLAG_GETSET, type=types.StringType, units='') self.add_parameter('autorange', flags=Instrument.FLAG_GETSET, units='', type=types.BooleanType) # Add functions to wrapper self.add_function('set_mode_volt_ac') self.add_function('set_mode_volt_dc') self.add_function('set_mode_curr_ac') self.add_function('set_mode_curr_dc') self.add_function('set_mode_res') self.add_function('set_mode_fres') self.add_function('set_mode_temp') self.add_function('set_mode_freq') self.add_function('set_range_auto') self.add_function('reset_trigger') self.add_function('reset') self.add_function('get_all') self.add_function('read') self.add_function('send_trigger') self.add_function('fetch') # Connect to measurement flow to detect start and stop of measurement qt.flow.connect('measurement-start', self._measurement_start_cb) qt.flow.connect('measurement-end', self._measurement_end_cb) self.reset() self.get_all() if not reset: self.set_defaults()