Add support for "slow_pid" configuration and UI integration

Implemented a new "slow_pid" parameter across configuration files, UI components, and backend logic. Updated machine settings, Leak Test editor, and recipe manager to handle this parameter. Adjusted related layout and logic to ensure seamless integration.
This commit is contained in:
edo-neo 2025-03-04 10:48:19 +01:00
parent 464bba989a
commit a953edb1ce
7 changed files with 55 additions and 35 deletions

View File

@ -147,6 +147,7 @@ pid_level: 1
pid_speed: 1 pid_speed: 1
tester_discharge_enable: no tester_discharge_enable: no
pid_pressure_correction: 100 pid_pressure_correction: 100
slow_pid:
tempo_pre_riempimento: 0 tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000 pressione_pre_riempimento: 1000

View File

@ -80,6 +80,7 @@ modello_etichetta: EtichettaR5_Montaggio_1prova.prn
pid_pressure_correction: 105 pid_pressure_correction: 105
istruzione_abilitata_extra: istruzione_abilitata_extra:
tagliatubi: tagliatubi:
slow_pid:
[autotest_leak] [autotest_leak]
enabled: true enabled: true

View File

@ -77,6 +77,7 @@ canale_di_prova_2: 2
modello_etichetta: EtichettaR5_Montaggio_1prova.prn modello_etichetta: EtichettaR5_Montaggio_1prova.prn
pid_pressure_correction: 100 pid_pressure_correction: 100
istruzione_abilitata_extra: istruzione_abilitata_extra:
slow_pid:
[autotest_leak] [autotest_leak]
enabled: true enabled: true

View File

@ -314,7 +314,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
# **{769 - 1 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, # print field 2 # **{769 - 1 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, # print field 2
"Print options": 0b0000000000000000 | self.saver_label_count << 12 | self.saver_print_on_fail << 8 | self.saver_label_template, "Print options": 0b0000000000000000 | self.saver_label_count << 12 | self.saver_print_on_fail << 8 | self.saver_label_template,
"Test type": "Leak Test", "Test type": "Leak Test",
"Test flags": test_flags, "Test flags": test_flags | (2 << 4) if step.spec.get("slow_pid") is True else test_flags,
"T0 - Pre-filling time": step.spec["pre_filling_time"], "T0 - Pre-filling time": step.spec["pre_filling_time"],
"P0 - Pre-filling pressure": step.spec["pre_filling_pressure"], "P0 - Pre-filling pressure": step.spec["pre_filling_pressure"],
"T1 - Filling time": step.spec["filling_time"], "T1 - Filling time": step.spec["filling_time"],

View File

@ -103,6 +103,7 @@ def read_steps(row, config, defaults=None, unsupported_steps=None):
"ext_blow_time": safe_parse(row.get("tempo_soffiaggio_esterno", defaults["tempo_soffiaggio_esterno"])), "ext_blow_time": safe_parse(row.get("tempo_soffiaggio_esterno", defaults["tempo_soffiaggio_esterno"])),
"pid_pressure_correction": safe_parse( "pid_pressure_correction": safe_parse(
row.get("pid_pressure_correction", defaults["pid_pressure_correction"])), row.get("pid_pressure_correction", defaults["pid_pressure_correction"])),
"slow_pid": safe_parse(row.get("slow_pid", defaults["slow_pid"])),
}, },
"leak_2": { "leak_2": {
"pre_filling_time": safe_parse(row.get("tempo_pre_riempimento_2", defaults["tempo_pre_riempimento_2"])), "pre_filling_time": safe_parse(row.get("tempo_pre_riempimento_2", defaults["tempo_pre_riempimento_2"])),
@ -130,6 +131,7 @@ def read_steps(row, config, defaults=None, unsupported_steps=None):
"ext_flush_time": safe_parse(row.get("tempo_svuotamento_esterno_2", defaults["tempo_svuotamento_esterno"])), "ext_flush_time": safe_parse(row.get("tempo_svuotamento_esterno_2", defaults["tempo_svuotamento_esterno"])),
"ext_blow_time": safe_parse(row.get("tempo_soffiaggio_esterno_2", defaults["tempo_soffiaggio_esterno"])), "ext_blow_time": safe_parse(row.get("tempo_soffiaggio_esterno_2", defaults["tempo_soffiaggio_esterno"])),
"pid_pressure_correction": safe_parse(row.get("pid_pressure_correction", defaults["pid_pressure_correction_2"])), "pid_pressure_correction": safe_parse(row.get("pid_pressure_correction", defaults["pid_pressure_correction_2"])),
"slow_pid": safe_parse(row.get("slow_pid", defaults["slow_pid"])),
}, },
"vision": { "vision": {
"recipe": row.get("ricetta_visione", defaults["ricetta_visione"]), "recipe": row.get("ricetta_visione", defaults["ricetta_visione"]),

View File

@ -28,4 +28,5 @@ class Leak_Step_Editor(Editor):
"ext_flush_time": self.ext_flush_time_sb, "ext_flush_time": self.ext_flush_time_sb,
#PID #PID
"pid_pressure_correction": self.test_pid_correction_sb, "pid_pressure_correction": self.test_pid_correction_sb,
"slow_pid": self.slow_pid_c,
}) })

View File

@ -85,20 +85,6 @@
<string>Riempimento</string> <string>Riempimento</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_7"> <layout class="QGridLayout" name="gridLayout_7">
<item row="2" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>PR+ Pressione Max</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>T1: Riempimento</string>
</property>
</widget>
</item>
<item row="0" column="2"> <item row="0" column="2">
<widget class="QLabel" name="label_20"> <widget class="QLabel" name="label_20">
<property name="text"> <property name="text">
@ -106,6 +92,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2">
<widget class="QLabel" name="label_25">
<property name="text">
<string>s</string>
</property>
</widget>
</item>
<item row="2" column="1"> <item row="2" column="1">
<widget class="QSpinBox" name="settling_pressure_min_percent_sb"> <widget class="QSpinBox" name="settling_pressure_min_percent_sb">
<property name="maximum"> <property name="maximum">
@ -113,20 +106,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1">
<widget class="QSpinBox" name="filling_time_sb">
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>PR- Pressione Min</string>
</property>
</widget>
</item>
<item row="3" column="1"> <item row="3" column="1">
<widget class="QSpinBox" name="settling_pressure_max_percent_sb"> <widget class="QSpinBox" name="settling_pressure_max_percent_sb">
<property name="maximum"> <property name="maximum">
@ -141,10 +120,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="2"> <item row="3" column="0">
<widget class="QLabel" name="label_27"> <widget class="QLabel" name="label_15">
<property name="text"> <property name="text">
<string>%</string> <string>PR- Pressione Min</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -162,10 +141,45 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2"> <item row="2" column="0">
<widget class="QLabel" name="label_25"> <widget class="QLabel" name="label_14">
<property name="text"> <property name="text">
<string>s</string> <string>PR+ Pressione Max</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>T1: Riempimento</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="filling_time_sb">
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="label_27">
<property name="text">
<string>%</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>PID Lento</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="slow_pid_c">
<property name="text">
<string/>
</property> </property>
</widget> </widget>
</item> </item>