diff --git a/pyqt-apps/scripts/sirius-hla-si-rf-control.py b/pyqt-apps/scripts/sirius-hla-si-rf-control.py index 4dfdcfbc1..94a3dae66 100755 --- a/pyqt-apps/scripts/sirius-hla-si-rf-control.py +++ b/pyqt-apps/scripts/sirius-hla-si-rf-control.py @@ -7,7 +7,8 @@ from siriushla.as_rf_control.advanced_details import ADCDACDetails, \ AutoStartDetails, CalEqDetails, CalSysDetails, HardwareDetails, \ - LoopsDetails, RampsDetails, RFInputsDetails, TuningDetails + LoopsDetails, RampsDetails, RFInputsDetails, TuningDetails, \ + TempVariationDetails from siriushla.as_rf_control.control import RFMainControl from siriushla.as_rf_control.details import CavityStatusDetails, FDLDetails, \ LLRFInterlockDetails, SlowLoopErrorDetails, SlowLoopParametersDetails, \ @@ -39,6 +40,7 @@ 'rf-inputs': RFInputsDetails, 'tuning': TuningDetails, 'fdl': FDLDetails, + 'temp-variations': TempVariationDetails } general_windows = { diff --git a/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py b/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py index 1a02a3985..01629a32a 100644 --- a/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py +++ b/pyqt-apps/siriushla/as_rf_control/advanced_details/__init__.py @@ -10,3 +10,4 @@ from .rf_inputs import RFInputsDetails from .ssa_currents import SSACurrentsDetails from .tuning import TuningDetails +from .temp_variations import TempVariationDetails diff --git a/pyqt-apps/siriushla/as_rf_control/advanced_details/temp_variations.py b/pyqt-apps/siriushla/as_rf_control/advanced_details/temp_variations.py new file mode 100644 index 000000000..a6df17f15 --- /dev/null +++ b/pyqt-apps/siriushla/as_rf_control/advanced_details/temp_variations.py @@ -0,0 +1,181 @@ +"""Temperature Variations advanced details.""" + +from qtpy.QtCore import Qt +from qtpy.QtGui import QColor +from qtpy.QtWidgets import QGridLayout, QGroupBox, QLabel, \ + QVBoxLayout, QWidget + +from pyqtgraph import InfiniteLine, mkPen + +from pydm.widgets.channel import PyDMChannel + +from ...widgets import SiriusDialog, SiriusLabel, SiriusTimePlot, \ + SiriusLineEdit +from ..custom_widgets import RFTitleFrame +from ..util import DEFAULT_STYLESHEET, SEC_2_CHANNELS + + +class TempVariationDetails(SiriusDialog): + """Temperature Variations advanced details.""" + + def __init__(self, parent=None, prefix='', section='', system=''): + """Init.""" + super().__init__(parent) + self.prefix = prefix + self.prefix += ('-' if prefix and not prefix.endswith('-') else '') + self.section = section + self.system = system + self.chs = SEC_2_CHANNELS[self.section] + self.setObjectName(self.section+'App') + self.title = 'CM Temp Details' + self.title += (f' - {self.system}' if self.section == 'SI' else '') + self.setWindowTitle(self.title) + if self.section == 'SI': + self.syst_dict = self.chs['TempVariations'][self.system] + self._setupUi() + + def _setupUi(self): + self.setStyleSheet(DEFAULT_STYLESHEET) + lay = QVBoxLayout(self) + lay.setAlignment(Qt.AlignTop) + + title_frame = RFTitleFrame(self, self.system) + lay_title = QVBoxLayout(title_frame) + lay_title.addWidget(QLabel( + f'

{self.title}

', alignment=Qt.AlignCenter)) + + wid_temp_var = QWidget(self) + wid_temp_var.setMinimumSize(1300, 500) + wid_temp_var.setMaximumSize(1300, 500) + wid_temp_var.setLayout( + self._TempMonLayout(self.syst_dict)) + + lay.addWidget(title_frame) + lay.addWidget(wid_temp_var) + + def _TempMonLayout(self, chs_dict): + main_layout = QGridLayout() + + gbox_temp = QGroupBox('Temperature Variation') + lay_var = QGridLayout() + gbox_temp.setLayout(lay_var) + + pen = mkPen(color='k', width=2, style=Qt.DashLine) + + graph_temp = SiriusTimePlot(self) + graph_temp.setShowXGrid(True) + graph_temp.setShowYGrid(True) + graph_temp.setShowLegend(True) + graph_temp.setAutoRangeX(True) + graph_temp.setAutoRangeY(True) + graph_temp.setBackgroundColor(QColor(255, 255, 255)) + graph_temp.setTimeSpan(1800) + graph_temp.maxRedrawRate = 2 + + self.ref_lines = {} + self.ref_channels = {} + + tags_a = ['BT110', 'BT111', 'BT112'] + tags_b = ['BT210', 'BT211', 'BT212'] + + tags = tags_a if self.system == "A" else tags_b + addr = 'TempRate' + lims = ['Max', 'Min'] + for tag in tags: + graph_temp.addYChannel( + y_channel=self.prefix+chs_dict['Temp'][tag][addr][0], + color=chs_dict['Temp'][tag][addr][1], name=tag, + lineStyle=Qt.SolidLine, lineWidth=1) + + self.ref_lines[tag] = {} + self.ref_channels[tag] = {} + + for lim in lims: + pv_lim = self.prefix+chs_dict['Temp'][tag][lim] + line = InfiniteLine( + pos=0, angle=0, pen=pen) + graph_temp.addItem(line) + self.ref_lines[tag][lim] = line + channel = PyDMChannel( + address=pv_lim, + value_slot=lambda val, t=tag, l=lim: self._getTempLim(t, l, val) + ) + channel.connect() + self.ref_channels[tag][lim] = channel + + graph_temp.setLabel('left', 'K/min') + + lay_var.addWidget(graph_temp, 0, 0) + + gbox_delta = QGroupBox('Delta') + lay_delta = QGridLayout() + gbox_delta.setLayout(lay_delta) + + graph_delta = SiriusTimePlot(self) + graph_delta.setShowXGrid(True) + graph_delta.setShowYGrid(True) + graph_delta.setShowLegend(True) + graph_delta.setAutoRangeX(True) + graph_delta.setAutoRangeY(True) + graph_delta.setBackgroundColor(QColor(255, 255, 255)) + graph_delta.setTimeSpan(1800) + graph_delta.maxRedrawRate = 2 + + self.ref_lines_delta = {} + self.ref_channels_delta = {} + + delta = 'Delta A' if self.system == "A" else 'Delta B' + + graph_delta.addYChannel( + y_channel=self.prefix+chs_dict[delta]['Diff'], + color='green', name='Diff', + lineStyle=Qt.SolidLine, lineWidth=1) + + for lim in lims: + pv_lim_delta = self.prefix+chs_dict[delta][lim] + line_delta = InfiniteLine( + pos=0, angle=0, pen=pen) + graph_delta.addItem(line_delta) + self.ref_lines_delta[lim] = line_delta + channel_delta = PyDMChannel( + address=pv_lim_delta, + value_slot=lambda val, l=lim: self._getDeltaLim(l, val) + ) + channel_delta.connect() + self.ref_channels_delta[lim] = channel_delta + + graph_delta.setLabel('left', 'K') + + lay_delta.addWidget(graph_delta, 0, 0) + + gbox_interval = QGroupBox('Interval Time Setpoint') + gbox_interval.setFixedSize(400, 70) + lay_interval = QGridLayout() + gbox_interval.setLayout(lay_interval) + + interval = 'Interval A' if self.system == "A" else 'Interval B' + + interval_time_lbl = QLabel(f'

{interval}

', + alignment=Qt.AlignCenter) + interval_time_sp = SiriusLineEdit(self, + init_channel=self.prefix+chs_dict[interval]) + interval_time_rb = SiriusLabel(self, + init_channel=self.prefix+chs_dict[interval]) + + lay_interval.addWidget(interval_time_lbl, 0, 0, alignment=Qt.AlignCenter) + lay_interval.addWidget(interval_time_sp, 0, 1, alignment=Qt.AlignCenter) + lay_interval.addWidget(interval_time_rb, 0, 2, alignment=Qt.AlignCenter) + + main_layout.addWidget(gbox_temp, 1, 0) + main_layout.addWidget(gbox_delta, 1, 1) + main_layout.addWidget(gbox_interval, 0, 0, alignment=Qt.AlignLeft) + + return main_layout + + def _getTempLim(self, tag, lim, value): + if value is not None: + self.ref_lines[tag][lim].setPos(float(value)) + + def _getDeltaLim(self, lim, value): + if value is not None: + self.ref_lines_delta[lim].setPos(float(value)) diff --git a/pyqt-apps/siriushla/as_rf_control/control.py b/pyqt-apps/siriushla/as_rf_control/control.py index a8a59540d..03abbb5bc 100644 --- a/pyqt-apps/siriushla/as_rf_control/control.py +++ b/pyqt-apps/siriushla/as_rf_control/control.py @@ -958,8 +958,9 @@ def _advancedDetailsLayout(self): 'Cal Sys', 'cal-sys', systems[i], buttons) self._addDetailButton( 'Cal Eq', 'cal-eq', systems[i], buttons) - - if self.section == 'SI': + if self.section == "SI": + self._addDetailButton( + 'CM Temp', 'temp-variations', systems[i], buttons) gbox = QGroupBox(f'System {systems[i]}', self) gbox_lay = QGridLayout() gbox_lay.setHorizontalSpacing(9) @@ -994,13 +995,13 @@ def _setupDetailButtons(self, lay, buttons, row): def _handle_rmptab_visibility(self, unit_type): for pos in ['Top', 'Bottom']: - for pv_id in ['CavPwr', 'PowFwd', 'PowRev']: + for pv_id in ['CavPwr', 'PowFwd', 'PowRev', 'SSAFwd', 'SSARev']: self.ramp_chn_wid[unit_type][pos][pv_id].setVisible(True) cur_unit = 'mV' if unit_type == 'mV': cur_unit = 'W' for pos in ['Top', 'Bottom']: - for pv_id in ['CavPwr', 'PowFwd', 'PowRev']: + for pv_id in ['CavPwr', 'PowFwd', 'PowRev', 'SSAFwd', 'SSARev']: self.ramp_chn_wid[cur_unit][pos][pv_id].setVisible(False) def _rampMonLayout(self): @@ -1056,9 +1057,6 @@ def _rampMonLayout(self): self.cb_ramp.addItems(["W", "mV"]) self.cb_ramp.currentTextChanged.connect(self._handle_rmptab_visibility) - self.lb_c3phsbot = SiriusLabel( - self, self.prefix+'BO-05D:RF-P5Cav:Cell3BotPhs-Mon') - self.lb_c3phsbot.showUnits = True self.lb_cavvgapbot = SiriusLabel( self, self.prefix+'BO-05D:RF-P5Cav:Cell3BotVGap-Mon') self.lb_cavvgapbot.showUnits = True @@ -1080,9 +1078,6 @@ def _rampMonLayout(self): if unit_type == 'mV': wid_dict[pv_id].setVisible(False) - self.lb_c3phstop = SiriusLabel( - self, self.prefix+'BO-05D:RF-P5Cav:Cell3TopPhs-Mon') - self.lb_c3phstop.showUnits = True self.lb_cavvgaptop = SiriusLabel( self, self.prefix+'BO-05D:RF-P5Cav:Cell3TopVGap-Mon') self.lb_cavvgaptop.showUnits = True @@ -1098,23 +1093,23 @@ def _rampMonLayout(self): '

Power Fwd.

', self, alignment=Qt.AlignCenter), 3, 0) lay.addWidget(QLabel( '

Power Rev.

', self, alignment=Qt.AlignCenter), 4, 0) - lay.addItem( - QSpacerItem(0, 20, QSzPlcy.Ignored, QSzPlcy.Ignored), 5, 0) lay.addWidget(QLabel( - '

Phase

', self, alignment=Qt.AlignCenter), 6, 0) + '

SSA Fwd.

', self, alignment=Qt.AlignCenter), 5, 0) lay.addWidget(QLabel( - '

Gap Voltage:

', self, alignment=Qt.AlignCenter), 7, 0) + '

SSA Rev.

', self, alignment=Qt.AlignCenter), 6, 0) + lay.addItem( + QSpacerItem(0, 20, QSzPlcy.Ignored, QSzPlcy.Ignored), 7, 0) + lay.addWidget(QLabel( + '

Gap Voltage:

', self, alignment=Qt.AlignCenter), 8, 0) lay.addWidget(self.cb_ramp, 1, 0) - lay.addWidget(self.lb_c3phsbot, 6, 1) - lay.addWidget(self.lb_cavvgapbot, 7, 1, alignment=Qt.AlignCenter) - lay.addWidget(self.lb_c3phstop, 6, 2) - lay.addWidget(self.lb_cavvgaptop, 7, 2, alignment=Qt.AlignCenter) - lay.addItem(QSpacerItem(0, 20, QSzPlcy.Ignored, QSzPlcy.Fixed), 8, 0) - lay.addWidget(self.ramp_graph, 9, 0, 1, 3) - lay.addLayout(hbox_rb, 10, 0, 1, 3) + lay.addWidget(self.lb_cavvgapbot, 8, 1, alignment=Qt.AlignCenter) + lay.addWidget(self.lb_cavvgaptop, 8, 2, alignment=Qt.AlignCenter) + lay.addItem(QSpacerItem(0, 20, QSzPlcy.Ignored, QSzPlcy.Fixed), 9, 0) + lay.addWidget(self.ramp_graph, 10, 0, 1, 3) + lay.addLayout(hbox_rb, 11, 0, 1, 3) lay.addItem( - QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Expanding), 11, 0) + QSpacerItem(0, 10, QSzPlcy.Ignored, QSzPlcy.Expanding), 12, 0) return lay def _powerMeterLayout(self): @@ -1163,18 +1158,24 @@ def _powerMeterLayout(self): wch, dbch, mvch = dic['W'], dic['dBm'], dic['mV'] color = dic['color'] row = idx+1 - if idx > 3 and idx < 8: - column = 3 - row = idx-3 - elif idx >= 8: - column = 0 - if idx == 8: - lay_vals.addItem(QSpacerItem( - 0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed), row, 0) - elif idx > 11: + if self.section == 'SI': + if idx > 4 and idx < 10: + column = 3 + row = idx-4 + elif idx >= 10: + column = 0 + if idx == 8: + lay_vals.addItem(QSpacerItem( + 0, 10, QSzPlcy.Ignored, QSzPlcy.Fixed), row, 0) + elif idx > 14: + column = 3 + row = idx-4 + row += 1 + elif self.section == 'BO': + if idx > 5 and idx < 8: column = 3 row = idx-3 - row += 1 + row += 1 # Table cbx = QCheckBox(self) @@ -1260,15 +1261,8 @@ def _powerMeterLayout(self): cmd = f'{cmd} -d rf-inputs'.split(" ") connect_newprocess(pb_rfinp, cmd, is_window=True, parent=self) - lb_cavphs = QLabel('Phase', self, alignment=Qt.AlignCenter) - self.lb_cavphs = SiriusLabel( - self, self.prefix+'BO-05D:RF-P5Cav:Cell3Phs-Mon') - self.lb_cavphs.showUnits = True - lay_vals.addWidget(pb_rfinp, 0, 0, alignment=Qt.AlignCenter) lay_vals.addWidget(lb_rfinp, 0, 1) - lay_vals.addWidget(lb_cavphs, 5, 1, alignment=Qt.AlignCenter) - lay_vals.addWidget(self.lb_cavphs, 5, 2) else: for name in data: self.curves[name+' W'].setVisible('Coup' in name) @@ -1481,16 +1475,17 @@ def _graphsLayout(self): self.tempcirc_graph.backgroundColor = QColor(255, 255, 255) self.tempcirc_graph.showXGrid = True self.tempcirc_graph.showYGrid = True + self.tempcirc_graph.showLegend = True self.tempcirc_graph.timeSpan = 1800 self.tempcirc_graph.maxRedrawRate = 1 if self.section == 'SI': self.tempcirc_graph.addYChannel( y_channel=self.prefix+self.chs['TL Sts']['A']['Circulator Temp. In']['label'], - name='CTIn', color='magenta', + name='A', color='magenta', lineStyle=Qt.SolidLine, lineWidth=1) self.tempcirc_graph.addYChannel( - y_channel=self.prefix+self.chs['TL Sts']['A']['label']['Circulator Temp. Out'], - name='CTOut', color='darkRed', + y_channel=self.prefix+self.chs['TL Sts']['B']['Circulator Temp. In']['label'], + name='B', color='darkRed', lineStyle=Qt.SolidLine, lineWidth=1) else: self.tempcirc_graph.addYChannel( @@ -1538,6 +1533,9 @@ def _graphsLayout(self): row_t = 0 + self.ref_line = {} + self.ref_channel = {} + for i in range(len(systems)): lay_grid_temp = QGridLayout() lb_temp_area_sys = QLabel(f'

• {systems[i]}

', self) @@ -1564,6 +1562,8 @@ def _graphsLayout(self): lay_rfarea.addLayout(lay_grid_temp) + pen = mkPen(color='k', width=2, style=Qt.DashLine) + graph = SiriusTimePlot(self) graph.setObjectName(f'system_temp_{systems[i]}_graph') graph.autoRangeX = True @@ -1573,9 +1573,26 @@ def _graphsLayout(self): graph.showYGrid = True graph.timeSpan = 1800 graph.maxRedrawRate = 2 + + lim = 'Upper A' if systems[i] == "A" else 'Upper B' + graph.addYChannel( y_channel=self.prefix+self.chs['RF Area'][f'{systems[i]}']['Temp'], - name=f'Temp_{systems[i]}', color='red', lineStyle=Qt.SolidLine, lineWidth=1) + name=f'Temp_{systems[i]}', color='red', + lineStyle=Qt.SolidLine, lineWidth=1) + + pv_lim = self.prefix+self.chs['RF Area'][f'{systems[i]}'][lim] + + self.lim_line = InfiniteLine(angle=0, pen=pen) + graph.addItem(self.lim_line) + self.ref_line[lim] = self.lim_line + + ch_lim = SiriusConnectionSignal(pv_lim) + ch_lim.new_value_signal[float].connect( + lambda val, l=lim: self._getUpperLim(l, val) + ) + self.ref_channel[lim] = ch_lim + graph.setLabel('left', '°C') lay_rfarea.addWidget(graph) lay_rfarea.addItem(QSpacerItem( @@ -1654,6 +1671,10 @@ def horizontal_separator(self): line.setFrameShadow(QFrame.Sunken) return line + def _getUpperLim(self, lim, value): + if value is not None: + self.ref_line[lim].setPos(float(value)) + def vacuum_widget(self): self.vacuum_wid = QWidget() lay_vacuum = QVBoxLayout(self.vacuum_wid) @@ -1677,11 +1698,23 @@ def vacuum_widget(self): self.vacuum_graph.backgroundColor = QColor(255, 255, 255) self.vacuum_graph.showXGrid = True self.vacuum_graph.showYGrid = True + self.vacuum_graph.showLegend = True self.vacuum_graph.timeSpan = 1800 self.vacuum_graph.maxRedrawRate = 1 - self.vacuum_graph.addYChannel( - y_channel=self.prefix+self.chs['Cav Sts']['Vac']['Cells'], - name='Vacuum', color='black', lineStyle=Qt.SolidLine, lineWidth=1) + if self.section == "BO": + self.vacuum_graph.addYChannel( + y_channel=self.prefix+self.chs['Cav Sts']['Vac']['Cells'], + name='Vacuum', color='black', lineStyle=Qt.SolidLine, lineWidth=1) + else: + cav_pv = ['POB', 'Taper'] + systems = ['A', 'B'] + for sys in systems: + for cav in cav_pv: + self.vacuum_graph.addYChannel( + y_channel=self.prefix+self.chs['Cav Sts']['Vac']['Cav Pressure'][sys][cav][0], + name=self.prefix+self.chs['Cav Sts']['Vac']['Cav Pressure'][sys][cav][0][21:26], + color=self.prefix+self.chs['Cav Sts']['Vac']['Cav Pressure'][sys][cav][1], + lineStyle=Qt.SolidLine, lineWidth=1) self.vacuum_graph.setLabel('left', '') lay_vacuum.addWidget(self.vacuum_graph) return self.vacuum_wid diff --git a/pyqt-apps/siriushla/as_rf_control/util.py b/pyqt-apps/siriushla/as_rf_control/util.py index 667808f9f..42a449ebe 100644 --- a/pyqt-apps/siriushla/as_rf_control/util.py +++ b/pyqt-apps/siriushla/as_rf_control/util.py @@ -362,6 +362,18 @@ 'mV': 'BO-05D:RF-P5Cav:RevAmp-Mon', 'color': 'red', }, + 'SSA Forward': { + 'W': 'RA-ToBO:RF-SSAmpTower:FwdOutPwrW-Mon', + 'dBm': 'RA-ToBO:RF-SSAmpTower:FwdOutPwrdBm-Mon', + 'mV': 'RA-ToBO:RF-SSAmpTower:FwdOutAmp-Mon', + 'color': 'brown', + }, + 'SSA Reverse': { + 'W': 'RA-ToBO:RF-SSAmpTower:RevOutPwrW-Mon', + 'dBm': 'RA-ToBO:RF-SSAmpTower:RevOutPwrdBm-Mon', + 'mV': 'RA-ToBO:RF-SSAmpTower:RevOutAmp-Mon', + 'color': 'purple', + }, }, 'CavVGap': 'BO-05D:RF-P5Cav:Cell3VGap-Mon', 'TempMon': { @@ -380,24 +392,32 @@ 'Bottom': { 'CavPwr': 'BO-05D:RF-P5Cav:Cell3BotPwrW-Mon', 'PowFwd': 'BO-05D:RF-P5Cav:FwdBotPwrW-Mon', - 'PowRev': 'BO-05D:RF-P5Cav:RevBotPwrW-Mon' + 'PowRev': 'BO-05D:RF-P5Cav:RevBotPwrW-Mon', + 'SSAFwd': 'RA-ToBO:RF-SSAmpTower:FwdBotPwrW-Mon', + 'SSARev': 'RA-ToBO:RF-SSAmpTower:RevBotPwrW-Mon', }, 'Top': { 'CavPwr': 'BO-05D:RF-P5Cav:Cell3TopPwrW-Mon', 'PowFwd': 'BO-05D:RF-P5Cav:FwdTopPwrW-Mon', - 'PowRev': 'BO-05D:RF-P5Cav:RevTopPwrW-Mon' + 'PowRev': 'BO-05D:RF-P5Cav:RevTopPwrW-Mon', + 'SSAFwd': 'RA-ToBO:RF-SSAmpTower:FwdTopPwrW-Mon', + 'SSARev': 'RA-ToBO:RF-SSAmpTower:RevTopPwrW-Mon', } }, 'mV': { 'Bottom': { 'CavPwr': 'BO-05D:RF-P5Cav:Cell3BotAmp-Mon', 'PowFwd': 'BO-05D:RF-P5Cav:FwdBotAmp-Mon', - 'PowRev': 'BO-05D:RF-P5Cav:RevBotAmp-Mon' + 'PowRev': 'BO-05D:RF-P5Cav:RevBotAmp-Mon', + 'SSAFwd': 'RA-ToBO:RF-SSAmpTower:FwdBotAmp-Mon', + 'SSARev': 'RA-ToBO:RF-SSAmpTower:RevBotAmp-Mon', }, 'Top': { 'CavPwr': 'BO-05D:RF-P5Cav:Cell3TopAmp-Mon', 'PowFwd': 'BO-05D:RF-P5Cav:FwdTopAmp-Mon', - 'PowRev': 'BO-05D:RF-P5Cav:RevTopAmp-Mon' + 'PowRev': 'BO-05D:RF-P5Cav:RevTopAmp-Mon', + 'SSAFwd': 'RA-ToBO:RF-SSAmpTower:FwdTopAmp-Mon', + 'SSARev': 'RA-ToBO:RF-SSAmpTower:RevTopAmp-Mon', } } }, @@ -1729,7 +1749,17 @@ 'Cond': 'RA-RaSIA01:RF-LLRF:VacuumFastRly-Mon', 'Cells ok': 'SI-03SP:RF-P7Cav:Pressure-Mon', 'Coupler ok': 'SI-03SP:RF-P7Cav:CoupPressure-Mon', - } + 'Cav Pressure': { + 'A': { + 'POB': ['SI-03SP:RF-CryoMod-1:BP101_CCG_POBPressure-Mon', 'black'], + 'Taper': ['SI-03SP:RF-CryoMod-1:BP103_CCG_TaperPressure-Mon', 'green'] + }, + 'B': { + 'POB': ['SI-03SP:RF-CryoMod-2:BP201_CCG_POBPressure-Mon', 'darkRed'], + 'Taper': ['SI-03SP:RF-CryoMod-2:BP203_CCG_TaperPressure-Mon', 'chocolate'] + }, + }, + }, }, 'Cryo Sts': { 'A': { @@ -1916,11 +1946,13 @@ 'Geral': 'RA-RaSIA02:RF-THSensor:TempUp-Mon', 'Temp': 'RA-RaSIA02:RF-THSensor:Temp-Mon', 'Humidity': 'RA-RaSIA02:RF-THSensor:Humidity-Mon', + 'Upper A': 'RA-RaSIA02:RF-THSensor:TempUpperLimit-Cte' }, 'B': { 'Geral': 'RA-RaSIB02:RF-THSensor:TempUp-Mon', 'Temp': 'RA-RaSIB02:RF-THSensor:Temp-Mon', 'Humidity': 'RA-RaSIB02:RF-THSensor:Humidity-Mon', + 'Upper B': 'RA-RaSIB02:RF-THSensor:TempUpperLimit-Cte' }, }, 'SSA': { @@ -2350,6 +2382,12 @@ 'W': 'RA-ToSIA02:RF-SSAmpTower:RevOutPwrW-Mon', 'color': 'darkGreen' }, + 'A - Fwd Load': { + 'mV': 'RA-TL:RF-Load-SIA:FwdInAmp-Mon', + 'dBm': 'RA-TL:RF-Load-SIA:FwdInPwrdBm-Mon', + 'W': 'RA-TL:RF-Load-SIA:FwdInPwrW-Mon', + 'color': 'yellow' + }, 'A - Cav': { 'mV': 'SI-03SP:RF-SRFCav-A:Amp-Mon', 'dBm': 'SI-03SP:RF-SRFCav-A:PwrdBm-Mon', @@ -2368,11 +2406,17 @@ 'W': 'SI-03SP:RF-SRFCav-A:RevPwrW-Mon', 'color': 'darkBlue' }, - 'A - Fwd Load': { - 'mV': 'RA-TL:RF-Load-SIA:FwdInAmp-Mon', - 'dBm': 'RA-TL:RF-Load-SIA:FwdInPwrdBm-Mon', - 'W': 'RA-TL:RF-Load-SIA:FwdInPwrW-Mon', - 'color': 'yellow' + 'A - FwdInCirc': { + 'mV': 'RA-TL:RF-Circulator-SIA:FwdInAmp-Mon', + 'dBm': 'RA-TL:RF-Circulator-SIA:FwdInPwrdBm-Mon', + 'W': 'RA-TL:RF-Circulator-SIA:FwdInPwrW-Mon', + 'color': 'green' + }, + 'A - RevInCirc': { + 'mV': 'RA-TL:RF-Circulator-SIA:RevInAmp-Mon', + 'dBm': 'RA-TL:RF-Circulator-SIA:RevInPwrdBm-Mon', + 'W': 'RA-TL:RF-Circulator-SIA:RevInPwrW-Mon', + 'color': 'brown' }, 'B - Fwd SSA 3': { 'mV': 'RA-ToSIB03:RF-SSAmpTower:FwdOutAmp-Mon', @@ -2398,6 +2442,12 @@ 'W': 'RA-ToSIB04:RF-SSAmpTower:RevOutPwrW-Mon', 'color': 'chocolate' }, + 'B - Fwd Load': { + 'mV': 'RA-TL:RF-Load-SIB:FwdInAmp-Mon', + 'dBm': 'RA-TL:RF-Load-SIB:FwdInPwrdBm-Mon', + 'W': 'RA-TL:RF-Load-SIB:FwdInPwrW-Mon', + 'color': 'darkSlateGrey' + }, 'B - Cav': { 'mV': 'SI-03SP:RF-SRFCav-B:Amp-Mon', 'dBm': 'SI-03SP:RF-SRFCav-B:PwrdBm-Mon', @@ -2416,11 +2466,17 @@ 'W': 'SI-03SP:RF-SRFCav-B:RevPwrW-Mon', 'color': 'saddlebrown' }, - 'B - Fwd Load': { - 'mV': 'RA-TL:RF-Load-SIB:FwdInAmp-Mon', - 'dBm': 'RA-TL:RF-Load-SIB:FwdInPwrdBm-Mon', - 'W': 'RA-TL:RF-Load-SIB:FwdInPwrW-Mon', - 'color': 'darkSlateGrey' + 'B - FwdInCirc': { + 'mV': 'RA-TL:RF-Circulator-SIB:FwdInAmp-Mon', + 'dBm': 'RA-TL:RF-Circulator-SIB:FwdInPwrdBm-Mon', + 'W': 'RA-TL:RF-Circulator-SIB:FwdInPwrW-Mon', + 'color': 'gray' + }, + 'B - RevInCirc': { + 'mV': 'RA-TL:RF-Circulator-SIB:RevInAmp-Mon', + 'dBm': 'RA-TL:RF-Circulator-SIB:RevInPwrdBm-Mon', + 'W': 'RA-TL:RF-Circulator-SIB:RevInPwrW-Mon', + 'color': 'darkOrange' }, }, 'CavVGap': { @@ -4921,6 +4977,58 @@ 'Q0': 'SI-03SP:RF-SRFCav-B:Q0-Cte' } }, + 'TempVariations': { + 'A': { + 'Temp': { + 'BT110': { + 'TempRate': ['SI-03SP:RF-CryoMod-1:BT110_HeVesselHeaterTempRate-Mon', 'magenta'], + 'Max': 'SI-03SP:RF-CryoMod-1:BT110_HeVesselHeaterTempMaxRate-Mon', + 'Min': 'SI-03SP:RF-CryoMod-1:BT110_HeVesselHeaterTempMinRate-Mon' + }, + 'BT111': { + 'TempRate': ['SI-03SP:RF-CryoMod-1:BT111_CavBotTempRate-Mon', 'darkRed'], + 'Max': 'SI-03SP:RF-CryoMod-1:BT111_CavBotTempMaxRate-Mon', + 'Min': 'SI-03SP:RF-CryoMod-1:BT111_CavBotTempMinRate-Mon' + }, + 'BT112': { + 'TempRate': ['SI-03SP:RF-CryoMod-1:BT112_CavTopTempRate-Mon', 'blue'], + 'Max': 'SI-03SP:RF-CryoMod-1:BT112_CavTopTempMaxRate-Mon', + 'Min': 'SI-03SP:RF-CryoMod-1:BT112_CavTopTempMinRate-Mon' + }, + }, + 'Delta A': { + 'Diff': 'SI-03SP:RF-CryoMod-1:CavTopBotTempDiff-Mon', + 'Max': 'SI-03SP:RF-CryoMod-1:CavTopBotTempMaxDiff-Mon', + 'Min': 'SI-03SP:RF-CryoMod-1:CavTopBotTempMinDiff-Mon' + }, + 'Interval A': 'SI-03SP:RF-CryoMod-1:CavTempRateTimeInterval-SP' + }, + 'B': { + 'Temp': { + 'BT210': { + 'TempRate': ['SI-03SP:RF-CryoMod-2:BT210_HeVesselHeaterTempRate-Mon', 'magenta'], + 'Max': 'SI-03SP:RF-CryoMod-2:BT210_HeVesselHeaterTempMaxRate-Mon', + 'Min': 'SI-03SP:RF-CryoMod-2:BT210_HeVesselHeaterTempMinRate-Mon' + }, + 'BT211': { + 'TempRate': ['SI-03SP:RF-CryoMod-2:BT211_CavBotTempRate-Mon', 'darkRed'], + 'Max': 'SI-03SP:RF-CryoMod-2:BT211_CavBotTempMaxRate-Mon', + 'Min': 'SI-03SP:RF-CryoMod-2:BT211_CavBotTempMinRate-Mon' + }, + 'BT212': { + 'TempRate': ['SI-03SP:RF-CryoMod-2:BT212_CavTopTempRate-Mon', 'blue'], + 'Max': 'SI-03SP:RF-CryoMod-2:BT212_CavTopTempMaxRate-Mon', + 'Min': 'SI-03SP:RF-CryoMod-2:BT212_CavTopTempMinRate-Mon' + }, + }, + 'Delta B': { + 'Diff': 'SI-03SP:RF-CryoMod-2:CavTopBotTempDiff-Mon', + 'Max': 'SI-03SP:RF-CryoMod-2:CavTopBotTempMaxDiff-Mon', + 'Min': 'SI-03SP:RF-CryoMod-2:CavTopBotTempMinDiff-Mon' + }, + 'Interval B': 'SI-03SP:RF-CryoMod-2:CavTempRateTimeInterval-SP' + }, + }, 'ACPanel': { 'A': { 'Phs': {