diff options
author | Eugeniy E. Mikhailov <evgmik@gmail.com> | 2022-03-15 19:58:03 -0400 |
---|---|---|
committer | Eugeniy E. Mikhailov <evgmik@gmail.com> | 2022-03-15 19:58:03 -0400 |
commit | f04105aee0c18bd591acce3874d5bd0dbc78c5d2 (patch) | |
tree | 51ac08fb64ad640024f386faed5107dfd75dc0d8 /qolab/hardware/power_supply/keysight_e3612a.py | |
parent | 3943e2880dcd6943be3e6d4b38855d2665e7960b (diff) | |
download | qolab-f04105aee0c18bd591acce3874d5bd0dbc78c5d2.tar.gz qolab-f04105aee0c18bd591acce3874d5bd0dbc78c5d2.zip |
added functions to control keysight_e3612a
Diffstat (limited to 'qolab/hardware/power_supply/keysight_e3612a.py')
-rw-r--r-- | qolab/hardware/power_supply/keysight_e3612a.py | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/qolab/hardware/power_supply/keysight_e3612a.py b/qolab/hardware/power_supply/keysight_e3612a.py index d6a0770..0f68fed 100644 --- a/qolab/hardware/power_supply/keysight_e3612a.py +++ b/qolab/hardware/power_supply/keysight_e3612a.py @@ -7,31 +7,75 @@ class KeysightE3612A(PowerSupplySCPI): """ Keysight E3612A power supply """ def __init__(self, resource, *args, **kwds): super().__init__(resource, *args, **kwds) - # self.resource.read_termination='\n' + self.resource.read_termination='\n' self.config['Device model'] = 'Keysight E3612A' self.numberOfChannels = 3 - # self.channelProperties = {'Vlimit', 'Ilimit', 'Vout', 'Iout' } - self.channelProperties = {'IsOn', 'Vout', 'Iout', 'Ilimit' } + self.deviceProperties = {'OpMode', }; + self.channelProperties = {'IsOn', 'Regulation', 'Vout', 'Vlimit', 'Iout', 'Ilimit', } + + def getOpMode(self): + """ + Queries power supply operation mode, returns OFF|PAR|SER|TRAC + OFF stands for independent channels + """ + qstr = f'OUTP:PAIR?' + rstr = self.query(qstr) + return( rstr ) + + def setOpMode(self, val): + """ + Sets power supply operation mode, returns OFF|PAR|SER|TRAC + OFF stands for independent channels + """ + cmnd = f'OUTP:PAIR {val}' + rstr = self.write(cmnd) def setChanOn(self, chNum): + """ Power up channel output """ self.write(f'OUTP ON,(@{chNum})') def setChanOff(self, chNum): + """ Power down channel output """ self.write(f'OUTP OFF,(@{chNum})') @BasicInstrument.tsdb_append def getChanIsOn(self, chNum): + """ Queries channel output state """ qstr = f'OUTP? (@{chNum})' rstr = self.query(qstr) return( bool(float(rstr)) ) @BasicInstrument.tsdb_append + def getChanRegulation(self, chNum): + """ + Queries channel output regulation + 0 - The output is off and unregulated + 1 - The output is CC (constant current) operating mode + 2 - The output is CV (constant voltage) operating mode + 3 - The output has hardware failure + """ + qstr = f'STAT:QUES:INST:ISUM{chNum}:COND?' + rstr = self.query(qstr) + return( int(rstr) ) + + @BasicInstrument.tsdb_append def getChanVout(self, chNum): qstr = f'MEAS:VOLT? (@{chNum})' rstr = self.query(qstr) return( float(rstr) ) @BasicInstrument.tsdb_append + def getChanVlimit(self, chNum): + qstr = f'SOUR:VOLT? (@{chNum})' + rstr = self.query(qstr) + return( float(rstr) ) + + @BasicInstrument.tsdb_append + def setChanVlimit(self, chNum, val): + cmnd = f'SOURCe:VOLT {val},(@{chNum})' + rstr = self.write(cmnd) + + @BasicInstrument.tsdb_append def getChanIout(self, chNum): qstr = f'MEAS:CURR? (@{chNum})' rstr = self.query(qstr) @@ -43,6 +87,12 @@ class KeysightE3612A(PowerSupplySCPI): rstr = self.query(qstr) return( float(rstr) ) + @BasicInstrument.tsdb_append + def setChanIlimit(self, chNum, val): + cmnd = f'SOURCe:CURR {val},(@{chNum})' + rstr = self.write(cmnd) + + if __name__ == '__main__': import pyvisa print("testing") |