itkdcsinterlock
ITkDCSInterlock class for Rhode&Schwarz/Hameg HMP4040 4-output power supply.
Classes
|
SCPIInstrument implementation for NI CompactRIO-based DCS interlock in OPMD. |
ITkDCSInterlock
- class icicle.itkdcsinterlock.ITkDCSInterlock(*args, **kwargs)
Bases:
SCPIInstrument
SCPIInstrument implementation for NI CompactRIO-based DCS interlock in OPMD.
Communicates with interlock GUI - the latter provides (currently read-only) access to some registers and computed values within FPGA and GUI.
- __init__(resource='TCPIP::localhost::9898::SOCKET', sim=False, outputs=4)
- Parameters:
resource – VISA Resource address. See VISA docs for more info.
outputs – How many relays this interlock device has. Defaults to 4.
- COM_RESET = ''
Instrument Reset SCPI command.
- MEASURE_TYPES = {'LID:VOLT': 'Lid sensor voltage (V)', 'NTC:TEMP': 'NTC temperature (degC)', 'NTC:VOLT': 'NTC output voltage (degC)', 'PRES:VOLT': 'Pressure sensor voltage (V)', 'PT100:RES': 'PT100 resistance (slot 1, ohm)', 'PT100:TEMP': 'PT100 temperature (slot 1, degC)', 'PT100_2:RES': 'PT100 resistance (slot 2, ohm)', 'PT100_2:TEMP': 'PT100 temperature (slot 2, degC)', 'RELAY:ON': 'Relay on?', 'RELAY:READY': 'Relay ready?', 'RELAY:STATUS': 'Relay status', 'RELAY:TRIP': 'Relay tripped?', 'SHT85:HUMI': 'SHT85 rel. humidity (%)', 'SHT85:TEMP': 'SHT85 temperature (degC)', 'VAC:VOLT': 'Vacuum sensor voltage (V)', 'VREF:VOLT': 'Reference voltage (V)'}
- class MeasureChannel(*args, **kwargs)
Bases:
MeasureChannel
MeasureChannel implementation for the ITkDCSInterlock.
- property status
- Returns:
Connection?
- Return type:
int
- property value
Performs measurement and returns value.
- Returns:
measured value.
- Return type:
float
- OUTPUTS = 4
- REGISTERS = {'EVENT_STATUS_REGISTER': 'Event Status Register', 'INSTRUMENT_STATUS_REGISTER': 'Channel Summary Status Register', 'QUESTIONABLE_STATUS_REGISTER': 'Questionable Status Register', 'STATUS_BYTE': 'Status Byte'}
- SETTINGS = {'IDENTIFIER': {'QUERY': '*IDN?'}, 'LID:VOLT': {'QUERY': 'LID:MEAS:VOLT?', 'parser': <function numeric_float>}, 'NTC:TEMP': {'QUERY': 'NTC:MEAS:TEMP? {:d}', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'NTC:VOLT': {'QUERY': 'NTC:MEAS:VOLT? {:d}', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'PRES:VOLT': {'QUERY': 'PRES:MEAS:VOLT?', 'parser': <function numeric_float>}, 'PT100:RES': {'QUERY': 'PT100:MEAS:RES? {:d}', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'PT100:TEMP': {'QUERY': 'PT100:MEAS:TEMP? {:d}', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'PT100_2:RES': {'QUERY': 'PT100_2:MEAS:RES? {:d}', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'PT100_2:TEMP': {'QUERY': 'PT100_2:MEAS:TEMP? {:d}', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'RELAY:ON': {'QUERY': 'RELAY:ON? {:d}', 'parser': <function numeric_bool>, 'verifier': <function is_integer.<locals>._is_integer>}, 'RELAY:READY': {'QUERY': 'RELAY:READY? {:d}', 'parser': <function numeric_bool>, 'verifier': <function is_integer.<locals>._is_integer>}, 'RELAY:STATUS': {'QUERY': 'RELAY:STATUS? {:d}', 'verifier': <function is_integer.<locals>._is_integer>}, 'RELAY:TRIP': {'QUERY': 'RELAY:TRIP? {:d}', 'parser': <function numeric_bool>, 'verifier': <function is_integer.<locals>._is_integer>}, 'SHT85:HUMI': {'QUERY': 'SHT85:MEAS:HUMI?', 'parser': <function numeric_float>}, 'SHT85:TEMP': {'QUERY': 'SHT85:MEAS:TEMP?', 'parser': <function numeric_float>, 'verifier': <function is_integer.<locals>._is_integer>}, 'VAC:VOLT': {'QUERY': 'VAC:MEAS:VOLT?', 'parser': <function numeric_float>}, 'VREF:VOLT': {'QUERY': 'VREF:MEAS:VOLT?', 'parser': <function numeric_float>}}
Settings dictionary with all Set/Query SCPI combinations.
- SOURCE_REGISTERS = {'CHANNEL_STATUS_REGISTER': 'Channel Status Register'}
- TIMEOUT = 10000
Ethernet link timeout.
- measure(channel)
Measure output voltage, current.
- Parameters:
channel – output to be measured.
no_lock – override acquire_lock (e.g. if lock already taken by function that measure-call is nested within).
- Returns:
tuple (voltage, current).
- query_channel(setting, channel, **kwargs)
Query setting on instrument for output channel.
- Parameters:
setting – key in class dictionary SETTINGS.
channel – output to set this setting on.
no_lock – override acquire_lock (e.g. if lock already taken by function that query_channel-call is nested within).
attempts – how many retries to give set command.
- Returns:
data returned by device for given query.
- set_channel(setting, channel, *value, **kwargs)
Set setting on instrument to value for output channel, and read-back using equivalent query().
- Parameters:
setting – key in class dictionary SETTINGS.
channel – channel to set this setting on.
value – target value for setting.
no_lock – override acquire_lock (e.g. if lock already taken by function that set_channel-call is nested within).
attempts – how many retries to give set command.
- Returns:
read-back value if query() available, else whether number of bytes written during set() meets expectation
- status(channel, **kwargs)
Check status of relay.
- Parameters:
channel – relay to be checked.
no_lock – override acquire_lock (e.g. if lock already taken by function that status-call is nested within).
attempts – how many retries to give set command.
- Returns:
status of output.
- validate_channel(channel, raise_exception=True)
Check if an output exists on this device.
- Parameters:
channel – channel number to validate as an output.