[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'