From 7254d7f95c5c8f0140f8f2ceaded06998fe8ffc0 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 14 Apr 2025 11:46:02 +0200 Subject: [PATCH] [WIP] fixes for linse-fi Change-Id: Iac28e9654a764331cd903896879834cd6127a919 --- cfg/fi_cfg.py | 16 +++++++--------- frappy_psi/furnace.py | 18 +++++++++++++++--- frappy_psi/picontrol.py | 4 ++-- frappy_psi/tdkpower.py | 2 +- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/cfg/fi_cfg.py b/cfg/fi_cfg.py index 6d6f566..557bad5 100644 --- a/cfg/fi_cfg.py +++ b/cfg/fi_cfg.py @@ -9,14 +9,14 @@ Mod('htr_io', uri='serial:///dev/ttyUSB0?baudrate=9600', ) -Mod('htr', +Mod('htr_power', 'frappy_psi.tdkpower.Power', 'heater power', io='htr_io', ) -Mod('out', - 'frappy_psi.tdkpower.Output', +Mod('htr', + 'frappy_psi.furnace.TdkOutput', 'heater output', io='htr_io', maxvolt=8, @@ -29,7 +29,6 @@ Mod('T_main', addr='ai4', valuerange=(0, 1372), value=Param(unit='degC'), - ) Mod('T_extra', @@ -38,7 +37,6 @@ Mod('T_extra', addr='ai3', valuerange=(0, 1372), value=Param(unit='degC'), - ) Mod('T_wall', @@ -51,11 +49,11 @@ Mod('T_wall', ) Mod('T', - 'frappy_psi.furnace.PI', + 'frappy_psi.picontrol.PI', 'controlled Temperature', - input='T_htr', - output='htr', - relais='relais', + input_module='T_main', + output_module='htr', + # relais='relais', p=2, i=0.01, ) diff --git a/frappy_psi/furnace.py b/frappy_psi/furnace.py index e157f9c..8f90785 100644 --- a/frappy_psi/furnace.py +++ b/frappy_psi/furnace.py @@ -17,12 +17,16 @@ # Markus Zolliker # ***************************************************************************** -"""interlocks for furnance""" +"""interlocks for furnace""" import time from frappy.core import Module, Writable, Attached, Parameter, FloatRange, Readable,\ BoolType, ERROR, IDLE +from frappy.mixins import HasControlledBy from frappy_psi.picontrol import PImixin +from frappy_psi.convergence import HasConvergence +import frappy_psi.tdkpower as tdkpower +import frappy_psi.bkpower as bkpower class Interlocks(Module): @@ -76,8 +80,8 @@ class Interlocks(Module): self.relais.write_target(False) -class PI(PImixin, Writable): - input = Attached(Readable, 'the input module') +class PI(HasConvergence, PImixin): + input_module = Attached(Readable, 'the input module') relais = Attached(Writable, 'the interlock relais', mandatory=False) def read_value(self): @@ -87,3 +91,11 @@ class PI(PImixin, Writable): super().write_target(value) if self.relais: self.relais.write_target(1) + + +class TdkOutput(HasControlledBy, tdkpower.Output): + pass + + +class BkOutput(HasControlledBy, bkpower.Output): + pass diff --git a/frappy_psi/picontrol.py b/frappy_psi/picontrol.py index 4c52098..a550a52 100644 --- a/frappy_psi/picontrol.py +++ b/frappy_psi/picontrol.py @@ -48,8 +48,8 @@ example cfg: Mod('T_softloop', 'frappy_psi.picontrol.PI', 'softloop controlled Temperature mixing chamber', - input = 'ts', - output = 'htr_mix', + input_module = 'ts', + output_module = 'htr_mix', control_active = 1, output_max = 80000, p = 2E6, diff --git a/frappy_psi/tdkpower.py b/frappy_psi/tdkpower.py index 9c62c0f..f57a2cf 100644 --- a/frappy_psi/tdkpower.py +++ b/frappy_psi/tdkpower.py @@ -41,7 +41,7 @@ class Power(HasIO, Readable): class Output(HasIO, Writable): - value = Parameter(datatype=FloatRange(0,100,unit='%')) + value = Parameter(datatype=FloatRange(0,100,unit='%'), default=0) target = Parameter(datatype=FloatRange(0,100,unit='%')) mode = Parameter('regulation mode', EnumType(voltage=1, current=2, both=3), default='voltage', readonly=False)