add ioClass to many module classes

+ add converted mb11_cfg.py

Change-Id: Ic985fc16b5ce39caacbf1f3abd87b13b1e7c2da7
This commit is contained in:
2026-02-11 13:38:12 +01:00
parent e1e642fb2f
commit 7167d02613
10 changed files with 121 additions and 123 deletions

View File

@@ -1,211 +1,195 @@
Node('mb11.psi.ch',
'MB11 11 Tesla - 100 mm cryomagnet',
)
# please edit this file with frappy edit
Mod('itc1',
'frappy_psi.mercury.IO',
'ITC for heat exchanger and pressures',
uri='mb11-ts:3001',
)
doc="""MB11 11 Tesla - 100 mm cryomagnet
Mod('itc2',
'frappy_psi.mercury.IO',
'ITC for neck and nv heaters',
uri='mb11-ts:3002',
)
after conversion with frappy edit
"""
Node('mb11.psi.ch', doc,
interface='tcp://10767',
)
Mod('ips',
'frappy_psi.mercury.IO',
'IPS for magnet and levels',
uri='mb11-ts:3003',
)
IO('itc1', 'mb11-ts:3001')
IO('itc2', 'mb11-ts:3002')
IO('ips', 'mb11-ts:3003')
Mod('T_stat',
'frappy_psi.mercury.TemperatureAutoFlow',
'static heat exchanger temperature',
meaning=['temperature_regulation', 27],
output_module='htr_stat',
needle_valve='p_stat',
slot='DB6.T1',
io='itc1',
tolerance=0.1,
flowpars=((1,5), (2, 20)),
)
meaning = ('temperature_regulation', 27),
output_module = 'htr_stat',
needle_valve = 'p_stat',
slot = 'DB6.T1',
io = 'itc1',
tolerance = 0.1,
flowpars = ((1, 5), (2, 20)),
)
Mod('htr_stat',
'frappy_psi.mercury.HeaterOutput',
'static heat exchanger heater',
slot='DB1.H1',
io='itc1',
)
slot = 'DB1.H1',
io = 'itc1',
)
Mod('p_stat',
'frappy_psi.mercury.PressureLoop',
'static needle valve pressure',
output_module='pos_stat',
settling_time=60.0,
slot='DB5.P1',
io='itc1',
tolerance=1.0,
value=Param(
unit='mbar_flow',
),
)
output_module = 'pos_stat',
settling_time = 60,
slot = 'DB5.P1',
io = 'itc1',
tolerance = 1,
value = Param(unit='mbar_flow'),
)
Mod('pos_stat',
'frappy_psi.mercury.ValvePos',
'static needle valve position',
slot='DB5.P1,DB3.G1',
io='itc1',
)
slot = 'DB5.P1,DB3.G1',
io = 'itc1',
)
Mod('T_dyn',
'frappy_psi.mercury.TemperatureAutoFlow',
'dynamic heat exchanger temperature',
output_module='htr_dyn',
needle_valve='p_dyn',
slot='DB7.T1',
io='itc1',
tolerance=0.1,
)
output_module = 'htr_dyn',
needle_valve = 'p_dyn',
slot = 'DB7.T1',
io = 'itc1',
tolerance = 0.1,
)
Mod('htr_dyn',
'frappy_psi.mercury.HeaterOutput',
'dynamic heat exchanger heater',
slot='DB2.H1',
io='itc1',
)
slot = 'DB2.H1',
io = 'itc1',
)
Mod('p_dyn',
'frappy_psi.mercury.PressureLoop',
'dynamic needle valve pressure',
output_module='pos_dyn',
settling_time=60.0,
slot='DB8.P1',
io='itc1',
tolerance=1.0,
value=Param(
unit='mbar_flow',
),
)
output_module = 'pos_dyn',
settling_time = 60,
slot = 'DB8.P1',
io = 'itc1',
tolerance = 1,
value = Param(unit='mbar_flow'),
)
Mod('pos_dyn',
'frappy_psi.mercury.ValvePos',
'dynamic needle valve position',
slot='DB8.P1,DB4.G1',
io='itc1',
)
slot = 'DB8.P1,DB4.G1',
io = 'itc1',
)
Mod('mf',
'frappy_psi.ips_mercury.Field',
'magnetic field',
slot='GRPZ',
io='ips',
tolerance=0.001,
wait_stable_field=60.0,
target=Param(
max=11.0,
),
persistent_limit=11.1,
)
slot = 'GRPZ',
io = 'ips',
tolerance = 0.001,
wait_stable_field = 60,
target = Param(max=11),
persistent_limit = 11.1,
)
Mod('lev',
'frappy_psi.mercury.HeLevel',
'LHe level',
slot='DB1.L1',
io='ips',
)
slot = 'DB1.L1',
io = 'ips',
)
Mod('n2lev',
'frappy_psi.mercury.N2Level',
'LN2 level',
slot='DB1.L1',
io='ips',
)
slot = 'DB1.L1',
io = 'ips',
)
Mod('T_neck1',
'frappy_psi.mercury.TemperatureLoop',
'neck heater 1 temperature',
output_module='htr_neck1',
slot='MB1.T1',
io='itc2',
tolerance=1.0,
)
output_module = 'htr_neck1',
slot = 'MB1.T1',
io = 'itc2',
tolerance = 1,
)
Mod('htr_neck1',
'frappy_psi.mercury.HeaterOutput',
'neck heater 1 power',
slot='MB0.H1',
io='itc2',
)
slot = 'MB0.H1',
io = 'itc2',
)
Mod('T_neck2',
'frappy_psi.mercury.TemperatureLoop',
'neck heater 2 temperature',
output_module='htr_neck2',
slot='DB6.T1',
io='itc2',
tolerance=1.0,
)
output_module = 'htr_neck2',
slot = 'DB6.T1',
io = 'itc2',
tolerance = 1,
)
Mod('htr_neck2',
'frappy_psi.mercury.HeaterOutput',
'neck heater 2 power',
slot='DB1.H1',
io='itc2',
)
slot = 'DB1.H1',
io = 'itc2',
)
Mod('T_nvs',
'frappy_psi.mercury.TemperatureLoop',
'static needle valve temperature',
output_module='htr_nvs',
slot='DB7.T1',
io='itc2',
tolerance=0.1,
)
output_module = 'htr_nvs',
slot = 'DB7.T1',
io = 'itc2',
tolerance = 0.1,
)
Mod('htr_nvs',
'frappy_psi.mercury.HeaterOutput',
'static needle valve heater power',
slot='DB2.H1',
io='itc2',
)
slot = 'DB2.H1',
io = 'itc2',
)
Mod('T_nvd',
'frappy_psi.mercury.TemperatureLoop',
'dynamic needle valve heater temperature',
output_module='htr_nvd',
slot='DB8.T1',
io='itc2',
tolerance=0.1,
)
output_module = 'htr_nvd',
slot = 'DB8.T1',
io = 'itc2',
tolerance = 0.1,
)
Mod('htr_nvd',
'frappy_psi.mercury.HeaterOutput',
'dynamic needle valve heater power',
slot='DB3.H1',
io='itc2',
)
slot = 'DB3.H1',
io = 'itc2',
)
Mod('T_coil',
'frappy_psi.mercury.TemperatureSensor',
'coil temperature',
slot='MB1.T1',
io='ips',
)
slot = 'MB1.T1',
io = 'ips',
)
Mod('om_io',
'frappy_psi.phytron.PhytronIO',
'dom motor IO',
uri='mb11-ts.psi.ch:3004',
)
IO('om_io', 'mb11-ts.psi.ch:3004')
Mod('om',
'frappy_psi.phytron.Motor',
'stick rotation, typically used for omega',
io='om_io',
target_min=-360,
target_max=360,
encoder_mode='NO',
target=Param(min=-360, max=360),
)
io = 'om_io',
target_min = '-360',
target_max = '360',
encoder_mode = 'NO',
target = Param(min=-360, max=360),
)

View File

@@ -45,6 +45,7 @@ class SR830_IO(StringIO):
class StanfRes(HasIO, Readable):
ioClass = SR830_IO
def set_par(self, cmd, *args):
"""
Set parameter.

View File

@@ -57,6 +57,7 @@ class IO(StringIO):
class Power(HasIO, Readable):
ioClass = IO
value = Parameter(datatype=FloatRange(0,300,unit='W'))
def read_value(self):
@@ -67,6 +68,7 @@ class Power(HasIO, Readable):
class Output(HasIO, HasControlledBy, Writable):
ioClass = IO
value = Parameter(datatype=FloatRange(0,100,unit='%'), default=0)
target = Parameter(datatype=FloatRange(0,100,unit='%'))
p_value = Parameter('?', datatype=FloatRange(0,100,unit='%'), default=0)

View File

@@ -68,6 +68,7 @@ class BridgeIO(StringIO):
class Base(HasIO):
ioClass = BridgeIO
port = Property('modules port', IntRange(0, 15))
def communicate(self, command):

View File

@@ -50,6 +50,7 @@ SOURCECMDS = {
class SourceMeter(HasIO, Module):
ioClass = K2601bIO
export = False # export for tests only
mode = Parameter('measurement mode', EnumType(off=0, current=1, voltage=2),
readonly=False, export=False)
@@ -107,6 +108,7 @@ class Resistivity(HasIO, Readable):
class Current(HasIO, Writable):
ioClass = K2601bIO
sourcemeter = Attached()
value = Parameter('measured current', FloatRange(unit='A'))
@@ -153,6 +155,7 @@ class Current(HasIO, Writable):
class Voltage(HasIO, Writable):
ioClass = K2601bIO
sourcemeter = Attached()
value = Parameter('measured voltage', FloatRange(unit='V'))

View File

@@ -64,6 +64,8 @@ def parse_result(reply):
class LakeShoreIO(HasIO):
ioClass = StringIO
def set_param(self, cmd, *args):
args = [f'{a:g}' for a in args]
if ' ' in cmd.strip():

View File

@@ -67,6 +67,7 @@ class IO(StringIO):
class MercuryChannel(HasIO):
ioClass = IO
slot = Property('comma separated slot id(s), e.g. DB6.T1', StringType())
kind = '' #: used slot kind(s)
slots = () #: dict[<kind>] of <slot>

View File

@@ -114,6 +114,7 @@ class Main(Communicator):
class PpmsBase(HasIO, Readable):
"""common base for all ppms modules"""
ioClass = Main
value = Parameter(needscfg=False)
status = Parameter(datatype=StatusType(Readable, 'DISABLED'), needscfg=False)

View File

@@ -27,6 +27,7 @@ class PulseIO(StringIO):
class Base(HasIO):
ioClass = PulseIO
def set_source(self):
"""

View File

@@ -30,6 +30,7 @@ class IO(StringIO):
class Power(HasIO, Readable):
ioClass = IO
value = Parameter(datatype=FloatRange(0,3300,unit='W'))
voltage = Parameter('voltage', FloatRange(0,8, unit='V'))
current = Parameter('current', FloatRange(0,400, unit='A'))
@@ -41,6 +42,7 @@ class Power(HasIO, Readable):
class Output(HasIO, Writable):
ioClass = IO
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),