frappy/cfg/sim_mlz_amagnet.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

117 lines
3.4 KiB
INI

[node SIM_MLZ_amagnet(Garfield)]
description=MLZ-Amagnet
.
Water cooled magnet from ANTARES@MLZ.
.
Use module to control the magnetic field.
Don't forget to select symmetry first (can be moved only at zero field!).
.
Monitor T1..T4 (Coil temps), if they get to hot, field will ramp down!
.
In case of Problems, contact the ANTARES people at MLZ.
visibility=expert
foo=bar
[interface tcp]
type=tcp
bindto=0.0.0.0
bindport=10767
[module enable]
class=secop.simulation.SimWritable
value.datatype={"type":"enum", "members":{'On':1,'Off':0}}
target.datatype={"type":"enum", "members":{'On':1,'Off':0}}
.description='Enables to Output of the Powersupply'
.visibility='advanced'
[module polarity]
class=secop.simulation.SimWritable
value.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
target.datatype={"type":"enum", "members":{'+1':1,'0':0,'-1':-1}}
.description=polarity (+/-) switch
.
there is an interlock in the plc:
if there is current, switching polarity is forbidden
if polarity is short, powersupply is disabled
.visibility=advanced
[module symmetry]
class=secop.simulation.SimWritable
value.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}
target.datatype={"type":"enum", "members":{'symmetric':1,'short':0, 'asymmetric':-1}}
.description=par/ser switch selecting (a)symmetric mode
.
note: on the front panel symmetric is ser, asymmetric is par
.visibility=advanced
value.default = 'symmetric'
[module T1]
class=secop.simulation.SimReadable
.description=Temperature1 of the coils system
value.unit='degC'
value.default = 23.45
[module T2]
class=secop.simulation.SimReadable
.description=Temperature2 of the coils system
value.unit='degC'
value.default = 23.45
[module T3]
class=secop.simulation.SimReadable
.description=Temperature3 of the coils system
value.unit='degC'
value.default = 23.45
[module T4]
class=secop.simulation.SimReadable
.description=Temperature4 of the coils system
value.unit='degC'
value.default = 23.45
[module currentsource]
class=secop.simulation.SimDrivable
.description=Device for the magnet power supply (current mode)
abslimits=(0,200)
speed=1
ramp=60
precision=0.02
current=0
voltage=10
.visibility=advanced
.extra_params = abslimits, speed, ramp, precision, current, voltage, window
abslimits.datatype = {"type":"limit", "members":{"type":"double", "min":0, "max":200, "unit":"A"}}
abslimits.default = (0, 200)
speed.datatype = {"type":"double", "min":0, "max":10, "unit":"A/s"}
speed.default = 10
ramp.datatype = {"type":"double", "min":0, "max":600, "unit":"A/min"}
ramp.default = 600
precision.datatype = {"type":"double", "unit":"A"}
precision.default = 0.1
current.datatype = {"type":"double", "min":0, "max":200, "unit":"A"}
current.default = 0
voltage.datatype = {"type":"double", "min":0, "max":10, "unit":"V"}
voltage.default = 0
window.datatype = {"type":"double", "min":0, "max":120, "unit":"s"}
window.default = 10
[module mf]
class=secop_mlz.amagnet.GarfieldMagnet
.description=magnetic field module, handling polarity switching and stuff
subdev_currentsource=currentsource
subdev_enable=enable
subdev_polswitch=polarity
subdev_symmetry=symmetry
target.unit='T'
value.unit='T'
userlimits=(-0.35, 0.35)
calibrationtable={'symmetric':[0.00186517, 0.0431937, -0.185956, 0.0599757, 0.194042],
'short': [0.0, 0.0, 0.0, 0.0, 0.0],
'asymmetric':[0.00136154, 0.027454, -0.120951, 0.0495289, 0.110689]}
.meaning=["magneticfield", 20]
.visibility=user
abslimits.default=-0.4,0.4