Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
    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()
Пример #4
0
    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()
Пример #5
0
    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()
Пример #6
0
    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)
Пример #7
0
    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()
Пример #8
0
  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()
Пример #9
0
    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()
Пример #10
0
    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()
Пример #11
0
    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))
Пример #12
0
    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()
Пример #13
0
    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()
Пример #14
0
    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()
Пример #15
0
    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()
Пример #16
0
    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()
Пример #17
0
    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!')
Пример #18
0
    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))
Пример #19
0
    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()
Пример #20
0
    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()
Пример #21
0
    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()
Пример #22
0
    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()
Пример #23
0
    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()
Пример #24
0
   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()
Пример #25
0
    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()
Пример #26
0
    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)
Пример #27
0
    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()
Пример #28
0
    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()
Пример #29
0
  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()
Пример #30
0
    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()
Пример #31
0
    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()
Пример #32
0
    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()
Пример #33
0
    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()
Пример #34
0
    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()
Пример #35
0
    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()
Пример #36
0
    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()
Пример #37
0
    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()
Пример #38
0
    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()
Пример #39
0
    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()
Пример #40
0
    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()
Пример #41
0
    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()
Пример #42
0
    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()
Пример #43
0
    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()
Пример #44
0
    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()
Пример #45
0
    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()
Пример #46
0
    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()