Provide systemd files
+ move example cfg from etc/ to cfg/ Change-Id: I437b3e2aaca55539ff110f5a46e411b34e0a0b9c Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21319 Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
111
etc/amagnet.cfg
111
etc/amagnet.cfg
@ -1,111 +0,0 @@
|
||||
[node 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_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice='tango://localhost:10000/box/plc/_enable'
|
||||
value.datatype=["enum", {'On':1,'Off':0}]
|
||||
target.datatype=["enum", {'On':1,'Off':0}]
|
||||
.description='Enables to Output of the Powersupply'
|
||||
.visibility='advanced'
|
||||
|
||||
[module polarity]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_polarity
|
||||
value.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
|
||||
target.datatype=["enum", {'+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
|
||||
comtries=50
|
||||
|
||||
|
||||
[module symmetry]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_symmetric
|
||||
value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||
target.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||
.description=par/ser switch selecting (a)symmetric mode
|
||||
.
|
||||
symmetric is ser, asymmetric is par
|
||||
.visibility=advanced
|
||||
|
||||
[module T1]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t1
|
||||
.description=Temperature1 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module T2]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t2
|
||||
.description=Temperature2 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module T3]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t3
|
||||
.description=Temperature3 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module T4]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_t4
|
||||
.description=Temperature4 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
|
||||
[module currentsource]
|
||||
class=secop_mlz.entangle.PowerSupply
|
||||
tangodevice=tango://localhost:10000/box/lambda/curr
|
||||
.description=Device for the magnet power supply (current mode)
|
||||
abslimits=(0,200)
|
||||
speed=1
|
||||
ramp=60
|
||||
precision=0.02
|
||||
current=0
|
||||
voltage=10
|
||||
#unit=A
|
||||
.visibility=advanced
|
||||
|
||||
[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=The magnetic field
|
||||
.priority=100
|
||||
.visibility=user
|
||||
|
||||
abslimits.default=-0.4,0.4
|
119
etc/ccr12.cfg
119
etc/ccr12.cfg
@ -1,119 +0,0 @@
|
||||
[node MLZ_ccr12]
|
||||
description = CCR12 box of MLZ Sample environment group
|
||||
.
|
||||
Contains a Lakeshore 336 and an PLC controlling the compressor
|
||||
and some valves.
|
||||
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module automatik]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_automatik
|
||||
mapping=dict(Off=0,p1=1,p2=2)
|
||||
|
||||
[module compressor]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_cooler_onoff
|
||||
mapping=dict(Off=0,On=1)
|
||||
|
||||
[module gas]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_gas_onoff
|
||||
mapping=dict(Off=0,On=1)
|
||||
|
||||
[module vacuum]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_vacuum_Onoff
|
||||
mapping=dict(Off=0,On=1)
|
||||
|
||||
[module p1]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_p1
|
||||
value.unit='mbar'
|
||||
|
||||
[module p2]
|
||||
class=secop_mlz.entangle.AnalogInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_p2
|
||||
value.unit='mbar'
|
||||
|
||||
[module curve_p2]
|
||||
class=secop_mlz.entangle.NamedDigitalInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_curve
|
||||
value.default='undefined'
|
||||
mapping=dict(curve1=1,curve2=2,curve3=3)
|
||||
|
||||
# sensors
|
||||
[module T_sample]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/sample/sensora
|
||||
value.unit='K'
|
||||
|
||||
[module T_stick]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/stick/sensorb
|
||||
value.unit='K'
|
||||
|
||||
[module T_coldhead]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/coldhead/sensorc
|
||||
value.unit='K'
|
||||
|
||||
[module T_tube]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/tube/sensord
|
||||
value.unit='K'
|
||||
|
||||
# regulations
|
||||
|
||||
[module T_stick_regulation]
|
||||
class=secop_mlz.entangle.TemperatureController
|
||||
tangodevice=tango://localhost:10000/box/stick/control2
|
||||
heateroutput.default=0
|
||||
ramp.default=6
|
||||
speed.default=0.1
|
||||
setpoint.default=0
|
||||
pid.default=(40,10,1)
|
||||
p.default=40
|
||||
i.default=10
|
||||
d.default=1
|
||||
abslimits=(0,500)
|
||||
value.unit='K'
|
||||
|
||||
# OMG! a NamedDigitalOutput, but with float'ints' 0..3
|
||||
[module T_stick_regulation_heaterrange]
|
||||
class=secop_mlz.entangle.AnalogOutput
|
||||
tangodevice=tango://localhost:10000/box/stick/range2
|
||||
precision.default=1
|
||||
abslimits=(0,3)
|
||||
|
||||
|
||||
[module T_tube_regulation]
|
||||
class=secop_mlz.entangle.TemperatureController
|
||||
tangodevice=tango://localhost:10000/box/tube/control1
|
||||
heateroutput.default=0
|
||||
ramp.default=6
|
||||
speed.default=0.1
|
||||
setpoint.default=0
|
||||
pid.default=(40,10,1)
|
||||
p.default=40
|
||||
i.default=10
|
||||
d.default=1
|
||||
abslimits=(0,500)
|
||||
value.unit='K'
|
||||
|
||||
# OMG! a NamedDigitalOutput, but with float'ints' 0..3
|
||||
#[module T_tube_regulation_heaterrange]
|
||||
#class=secop_mlz.entangle.AnalogOutput
|
||||
#tangodevice=tango://localhost:10000/box/tube/range1
|
||||
#precision.default=1
|
||||
#abslimits=(0,3)
|
||||
|
||||
[module T_tube_regulation_heaterrange]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/tube/range1
|
||||
mapping=dict(Off=0, Low=1, Medium=2, High=3)
|
||||
|
51
etc/cryo.cfg
51
etc/cryo.cfg
@ -1,51 +0,0 @@
|
||||
[node cryo_7]
|
||||
# set SEC-node properties
|
||||
description = short description
|
||||
.
|
||||
This is a very long description providing all the glory details in all the glory details about the stuff we are describing
|
||||
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10769
|
||||
|
||||
|
||||
[module cryo]
|
||||
# some (non-defaut) module properties
|
||||
.group=very important/stuff
|
||||
.description=A simulated cc cryostat with heat-load, specific heat for the sample
|
||||
and a temperature dependend heat-link between sample and regulation.
|
||||
|
||||
# class of module:
|
||||
class=secop_demo.cryo.Cryostat
|
||||
|
||||
# some parameters
|
||||
jitter=0.1
|
||||
T_start=10.0
|
||||
target=10.0
|
||||
looptime=1
|
||||
ramp=6
|
||||
maxpower=20.0
|
||||
heater=4.1
|
||||
p=40
|
||||
i=10
|
||||
d=2
|
||||
mode=pid
|
||||
tolerance=0.1
|
||||
window=30
|
||||
timeout=900
|
||||
|
||||
# some (non-default) parameter properties
|
||||
pollinterval.export=False
|
||||
|
||||
# some parameter grouping
|
||||
p.group=pid
|
||||
i.group=pid
|
||||
d.group=pid
|
||||
|
||||
value.unit=K
|
||||
|
||||
# test custom properties
|
||||
value.test=customized value
|
||||
|
43
etc/demo.cfg
43
etc/demo.cfg
@ -1,43 +0,0 @@
|
||||
[node Equipment_ID_for_demonstration]
|
||||
description = virtual modules to play around with
|
||||
|
||||
[interface tcp]
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module heatswitch]
|
||||
class=secop_demo.modules.Switch
|
||||
switch_on_time=5
|
||||
switch_off_time=10
|
||||
.description="Heatswitch for `mf` device"
|
||||
|
||||
[module mf]
|
||||
class=secop_demo.modules.MagneticField
|
||||
heatswitch = heatswitch
|
||||
.description="simulates some cryomagnet with persistent/non-persistent switching"
|
||||
|
||||
[module ts]
|
||||
class=secop_demo.modules.SampleTemp
|
||||
sensor = 'Q1329V7R3'
|
||||
ramp = 4
|
||||
target = 10
|
||||
value = 10
|
||||
.description = "some temperature"
|
||||
|
||||
[module tc1]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
sensor="X34598T7"
|
||||
.description = "some temperature"
|
||||
|
||||
[module tc2]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
sensor="X39284Q8'
|
||||
.description = "some temperature"
|
||||
|
||||
[module label]
|
||||
class=secop_demo.modules.Label
|
||||
system=Cryomagnet MX15
|
||||
subdev_mf=mf
|
||||
subdev_ts=ts
|
||||
.description = "some label indicating the state of the magnet `mf`."
|
||||
|
@ -1,50 +0,0 @@
|
||||
[node see_demo_equipment]
|
||||
description=Do not use, it needs to be rewritten....
|
||||
|
||||
[interface testing]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module tc1]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
sensor="X34598T7"
|
||||
|
||||
[module tc2]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
sensor="X39284Q8'
|
||||
|
||||
|
||||
[module sensor1]
|
||||
class=secop_ess.epics.EpicsReadable
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
value_pv="DEV:KRDG1"
|
||||
|
||||
|
||||
[module loop1]
|
||||
class=secop_ess.epics.EpicsTempCtrl
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
|
||||
value_pv="DEV:KRDG1"
|
||||
target_pv="DEV:SETP_S1"
|
||||
heaterrange_pv="DEV:RANGE_S1"
|
||||
|
||||
|
||||
[module sensor2]
|
||||
class=secop_ess.epics.EpicsReadable
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
value_pv="DEV:KRDG2"
|
||||
|
||||
|
||||
[module loop2]
|
||||
class=secop_ess.epics.EpicsTempCtrl
|
||||
epics_version="v4"
|
||||
.group="Lakeshore336"
|
||||
|
||||
value_pv="DEV:KRDG2"
|
||||
target_pv="DEV:SETP_S2"
|
||||
heaterrange_pv="DEV:RANGE_S2"
|
||||
|
59
etc/secop-generator
Executable file
59
etc/secop-generator
Executable file
@ -0,0 +1,59 @@
|
||||
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# *****************************************************************************
|
||||
# Copyright (c) 2015-2019 by the authors, see LICENSE
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 2 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Module authors:
|
||||
# Alexander Lenz <alexander.lenz@frm2.tum.de>
|
||||
# Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
import os
|
||||
import sys
|
||||
import fnmatch
|
||||
from os import path
|
||||
|
||||
from secop.lib import getGeneralConfig
|
||||
|
||||
def main():
|
||||
normal_dir = sys.argv[1]
|
||||
|
||||
global_config = getGeneralConfig()
|
||||
config_dir = global_config['confdir']
|
||||
|
||||
secop_unit = '/lib/systemd/system/secop@.service'
|
||||
wants_dir = normal_dir + '/secop.target.wants'
|
||||
|
||||
all_servers = [base for (base, ext) in
|
||||
map(path.splitext, os.listdir(config_dir)) if ext == '.cfg']
|
||||
all_servers.sort()
|
||||
|
||||
for srv in all_servers:
|
||||
symlink = '%s/secop@%s.service' % (normal_dir, srv)
|
||||
os.symlink(secop_unit, symlink)
|
||||
|
||||
# the stamp file signals successful run of the generator
|
||||
open(normal_dir + '/secop.stamp', 'w').close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
main()
|
||||
except Exception:
|
||||
pass # don't signal an error here
|
8
etc/secop.target
Normal file
8
etc/secop.target
Normal file
@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Start all SECoP SEC-nodes
|
||||
Requires=network-online.service
|
||||
Wants=network-online.service
|
||||
After=network-online.service
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
12
etc/secop@.service
Normal file
12
etc/secop@.service
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=SECoP SEC-node: %i
|
||||
After=network-online.service
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
ExecStart=/usr/bin/secop-server %I
|
||||
Restart=on-abnormal
|
||||
RestartSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
23
etc/sim.cfg
23
etc/sim.cfg
@ -1,23 +0,0 @@
|
||||
[node test config]
|
||||
description=description of the simulation sec-node
|
||||
.
|
||||
Testing simulation dummy setup.
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
|
||||
[module sim]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=simulation stuff
|
||||
.extra_params=param3,param4,jitter,ramp
|
||||
param3.datatype=['bool']
|
||||
param3.default=True
|
||||
param3.readonly=False
|
||||
jitter.default=1
|
||||
ramp.default=60
|
||||
value.default=123
|
||||
target.default=42
|
||||
|
@ -1,132 +0,0 @@
|
||||
[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=["enum", {'On':1,'Off':0}]
|
||||
target.datatype=["enum", {'On':1,'Off':0}]
|
||||
.description='Enables to Output of the Powersupply'
|
||||
.visibility='advanced'
|
||||
|
||||
[module polarity]
|
||||
class=secop.simulation.SimWritable
|
||||
value.datatype=["enum", {'+1':1,'0':0,'-1':-1}]
|
||||
target.datatype=["enum", {'+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
|
||||
#comtries = 50
|
||||
|
||||
|
||||
[module symmetry]
|
||||
class=secop.simulation.SimWritable
|
||||
value.datatype=["enum",{'symmetric':1,'short':0, 'asymmetric':-1}]
|
||||
target.datatype=["enum",{'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'
|
||||
value.value = 'symmetric'
|
||||
|
||||
[module T1]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Temperature1 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module T2]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Temperature2 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module T3]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Temperature3 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
value.unit='degC'
|
||||
value.default = 23.45
|
||||
|
||||
[module T4]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Temperature4 of the coils system
|
||||
#warnlimits=(0, 50)
|
||||
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
|
||||
#unit=A
|
||||
.visibility=advanced
|
||||
.extra_params = abslimits, speed, ramp, precision, current, voltage, window
|
||||
abslimits.datatype = ["tuple", [["double"], ["double"]]]
|
||||
abslimits.value = (0, 200)
|
||||
abslimits.default = (0, 200)
|
||||
abslimits.unit = 'A'
|
||||
speed.datatype = ["double", 0, 10]
|
||||
speed.default = 10
|
||||
speed.unit = 'A/s'
|
||||
ramp.datatype = ["double", 0, 600]
|
||||
ramp.default = 600
|
||||
ramp.unit = 'A/min'
|
||||
precision.datatype = ["double"]
|
||||
precision.default = 0.1
|
||||
precision.unit = 'A'
|
||||
current.datatype = ["double", 0, 200]
|
||||
current.default = 0
|
||||
current.unit = 'A'
|
||||
voltage.datatype = ["double", 0, 10]
|
||||
voltage.default = 0
|
||||
voltage.unit = 'V'
|
||||
window.datatype = ["double", 0, 120]
|
||||
window.default = 10
|
||||
window.unit = 's'
|
||||
|
||||
[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=The magnetic field
|
||||
.priority=100
|
||||
.visibility=user
|
||||
|
||||
abslimits.default=-0.4,0.4
|
@ -1,93 +0,0 @@
|
||||
[node cci3he1]
|
||||
description = [sim] cci3he box of MLZ Sample environment group
|
||||
.
|
||||
Controls an 3He insert with an ls370 and an PLC controlling
|
||||
the compressor and the valves of the gas handling.
|
||||
|
||||
.meaning={'T_regulation':{'T_cci3he1':300}, 'T_sample':{'T_cci3he1_A':300, 'T_cci3he1_B':280}}
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_cci3he1]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Main temperature control node of cci3he1.
|
||||
.
|
||||
Controls the regulation loop of the ls370.
|
||||
value.unit='K'
|
||||
value.default=300
|
||||
target.datatype=["double", 0, 300]
|
||||
target.default=300
|
||||
target.unit='K'
|
||||
.extra_params=ramp
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
|
||||
[module T_cci3he1_A]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=3He pot temperature sensor. Also used for the regulation.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module T_cci3he1_B]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(optional) sample temperature sensor close to sample.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module cci3he1_p1]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at turbo pump inlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module cci3he1_p2]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at turbo pump outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module cci3he1_p3]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at compressor inlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module cci3he1_p4]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at compressor outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module cci3he1_p5]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure in dump tank.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module cci3he1_p6]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure in the vacuum dewar (ivc).
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module cci3he1_flow]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Gas Flow (condensing line).
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mln/min
|
||||
|
||||
# note: all valves and switches are missing: use VNC to control them
|
@ -1,94 +0,0 @@
|
||||
[node ccidu1]
|
||||
description = [sim] ccidu box of MLZ Sample environment group
|
||||
.
|
||||
Controls an 3He/4He dilution insert with an ls370 and an PLC controlling
|
||||
the compressor and the valves of the gas handling.
|
||||
|
||||
.meaning={'T_regulation':{'T_ccidu1':300}, 'T_sample':{'T_ccidu1_A':300, 'T_ccidu1_B':280}}
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_ccidu1]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Main temperature control node of ccidu1.
|
||||
.
|
||||
Controls the regulation loop of the ls370.
|
||||
value.unit='K'
|
||||
value.default=300
|
||||
target.datatype=["double", 0, 300]
|
||||
target.default=300
|
||||
target.unit='K'
|
||||
.extra_params=ramp
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
|
||||
[module T_ccidu1_A]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=mixing chamber temperature sensor. Also used for the regulation.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccidu1_B]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(optional) sample temperature sensor close to sample.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module ccidu1_pstill]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at the still/turbo pump inlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccidu1_pinlet]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at forepump inlet/turbo pump outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccidu1_poutlet]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at forepump outlet/compressor inlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccidu1_pkond]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure at condensing line/compressor outlet.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccidu1_ptank]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure in dump tank.
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccidu1_pvac]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure in the vacuum dewar (ivc).
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccidu1_flow]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Gas Flow (condensing line).
|
||||
.visibility=expert
|
||||
value.default=999
|
||||
value.unit=mln/min
|
||||
|
||||
# note: all valves and switches are missing: use VNC to control them
|
||||
|
@ -1,150 +0,0 @@
|
||||
[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 how we use it now.
|
||||
|
||||
.meaning={'T_regulation':{'T_ccr12':200, 'T_ccr12_stick':150, 'T_ccr12_tube':100}, 'T_sample':{'T_ccr12_B':100, 'T_ccr12_A':90, 'T_ccr12_D':20, 'T_ccr12_C':10}}
|
||||
|
||||
[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.
|
||||
.extra_params=ramp
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.default=60
|
||||
value.unit='K'
|
||||
value.default=300
|
||||
target.datatype=["double", 0, 600]
|
||||
target.default=300
|
||||
target.unit='K'
|
||||
|
||||
[module T_ccr12_stick]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Temperature regulation for the sample stick in ccr12.
|
||||
.extra_params=ramp
|
||||
target.datatype=["double", 0, 600]
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.default=60
|
||||
value.unit='K'
|
||||
value.default=300
|
||||
target.default=300
|
||||
|
||||
[module T_ccr12_tube]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Temperature regulation for the tube of ccr12.
|
||||
.extra_params=ramp
|
||||
target.datatype=["double", 0, 300]
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.default=60
|
||||
value.unit='K'
|
||||
value.default=300
|
||||
target.default=300
|
||||
|
||||
[module T_ccr12_A]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccr12_B]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(regulation) temperature sensor on stick.
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccr12_C]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Temperature at the coldhead.
|
||||
value.default=70
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccr12_D]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(regulation) temperature at coupling to stick.
|
||||
value.default=80
|
||||
value.unit='K'
|
||||
|
||||
|
||||
|
||||
[module ccr12_pressure_regulate]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Selects on which Sensor the pressure regulation works, or switches it off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'p1':1,'p2':2}]
|
||||
target.datatype=["enum", {'off':0,'p1':1,'p2':2}]
|
||||
|
||||
[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.
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
|
||||
[module ccr12_gas_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the gas inlet on or off.
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
|
||||
[module ccr12_vacuum_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the vacuum pumping valve on or off.
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
|
||||
[module ccr12_p1]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Default pressure Sensor, linear scale 0..1000mbar
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
|
||||
[module ccr12_p2]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Auxillary pressure Sensor.
|
||||
value.default=1e-6
|
||||
value.unit=mbar
|
||||
|
||||
[module ccr12_curve_p2]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Curve for Aux pressure Sensor p2
|
||||
.visibility=expert
|
||||
value.default='TTR100'
|
||||
value.datatype=["enum", {'10V':0,'default':1,'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}]
|
||||
target.datatype=["enum", {'10V':0,'default':1,'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}]
|
||||
|
||||
[module ccr12_p1_limits]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Limits for pressure regulation in P1.
|
||||
.visibility=expert
|
||||
value.datatype=["tuple",[["double"],["double"]]]
|
||||
value.default=[0,10]
|
||||
value.unit=mbar
|
||||
target.datatype=["tuple",[["double"],["double"]]]
|
||||
target.default=[0,10]
|
||||
target.unit=mbar
|
||||
|
||||
[module ccr12_p2_limits]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Limits for pressure regulation in P2.
|
||||
.visibility=expert
|
||||
value.datatype=["tuple",[["double"],["double"]]]
|
||||
value.default=[1e-5,1e-3]
|
||||
value.unit=mbar
|
||||
target.datatype=["tuple",[["double"],["double"]]]
|
||||
target.default=[1e-5,1e-3]
|
||||
target.unit=mbar
|
@ -1,148 +0,0 @@
|
||||
[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.
|
||||
|
||||
.meaning={'T_regulation':{'T_ccr12':200, 'T_ccr12_stick':150, 'T_ccr12_tube':100}, 'T_sample':{'T_ccr12_B':100, 'T_ccr12_A':90, 'T_ccr12_D':20, 'T_ccr12_C':10}}
|
||||
|
||||
[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.unit='K'
|
||||
value.default=300
|
||||
target.datatype=["double", 0, 600]
|
||||
target.default=300
|
||||
target.unit='K'
|
||||
.extra_params=ramp,regulationmode,abslimits,userlimits
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
regulationmode.datatype=["enum",{'stick':1,'tube':2,'both':3}]
|
||||
regulationmode.default='both'
|
||||
regulationmode.description=regulate only stick, tube or select based upon the target value.
|
||||
regulationmode.unit=''
|
||||
abslimits.datatype=["tuple",[["double"],["double"]]]
|
||||
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).
|
||||
abslimits.unit='K'
|
||||
abslimits.readonly=True
|
||||
userlimits.datatype=["tuple",[["double"],["double"]]]
|
||||
userlimits.default=[0,300]
|
||||
userlimits.description=current user set limits for the setpoint. must be inside abslimits.
|
||||
userlimits.unit='K'
|
||||
|
||||
[module T_ccr12_A]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccr12_B]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(regulation) temperature sensor on stick.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccr12_C]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Temperature at the coldhead.
|
||||
.visibility=expert
|
||||
value.default=70
|
||||
value.unit='K'
|
||||
|
||||
[module T_ccr12_D]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(regulation) temperature at coupling to stick.
|
||||
.visibility=expert
|
||||
value.default=80
|
||||
value.unit='K'
|
||||
|
||||
|
||||
|
||||
[module ccr12_pressure_regulation]
|
||||
class=secop.simulation.SimDrivable
|
||||
.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=["enum", {'off':0,'p1':1,'p2':2}]
|
||||
mode.description=Select pressure sensor to regulate on, or 'none' to disable regulation.
|
||||
mode.default='off'
|
||||
mode.unit=''
|
||||
mode.readonly=False
|
||||
switchpoints.datatype=["struct", {'lower':["double"],'upper':["double"]}]
|
||||
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.unit=''
|
||||
switchpoints.readonly=True
|
||||
|
||||
[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.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
|
||||
[module ccr12_gas_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
|
||||
[module ccr12_vacuum_switch]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the vacuum pumping valve on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
|
||||
[module ccr12_p1]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Default pressure Sensor, linear scale 0..1000mbar
|
||||
value.default=999
|
||||
value.unit=mbar
|
||||
.extra_params=curve, userlimits
|
||||
curve.datatype=["enum", {'10V':0,'default':1,'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'
|
||||
curve.unit=''
|
||||
curve.readonly=True
|
||||
userlimits.datatype=["tuple",[["double"],["double"]]]
|
||||
userlimits.default=[1, 100]
|
||||
userlimits.description=current user set limits for the pressure regulation.
|
||||
userlimits.unit='mbar'
|
||||
|
||||
[module ccr12_p2]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Auxillary pressure Sensor.
|
||||
value.default=1e-6
|
||||
value.unit=mbar
|
||||
.extra_params=curve,userlimits
|
||||
curve.datatype=["enum", {'10V':0,'default':1,'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'
|
||||
curve.unit=''
|
||||
userlimits.datatype=["tuple",[["double"],["double"]]]
|
||||
userlimits.default=[1e-6, 1e-3]
|
||||
userlimits.description=current user set limits for the pressure regulation.
|
||||
userlimits.unit='mbar'
|
@ -1,34 +0,0 @@
|
||||
[node htf02]
|
||||
description = [sim] htf02 box of MLZ Sample environment group
|
||||
.
|
||||
Controls an High Temperature Furnace with an eurotherm controller and an PLC checking the cooing water.
|
||||
|
||||
.meaning={'T_regulation':{'T_htf02':100}, 'T_sample':{'T_htf02':100}}
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_htf02]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Main temperature control node of htf02.
|
||||
.
|
||||
Controls the regulation loop of the Eurotherm.
|
||||
value.unit='degC'
|
||||
value.default=300
|
||||
target.datatype=["double", 0, 2000]
|
||||
target.default=300
|
||||
target.unit='degC'
|
||||
.extra_params=ramp
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
|
||||
[module htf02_p]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Pressure Sensor at sample space (ivc).
|
||||
value.default=989
|
||||
value.unit='mbar'
|
||||
|
@ -1,76 +0,0 @@
|
||||
[node stressihtf2]
|
||||
description = [sim] Stressihtf2 box of MLZ Sample environment group
|
||||
.
|
||||
Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water.
|
||||
|
||||
.meaning={'T_regulation':{'T_stressihtf2':100}, 'T_sample':{'T_stressihtf2':100}}
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T_stressihtf2]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Main temperature control node of Stressihtf2.
|
||||
value.unit='degC'
|
||||
value.default=20
|
||||
target.datatype=["double", 0, 2000]
|
||||
target.default=20
|
||||
target.unit='degC'
|
||||
.extra_params=ramp,regulationmode,abslimits,userlimits
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
abslimits.datatype=["tuple",[["double"],["double"]]]
|
||||
abslimits.default=[0,2000]
|
||||
abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K).
|
||||
abslimits.unit='degC'
|
||||
abslimits.readonly=True
|
||||
userlimits.datatype=["tuple",[["double"],["double"]]]
|
||||
userlimits.default=[0,300]
|
||||
userlimits.description=current user set limits for the setpoint. must be inside abslimits.
|
||||
userlimits.unit='degC'
|
||||
|
||||
[module T_stressihtf2_sample]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='degC'
|
||||
|
||||
[module stressihtf2_n2]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the N2 gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
target.default='off'
|
||||
|
||||
[module stressihtf2_he]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the He gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
target.default='off'
|
||||
|
||||
[module stressihtf2_lamps]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the heating lamps on or off.
|
||||
.visibility=expert
|
||||
value.default='on'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
target.default='on'
|
||||
|
||||
[module stressihtf2_water_ok]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Readout of the cooling water state.
|
||||
.visibility=expert
|
||||
value.default='ok'
|
||||
value.datatype=["enum", {'failed':0,'ok':1}]
|
||||
|
@ -1,76 +0,0 @@
|
||||
[node stressihtf2]
|
||||
description = [sim] Stressihtf2 box of MLZ Sample environment group
|
||||
.
|
||||
Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water.
|
||||
|
||||
meaning={'T_regulation':{'T':100}, 'T_sample':{'T_sample':100}}
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T]
|
||||
class=secop.simulation.SimDrivable
|
||||
.description=Main temperature control node of Stressihtf2.
|
||||
value.unit='degC'
|
||||
value.default=20
|
||||
target.datatype=["double", 0, 2000]
|
||||
target.default=20
|
||||
target.unit='degC'
|
||||
.extra_params=ramp,regulationmode,abslimits,userlimits
|
||||
ramp.datatype=["double",0,600]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
abslimits.datatype=["tuple",[["double"],["double"]]]
|
||||
abslimits.default=[0,2000]
|
||||
abslimits.description=currently active absolute limits for the setpoint.
|
||||
abslimits.unit='degC'
|
||||
abslimits.readonly=True
|
||||
userlimits.datatype=["tuple",[["double"],["double"]]]
|
||||
userlimits.default=[0,300]
|
||||
userlimits.description=current user set limits for the setpoint. must be inside or coincide with abslimits.
|
||||
userlimits.unit='degC'
|
||||
|
||||
[module T_sample]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.default=300
|
||||
value.unit='degC'
|
||||
|
||||
[module N2]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the N2 gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
target.default='off'
|
||||
|
||||
[module He]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the He gas inlet on or off.
|
||||
.visibility=expert
|
||||
value.default='off'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
target.default='off'
|
||||
|
||||
[module lamps]
|
||||
class=secop.simulation.SimWritable
|
||||
.description=Switches the heating lamps on or off.
|
||||
.visibility=expert
|
||||
value.default='on'
|
||||
value.datatype=["enum", {'off':0,'on':1}]
|
||||
target.datatype=["enum", {'off':0,'on':1}]
|
||||
target.default='on'
|
||||
|
||||
[module water_ok]
|
||||
class=secop.simulation.SimReadable
|
||||
.description=Readout of the cooling water state.
|
||||
.visibility=expert
|
||||
value.default='ok'
|
||||
value.datatype=["enum", {'failed':0,'ok':1}]
|
||||
|
@ -1,83 +0,0 @@
|
||||
[node stressihtf2]
|
||||
description = Stressihtf2 box of MLZ Sample environment group
|
||||
.
|
||||
Controls an High Temperature Furnace with an Eurotherm and an PLC controlling some valves and checking cooling water.
|
||||
|
||||
meaning={'T_regulation':{'T':100}, 'T_sample':{'T_sample':100}}
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10767
|
||||
|
||||
[module T]
|
||||
class=secop_mlz.entangle.TemperatureController
|
||||
tangodevice=tango://localhost:10000/box/eurotherm/ctrl
|
||||
.description=Main temperature control node of Stressihtf2.
|
||||
value.unit='degC'
|
||||
target.datatype=["double", 0, 2000]
|
||||
ramp.datatype=["double",0,9999]
|
||||
ramp.description=target ramping speed in K/min.
|
||||
ramp.default=60
|
||||
ramp.unit=K/min
|
||||
abslimits.datatype=["tuple",[["double"],["double"]]]
|
||||
abslimits.default=[0,2000]
|
||||
abslimits.description=currently active absolute limits for the setpoint. depend on the regulationmode parameter (both/stick->0..600, tube->0..300K).
|
||||
abslimits.unit='degC'
|
||||
abslimits.readonly=True
|
||||
userlimits.datatype=["tuple",[["double"],["double"]]]
|
||||
userlimits.default=[0,300]
|
||||
userlimits.description=current user set limits for the setpoint. must be inside abslimits.
|
||||
userlimits.unit='degC'
|
||||
heateroutput.datatype=["double",0,100]
|
||||
heateroutput.description=output to the heater
|
||||
heateroutput.unit='%%'
|
||||
heateroutput.default=0
|
||||
setpoint.default=0
|
||||
p.default=1
|
||||
i.default=0
|
||||
d.default=0
|
||||
pid.default=[1,0,0]
|
||||
speed.default=0
|
||||
|
||||
[module T_sample_a]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/eurotherm/sensora
|
||||
.description=Regulation temperature sensor.
|
||||
.visibility=user
|
||||
value.unit='degC'
|
||||
|
||||
[module T_sample_b]
|
||||
class=secop_mlz.entangle.Sensor
|
||||
tangodevice=tango://localhost:10000/box/eurotherm/sensorb
|
||||
.description=(optional) Sample temperature sensor.
|
||||
.visibility=expert
|
||||
value.unit='degC'
|
||||
|
||||
[module N2]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_gas1
|
||||
.description=Switches the N2 gas inlet on or off.
|
||||
.visibility=expert
|
||||
mapping=dict(off=0,on=1)
|
||||
|
||||
[module He]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_gas2
|
||||
.description=Switches the He gas inlet on or off.
|
||||
.visibility=expert
|
||||
mapping=dict(off=0,on=1)
|
||||
|
||||
[module lamps]
|
||||
class=secop_mlz.entangle.NamedDigitalOutput
|
||||
tangodevice=tango://localhost:10000/box/plc/_onoff
|
||||
.description=Switches the heating lamps on or off.
|
||||
.visibility=expert
|
||||
mapping=dict(off=0,on=1)
|
||||
|
||||
[module water_ok]
|
||||
class=secop_mlz.entangle.NamedDigitalInput
|
||||
tangodevice=tango://localhost:10000/box/plc/_waterok
|
||||
.description=Readout of the cooling water state.
|
||||
.visibility=expert
|
||||
mapping=dict(failed=0,ok=1)
|
46
etc/test.cfg
46
etc/test.cfg
@ -1,46 +0,0 @@
|
||||
[node test config]
|
||||
description=description of the testing sec-node
|
||||
.
|
||||
Here should be the long description.
|
||||
It can be very long.
|
||||
.
|
||||
a single . on a line gets stripped so you can make paragraphs.
|
||||
.
|
||||
These texts are supposed to be possibly very long.
|
||||
|
||||
[interface tcp]
|
||||
type=tcp
|
||||
bindto=0.0.0.0
|
||||
bindport=10768
|
||||
|
||||
|
||||
[module LN2]
|
||||
class=secop_demo.test.LN2
|
||||
.description="random value between 0..100%%"
|
||||
value.unit = "%%"
|
||||
|
||||
[module heater]
|
||||
class=secop_demo.test.Heater
|
||||
maxheaterpower=10
|
||||
.description="some heater"
|
||||
|
||||
[module T1]
|
||||
class=secop_demo.test.Temp
|
||||
sensor="X34598T7"
|
||||
.description="some temperature"
|
||||
|
||||
[module T2]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
sensor="X34598T8"
|
||||
.description="some temperature"
|
||||
|
||||
[module T3]
|
||||
class=secop_demo.modules.CoilTemp
|
||||
sensor="X34598T9"
|
||||
.description="some temperature"
|
||||
|
||||
|
||||
[module Lower]
|
||||
class=secop_demo.test.Lower
|
||||
.description="something else"
|
||||
|
Reference in New Issue
Block a user