fs: improve and fix implementation

+ introduce WrapControlledBy and fix HasControlledBy

this in a new module before mercury/triton have been fixed
This commit is contained in:
2025-06-27 14:47:21 +02:00
parent 8385461163
commit a3d0549199
5 changed files with 261 additions and 54 deletions

View File

@@ -4,34 +4,38 @@ Node('fs.psi.ch',
)
Mod('T',
'frappy_psi.picontrol.PI2',
'frappy_psi.furnace.PI2',
'controlled Temperature on sample (2nd loop)',
input = 'T_sample',
output = 'T_reg',
value = Param(unit='degC'),
input_module = 'T_sam',
output_module = 'T_reg',
relais = 'relais',
p = 1.2,
i = 0.005,
)
Mod('T_reg',
'frappy_psi.picontrol.PI',
'frappy_psi.furnace.PIctrl',
'controlled Temperature on heater',
input = 'T_htr',
output = 't_out',
value = Param(unit='degC'),
input_module = 'T_htr',
output_module = 't_out',
output_min = 0,
output_max = 100,
relais = 'relais',
p = 1,
i = 0.003,
)
Mod('p_reg',
'frappy_psi.picontrol.PI',
'controlled pressure',
input = 'p',
output = 'p_out',
relais = 'relais',
p = 1,
i = 0.005,
)
#Mod('p_reg',
# 'frappy_psi.furnace.PI',
# 'controlled pressure',
# input_module = 'p',
# output_module = 't_out',
# relais = 'relais',
# p = 1,
# i = 0.005,
# )
Mod('T_htr',
'frappy_psi.ionopimax.CurrentInput',
@@ -39,11 +43,10 @@ Mod('T_htr',
addr = 'ai4',
valuerange = (0, 1372),
value = Param(unit='degC'),
)
Mod('T_sample',
Mod('T_sam',
'frappy_psi.ionopimax.CurrentInput',
'sample temperature',
addr = 'ai3',
@@ -58,10 +61,8 @@ Mod('T_extra',
addr = 'ai2',
valuerange = (0, 1372),
value = Param(unit='degC'),
)
Mod('T_wall',
'frappy_psi.ionopimax.VoltageInput',
'furnace wall temperature',
@@ -86,7 +87,7 @@ Mod('htr',
Mod('t_out',
'frappy_psi.bkpower.Output',
'heater output',
p_value = 'p_out',
# p_value = 'p_out',
io = 'htr_io',
maxvolt = 50,
maxcurrent = 2,
@@ -104,13 +105,14 @@ Mod('interlocks',
input = 'T_htr',
wall_T = 'T_wall',
htr_T = 'T_htr',
main_T = 'T_sample',
main_T = 'T_sam',
extra_T = 'T_extra',
htr = 't_out',
vacuum = 'p',
relais = 'relais',
control = 'T',
wall_limit = 100,
vacuum_limit = 0.1,
wall_limit = 60,
vacuum_limit = 0.001,
)
Mod('p',