Port new Aerolas Doppler driver from RELEASE-3_1
This commit is contained in:
170
site_ansto/instrument/config/beamline/aerolas_doppler.sct
Normal file
170
site_ansto/instrument/config/beamline/aerolas_doppler.sct
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
# vim: ft=tcl ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent
|
||||||
|
driver aerolas_doppler = {
|
||||||
|
protocol = modbus_ap;
|
||||||
|
class = instrument;
|
||||||
|
simulation_group = motor_simulation;
|
||||||
|
make_args = "{testing false}"
|
||||||
|
group ctrl = {
|
||||||
|
readable = 1;
|
||||||
|
writeable = 1;
|
||||||
|
type = int;
|
||||||
|
fetch_function = getUShort;
|
||||||
|
read_function = rdUShort;
|
||||||
|
write_function = wrUShort;
|
||||||
|
var run_cmd = {
|
||||||
|
allowed = "0,1";
|
||||||
|
read_command = "0";
|
||||||
|
write_command = "0";
|
||||||
|
lowerlimit = 0; upperlimit = 1;
|
||||||
|
}
|
||||||
|
type = float;
|
||||||
|
fetch_function = getFloat;
|
||||||
|
read_function = rdFloat;
|
||||||
|
write_function = wrFloat;
|
||||||
|
var amplitude = {
|
||||||
|
read_command = "1";
|
||||||
|
write_command = "1";
|
||||||
|
lowerlimit = 0; upperlimit = 75;
|
||||||
|
units = "mm";
|
||||||
|
}
|
||||||
|
var velocity = {
|
||||||
|
type = float;
|
||||||
|
read_command = "3";
|
||||||
|
write_command = "3";
|
||||||
|
lowerlimit = 0; upperlimit = 4.700;
|
||||||
|
units = "m/S";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
group read_write = {
|
||||||
|
readable = 1;
|
||||||
|
data = false; nxsave = false; mutable = false;
|
||||||
|
type = int;
|
||||||
|
fetch_function = getUShort;
|
||||||
|
read_function = rdUShort;
|
||||||
|
write_function = wrUShort;
|
||||||
|
var profile = {
|
||||||
|
allowed = "0,1";
|
||||||
|
read_command = "6";
|
||||||
|
write_command = "6";
|
||||||
|
}
|
||||||
|
fetch_function = getULong;
|
||||||
|
read_function = rdULong;
|
||||||
|
write_function = wrULong;
|
||||||
|
var te_ok_cycles = {
|
||||||
|
read_command = "7";
|
||||||
|
write_command = "7";
|
||||||
|
}
|
||||||
|
var te_ok_time = {
|
||||||
|
read_command = "9";
|
||||||
|
write_command = "9";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
group read_only = {
|
||||||
|
readable = 1;
|
||||||
|
data = false; nxsave = false; mutable = false;
|
||||||
|
type = int;
|
||||||
|
fetch_function = getUShort;
|
||||||
|
read_function = rdUShort;
|
||||||
|
var run_state = { read_command = "1000"; }
|
||||||
|
var arc_state = { read_command = "1016"; }
|
||||||
|
var version_number = { read_command = "1018"; }
|
||||||
|
fetch_function = getULong;
|
||||||
|
read_function = rdULong;
|
||||||
|
var move_rel_counter = { read_command = "1003"; }
|
||||||
|
var move_abs_counter = { read_command = "1005"; }
|
||||||
|
type = float;
|
||||||
|
fetch_function = getFloat;
|
||||||
|
read_function = rdFloat;
|
||||||
|
var move_amplitude_min = { read_command = "1007"; }
|
||||||
|
var move_amplitude_max = { read_command = "1009"; }
|
||||||
|
var move_velocity_min = { read_command = "1011"; }
|
||||||
|
var move_velocity_max = { read_command = "1013"; }
|
||||||
|
}
|
||||||
|
group testing = {
|
||||||
|
conditional = "${testing}";
|
||||||
|
group shorts = {
|
||||||
|
readable = 30;
|
||||||
|
data = false; nxsave = false; mutable = false;
|
||||||
|
type = int;
|
||||||
|
fetch_function = getUShort;
|
||||||
|
read_function = rdUShort;
|
||||||
|
%exec
|
||||||
|
exec_output = []
|
||||||
|
for i in range(0,30):
|
||||||
|
exec_output += ["var short_%04d = { read_command = '%d'; }" % (i, i)]
|
||||||
|
exec_output += ["var short_%04d = { read_command = '%d'; }" % (1000+i, 1000+i)]
|
||||||
|
%end
|
||||||
|
}
|
||||||
|
group longs = {
|
||||||
|
readable = 30;
|
||||||
|
data = false; nxsave = false; mutable = false;
|
||||||
|
type = int;
|
||||||
|
fetch_function = getULong;
|
||||||
|
read_function = rdULong;
|
||||||
|
%exec
|
||||||
|
exec_output = []
|
||||||
|
for i in range(0,30):
|
||||||
|
exec_output += ["var long_%04d = { read_command = '%d'; }" % (i, i)]
|
||||||
|
exec_output += ["var long_%04d = { read_command = '%d'; }" % (1000+i, 1000+i)]
|
||||||
|
%end
|
||||||
|
}
|
||||||
|
group floats = {
|
||||||
|
readable = 30;
|
||||||
|
data = false; nxsave = false; mutable = false;
|
||||||
|
type = float;
|
||||||
|
fetch_function = getFloat;
|
||||||
|
read_function = rdFloat;
|
||||||
|
%exec
|
||||||
|
exec_output = []
|
||||||
|
for i in range(0,30):
|
||||||
|
exec_output += ["var float_%04d = { read_command = '%d'; }" % (i, i)]
|
||||||
|
exec_output += ["var float_%04d = { read_command = '%d'; }" % (1000+i, 1000+i)]
|
||||||
|
%end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
code fetch_function getFloat = {
|
||||||
|
@TCL
|
||||||
|
set cmd "1:3:${cmd_str}:1:F32\[2,3,0,1\]"
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
code read_function rdFloat = {
|
||||||
|
@TCL
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
code write_function wrFloat = {
|
||||||
|
@TCL
|
||||||
|
set cmd "1:16:${cmd_str}:1:F32\[2,3,0,1\]${par}"
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
|
||||||
|
code fetch_function getUShort = {
|
||||||
|
@TCL
|
||||||
|
set cmd "1:3:${cmd_str}:1:U16"
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
code read_function rdUShort = {
|
||||||
|
@TCL
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
code write_function wrUShort = {
|
||||||
|
@TCL
|
||||||
|
set cmd "1:16:${cmd_str}:1:U16:${par}"
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
|
||||||
|
code fetch_function getULong = {
|
||||||
|
@TCL
|
||||||
|
set cmd "1:3:${cmd_str}:1:U32\[2,3,0,1\]"
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
code read_function rdULong = {
|
||||||
|
@TCL
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
code write_function wrULong = {
|
||||||
|
@TCL
|
||||||
|
set cmd "1:16:${cmd_str}:1:U32\[2,3,0,1\]${par}"
|
||||||
|
@END
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
4453
site_ansto/instrument/config/beamline/aerolas_doppler_sct.tcl
Normal file
4453
site_ansto/instrument/config/beamline/aerolas_doppler_sct.tcl
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user