In [17]:
%matplotlib nbagg

import importlib

import qcodes as qc

from qcodes.instrument_drivers.tektronix import Keithley_2000
from qcodes.instrument_drivers.QuTech.IVVI import IVVI
importlib.reload(Keithley_2000)

import sys
sys.path.append('../')
from spi_rack import SPI_rack

from D5a import D5a
importlib.reload(D5a)


Out[17]:
<module 'D5a.D5a' from '..\\D5a\\D5a.py'>

Create the instruments


In [4]:
# Keithley
k1 = Keithley_2000.Keithley_2000('Keithley', 'GPIB0::16::INSTR', server_name=None)

# SPI rack and modules
spi_rack.close()

spi_rack = SPI_rack('COM3', 9600, 1)
d5a = D5a.D5a('D5a', spi_rack, module=2, server_name=None)

station = qc.Station(k1, d5a)

In [7]:
spi_rack.close()

Do a measurement


In [15]:
station.measure()

#data = qc.Loop(d5a.dac3[0:1:0.1], 0.1).each(k1.readnext).run(background=False)

dac1 = d5a.dac1
dac2 = d5a.dac2
dac3 = d5a.dac3

data = qc.Loop(dac1[0:1:0.1], 0).loop(dac3[0:1:0.1], 0).each(
    k1.amplitude).run(background=False)

qc.MatPlot(data.amplitude, cmap='seismic')


---------------------------------------------------------------------------
VisaIOError                               Traceback (most recent call last)
<ipython-input-15-039f4a9ef235> in <module>()
      8 
      9 data = qc.Loop(dac1[0:1:0.1], 0).loop(dac3[0:1:0.1], 0).each(
---> 10     k1.amplitude).run(background=False)
     11 
     12 qc.MatPlot(data.amplitude, cmap='seismic')

c:\users\localadmin\documents\qcodes\qcodes\loops.py in run(self, background, use_threads, quiet, data_manager, station, progress_interval, *args, **kwargs)
    663                 del self.process
    664 
--> 665             self._run_wrapper()
    666             if self.data_set.mode != DataMode.LOCAL:
    667                 self.data_set.sync()

c:\users\localadmin\documents\qcodes\qcodes\loops.py in _run_wrapper(self, *args, **kwargs)
    704     def _run_wrapper(self, *args, **kwargs):
    705         try:
--> 706             self._run_loop(*args, **kwargs)
    707         except _QuietInterrupt:
    708             pass

c:\users\localadmin\documents\qcodes\qcodes\loops.py in _run_loop(self, first_delay, action_indices, loop_indices, current_values, **ignore_kwargs)
    757                     f(first_delay=delay,
    758                       loop_indices=new_indices,
--> 759                       current_values=new_values)
    760 
    761                     # after the first action, no delay is inherited

c:\users\localadmin\documents\qcodes\qcodes\actions.py in __call__(self, **kwargs)
    135 
    136     def __call__(self, **kwargs):
--> 137         self.inner_loop._run_loop(action_indices=self.action_indices, **kwargs)
    138 
    139 

c:\users\localadmin\documents\qcodes\qcodes\loops.py in _run_loop(self, first_delay, action_indices, loop_indices, current_values, **ignore_kwargs)
    757                     f(first_delay=delay,
    758                       loop_indices=new_indices,
--> 759                       current_values=new_values)
    760 
    761                     # after the first action, no delay is inherited

c:\users\localadmin\documents\qcodes\qcodes\actions.py in __call__(self, loop_indices, **ignore_kwargs)
    109             out = thread_map(self.getters)
    110         else:
--> 111             out = [g() for g in self.getters]
    112 
    113         for param_out, param_id, composite in zip(out, self.param_ids,

c:\users\localadmin\documents\qcodes\qcodes\actions.py in <listcomp>(.0)
    109             out = thread_map(self.getters)
    110         else:
--> 111             out = [g() for g in self.getters]
    112 
    113         for param_out, param_id, composite in zip(out, self.param_ids,

c:\users\localadmin\documents\qcodes\qcodes\instrument\parameter.py in get(self)
    457             e.args = e.args + (
    458                 'getting {}:{}'.format(self._instrument.name, self.name),)
--> 459             raise e
    460 
    461     @asyncio.coroutine

c:\users\localadmin\documents\qcodes\qcodes\instrument\parameter.py in get(self)
    451     def get(self):
    452         try:
--> 453             value = self._get()
    454             self._save_val(value)
    455             return value

c:\users\localadmin\documents\qcodes\qcodes\utils\sync_async.py in call(self, *args)
    202     def call(self, *args):
    203         self.validate_arg_count(args)
--> 204         return self.exec_function(*args)
    205 
    206     @asyncio.coroutine

c:\users\localadmin\documents\qcodes\qcodes\utils\sync_async.py in call_by_str_parsed_out(self, *args)
    148 
    149     def call_by_str_parsed_out(self, *args):
--> 150         return self.output_parser(self.exec_str(self.cmd.format(*args)))
    151 
    152     @asyncio.coroutine

c:\users\localadmin\documents\qcodes\qcodes\instrument\visa.py in ask(self, cmd)
    144         if timeout_ms is None:
    145             return None
--> 146         else:
    147             # pyvisa uses milliseconds but we use seconds
    148             return timeout_ms / 1000

c:\users\localadmin\documents\qcodes\qcodes\instrument\visa.py in ask(self, cmd)
    141 
    142     def _get_visa_timeout(self):
--> 143         timeout_ms = self.visa_handle.timeout
    144         if timeout_ms is None:
    145             return None

C:\Users\LocalAdmin\Miniconda2\envs\qcodes\lib\site-packages\pyvisa-1.8-py3.4.egg\pyvisa\resources\messagebased.py in query(self, message, delay)
    399         """
    400 
--> 401         self.write(message)
    402 
    403         delay = self.query_delay if delay is None else delay

C:\Users\LocalAdmin\Miniconda2\envs\qcodes\lib\site-packages\pyvisa-1.8-py3.4.egg\pyvisa\resources\messagebased.py in write(self, message, termination, encoding)
    205             message += term
    206 
--> 207         count = self.write_raw(message.encode(enco))
    208 
    209         return count

C:\Users\LocalAdmin\Miniconda2\envs\qcodes\lib\site-packages\pyvisa-1.8-py3.4.egg\pyvisa\resources\messagebased.py in write_raw(self, message)
    183         :rtype: int
    184         """
--> 185         return self.visalib.write(self.session, message)
    186 
    187     def write(self, message, termination=None, encoding=None):

C:\Users\LocalAdmin\Miniconda2\envs\qcodes\lib\site-packages\pyvisa-1.8-py3.4.egg\pyvisa\ctwrapper\functions.py in write(library, session, data)
   1862     return_count = ViUInt32()
   1863     # [ViSession, ViBuf, ViUInt32, ViPUInt32]
-> 1864     ret = library.viWrite(session, data, len(data), byref(return_count))
   1865     return return_count.value, ret
   1866 

C:\Users\LocalAdmin\Miniconda2\envs\qcodes\lib\site-packages\pyvisa-1.8-py3.4.egg\pyvisa\ctwrapper\highlevel.py in _return_handler(self, ret_value, func, arguments)
    186 
    187         if ret_value < 0:
--> 188             raise errors.VisaIOError(ret_value)
    189 
    190         if ret_value in self.issue_warning_on:

VisaIOError: ('VI_ERROR_CONN_LOST (-1073807194): The connection for the given session has been lost.', "asking ':DATA:FRESH?' to <Keithley_2000: Keithley>", 'getting Keithley:amplitude')

In [ ]:


In [ ]:


In [ ]: