frappy/cfg/sim_mlz_ccr12_v2.cfg
Enrico Faulhaber 5458911b67 Adapt sim_* cfg's to current syntax
+ make 'limit' usable as type in cfg files
+ minor fixes

Change-Id: Ib94b2645c7a0d978d64d4c86c4415d4b5b0d485f
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21485
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-10-31 13:59:56 +01:00

156 lines
6.8 KiB
INI

[node ccr12]
description = [sim] CCR12 box of MLZ Sample environment group
.
Contains a Lakeshore 336 and an PLC controlling the compressor
and some valves.
.
This is an improved version, how we think it should be.
[interface tcp]
type=tcp
bindto=0.0.0.0
bindport=10767
[module T_ccr12]
class=secop.simulation.SimDrivable
.description=Main temperature control node of CCR12.
.
Switches between regulation on stick and regulation on tube depending on temperature requested.
May also pump gas for higher temperatures, if configured.
Manual switching of the regulation node is supported via the regulationmode parameter.
value.datatype={"type":"double", "min":0, "max":600, "unit":"K"}
value.default=300
target.datatype={"type":"double", "min":0, "max":600, "unit":"K"}
target.default=300
.extra_params=ramp,regulationmode,abslimits,userlimits
ramp.datatype={"type":"double", "min":0, "max":60, "unit":"K/min"}
ramp.description=target ramping speed in K/min.
ramp.default=60
ramp.readonly=False
regulationmode.datatype={"type":"enum","members":{"stick":1,"tube":2,"both":3}}
regulationmode.default='both'
regulationmode.description=regulate only stick, tube or select based upon the target value.
regulationmode.readonly=False
abslimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":600, "unit":"K"}}
abslimits.default=[0,600]
abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K).
userlimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":600, "unit":"K"}}
userlimits.default=[0,300]
userlimits.description=current user set limits for the setpoint. must be inside abslimits.
userlimits.readonly=False
.meaning=["temperature_regulation", 20]
[module T_ccr12_A]
class=secop.simulation.SimReadable
.description=(optional) Sample temperature sensor.
.visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"}
value.default=300
.meaning=["temperature", 9]
[module T_ccr12_B]
class=secop.simulation.SimReadable
.description=(regulation) temperature sensor on stick.
.visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"}
value.default=300
.meaning=["temperature", 10]
[module T_ccr12_C]
class=secop.simulation.SimReadable
.description=Temperature at the coldhead.
.visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"}
value.default=70
.meaning=["temperature", 1]
[module T_ccr12_D]
class=secop.simulation.SimReadable
.description=(regulation) temperature at coupling to stick.
.visibility=expert
value.datatype={"type":"double", "min":0, "unit":"K"}
value.default=80
.meaning=["temperature", 2]
[module ccr12_pressure_regulation]
class=secop.simulation.SimReadable
.description=Simple two-point presssure regulation. the mode parameter selects the readout on which to regulate, or 'none' for no regulation.
.visibility=user
.extra_params=switchpoints, mode
mode.datatype={"type":"enum", "members":{"none":0,"p1":1,"p2":2}}
mode.description=Select pressure sensor to regulate on, or 'none' to disable regulation.
mode.default='none'
# struct is more explicit, but ugly to read....
switchpoints.datatype={"type":"struct", "members":{"lower":{"type":"double", "unit":"mbar"},"upper":{"type":"double", "unit":"mbar"}}, "optional":["upper","lower"]}
switchpoints.description=Switching points for regulation. If the selected pressure is below 'lower' value, the gas valve is opened, above 'upper' the value vacuum valve is openend, else both are closed. values for switchpoints are taken from the selected pressure sensors userlimits.
switchpoints.default={'lower':1e-6,'upper':1e-3}
switchpoints.readonly=True
value.datatype={"type":"double", "min":0, "max":1000, "unit":"mbar"}
value.default = 1e-5
[module ccr12_compressor]
class=secop.simulation.SimDrivable
.description=Switches the compressor for the cooling stage on or off.
.
Note: This should always be on, except for fast heatup for sample change.
.visibility=user
value.datatype={"type":"enum", "members":{'off':0,'on':1}}
value.default='off'
target.datatype={"type":"enum", "members":{'off':0,'on':1}}
[module ccr12_gas_switch]
class=secop.simulation.SimWritable
.description=Switches the gas inlet on or off.
.
note: in reality this switches itself off after 15min.
note: in reality this is interlocked with ccr12_vacuum_switch, only one can be on!
note: in this simulation this module is isolated.
value.datatype={"type":"enum", "members":{'off':0,'on':1}}
value.default='off'
target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off'
[module ccr12_vacuum_switch]
class=secop.simulation.SimWritable
.description=Switches the vacuum pumping valve on or off.
.
note: in reality this is interlocked with ccr12_gas_switch, only one can be on!
note: in this simulation this module is isolated.
value.datatype={"type":"enum", "members":{'off':0,'on':1}}
value.default='off'
target.datatype={"type":"enum", "members":{'off':0,'on':1}}
target.default='off'
[module ccr12_p1]
class=secop.simulation.SimReadable
.description=Default pressure Sensor, linear scale 0..1000 mbar
.
Good candidate for a 'Sensor' Interface class!
value.default=999
value.unit=mbar
.extra_params=curve, userlimits
curve.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}}
curve.description=Calibration curve for pressure sensor
curve.default='TTR100'
userlimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}
userlimits.default=[1, 100]
userlimits.description=current user set limits for the pressure regulation.
userlimits.readonly=False
[module ccr12_p2]
class=secop.simulation.SimReadable
.description=Auxillary pressure Sensor.
value.default=1e-6
value.unit=mbar
.extra_params=curve,userlimits
curve.datatype={"type":"enum", "members":{'0..10V':0,'default':1,'0..9V':2,'DI200':3,'DI2000':4,'TTR100':7,'PTR90':8,'PTR225/PTR237':9,'ITR90':10,'ITR100 curve D':11, 'ITR100 curve 2':12, 'ITR100 curve 3':13,'ITR100 curve 4':14,'ITR100 curve 5':15, 'ITR100 curve 6':16, 'ITR100 curve 7':17, 'ITR100 curve 8':18, 'ITR100 curve 9':19, 'ITR100 curve A':20,'CMR361':21, 'CMR362':22, 'CMR363':23, 'CMR364':24, 'CMR365':25}}
curve.description=Calibration curve for pressure sensor
curve.default='PTR90'
userlimits.datatype={"type":"limit","members":{"type":"double", "min":0,"max":1000, "unit":"mbar"}}
userlimits.default=[1e-6, 1e-3]
userlimits.description=current user set limits for the pressure regulation.
userlimits.readonly=False
pollinterval.visibility='expert'