diff --git a/config/instruction_images/st-ten-12/DEFAULT.svg b/config/instruction_images/st-ten-12/DEFAULT.svg new file mode 100644 index 0000000..facc0bb --- /dev/null +++ b/config/instruction_images/st-ten-12/DEFAULT.svg @@ -0,0 +1,49 @@ + + + +DISEGNO NON DISPONIBILE diff --git a/config/instruction_images/st-ten-12/img/arw-yel-down.png b/config/instruction_images/st-ten-12/img/arw-yel-down.png new file mode 100644 index 0000000..bb3c668 Binary files /dev/null and b/config/instruction_images/st-ten-12/img/arw-yel-down.png differ diff --git a/config/instruction_images/st-ten-12/img/mb1.png b/config/instruction_images/st-ten-12/img/mb1.png new file mode 100644 index 0000000..731a437 Binary files /dev/null and b/config/instruction_images/st-ten-12/img/mb1.png differ diff --git a/config/instruction_images/st-ten-12/img/mi1.PNG b/config/instruction_images/st-ten-12/img/mi1.PNG new file mode 100644 index 0000000..6b0f9d9 Binary files /dev/null and b/config/instruction_images/st-ten-12/img/mi1.PNG differ diff --git a/config/instruction_images/st-ten-12/img/mi2.PNG b/config/instruction_images/st-ten-12/img/mi2.PNG new file mode 100644 index 0000000..9db21ff Binary files /dev/null and b/config/instruction_images/st-ten-12/img/mi2.PNG differ diff --git a/config/instruction_images/st-ten-12/img/ok.png b/config/instruction_images/st-ten-12/img/ok.png new file mode 100644 index 0000000..d576b7d Binary files /dev/null and b/config/instruction_images/st-ten-12/img/ok.png differ diff --git a/config/instruction_images/st-ten-12/img/rb1.PNG b/config/instruction_images/st-ten-12/img/rb1.PNG new file mode 100644 index 0000000..3050451 Binary files /dev/null and b/config/instruction_images/st-ten-12/img/rb1.PNG differ diff --git a/config/instruction_images/st-ten-12/img/rb2.PNG b/config/instruction_images/st-ten-12/img/rb2.PNG new file mode 100644 index 0000000..4bf5efc Binary files /dev/null and b/config/instruction_images/st-ten-12/img/rb2.PNG differ diff --git a/config/instruction_images/st-ten-12/img/rm1.PNG b/config/instruction_images/st-ten-12/img/rm1.PNG new file mode 100644 index 0000000..33f0eeb Binary files /dev/null and b/config/instruction_images/st-ten-12/img/rm1.PNG differ diff --git a/config/instruction_images/st-ten-12/img/rm2.PNG b/config/instruction_images/st-ten-12/img/rm2.PNG new file mode 100644 index 0000000..ef1496a Binary files /dev/null and b/config/instruction_images/st-ten-12/img/rm2.PNG differ diff --git a/config/instruction_images/st-ten-12/img/tape_black.png b/config/instruction_images/st-ten-12/img/tape_black.png new file mode 100644 index 0000000..0d51c4b Binary files /dev/null and b/config/instruction_images/st-ten-12/img/tape_black.png differ diff --git a/config/instruction_images/st-ten-12/img/tape_white.png b/config/instruction_images/st-ten-12/img/tape_white.png new file mode 100644 index 0000000..d4b64f0 Binary files /dev/null and b/config/instruction_images/st-ten-12/img/tape_white.png differ diff --git a/config/instruction_images/st-ten-13/DEFAULT.svg b/config/instruction_images/st-ten-13/DEFAULT.svg new file mode 100644 index 0000000..facc0bb --- /dev/null +++ b/config/instruction_images/st-ten-13/DEFAULT.svg @@ -0,0 +1,49 @@ + + + +DISEGNO NON DISPONIBILE diff --git a/config/instruction_images/st-ten-13/img/arw-yel-down.png b/config/instruction_images/st-ten-13/img/arw-yel-down.png new file mode 100644 index 0000000..bb3c668 Binary files /dev/null and b/config/instruction_images/st-ten-13/img/arw-yel-down.png differ diff --git a/config/instruction_images/st-ten-13/img/mb1.png b/config/instruction_images/st-ten-13/img/mb1.png new file mode 100644 index 0000000..731a437 Binary files /dev/null and b/config/instruction_images/st-ten-13/img/mb1.png differ diff --git a/config/instruction_images/st-ten-13/img/mi1.PNG b/config/instruction_images/st-ten-13/img/mi1.PNG new file mode 100644 index 0000000..6b0f9d9 Binary files /dev/null and b/config/instruction_images/st-ten-13/img/mi1.PNG differ diff --git a/config/instruction_images/st-ten-13/img/mi2.PNG b/config/instruction_images/st-ten-13/img/mi2.PNG new file mode 100644 index 0000000..9db21ff Binary files /dev/null and b/config/instruction_images/st-ten-13/img/mi2.PNG differ diff --git a/config/instruction_images/st-ten-13/img/ok.png b/config/instruction_images/st-ten-13/img/ok.png new file mode 100644 index 0000000..d576b7d Binary files /dev/null and b/config/instruction_images/st-ten-13/img/ok.png differ diff --git a/config/instruction_images/st-ten-13/img/rb1.PNG b/config/instruction_images/st-ten-13/img/rb1.PNG new file mode 100644 index 0000000..3050451 Binary files /dev/null and b/config/instruction_images/st-ten-13/img/rb1.PNG differ diff --git a/config/instruction_images/st-ten-13/img/rb2.PNG b/config/instruction_images/st-ten-13/img/rb2.PNG new file mode 100644 index 0000000..4bf5efc Binary files /dev/null and b/config/instruction_images/st-ten-13/img/rb2.PNG differ diff --git a/config/instruction_images/st-ten-13/img/rm1.PNG b/config/instruction_images/st-ten-13/img/rm1.PNG new file mode 100644 index 0000000..33f0eeb Binary files /dev/null and b/config/instruction_images/st-ten-13/img/rm1.PNG differ diff --git a/config/instruction_images/st-ten-13/img/rm2.PNG b/config/instruction_images/st-ten-13/img/rm2.PNG new file mode 100644 index 0000000..ef1496a Binary files /dev/null and b/config/instruction_images/st-ten-13/img/rm2.PNG differ diff --git a/config/instruction_images/st-ten-13/img/tape_black.png b/config/instruction_images/st-ten-13/img/tape_black.png new file mode 100644 index 0000000..0d51c4b Binary files /dev/null and b/config/instruction_images/st-ten-13/img/tape_black.png differ diff --git a/config/instruction_images/st-ten-13/img/tape_white.png b/config/instruction_images/st-ten-13/img/tape_white.png new file mode 100644 index 0000000..d4b64f0 Binary files /dev/null and b/config/instruction_images/st-ten-13/img/tape_white.png differ diff --git a/config/instruction_images/st-ten-5/5802850935.tubo.svg b/config/instruction_images/st-ten-5/5802850935.tubo.svg deleted file mode 100644 index cb6ed4a..0000000 --- a/config/instruction_images/st-ten-5/5802850935.tubo.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - diff --git a/config/machine_settings/hostnames.ini b/config/machine_settings/hostnames.ini index 788e34b..dfdc1c7 100644 --- a/config/machine_settings/hostnames.ini +++ b/config/machine_settings/hostnames.ini @@ -10,3 +10,6 @@ st-ten-8: st-ten-8 ST-TEN-9: st-ten-9 st-ten-10: st-ten-10 st-ten-11: st-ten-11 +st-ten-12: st-ten-12 +st-ten-13: st-ten-13 + diff --git a/config/machine_settings/st-ten-12.ini b/config/machine_settings/st-ten-12.ini new file mode 100644 index 0000000..73492b3 --- /dev/null +++ b/config/machine_settings/st-ten-12.ini @@ -0,0 +1,93 @@ +[machine] +description = ST-TEN-12 AUTOMATICO +instruction_folder = st-ten-12 +image_for_warning= st-ten-12 + +[hardware_config] +archive_synchronizer: present +uvc_camera: absent +label_printer: present +neo_pixels: absent +remote_api: absent +tecna_t3: present +vision_saver: absent +vision: absent +screwdriver: absent +digital_io: present +barcode_recipe_selection: present +fixture_id: present +discard_box: absent +enforce_piece_removal: yes + +[tecna_t3] +port: COM4 +model: t3p + +[label_printer] +platform: windows +printer: zd421 + +[digital_io] +# OUTPUT MAP FOR FIXTURE CONNECTOR +id: USB-5862,BID#0 + +[fixture_rfid] +port: COM5 + +[recipe] +recipe_name_field: codice_ricetta +part_number_field: codice_prodotto +label_template_field: modello_etichetta +description_field: descrizione + +[recipes_defaults] +tester_discharge_enable: yes +dimensione_lotto_abilitata: x +tempo_pre_riempimento: 0 +pressione_pre_riempimento: 1000 +tempo_riempimento: 15 +tempo_assestamento: 15 +tempo_di_test: 10 +n_componenti:1 +percentuale_minima_pressione_assestamento: 5 +percentuale_massima_pressione_assestamento: 5 +pressione_di_test_delta_minimo: 30 +pressione_di_test: 7000 +pressione_di_test_delta_massimo: 30 +tempo_svuotamento: 0 +pressione_svuotamento: 100 +canale_di_prova: 1 +prova_tenuta_abilitata_2: +tempo_pre_riempimento_2: 0 +pressione_pre_riempimento_2: 1000 +tempo_riempimento_2: 20 +tempo_assestamento_2: 20 +tempo_di_test_2: 10 +percentuale_minima_pressione_assestamento_2: 5 +percentuale_massima_pressione_assestamento_2: 5 +pressione_di_test_delta_minimo_2: 30 +pressione_di_test_2: 15000 +pressione_di_test_delta_massimo_2: 30 +tempo_svuotamento_2: 0 +pressione_svuotamento_2: 100 +canale_di_prova_2: 2 +modello_etichetta: EtichettaR5_Montaggio_1prova.prn +pid_pressure_correction: 105 + +[autotest_leak] +enabled: true +pre_filling_time: 0 +pre_filling_pressure: 1000 +filling_time: 10 +settling_time: 10 +settling_pressure_min_percent: 5 +settling_pressure_max_percent: 5 +test_pressure: 7000 +test_time: 10 +test_pressure_qpos: 10 #Q+ Upper test leak limit +test_pressure_qneg: 30 #Q- Lower test leak limit +test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube) +test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube) +flush_time: 1 +flush_pressure: 100 +relay_config: 1 \ No newline at end of file diff --git a/config/machine_settings/st-ten-13.ini b/config/machine_settings/st-ten-13.ini new file mode 100644 index 0000000..2e9ae3b --- /dev/null +++ b/config/machine_settings/st-ten-13.ini @@ -0,0 +1,93 @@ +[machine] +description = ST-TEN-13 AUTOMATICO +instruction_folder = st-ten-13 +image_for_warning= st-ten-13 + +[hardware_config] +archive_synchronizer: present +uvc_camera: absent +label_printer: present +neo_pixels: absent +remote_api: absent +tecna_t3: present +vision_saver: absent +vision: absent +screwdriver: absent +digital_io: present +barcode_recipe_selection: present +fixture_id: present +discard_box: absent +enforce_piece_removal: yes + +[tecna_t3] +port: COM4 +model: t3p + +[label_printer] +platform: windows +printer: zd421 + +[digital_io] +# OUTPUT MAP FOR FIXTURE CONNECTOR +id: USB-5862,BID#0 + +[fixture_rfid] +port: COM5 + +[recipe] +recipe_name_field: codice_ricetta +part_number_field: codice_prodotto +label_template_field: modello_etichetta +description_field: descrizione + +[recipes_defaults] +tester_discharge_enable: yes +dimensione_lotto_abilitata: x +tempo_pre_riempimento: 0 +pressione_pre_riempimento: 1000 +tempo_riempimento: 15 +tempo_assestamento: 15 +tempo_di_test: 10 +n_componenti:1 +percentuale_minima_pressione_assestamento: 5 +percentuale_massima_pressione_assestamento: 5 +pressione_di_test_delta_minimo: 30 +pressione_di_test: 7000 +pressione_di_test_delta_massimo: 30 +tempo_svuotamento: 0 +pressione_svuotamento: 100 +canale_di_prova: 1 +prova_tenuta_abilitata_2: +tempo_pre_riempimento_2: 0 +pressione_pre_riempimento_2: 1000 +tempo_riempimento_2: 20 +tempo_assestamento_2: 20 +tempo_di_test_2: 10 +percentuale_minima_pressione_assestamento_2: 5 +percentuale_massima_pressione_assestamento_2: 5 +pressione_di_test_delta_minimo_2: 30 +pressione_di_test_2: 15000 +pressione_di_test_delta_massimo_2: 30 +tempo_svuotamento_2: 0 +pressione_svuotamento_2: 100 +canale_di_prova_2: 2 +modello_etichetta: EtichettaR5_Montaggio_1prova.prn +pid_pressure_correction: 105 + +[autotest_leak] +enabled: true +pre_filling_time: 0 +pre_filling_pressure: 1000 +filling_time: 10 +settling_time: 10 +settling_pressure_min_percent: 5 +settling_pressure_max_percent: 5 +test_pressure: 7000 +test_time: 10 +test_pressure_qpos: 10 #Q+ Upper test leak limit +test_pressure_qneg: 30 #Q- Lower test leak limit +test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube) +test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube) +flush_time: 1 +flush_pressure: 100 +relay_config: 1 \ No newline at end of file diff --git a/src/ui/diagnostics/diagnostics.py b/src/ui/diagnostics/diagnostics.py new file mode 100644 index 0000000..a6a8986 --- /dev/null +++ b/src/ui/diagnostics/diagnostics.py @@ -0,0 +1,66 @@ +import sys + +from PyQt5 import QtGui, QtCore +from PyQt5.QtCore import pyqtSlot, pyqtSignal +from PyQt5.QtWidgets import QTableWidgetItem, QPushButton, QHeaderView, QLabel +from src.ui import Widget + + + +class Diagnostics(Widget): + def __init__(self, parent): + super().__init__() + self.sensor_changed = pyqtSignal(int, bool) + self.parent = parent + self.simulate = "--sim-io" in sys.argv + self.inputs = self.parent.config["digital_inputs"] + self.color_red = "#f00" + self.color_green = "#0f0" + headers_in = ["INPUT", "STATUS"] + + self.latch_in = [False for _ in range(len(self.inputs))] + self.in_states = [False for _ in range(len(self.inputs))] + + r = 0 + if self.simulate: + self.in_buttons = [QPushButton() for _ in range(len(self.inputs))] + for input_name, input_idx in self.inputs.items(): + for c, header in enumerate(headers_in): + if header == "STATUS": + if self.simulate: + self.in_buttons[r].setCheckable(True) + self.in_buttons[r].setText("ON" if self.in_states[r] else "OFF") + self.input_tb.setCellWidget(r, c, self.in_buttons[r]) + indexb = QtCore.QPersistentModelIndex(self.input_tb.model().index(r, c)) + self.in_buttons[r].clicked.connect(lambda *args, index=indexb: self.in_bit_toggle(index)) + else: + w = QLabel() + w.setPixmap(self.ICON_KO) + self.input_tb.setCellWidget(r, c, w) + elif header == "INPUT": + i = QTableWidgetItem() + i.setText(str(input_idx)) + self.input_tb.setItem(r, c, i) + r += 1 + if not self.simulate: + self.parent.components["digital_io"].update.connect(self.update) + + def in_bit_toggle(self, bit_num): + bit_num = bit_num.row() + byte_idx = int(bit_num / 8) + bit_idx = bit_num % 8 + self.in_states[bit_num] = not self.in_states[bit_num] + self.in_buttons[bit_num].setText("ON" if self.in_states[bit_num] else "OFF") + self.sensor_changed.emit(bit_num, self.in_states[bit_num]) + + @pyqtSlot(dict) + def update(self, data): + r = 0 + for input_name, input_idx in self.inputs.items(): + item = self.input_tb.cellWidget(r, 1) + input_idx = int(input_idx) + if self.in_states[r]: + item.setPixmap(self.ICON_OK) + else: + item.setPixmap(self.ICON_KO) + r += 1 \ No newline at end of file diff --git a/src/ui/diagnostics/diagnostics.ui b/src/ui/diagnostics/diagnostics.ui new file mode 100644 index 0000000..48fc5a4 --- /dev/null +++ b/src/ui/diagnostics/diagnostics.ui @@ -0,0 +1,47 @@ + + + Form + + + + 0 + 0 + 600 + 600 + + + + + 600 + 600 + + + + Form + + + + + + + + + INPUTS + + + + + + + OUTPUTS + + + + + + + + + + +