aboutsummaryrefslogtreecommitdiff
path: root/qolab/hardware/power_supply/keysight_e3612a.py
diff options
context:
space:
mode:
authorEugeniy E. Mikhailov <evgmik@gmail.com>2022-03-09 12:38:46 -0500
committerEugeniy E. Mikhailov <evgmik@gmail.com>2022-03-09 12:38:46 -0500
commit994d29b403129c5687980aa9b596114a7a7c0edc (patch)
tree44f90172e57fa40842d0cdb797f296a2d718f7b3 /qolab/hardware/power_supply/keysight_e3612a.py
parente84ef9e06f25a6da04f54f52e9dfaee1229d5405 (diff)
downloadqolab-994d29b403129c5687980aa9b596114a7a7c0edc.tar.gz
qolab-994d29b403129c5687980aa9b596114a7a7c0edc.zip
draft of Keysight Power Supply control
Diffstat (limited to 'qolab/hardware/power_supply/keysight_e3612a.py')
-rw-r--r--qolab/hardware/power_supply/keysight_e3612a.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/qolab/hardware/power_supply/keysight_e3612a.py b/qolab/hardware/power_supply/keysight_e3612a.py
new file mode 100644
index 0000000..5c5bab0
--- /dev/null
+++ b/qolab/hardware/power_supply/keysight_e3612a.py
@@ -0,0 +1,51 @@
+from qolab.hardware.basic import BasicInstrument
+from qolab.hardware.power_supply import PowerSupplySCPI
+import re
+import numpy as np
+
+class KeysightE3612A(PowerSupplySCPI):
+ """ Keysight E3612A power supply """
+ def __init__(self, resource, *args, **kwds):
+ super().__init__(resource, *args, **kwds)
+ # self.resource.read_termination='\n'
+ self.config['Device model'] = 'Keysight E3612A'
+ self.numberOfChannels = 1
+ # self.channelProperties = {'Vlimit', 'Ilimit', 'Vout', 'Iout' }
+ self.channelProperties = {'Vout', }
+
+ def chanOn(self, chNum):
+ self.write(f'OUTP ON,(@{chNum})')
+
+ def chanOff(self, chNum):
+ self.write(f'OUTP OFF,(@{chNum})')
+
+ @BasicInstrument.tsdb_append
+ def getChanState(self, chNum):
+ qstr = f'OUTP? (@{chNum})'
+ rstr = self.query(qstr)
+ return( bool(float(rstr)) )
+
+ @BasicInstrument.tsdb_append
+ def getChanVout(self, chNum):
+ qstr = f'MEAS:VOLT? (@{chNum})'
+ rstr = self.query(qstr)
+ return( float(rstr) )
+
+ @BasicInstrument.tsdb_append
+ def getChanIout(self, chNum):
+ qstr = f'MEAS:CURR? (@{chNum})'
+ rstr = self.query(qstr)
+ return( float(rstr) )
+
+
+if __name__ == '__main__':
+ import pyvisa
+ print("testing")
+ rm = pyvisa.ResourceManager()
+ print(rm.list_resources())
+ instr=rm.open_resource('USB0::10893::4354::MY61001869::0::INSTR')
+ ps = KeysightE3612A(instr)
+ print('------ Header start -------------')
+ print(str.join('\n', ps.getHeader()))
+ print('------ Header ends -------------')
+