added PPMS driver

this is driver for the PPMS of LIN at PSI.
This includes the SCoP driver and a simulation, which mimics a
PPMS device including the command interface.
The (small) interface to the windows system of PPMS follows in
a separate patch.

Change-Id: I92173b6dd83016fd1db446c710af101d436fc57b
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21445
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
2019-10-21 13:04:30 +02:00
parent 0700ddc455
commit 2a2750ad71
3 changed files with 1296 additions and 0 deletions

123
etc/ppms.cfg Executable file
View File

@ -0,0 +1,123 @@
[node PPMS.psi.ch]
description = PPMS at PSI
[interface tcp]
type = tcp
bindto = 0.0.0.0
bindport = 5000
[module tt]
class = secop_psi.ppms.Temp
.description = main temperature
.iodev = ppms
[module mf]
class = secop_psi.ppms.Field
.description = magnetic field
.iodev = ppms
[module pos]
class = secop_psi.ppms.Position
.description = sample rotator
.iodev = ppms
[module lev]
class = secop_psi.ppms.Level
.description = helium level
.iodev = ppms
[module chamber]
class = secop_psi.ppms.Chamber
.description = chamber state
.iodev = ppms
[module r1]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 1
.no = 1
value.unit = Ohm
.iodev = ppms
[module r2]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 2
.no = 2
value.unit = Ohm
.iodev = ppms
[module r3]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 3
.no = 3
value.unit = Ohm
.iodev = ppms
[module r4]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 4
.no = 4
value.unit = Ohm
.iodev = ppms
[module i1]
class = secop_psi.ppms.Channel
.description = current channel 1
.no = 1
value.unit = uA
.iodev = ppms
[module i2]
class = secop_psi.ppms.Channel
.description = current channel 2
.no = 2
value.unit = uA
.iodev = ppms
[module i3]
class = secop_psi.ppms.Channel
.description = current channel 3
.no = 3
value.unit = uA
.iodev = ppms
[module i4]
class = secop_psi.ppms.Channel
.description = current channel 4
.no = 4
value.unit = uA
.iodev = ppms
[module v1]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 1
.no = 1
value.unit = V
.iodev = ppms
[module v2]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 2
.no = 2
value.unit = V
.iodev = ppms
[module tv]
class = secop_psi.ppms.UserChannel
.description = VTI temperature
enabled = 1
value.unit = K
.iodev = ppms
[module ts]
class = secop_psi.ppms.UserChannel
.description = sample temperature
enabled = 1
value.unit = K
.iodev = ppms
[module ppms]
class = secop_psi.ppms.Main
.description = the main and poller module
.class_id = QD.MULTIVU.PPMS.1
.visibility = 3
pollinterval = 2