Files
sics/site_ansto/instrument/config/environment/temperature/mercury_scpi.sct
2014-05-01 10:54:09 +10:00

90 lines
4.0 KiB
Plaintext

# vim: ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent
driver mercury_scpi = {
vendor = oxford; device = mercury; protocol = std;
class = environment; simulation_group = environment_simulation;
add_args = '{id 99} {permlink LT} {tol 1} {valve_tol 2}'
make_args = 'id permlink tol valve_tol'
group Level = {
priv = user; type = float; readable = 15;
var Nitrogen = { read_command = 'READ:DEV:DB5.L1:LVL:SIG:NIT:LEV'; permlink = '#0.S05'; }
var Helium = { read_command = 'READ:DEV:DB5.L1:LVL:SIG:HEL:LEV'; permlink = '#0.S06'; }
}
group Loop1 = {
priv = user; type = float; readable = 5;
var sensor = { readable = 1; read_command = 'READ:DEV:MB1.T1:TEMP:SIG:TEMP'; permlink = '#1.S01'; }
var nick = { type=text; readable = 15; read_command = 'READ:DEV:MB1.T1:TEMP:NICK'; read_function = rdText; }
var power = { read_command = 'READ:DEV:MB0.H1:HTR:SIG:POWR'; }
var setpoint = { read_command = 'READ:DEV:MB1.T1:TEMP:LOOP:TSET';
driveable = Loop1/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${tol}'; property settle_time = 15;
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:MB1.T1:TEMP:LOOP:TSET:';
permlink = '#1.SP01';
}
}
group Loop2 = {
priv = user; type = float; readable = 5;
var sensor = { readable = 1; read_command = 'READ:DEV:DB6.T1:TEMP:SIG:TEMP'; permlink = 'T.S02'; }
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB6.T1:TEMP:NICK'; read_function = rdText; }
var power = { read_command = 'READ:DEV:DB1.H1:HTR:SIG:POWR'; }
var setpoint = { read_command = 'READ:DEV:DB6.T1:TEMP:LOOP:TSET';
driveable = Loop2/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${tol}'; property settle_time = 15;
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:DB6.T1:TEMP:LOOP:TSET:';
permlink = 'T.SP02';
}
}
group Loop3 = {
priv = user; type = float; readable = 5;
var sensor = { readable = 1; read_command = 'READ:DEV:DB7.T1:TEMP:SIG:TEMP'; permlink = 'T.S03'; }
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB7.T1:TEMP:NICK'; read_function = rdText; }
var power = { read_command = 'READ:DEV:DB2.H1:HTR:SIG:POWR'; }
var setpoint = { read_command = 'READ:DEV:DB7.T1:TEMP:LOOP:TSET';
driveable = Loop3/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${tol}'; property settle_time = 15;
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:DB7.T1:TEMP:LOOP:TSET:';
permlink = 'T.SP03';
}
}
group Loop4 = {
priv = user; type = float; readable = 5;
var sensor = { readable = 1; read_command = 'READ:DEV:DB8.T1:TEMP:SIG:TEMP'; permlink = 'T.S04'; }
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB8.T1:TEMP:NICK'; read_function = rdText; }
var power = { read_command = 'READ:DEV:DB3.H1:HTR:SIG:POWR'; }
var setpoint = { read_command = 'READ:DEV:DB8.T1:TEMP:LOOP:TSET';
driveable = Loop4/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${tol}'; property settle_time = 15;
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:DB8.T1:TEMP:LOOP:TSET:';
permlink = 'T.SP04';
}
}
group Valve = {
priv = user; type = float;
var sensor = {
readable = 5;
read_command = 'READ:DEV:DB4.G1:AUX:SIG:OPEN';
permlink = 'G.S07';
}
var setpoint = {
driveable = Valve/sensor; lowerlimit = 0; upperlimit = 100; tolerance = '${valve_tol}'; property settle_time = 30;
writeable = 1; write_function = setValve; write_command = 'SET:DEV:DB4.G1:AUX:SIG:OPEN:';
permlink = 'G.SP07';
}
}
code read_function rdValue = {
@ scan [lindex [split "$data" ":"] end] "%g" data
}
code read_function rdText = {
@ scan [lindex [split "$data" ":"] end] "%s" data
}
code Write_function setPoint = {
}
code Write_function setValve = {
@ if { [hpropexists [sct] pid_bias] } {
@ set par [expr ${par} + [hgetpropval [sct] pid_bias]]
@ set cmd "${cmd_str}${par}"
@ }
@ sct update [sct target]
}
}