Skip to content
Snippets Groups Projects
Commit ed2b02db authored by Michael Pawelzik's avatar Michael Pawelzik
Browse files

- external sensors added

- 4-Port Parameter added
parent 4d4655c8
No related branches found
No related tags found
No related merge requests found
...@@ -86,10 +86,13 @@ class MeasurementPlot: ...@@ -86,10 +86,13 @@ class MeasurementPlot:
# Third plot: parameter of external sensors DUT temperature, DUT humidity # Third plot: parameter of external sensors DUT temperature, DUT humidity
self.path_collection_temp_dut = self.ax1[2].scatter([], [], c='red', marker='p', label='DUT temperature') self.path_collection_temp_dut = self.ax1[2].scatter([], [], c='red', marker='p', label='DUT temperature')
self.path_collection_temp_dut2 = self.ax1[2].scatter([],[], c= 'green', marker = '.', label = 'DUT2 temeprature')
self.ext_sens_hum_axis = self.ax1[2].twinx() self.ext_sens_hum_axis = self.ax1[2].twinx()
self.path_collection_hum_dut = self.ext_sens_hum_axis.scatter([], [], c='purple', marker='*', self.path_collection_hum_dut = self.ext_sens_hum_axis.scatter([], [], c='purple', marker='*',
label='DUT humidity') label='DUT humidity')
self.path_collection_hum_dut2 = self.ext_sens_hum_axis.scatter([],[], c='grey', marker='4',
label ='DUT2 humidity')
self.ax1[2].set_xlabel("TIMESTAMP") self.ax1[2].set_xlabel("TIMESTAMP")
...@@ -97,7 +100,8 @@ class MeasurementPlot: ...@@ -97,7 +100,8 @@ class MeasurementPlot:
self.ext_sens_hum_axis.set_ylabel("HUMIDITY [%RH]", color = 'purple') self.ext_sens_hum_axis.set_ylabel("HUMIDITY [%RH]", color = 'purple')
self.ax1[2].grid(True, linestyle=":") self.ax1[2].grid(True, linestyle=":")
all_path_collections = [self.path_collection_temp_dut, self.path_collection_hum_dut] all_path_collections = [self.path_collection_temp_dut, self.path_collection_hum_dut,
self.path_collection_temp_dut2, self.path_collection_hum_dut2]
labels = [pc.get_label() for pc in all_path_collections] labels = [pc.get_label() for pc in all_path_collections]
self.ax1[2].legend(all_path_collections, labels, loc=self.legend_loc, bbox_to_anchor=self.legend_bbox_to_anchor) self.ax1[2].legend(all_path_collections, labels, loc=self.legend_loc, bbox_to_anchor=self.legend_bbox_to_anchor)
...@@ -229,6 +233,7 @@ class MeasurementPlot: ...@@ -229,6 +233,7 @@ class MeasurementPlot:
# refresh temperatures for used external sensors in subplots # refresh temperatures for used external sensors in subplots
temp_dut = data_frame.TEMP_DUT temp_dut = data_frame.TEMP_DUT
temp_room = data_frame.TEMP_ROOM temp_room = data_frame.TEMP_ROOM
temp_dut2 = data_frame.TEMP_DUT2
minimum, maximum = self.get_extended_min_max(temp_dut) minimum, maximum = self.get_extended_min_max(temp_dut)
self.ax1[2].set_ylim(minimum, maximum) self.ax1[2].set_ylim(minimum, maximum)
......
{"temp_dut": "0.0", "hum_dut": "0.1", "temp_room": "1.0" , "hum_room": "1.1", "air_press_room": "1.3", "temp_meas_instr": "2.0", "hum_meas_instr": "2.1"} {"temp_dut": "0.0", "hum_dut": "0.1", "temp_room": "1.0" , "hum_room": "1.1", "air_press_room": "1.3", "temp_meas_instr": "2.0", "hum_meas_instr": "2.1", "temp_dut2": "3.0", "hum_dut2": "3.1"}
...@@ -46,7 +46,8 @@ class ExternalSensors: ...@@ -46,7 +46,8 @@ class ExternalSensors:
def get_sensor_values(self): def get_sensor_values(self):
""" """
Returns: (temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room) Returns: (temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr,
air_press_room, temp_dut2, hum_dut2)
""" """
sens_vals_dict = dict() sens_vals_dict = dict()
self.logger.request_meas_vals_all_channels() self.logger.request_meas_vals_all_channels()
...@@ -63,6 +64,8 @@ class ExternalSensors: ...@@ -63,6 +64,8 @@ class ExternalSensors:
hum_dut = sens_vals_series.hum_dut hum_dut = sens_vals_series.hum_dut
hum_room = sens_vals_series.hum_room hum_room = sens_vals_series.hum_room
air_press_room = sens_vals_series.air_press_room air_press_room = sens_vals_series.air_press_room
temp_dut2 = sens_vals_series.temp_dut2
hum_dut2 = sens_vals_series.hum_dut2
if self.logger_model == '710': if self.logger_model == '710':
temp_meas_instr = sens_vals_series.temp_meas_instr temp_meas_instr = sens_vals_series.temp_meas_instr
...@@ -72,7 +75,8 @@ class ExternalSensors: ...@@ -72,7 +75,8 @@ class ExternalSensors:
temp_meas_instr = -30 temp_meas_instr = -30
hum_meas_instr = 0 hum_meas_instr = 0
return temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, air_press_room return temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, hum_meas_instr, \
air_press_room, temp_dut2, hum_dut2
def close(self): def close(self):
self.logger.close() self.logger.close()
......
...@@ -32,7 +32,8 @@ class MeasurementData: ...@@ -32,7 +32,8 @@ class MeasurementData:
def __init__(self, timestamp, temp, hum, dut_data, percent_temp_heater, def __init__(self, timestamp, temp, hum, dut_data, percent_temp_heater,
percent_hum_heater, temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room, percent_hum_heater, temp_dut, temp_room, temp_meas_instr, hum_dut, hum_room,
hum_meas_instr, air_press_room, temp_chamber_meas_instr, hum_chamber_meas_instr): hum_meas_instr, air_press_room, temp_chamber_meas_instr, hum_chamber_meas_instr,
temp_dut2, hum_dut2):
self.timestamp = timestamp self.timestamp = timestamp
self.temp = temp self.temp = temp
self.hum = hum self.hum = hum
...@@ -49,6 +50,8 @@ class MeasurementData: ...@@ -49,6 +50,8 @@ class MeasurementData:
self.air_press_room = air_press_room self.air_press_room = air_press_room
self.hum_meas_instr = hum_meas_instr self.hum_meas_instr = hum_meas_instr
self.hum_chamber_meas_instr = hum_chamber_meas_instr self.hum_chamber_meas_instr = hum_chamber_meas_instr
self.temp_dut2 = temp_dut2
self.hum_dut2 = hum_dut2
class Measurements: class Measurements:
...@@ -190,7 +193,7 @@ class Measurements: ...@@ -190,7 +193,7 @@ class Measurements:
fieldnames = ['TIMESTAMP', 'TARGET_TEMPERATURE', 'READBACK_TEMPERATURE', 'TARGET_HUMIDITY', fieldnames = ['TIMESTAMP', 'TARGET_TEMPERATURE', 'READBACK_TEMPERATURE', 'TARGET_HUMIDITY',
'READBACK_HUMIDITY', 'DUT_IDENTIFIER', 'RUN_ID', 'EQUILIBRIUM_INDICATOR', 'TEMP_HEATER', 'READBACK_HUMIDITY', 'DUT_IDENTIFIER', 'RUN_ID', 'EQUILIBRIUM_INDICATOR', 'TEMP_HEATER',
'HUM_HEATER', 'TEMP_DUT', 'TEMP_ROOM', 'TEMP_MEAS_INSTR', 'HUM_DUT', 'HUM_ROOM', 'HUM_HEATER', 'TEMP_DUT', 'TEMP_ROOM', 'TEMP_MEAS_INSTR', 'HUM_DUT', 'HUM_ROOM',
'HUM_MEAS_INSTR', 'AIR_PRESS_ROOM', 'READBACK_TEMP_MEAS_INSTR', 'READBACK_HUM_MEAS_INSTR'] 'HUM_MEAS_INSTR', 'AIR_PRESS_ROOM', 'READBACK_TEMP_MEAS_INSTR', 'READBACK_HUM_MEAS_INSTR', 'TEMP_DUT2', 'HUM_DUT2']
fieldnames.extend(self.dut.get_dut_signal_names()) fieldnames.extend(self.dut.get_dut_signal_names())
# csv.dict writer add adda row wise # csv.dict writer add adda row wise
...@@ -376,6 +379,8 @@ class Measurements: ...@@ -376,6 +379,8 @@ class Measurements:
'AIR_PRESS_ROOM': data.air_press_room, 'AIR_PRESS_ROOM': data.air_press_room,
'READBACK_TEMP_MEAS_INSTR': float(data.temp_chamber_meas_instr), 'READBACK_TEMP_MEAS_INSTR': float(data.temp_chamber_meas_instr),
'READBACK_HUM_MEAS_INSTR': float(data.hum_chamber_meas_instr), 'READBACK_HUM_MEAS_INSTR': float(data.hum_chamber_meas_instr),
'TEMP_DUT2': data.temp_dut2,
'HUM_DUT2': data.hum_dut2
} }
measurement.update(data.dut_data) measurement.update(data.dut_data)
return measurement return measurement
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
"type": "VNA", "type": "VNA",
"delta_mag": 0.13, "delta_mag": 0.13,
"delta_phase": 0.25, "delta_phase": 0.25,
"reference_signals" : ["S21_PHASE", "S21_MAGNITUDE"], "reference_signals" : ["S21_PHASE", "S21_MAGNITUDE", "S43_PHASE","S43_MAGNITUDE"],
"frequencies": [1300000000, 108000000, 216666666, 499664300, 3000000000, 3900000000], "frequencies": [1300000000, 108000000, 216666666, 499664300, 3000000000, 3900000000],
"vna_ip": "mskzna43-lab", "vna_ip": "mskzna43-lab",
"vna_config_file": "CALSetup4000_3.znxml" "vna_config_file": "CALSetup4000_3.znxml"
......
...@@ -21,6 +21,11 @@ class VnaMeasurement(dut_measurement.DutMeasurement): ...@@ -21,6 +21,11 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
self.vna.create_new_trace("Trace2", "S12") self.vna.create_new_trace("Trace2", "S12")
self.vna.create_new_trace("Trace3", "S21") self.vna.create_new_trace("Trace3", "S21")
self.vna.create_new_trace("Trace4", "S22") self.vna.create_new_trace("Trace4", "S22")
self.vna.create_new_trace("Trace5", "S33")
self.vna.create_new_trace("Trace6", "S34")
self.vna.create_new_trace("Trace7", "S43")
self.vna.create_new_trace("Trace8", "S44")
self.frequencies = {} self.frequencies = {}
for f in config_data['frequencies']: for f in config_data['frequencies']:
...@@ -41,6 +46,11 @@ class VnaMeasurement(dut_measurement.DutMeasurement): ...@@ -41,6 +46,11 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
s12 = self._get_trace_data("Trace2") s12 = self._get_trace_data("Trace2")
s21 = self._get_trace_data("Trace3") s21 = self._get_trace_data("Trace3")
s22 = self._get_trace_data("Trace4") s22 = self._get_trace_data("Trace4")
s33 = self._get_trace_data("Trace5")
s34 = self._get_trace_data("Trace6")
s43 = self._get_trace_data("Trace7")
s44 = self._get_trace_data("Trace8")
return {'RF_POWER': power, 'RF_FREQUENCY': frequency, return {'RF_POWER': power, 'RF_FREQUENCY': frequency,
'S11_MAGNITUDE': self.calculate_mean_magnitude_db(s11), 'S11_MAGNITUDE': self.calculate_mean_magnitude_db(s11),
...@@ -50,7 +60,15 @@ class VnaMeasurement(dut_measurement.DutMeasurement): ...@@ -50,7 +60,15 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
'S21_MAGNITUDE': self.calculate_mean_magnitude_db(s21), 'S21_MAGNITUDE': self.calculate_mean_magnitude_db(s21),
'S21_PHASE': self.calculate_mean_phase(s21), 'S21_PHASE': self.calculate_mean_phase(s21),
'S22_MAGNITUDE': self.calculate_mean_magnitude_db(s22), 'S22_MAGNITUDE': self.calculate_mean_magnitude_db(s22),
'S22_PHASE': self.calculate_mean_phase(s21), 'S22_PHASE': self.calculate_mean_phase(s22),
'S33_MAGNITUDE': self.calculate_mean_magnitude_db(s33),
'S33_PHASE': self.calculate_mean_phase(s33),
'S34_MAGNITUDE': self.calculate_mean_magnitude_db(s34),
'S34_PHASE': self.calculate_mean_phase(s34),
'S43_MAGNITUDE': self.calculate_mean_magnitude_db(s43),
'S43_PHASE': self.calculate_mean_phase(s43),
'S44_MAGNITUDE': self.calculate_mean_magnitude_db(s44),
'S44_PHASE': self.calculate_mean_phase(s44),
'SET_NAME': set_name} 'SET_NAME': set_name}
# exception for pyvisa error or timeout # exception for pyvisa error or timeout
...@@ -66,7 +84,9 @@ class VnaMeasurement(dut_measurement.DutMeasurement): ...@@ -66,7 +84,9 @@ class VnaMeasurement(dut_measurement.DutMeasurement):
def get_dut_signal_names(self): def get_dut_signal_names(self):
return ['RF_POWER', 'RF_FREQUENCY', 'S11_MAGNITUDE', 'S11_PHASE', 'S12_MAGNITUDE', return ['RF_POWER', 'RF_FREQUENCY', 'S11_MAGNITUDE', 'S11_PHASE', 'S12_MAGNITUDE',
'S12_PHASE', 'S21_MAGNITUDE', 'S21_PHASE', 'S22_MAGNITUDE', 'S22_PHASE', 'SET_NAME'] 'S12_PHASE', 'S21_MAGNITUDE', 'S21_PHASE', 'S22_MAGNITUDE', 'S22_PHASE',
'S33_MAGNITUDE', 'S33_PHASE', 'S34_MAGNITUDE', 'S34_PHASE', 'S43_MAGNITUDE',
'S43_PHASE', 'S44_MAGNITUDE', 'S44_PHASE','SET_NAME']
def get_dut_reference_signal_names(self): def get_dut_reference_signal_names(self):
return self.reference_signal_names return self.reference_signal_names
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment