From 416fbe4879a565587ff6ccb243f7c49dbea5eaf7 Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Mon, 9 Jul 2007 15:25:57 +1000 Subject: [PATCH] Configuration files mostly copied from Platypus Reflectometer r2050 | dcl | 2007-07-09 15:25:57 +1000 (Mon, 09 Jul 2007) | 2 lines --- site_ansto/instrument/sans/MANIFEST.TXT | 7 +- site_ansto/instrument/sans/Makefile | 14 + .../sans/config/hmm/hmm_configuration.tcl | 0 .../config/motors/motor_configuration.tcl | 873 ++++++++++++++++++ .../instrument/sans/config/nexus/Makefile | 18 + .../sans/config/nexus/nexus_bmonscan.dic | 93 ++ .../sans/config/nexus/nexus_hmscan.dic | 118 +++ .../sans/config/nexus/nexus_in_motors.dic | 22 + .../sans/config/nexus/nxscripts.tcl | 1 + site_ansto/instrument/sans/config/plc/plc.tcl | 5 + site_ansto/instrument/sans/extraconfig.tcl | 0 .../instrument/sans/quokka_configuration.tcl | 34 + .../sans/script_validator/MANIFEST.TXT | 2 + .../sans/script_validator/sics_ports.tcl | 4 + site_ansto/instrument/sans/sics_ports.tcl | 4 + site_ansto/instrument/server_config.tcl | 11 +- 16 files changed, 1199 insertions(+), 7 deletions(-) create mode 100644 site_ansto/instrument/sans/Makefile create mode 100644 site_ansto/instrument/sans/config/hmm/hmm_configuration.tcl create mode 100644 site_ansto/instrument/sans/config/motors/motor_configuration.tcl create mode 100644 site_ansto/instrument/sans/config/nexus/Makefile create mode 100644 site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic create mode 100644 site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic create mode 100644 site_ansto/instrument/sans/config/nexus/nexus_in_motors.dic create mode 100644 site_ansto/instrument/sans/config/nexus/nxscripts.tcl create mode 100644 site_ansto/instrument/sans/config/plc/plc.tcl create mode 100644 site_ansto/instrument/sans/extraconfig.tcl create mode 100644 site_ansto/instrument/sans/quokka_configuration.tcl create mode 100644 site_ansto/instrument/sans/script_validator/MANIFEST.TXT create mode 100644 site_ansto/instrument/sans/script_validator/sics_ports.tcl create mode 100644 site_ansto/instrument/sans/sics_ports.tcl diff --git a/site_ansto/instrument/sans/MANIFEST.TXT b/site_ansto/instrument/sans/MANIFEST.TXT index a2d5f099..da2e16b9 100644 --- a/site_ansto/instrument/sans/MANIFEST.TXT +++ b/site_ansto/instrument/sans/MANIFEST.TXT @@ -1,3 +1,6 @@ +quokka_configuration.tcl velsel.tcl -hipadaba_configuration.tcl -InstXML.xml +sics_ports.tcl +extraconfig.tcl +config +util diff --git a/site_ansto/instrument/sans/Makefile b/site_ansto/instrument/sans/Makefile new file mode 100644 index 00000000..8ecc9b71 --- /dev/null +++ b/site_ansto/instrument/sans/Makefile @@ -0,0 +1,14 @@ +cfPath=config/motors + +all: script_val + make -C config + + +script_val: SVmotors + + +SVmotors: $(cfPath)/motor_configuration.tcl + ../mksim_config.tcl -f $(cfPath)/motor_configuration.tcl > script_validator/$(cfPath)/motor_configuration.tcl + +clean: + make -C config clean diff --git a/site_ansto/instrument/sans/config/hmm/hmm_configuration.tcl b/site_ansto/instrument/sans/config/hmm/hmm_configuration.tcl new file mode 100644 index 00000000..e69de29b diff --git a/site_ansto/instrument/sans/config/motors/motor_configuration.tcl b/site_ansto/instrument/sans/config/motors/motor_configuration.tcl new file mode 100644 index 00000000..a3ab3688 --- /dev/null +++ b/site_ansto/instrument/sans/config/motors/motor_configuration.tcl @@ -0,0 +1,873 @@ +# $Revision: 1.1 $ +# $Date: 2007-07-09 05:21:43 $ +# Author: Ferdi Franceschini (ffr@ansto.gov.au) +# Last revision by: $Author: dcl $ + +# START MOTOR CONFIGURATION + +set animal platypus +set sim_mode [SplitReply [motor_simulation]] +if {$sim_mode == "true"} { + set motor_driver_type asim +} else { + set motor_driver_type DMC2280 +} + +# Setup addresses of Galil DMC2280 controllers. +set dmc2280_controller1(host) mc1-$animal +set dmc2280_controller1(port) pmc1-$animal + +set dmc2280_controller2(host) mc2-$animal +set dmc2280_controller2(port) pmc2-$animal + +set dmc2280_controller3(host) mc3-$animal +set dmc2280_controller3(port) pmc3-$animal + +set dmc2280_controller4(host) mc4-$animal +set dmc2280_controller4(port) pmc4-$animal + +MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port) +MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port) +MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port) +MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port) + +#Measured absolute encoder reading at home position + +set bz_home 8142000 +set c1ht_home 8265000 +set m1ro_home 134658 +set bat_home 8308518 +set st3vt_home 8742250 +set st4vt_home 8806900 +set sth_home 23511400 +set sphi_home 7548440 +set sx_home 8574000 +set sy_home 7500000 +set sz_home 8927484 +set dy_home 7500000 +set dz_home 7805000 + +#Measured or computed step rate for sz (Sample Raise) +#set szStepRate -116500 +set szStepRate -125000 +#set szCountRate [expr -(8192.0/5.0/0.932)] +# 8192 count encoder, 5mm/Turn screw, 14:15 gearing? +set szCountRate [expr -(8192.0/5.0/(14.0/15.0))] + +#Measured or computed slit motor steps per millimetre +# 2mm per turn pitch, +# 6 * 7:3 gears ~= 161.384 +# 250 steps per turn, +# = 20173.010973936899862825788751715 +set slitStepRate 20173.0109739 + +#Measured slit gap, in units, after homing on limit switches +set ss1h_Gap 56.7 +set ss1v_Gap 54.5 +set ss2h_Gap 9.1 +set ss2v_Gap 23.1 + +set ss3h_Gap 7.4 +set ss3v_Gap 28.6 +set ss4h_Gap 12.1 +set ss4v_Gap 23.6 + +#Calculate the Home (zero) position as being in the middle of the gap +set ss1r_Home [expr $ss1h_Gap/2.0*$slitStepRate] +set ss1l_Home [expr $ss1h_Gap/2.0*$slitStepRate] +set ss1u_Home [expr $ss1v_Gap/2.0*$slitStepRate] +set ss1d_Home [expr $ss1v_Gap/2.0*$slitStepRate] +set ss2r_Home [expr $ss2h_Gap/2.0*$slitStepRate] +set ss2l_Home [expr $ss2h_Gap/2.0*$slitStepRate] +set ss2u_Home [expr $ss2v_Gap/2.0*$slitStepRate] +set ss2d_Home [expr $ss2v_Gap/2.0*$slitStepRate] + +set ss3r_Home [expr $ss3h_Gap/2.0*$slitStepRate] +set ss3l_Home [expr $ss3h_Gap/2.0*$slitStepRate] +set ss3u_Home [expr $ss3v_Gap/2.0*$slitStepRate] +set ss3d_Home [expr $ss3v_Gap/2.0*$slitStepRate] +set ss4r_Home [expr $ss4h_Gap/2.0*$slitStepRate] +set ss4l_Home [expr $ss4h_Gap/2.0*$slitStepRate] +set ss4u_Home [expr $ss4v_Gap/2.0*$slitStepRate] +set ss4d_Home [expr $ss4v_Gap/2.0*$slitStepRate] + +#Default upper and lower ranges for vertical slits +set vSlitHome 0 +set vSlitLoRange 5 +set vSlitHiRange 25 + +#Default upper and lower ranges for horizontal slits +set hSlitHome 0 +set hSlitLoRange 5 +set hSlitHiRange 25 + +if {0} { +#calculate individual slit motor low ranges +set ss1r_LoRange [expr $hSlitHome - $hSlitLoRange] +set ss1l_LoRange [expr $hSlitHome - $hSlitHiRange] +set ss1u_LoRange [expr $vSlitHome - $vSlitLoRange] +set ss1d_LoRange [expr $vSlitHome - $vSlitHiRange] +set ss2r_LoRange [expr $hSlitHome - $hSlitLoRange] +set ss2l_LoRange [expr $hSlitHome - $hSlitHiRange] +set ss2u_LoRange [expr $vSlitHome - $vSlitLoRange] +set ss2d_LoRange [expr $vSlitHome - $vSlitHiRange] + +set ss3r_LoRange [expr $hSlitHome - $hSlitLoRange] +set ss3l_LoRange [expr $hSlitHome - $hSlitHiRange] +set ss3u_LoRange [expr $vSlitHome - $vSlitLoRange] +set ss3d_LoRange [expr $vSlitHome - $vSlitHiRange] +set ss4r_LoRange [expr $hSlitHome - $hSlitLoRange] +set ss4l_LoRange [expr $hSlitHome - $hSlitHiRange] +set ss4u_LoRange [expr $vSlitHome - $vSlitLoRange] +set ss4d_LoRange [expr $vSlitHome - $vSlitHiRange] + +#calculate individual slit motor high ranges +set ss1r_HiRange [expr $hSlitHome + $hSlitHiRange] +set ss1l_HiRange [expr $hSlitHome + $hSlitLoRange] +set ss1u_HiRange [expr $vSlitHome + $vSlitHiRange] +set ss1d_HiRange [expr $vSlitHome + $vSlitLoRange] +set ss2r_HiRange [expr $hSlitHome + $hSlitHiRange] +set ss2l_HiRange [expr $hSlitHome + $hSlitLoRange] +set ss2u_HiRange [expr $vSlitHome + $vSlitHiRange] +set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange] + +set ss3r_HiRange [expr $hSlitHome + $hSlitHiRange] +set ss3l_HiRange [expr $hSlitHome + $hSlitLoRange] +set ss3u_HiRange [expr $vSlitHome + $vSlitHiRange] +set ss3d_HiRange [expr $vSlitHome + $vSlitLoRange] +set ss4r_HiRange [expr $hSlitHome + $hSlitHiRange] +set ss4l_HiRange [expr $hSlitHome + $hSlitLoRange] +set ss4u_HiRange [expr $vSlitHome + $vSlitHiRange] +set ss4d_HiRange [expr $vSlitHome + $vSlitLoRange] +} else { +#calculate individual slit motor low ranges +set ss1r_LoRange [expr $hSlitHome - $hSlitLoRange] +set ss1l_LoRange [expr $hSlitHome - $hSlitHiRange] +set ss1u_LoRange [expr $vSlitHome - $vSlitLoRange] +set ss1d_LoRange [expr $vSlitHome - $vSlitHiRange] +set ss2r_LoRange [expr $hSlitHome - $hSlitLoRange] +set ss2l_LoRange [expr $hSlitHome - $hSlitHiRange] +set ss2u_LoRange [expr $vSlitHome - $vSlitLoRange] +set ss2d_LoRange [expr $vSlitHome - $vSlitHiRange] + +set ss3r_LoRange -12.0 +set ss3l_LoRange -26.0 +set ss3u_LoRange -5.0 +set ss3d_LoRange -26.0 +set ss4r_LoRange -13.0 +set ss4l_LoRange -27.0 +set ss4u_LoRange -6.0 +set ss4d_LoRange -26.0 + +#calculate individual slit motor high ranges +set ss1r_HiRange [expr $hSlitHome + $hSlitHiRange] +set ss1l_HiRange [expr $hSlitHome + $hSlitLoRange] +set ss1u_HiRange [expr $vSlitHome + $vSlitHiRange] +set ss1d_HiRange [expr $vSlitHome + $vSlitLoRange] +set ss2r_HiRange [expr $hSlitHome + $hSlitHiRange] +set ss2l_HiRange [expr $hSlitHome + $hSlitLoRange] +set ss2u_HiRange [expr $vSlitHome + $vSlitHiRange] +set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange] + +set ss3r_HiRange 27.0 +set ss3l_HiRange 14.0 +set ss3u_HiRange 29.0 +set ss3d_HiRange 8.0 +set ss4r_HiRange 32.0 +set ss4l_HiRange 14.0 +set ss4u_HiRange 27.0 +set ss4d_HiRange 8.0 +} + +# set movecount high to reduce the frequency of +# hnotify messages to a reasonable level +set move_count 100 + +############################ +# Motor Controller 1 +# Motor Controller 1 +# Motor Controller 1 +############################ +#:TP at HOME +# + +# Beam Shade Vertical Translation (6mm/T double helix, 500mm) +Motor bz $motor_driver_type [params \ + asyncqueue mc1\ + axis A\ + units mm\ + hardlowerlim 0\ + hardupperlim 275\ + maxSpeed 5\ + maxAccel 1\ + maxDecel 5\ + stepsPerX [expr -25000.0/6.0]\ + absEnc 1\ + absEncHome $bz_home\ + cntsPerX [expr -8192.0/6.0]] +bz part detector +bz long_name shade +bz softlowerlim 0 +bz softupperlim 275 +bz home 0 + +# Collimator Table Horizontal Translation, X +Motor c1ht $motor_driver_type [params \ + asyncqueue mc1\ + axis B\ + units mm\ + hardlowerlim 0\ + hardupperlim 1065\ + maxSpeed 10\ + maxAccel 1\ + maxDecel 10\ + stepsPerX [expr 25000.0/5.0]\ + absEnc 1\ + absEncHome $c1ht_home\ + cntsPerX [expr -8192.0/5.0]] +c1ht part collimator +c1ht long_name translation +c1ht softlowerlim 0 +c1ht softupperlim 1065 +c1ht home 0 + +# Collimator Tilt, Z axis, positive is down +Motor m1ro $motor_driver_type [params \ + asyncqueue mc1\ + axis C\ + units degrees\ + hardlowerlim -3.5\ + hardupperlim 3.5\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 275000\ + absEnc 1\ + absEncHome $m1ro_home\ + cntsPerX [expr -262144.0/360.0]] +m1ro part collimator +m1ro long_name rotation +m1ro softlowerlim -3.5 +m1ro softupperlim 3.5 +m1ro home 0 + +# Beam Attenuator (16mm/turn, 200mm travel) +Motor bat $motor_driver_type [params \ + asyncqueue mc1\ + axis D\ + units mm\ + hardlowerlim 0\ + hardupperlim 200\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX [expr 25000.0/16.0]\ + absEnc 1\ + absEncHome $bat_home\ + cntsPerX [expr 8192.0/16.0]] +bat part attenuator +bat long_name beam_attenuator +bat softlowerlim 0 +bat softupperlim 200 +bat home 0 + +# Slit 3 Tower Translation (1mm/T, +/- 100mm) +Motor st3vt $motor_driver_type [params \ + asyncqueue mc1\ + axis E\ + units mm\ + hardlowerlim 0\ + hardupperlim 253\ + maxSpeed 10\ + maxAccel 1\ + maxDecel 10\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $st3vt_home\ + cntsPerX -8192] +st3vt part aperture.3/vertical +st3vt long_name st3vt +st3vt softlowerlim 0 +st3vt softupperlim 253 +st3vt home 0 + +# Slit 4 Tower Translation (1mm/T, +/- 100mm) +Motor st4vt $motor_driver_type [params \ + asyncqueue mc1\ + axis F\ + units mm\ + hardlowerlim 0\ + hardupperlim 249\ + maxSpeed 10\ + maxAccel 1\ + maxDecel 10\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $st4vt_home\ + cntsPerX -8192] +st4vt part aperture.4/vertical +st4vt long_name st4vt +st4vt softlowerlim 0 +st4vt softupperlim 249 +st4vt home 0 + +############################ +# Motor Controller 2 +# Motor Controller 2 +# Motor Controller 2 +############################ +#:TP at HOME +# + +# Sample Tilt 1, upper (1 degree/turn) +Motor sth $motor_driver_type [params \ + asyncqueue mc2\ + axis A\ + units degrees\ + hardlowerlim -15\ + hardupperlim 15\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + backlash_offset -0.25\ + absEnc 1\ + absEncHome $sth_home\ + cntsPerX 8192] +sth part sample +sth long_name sth +setHomeandRange -motor sth -home 0 -lowrange 5 -uprange 5 +sth speed 1 +sth precision 0.01 + +# Sample Tilt 2, lower (1 degree/turn) +Motor sphi $motor_driver_type [params \ + asyncqueue mc2\ + axis B\ + units degrees\ + hardlowerlim -5\ + hardupperlim 5\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -25000\ + absEnc 1\ + absEncHome $sphi_home\ + cntsPerX -8192] +sphi part sample +sphi long_name sphi +setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 +sphi speed 1 +sphi precision 0.01 + +# Sample Translation, Linear X (5mm/T, 0-750mm) +Motor sx $motor_driver_type [params \ + asyncqueue mc2\ + axis C\ + units mm\ + hardlowerlim 0\ + hardupperlim 734\ + maxSpeed 10\ + maxAccel 1\ + maxDecel 10\ + stepsPerX [expr 25000.0/5.0]\ + absEnc 1\ + absEncHome $sx_home\ + cntsPerX [expr 8192.0/5.0]] +sx part sample +sx long_name translate_x +sx softlowerlim 0 +sx softupperlim 730 +sx home 0 + +# Sample Translation, Linear Y +#Motor sy $motor_driver_type [params \ +# asyncqueue mc2\ +# axis D\ +# units mm\ +# hardlowerlim -600\ +# hardupperlim -300\ +# maxSpeed 1\ +# maxAccel 1\ +# maxDecel 1\ +# stepsPerX 25000\ +# absEnc 1\ +# absEncHome $sy_home\ +# cntsPerX 8192] +#sy part sample +#sy long_name y_translation +#sy softlowerlim -600 +#sy softupperlim -300 +#sy home -450 + +# Sample Translation, Linear Z (??/T, 300mm) +Motor sz $motor_driver_type [params \ + asyncqueue mc2\ + axis E\ + units mm\ + hardlowerlim 0\ + hardupperlim 280.0\ + maxSpeed 2\ + maxAccel 1\ + maxDecel 2\ + stepsPerX $szStepRate\ + backlash_offset -1\ + creep_offset 0.01\ + absEnc 1\ + absEncHome $sz_home\ + cntsPerX $szCountRate] +sz part sample +sz long_name translate_z +sz softlowerlim 0 +sz softupperlim 280.0 +sz home 0 +sz speed 2 +sth precision 0.001 + +# Detector Translation, Linear Y (Not Motorized) +#Motor dy $motor_driver_type [params \ +# asyncqueue mc2\ +# axis F\ +# units mm\ +# hardlowerlim -595\ +# hardupperlim 800\ +# maxSpeed 1\ +# maxAccel 1\ +# maxDecel 1\ +# stepsPerX 25000\ +# absEnc 1\ +# absEncHome $dy_home\ +# cntsPerX 8192] +#dy softlowerlim -595 +#dy softupperlim 800 +#dy home 0 + +# Detector Translation, Linear Z (5mm/T gearing unknown) +Motor dz $motor_driver_type [params \ + asyncqueue mc2\ + axis G\ + units mm\ + hardlowerlim 0\ + hardupperlim 1351\ + maxSpeed 5\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -25000\ + absEnc 1\ + absEncHome $dz_home\ + cntsPerX [expr -8192.0/5.0]] +dz part detector +dz long_name detector +dz softlowerlim 0 +dz softupperlim 1351 +dz home 0 + +############################ +# Motor Controller 3 +# Motor Controller 3 +# Motor Controller 3 +############################ +# + +# Slit 1, left +Motor ss1l $motor_driver_type [params \ + asyncqueue mc3\ + axis A\ + units mm\ + hardlowerlim $ss1l_LoRange\ + hardupperlim $ss1l_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss1l_Home] +ss1l part aperture.1/horizontal +ss1l long_name left +ss1l softlowerlim $ss1l_LoRange +ss1l softupperlim $ss1l_HiRange +ss1l home 0 + +# Slit 1, right +Motor ss1r $motor_driver_type [params \ + asyncqueue mc3\ + axis B\ + units mm\ + hardlowerlim $ss1r_LoRange\ + hardupperlim $ss1r_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss1r_Home] +ss1r part aperture.1/horizontal +ss1r long_name right +ss1r softlowerlim $ss1r_LoRange +ss1r softupperlim $ss1r_HiRange +ss1r home 0 + +# Slit 1, upper +Motor ss1u $motor_driver_type [params \ + asyncqueue mc3\ + axis C\ + units mm\ + hardlowerlim $ss1u_LoRange\ + hardupperlim $ss1u_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss1u_Home] +ss1u part aperture.1/vertical +ss1u long_name upper +ss1u softlowerlim $ss1u_LoRange +ss1u softupperlim $ss1u_HiRange +ss1u home 0 + +# Slit 1, lower +Motor ss1d $motor_driver_type [params \ + asyncqueue mc3\ + axis D\ + units mm\ + hardlowerlim $ss1d_LoRange\ + hardupperlim $ss1d_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss1d_Home] +ss1d part aperture.1/vertical +ss1d long_name lower +ss1d softlowerlim $ss1d_LoRange +ss1d softupperlim $ss1d_HiRange +ss1d home 0 + +# Slit 2, left +Motor ss2l $motor_driver_type [params \ + asyncqueue mc3\ + axis E\ + units mm\ + hardlowerlim $ss2l_LoRange\ + hardupperlim $ss2l_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss2l_Home] +ss2l part aperture.2/horizontal +ss2l long_name left +ss2l softlowerlim $ss2l_LoRange +ss2l softupperlim $ss2l_HiRange +ss2l home 0 + +# Slit 2, right +Motor ss2r $motor_driver_type [params \ + asyncqueue mc3\ + axis F\ + units mm\ + hardlowerlim $ss2r_LoRange\ + hardupperlim $ss2r_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss2r_Home] +ss2r part aperture.2/horizontal +ss2r long_name right +ss2r softlowerlim $ss2r_LoRange +ss2r softupperlim $ss2r_HiRange +ss2r home 0 + +# Slit 2, upper +Motor ss2u $motor_driver_type [params \ + asyncqueue mc3\ + axis G\ + units mm\ + hardlowerlim $ss2u_LoRange\ + hardupperlim $ss2u_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss2u_Home] +ss2u part aperture.2/vertical +ss2u long_name upper +ss2u softlowerlim $ss2u_LoRange +ss2u softupperlim $ss2u_HiRange +ss2u home 0 + +# Slit 2, lower +Motor ss2d $motor_driver_type [params \ + asyncqueue mc3\ + axis H\ + units mm\ + hardlowerlim $ss2d_LoRange\ + hardupperlim $ss2d_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss2d_Home] +ss2d part aperture.2/vertical +ss2d long_name lower +ss2d softlowerlim $ss2d_LoRange +ss2d softupperlim $ss2d_HiRange +ss2d home 0 + +############################ +# Motor Controller 4 +# Motor Controller 4 +# Motor Controller 4 +############################ +# + +# Slit 3, lower +Motor ss3d $motor_driver_type [params \ + asyncqueue mc4\ + axis A\ + units mm\ + hardlowerlim $ss3d_LoRange\ + hardupperlim $ss3d_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss3d_Home] +ss3d part aperture.3/vertical +ss3d long_name lower +ss3d softlowerlim $ss3d_LoRange +ss3d softupperlim $ss3d_HiRange +ss3d home 0 + +# Slit 3, upper +Motor ss3u $motor_driver_type [params \ + asyncqueue mc4\ + axis B\ + units mm\ + hardlowerlim $ss3u_LoRange\ + hardupperlim $ss3u_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss3u_Home] +ss3u part aperture.3/vertical +ss3u long_name upper +ss3u softlowerlim $ss3u_LoRange +ss3u softupperlim $ss3u_HiRange +ss3u home 0 + +# Slit 3, Left +Motor ss3l $motor_driver_type [params \ + asyncqueue mc4\ + axis C\ + units mm\ + hardlowerlim $ss3l_LoRange\ + hardupperlim $ss3l_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss3l_Home] +ss3l part aperture.3/horizontal +ss3l long_name left +ss3l softlowerlim $ss3l_LoRange +ss3l softupperlim $ss3l_HiRange +ss3l home 0 + +# Slit 3, right +Motor ss3r $motor_driver_type [params \ + asyncqueue mc4\ + axis D\ + units mm\ + hardlowerlim $ss3r_LoRange\ + hardupperlim $ss3r_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss3r_Home] +ss3r part aperture.3/horizontal +ss3r long_name right +ss3r softlowerlim $ss3r_LoRange +ss3r softupperlim $ss3r_HiRange +ss3r home 0 + +# Slit 4, lower +Motor ss4d $motor_driver_type [params \ + asyncqueue mc4\ + axis E\ + units mm\ + hardlowerlim $ss4d_LoRange\ + hardupperlim $ss4d_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss4d_Home] +ss4d part aperture.4/vertical +ss4d long_name lower +ss4d softlowerlim $ss4d_LoRange +ss4d softupperlim $ss4d_HiRange +ss4d home 0 + +# Slit 4, upper +Motor ss4u $motor_driver_type [params \ + asyncqueue mc4\ + axis F\ + units mm\ + hardlowerlim $ss4u_LoRange\ + hardupperlim $ss4u_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss4u_Home] +ss4u part aperture.4/vertical +ss4u long_name upper +ss4u softlowerlim $ss4u_LoRange +ss4u softupperlim $ss4u_HiRange +ss4u home 0 + +# Slit 4, left +Motor ss4l $motor_driver_type [params \ + asyncqueue mc4\ + axis G\ + units mm\ + hardlowerlim $ss4l_LoRange\ + hardupperlim $ss4l_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX $slitStepRate\ + motorHome $ss4l_Home] +ss4l part aperture.4/horizontal +ss4l long_name left +ss4l softlowerlim $ss4l_LoRange +ss4l softupperlim $ss4l_HiRange +ss4l home 0 + +# Slit 4, right +Motor ss4r $motor_driver_type [params \ + asyncqueue mc4\ + axis H\ + units mm\ + hardlowerlim $ss4r_LoRange\ + hardupperlim $ss4r_HiRange\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 5\ + stepsPerX -$slitStepRate\ + motorHome $ss4r_Home] +ss4r part aperture.4/horizontal +ss4r long_name right +ss4r softlowerlim $ss4r_LoRange +ss4r softupperlim $ss4r_HiRange +ss4r home 0 + +## Polarization Analyzer Vertical Translation, Z +#Motor anzvt $motor_driver_type [params \ +# asyncqueue mc2\ +# axis xxxx\ +# units mm\ +# maxSpeed 1\ +# maxAccel 1\ +# maxDecel 1\ +# stepsPerX 25000\ +# absEnc 1\ +# absEncHome 7500000\ +# cntsPerX 8192] +#anzvt part polarizer +#anzvt long_name z_translation +#anzvt hardlowerlim xxxx +#anzvt hardupperlim xxxx +#anzvt softlowerlim xxxx +#anzvt softupperlim xxxx +#anzvt home 0 + +## Polarization Analyzer Rotation +#Motor anro $motor_driver_type [params \ +# asyncqueue mc2\ +# axis xxxx\ +# units mm\ +# hardlowerlim -10\ +# hardupperlim 10\ +# maxSpeed 1\ +# maxAccel 1\ +# maxDecel 1\ +# stepsPerX 25000\ +# absEnc 1\ +# absEncHome 7500000\ +# cntsPerX 8192] +#anro part polarizer +#anro long_name rotation +#anro softlowerlim -10 +#anro softupperlim 10 +#anro home 0 + +#proc SplitReply { text } { +# set l [split $text =] +# return [lindex $l 1] +#} + +proc get_gap_width {m1 m2} { + return [expr [SplitReply [$m1]] - [SplitReply [$m2]]] +} + +proc set_gap_width {m1 m2 val} { + set currentWidth [expr [SplitReply [$m1]] - [SplitReply [$m2]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [$m1]] + $diff/2.0] + set newD1L [expr [SplitReply [$m2]] - $diff/2.0] + return "$m1=$newD1R,$m2=$newD1L" +} + +proc get_gap_offset {m1 m2} { + set S1 [SplitReply [$m1]] + set S2 [SplitReply [$m2]] + return [ expr ($S1 + $S2)/2.0 ] +} + +proc set_gap_offset {m1 m2 val} { + set S1 [SplitReply [$m1]] + set S2 [SplitReply [$m2]] + set currentoffset [expr ($S1 + $S2)/2.0 ] + set diff [expr $val - $currentoffset] + set newD1R [expr $S1 + $diff] + set newD1L [expr $S2 + $diff] + return "$m1=$newD1R,$m2=$newD1L" +} + +# make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor +proc make_gap_motors {vm1 vm2 m1 m2} { + eval "proc get_$vm1 {} { get_gap_width $m1 $m2 }" + set v {$var} + eval "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }" + MakeConfigurableMotor $vm1 + $vm1 readscript get_$vm1 + $vm1 drivescript set_$vm1 +publish get_$vm1 user +publish set_$vm1 user + + eval "proc get_$vm2 {} { get_gap_offset $m1 $m2 }" + set v {$var} + eval "proc set_$vm2 {var} { set_gap_offset $m1 $m2 $v }" + MakeConfigurableMotor $vm2 + $vm2 readscript get_$vm2 + $vm2 drivescript set_$vm2 +publish get_$vm2 user +publish set_$vm2 user +} + +make_gap_motors ss1vg ss1vo ss1u ss1d +make_gap_motors ss1hg ss1ho ss1r ss1l + +make_gap_motors ss2vg ss2vo ss2u ss2d +make_gap_motors ss2hg ss2ho ss2r ss2l + +make_gap_motors ss3vg ss3vo ss3u ss3d +make_gap_motors ss3hg ss3ho ss3r ss3l + +make_gap_motors ss4vg ss4vo ss4u ss4d +make_gap_motors ss4hg ss4ho ss4r ss4l + +# END MOTOR CONFIGURATION diff --git a/site_ansto/instrument/sans/config/nexus/Makefile b/site_ansto/instrument/sans/config/nexus/Makefile new file mode 100644 index 00000000..f4962064 --- /dev/null +++ b/site_ansto/instrument/sans/config/nexus/Makefile @@ -0,0 +1,18 @@ +BMON_COMMON=nexus_in_common_1.dic nexus_in_bmon_common_1.dic nexus_in_scan_common_1.dic +HMM_COMMON=nexus_in_common_1.dic nexus_in_hmm_common_1.dic nexus_in_bmon_common_1.dic nexus_in_scan_common_1.dic + +all: nexus_bmonscan.dic nexus_hmscan.dic + rm -f $(BMON_COMMON) $(HMM_COMMON) + +%.dic: + cp ../../../config/nexus/$@ . + +nexus_bmonscan.dic: $(BMON_COMMON) nexus_in_motors.dic + cat $^ > $@ + +nexus_hmscan.dic: $(HMM_COMMON) nexus_in_motors.dic + cat $^ > $@ + +clean: + rm nexus_bmonscan.dic nexus_hmscan.dic + diff --git a/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic b/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic new file mode 100644 index 00000000..8af59e1f --- /dev/null +++ b/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic @@ -0,0 +1,93 @@ +##NXDICT-1.0 +#---------------------------------------------------------------------------- +# +# DO NOT EDIT WHEN YOU DO NOT KNOW WHAT YOU ARE DOING! +# This file determines the placement of data items in the NeXus +# data file. Your data may not be readable if this file is messed up. +# +#---------------------------------------------------------------------------- +entryName=entry1 +inst=instrument +monochromator=monochromator +detector=detector +padim0=512 +padim1=128 +column_index_name=horizontal_channel_number +row_index_name=vertical_channel_number + +#---------- NXentry level +etitle=/$(entryName),NXentry/SDS title -type NX_CHAR +program_name=/$(entryName),NXentry/SDS program_name -type NX_CHAR \ +-attr {nx_schema_release_tag,$Name: not supported by cvs2svn $} -attr {nx_schema_revision_num,$Revision: 1.1 $} + +erun=/$(entryName),NXentry/SDS run_number -type NX_INT32 -rank 1 -dim {-1} +estart=/$(entryName),NXentry/SDS start_time -type NX_CHAR +eend=/$(entryName),NXentry/SDS end_time -type NX_CHAR + +#----------------- NXinstrument +iname=/$(entryName),NXentry/$(inst),NXinstrument/SDS name -type NX_CHAR \ + -rank 1 -dim {132} + +#----------------- NXuser +username=/$(entryName),NXentry/user,NXuser/SDS name -type NX_CHAR +userrole=/$(entryName),NXentry/user,NXuser/SDS role -type NX_CHAR +useraddress=/$(entryName),NXentry/user,NXuser/SDS address -type NX_CHAR +userphone=/$(entryName),NXentry/user,NXuser/SDS telephone_number -type NX_CHAR +useremail=/$(entryName),NXentry/user,NXuser/SDS email -type NX_CHAR + +#----------------- NXsource +sname=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS name \ + -type NX_CHAR -rank 1 +stype=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS type -type NX_CHAR -rank 1 +sprobe=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS probe -type NX_CHAR -rank 1 + +#----------------- NXcrystal +clambda=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS wavelength -type NX_FLOAT32 -attr {units,Angstrom} +ctype=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS type -type NX_CHAR + +#--------------- NXsample +saname=/$(entryName),NXentry/sample,NXsample/SDS name -type NX_CHAR +#----------------- NXmonitor +mmode=/$(entryName),NXentry/monitor,NXmonitor/SDS mode -type NX_CHAR +mpreset=/$(entryName),NXentry/monitor,NXmonitor/SDS preset -type NX_FLOAT32 +bmcounts=/$(entryName),NXentry/monitor,NXmonitor/SDS \ + data -type NX_FLOAT32 -LZW -rank 1 -dim {-1} +mdistance=/$(entryName),NXentry/monitor,NXmonitor/SDS distance -type NX_FLOAT32 -attr {units,metre} +dlayout=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS layout -type NX_CHAR +scanvar_name=variable +scanvar_units=xxx +scanvar_longname=xxx + +#----------------NXdata ------------------------------------------------ + +#TODO replace scandata with generic name +scandata=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanhoraxis=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanvertaxis=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanvar=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanstep=/$(entryName),NXentry/scan_step,NXdata/SDS value -type NX_FLOAT32 -attr {units,degree} -attr {long_name,stepsize} +#histogram=/$(entryName),NXentry/histogram,NXdata/NXVGROUP +#scanvar=/$(entryName),NXentry/$(scan_variable),NXdata/NXVGROUP + +mot_name=xxx +mot_units=xxx +mot_long_name=xxx +#--------------- NXmonochromator +nxcrystal_mot=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +mth=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS mth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,mth} +#--------------- NXsample +nxsample_mot=/$(entryName),NXentry/sample,NXsample/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +sth=/$(entryName),NXentry/sample,NXsample/SDS sth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,sth} +# Slit motors +nxfilter_mot=/$(entryName),NXentry/slits,NXfilter/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +ss1vg=/$(entryName),NXentry/slits,NXfilter/SDS ss1vg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1vg} +ss1vo=/$(entryName),NXentry/slits,NXfilter/SDS ss1vo -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1vo} +ss1hg=/$(entryName),NXentry/slits,NXfilter/SDS ss1hg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1hg} +ss1ho=/$(entryName),NXentry/slits,NXfilter/SDS ss1ho -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1ho} +ss2vg=/$(entryName),NXentry/slits,NXfilter/SDS ss2vg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2vg} +ss2vo=/$(entryName),NXentry/slits,NXfilter/SDS ss2vo -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2vo} +ss2hg=/$(entryName),NXentry/slits,NXfilter/SDS ss2hg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2hg} +ss2ho=/$(entryName),NXentry/slits,NXfilter/SDS ss2ho -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2ho} diff --git a/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic b/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic new file mode 100644 index 00000000..d4760b93 --- /dev/null +++ b/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic @@ -0,0 +1,118 @@ +##NXDICT-1.0 +#---------------------------------------------------------------------------- +# +# DO NOT EDIT WHEN YOU DO NOT KNOW WHAT YOU ARE DOING! +# This file determines the placement of data items in the NeXus +# data file. Your data may not be readable if this file is messed up. +# +#---------------------------------------------------------------------------- +entryName=entry1 +inst=instrument +monochromator=monochromator +detector=detector +padim0=512 +padim1=128 +column_index_name=horizontal_channel_number +row_index_name=vertical_channel_number + +#---------- NXentry level +etitle=/$(entryName),NXentry/SDS title -type NX_CHAR +program_name=/$(entryName),NXentry/SDS program_name -type NX_CHAR \ +-attr {nx_schema_release_tag,$Name: not supported by cvs2svn $} -attr {nx_schema_revision_num,$Revision: 1.1 $} + +erun=/$(entryName),NXentry/SDS run_number -type NX_INT32 -rank 1 -dim {-1} +estart=/$(entryName),NXentry/SDS start_time -type NX_CHAR +eend=/$(entryName),NXentry/SDS end_time -type NX_CHAR + +#----------------- NXinstrument +iname=/$(entryName),NXentry/$(inst),NXinstrument/SDS name -type NX_CHAR \ + -rank 1 -dim {132} + +#----------------- NXuser +username=/$(entryName),NXentry/user,NXuser/SDS name -type NX_CHAR +userrole=/$(entryName),NXentry/user,NXuser/SDS role -type NX_CHAR +useraddress=/$(entryName),NXentry/user,NXuser/SDS address -type NX_CHAR +userphone=/$(entryName),NXentry/user,NXuser/SDS telephone_number -type NX_CHAR +useremail=/$(entryName),NXentry/user,NXuser/SDS email -type NX_CHAR + +#----------------- NXsource +sname=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS name \ + -type NX_CHAR -rank 1 +stype=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS type -type NX_CHAR -rank 1 +sprobe=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS probe -type NX_CHAR -rank 1 + +#----------------- NXcrystal +clambda=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS wavelength -type NX_FLOAT32 -attr {units,Angstrom} +ctype=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS type -type NX_CHAR + +#--------------- NXsample +saname=/$(entryName),NXentry/sample,NXsample/SDS name -type NX_CHAR +#-------------- Detector +# histogram data + + +dradius=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS radius -type NX_FLOAT32 -attr {units,mm} +dheight=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS height -type NX_FLOAT32 -attr {units,mm} +detangle_rad=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS arc -type NX_FLOAT32 -attr {units,radians} +detangle_degrees=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS arc -type NX_FLOAT32 -attr {units,degrees} +dtheta=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS polar_angle -type NX_FLOAT32 -LZW -rank 2 -dim {-1,$(padim1)} -attr {units,degrees} +dvaxis=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS y_pixel_offset -type NX_FLOAT32 -LZW -rank 1 -dim {$(padim0)} -attr {units,mm} +dhaxis=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS x_pixel_offset -type NX_FLOAT32 -LZW -rank 1 -dim {$(padim1)} -attr {units,mm} +drowindex=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS $(row_index_name) -type NX_INT32 -LZW -rank 1 -dim {$(padim0)} +dcolindex=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS $(column_index_name) -type NX_INT32 -LZW -rank 1 -dim {$(padim1)} + +hmcounts=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS \ + data -type NX_INT32 -LZW -rank 3 -dim {-1,$(padim0),$(padim1)} + +deff=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/calibration,NXdata/SDS efficiency -type NX_INT32 -LZW -rank 2 -dim {$(dim0),$(dim1)} + +ddesc=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS description -type NX_CHAR + +dtype=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS type -type NX_CHAR + +dlayout=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS layout -type NX_CHAR + +#----------------- NXmonitor +mmode=/$(entryName),NXentry/monitor,NXmonitor/SDS mode -type NX_CHAR +mpreset=/$(entryName),NXentry/monitor,NXmonitor/SDS preset -type NX_FLOAT32 +bmcounts=/$(entryName),NXentry/monitor,NXmonitor/SDS \ + data -type NX_FLOAT32 -LZW -rank 1 -dim {-1} +mdistance=/$(entryName),NXentry/monitor,NXmonitor/SDS distance -type NX_FLOAT32 -attr {units,metre} +dlayout=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS layout -type NX_CHAR +scanvar_name=variable +scanvar_units=xxx +scanvar_longname=xxx + +#----------------NXdata ------------------------------------------------ + +#TODO replace scandata with generic name +scandata=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanhoraxis=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanvertaxis=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanvar=/$(entryName),NXentry/data,NXdata/NXVGROUP +scanstep=/$(entryName),NXentry/scan_step,NXdata/SDS value -type NX_FLOAT32 -attr {units,degree} -attr {long_name,stepsize} +#histogram=/$(entryName),NXentry/histogram,NXdata/NXVGROUP +#scanvar=/$(entryName),NXentry/$(scan_variable),NXdata/NXVGROUP + +mot_name=xxx +mot_units=xxx +mot_long_name=xxx +#--------------- NXmonochromator +nxcrystal_mot=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +mth=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS mth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,mth} +#--------------- NXsample +nxsample_mot=/$(entryName),NXentry/sample,NXsample/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +sth=/$(entryName),NXentry/sample,NXsample/SDS sth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,sth} +# Slit motors +nxfilter_mot=/$(entryName),NXentry/slits,NXfilter/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +ss1vg=/$(entryName),NXentry/slits,NXfilter/SDS ss1vg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1vg} +ss1vo=/$(entryName),NXentry/slits,NXfilter/SDS ss1vo -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1vo} +ss1hg=/$(entryName),NXentry/slits,NXfilter/SDS ss1hg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1hg} +ss1ho=/$(entryName),NXentry/slits,NXfilter/SDS ss1ho -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1ho} +ss2vg=/$(entryName),NXentry/slits,NXfilter/SDS ss2vg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2vg} +ss2vo=/$(entryName),NXentry/slits,NXfilter/SDS ss2vo -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2vo} +ss2hg=/$(entryName),NXentry/slits,NXfilter/SDS ss2hg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2hg} +ss2ho=/$(entryName),NXentry/slits,NXfilter/SDS ss2ho -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2ho} diff --git a/site_ansto/instrument/sans/config/nexus/nexus_in_motors.dic b/site_ansto/instrument/sans/config/nexus/nexus_in_motors.dic new file mode 100644 index 00000000..611608dd --- /dev/null +++ b/site_ansto/instrument/sans/config/nexus/nexus_in_motors.dic @@ -0,0 +1,22 @@ +mot_name=xxx +mot_units=xxx +mot_long_name=xxx +#--------------- NXmonochromator +nxcrystal_mot=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +mth=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS mth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,mth} +#--------------- NXsample +nxsample_mot=/$(entryName),NXentry/sample,NXsample/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +sth=/$(entryName),NXentry/sample,NXsample/SDS sth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,sth} +# Slit motors +nxfilter_mot=/$(entryName),NXentry/slits,NXfilter/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +#XXX add units command to configurable virtual motors. +ss1vg=/$(entryName),NXentry/slits,NXfilter/SDS ss1vg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1vg} +ss1vo=/$(entryName),NXentry/slits,NXfilter/SDS ss1vo -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1vo} +ss1hg=/$(entryName),NXentry/slits,NXfilter/SDS ss1hg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1hg} +ss1ho=/$(entryName),NXentry/slits,NXfilter/SDS ss1ho -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss1ho} +ss2vg=/$(entryName),NXentry/slits,NXfilter/SDS ss2vg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2vg} +ss2vo=/$(entryName),NXentry/slits,NXfilter/SDS ss2vo -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2vo} +ss2hg=/$(entryName),NXentry/slits,NXfilter/SDS ss2hg -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2hg} +ss2ho=/$(entryName),NXentry/slits,NXfilter/SDS ss2ho -type NX_FLOAT32 -attr {units,degree} -attr {long_name,ss2ho} diff --git a/site_ansto/instrument/sans/config/nexus/nxscripts.tcl b/site_ansto/instrument/sans/config/nexus/nxscripts.tcl new file mode 100644 index 00000000..1845cac3 --- /dev/null +++ b/site_ansto/instrument/sans/config/nexus/nxscripts.tcl @@ -0,0 +1 @@ +source $cfPath(nexus)/nxscripts_common_1.tcl diff --git a/site_ansto/instrument/sans/config/plc/plc.tcl b/site_ansto/instrument/sans/config/plc/plc.tcl new file mode 100644 index 00000000..017d5680 --- /dev/null +++ b/site_ansto/instrument/sans/config/plc/plc.tcl @@ -0,0 +1,5 @@ +#MakeAsyncQueue plc_chan SafetyPLC 137.157.204.65 30002 +#MakeSafetyPLC plc plc_chan 0 + +source $cfPath(plc)/plc_common_1.tcl + diff --git a/site_ansto/instrument/sans/extraconfig.tcl b/site_ansto/instrument/sans/extraconfig.tcl new file mode 100644 index 00000000..e69de29b diff --git a/site_ansto/instrument/sans/quokka_configuration.tcl b/site_ansto/instrument/sans/quokka_configuration.tcl new file mode 100644 index 00000000..f5f74fc4 --- /dev/null +++ b/site_ansto/instrument/sans/quokka_configuration.tcl @@ -0,0 +1,34 @@ +# $Revision: 1.1 $ +# $Date: 2007-07-09 05:24:46 $ +# Author: Ferdi Franceschini (ffr@ansto.gov.au) +# Last revision by: $Author: dcl $ + +# Required by server_config.tcl +VarMake Instrument Text Internal +Instrument Quokka +Instrument lock + +#START SERVER CONFIGURATION SECTION +source util/dmc2280/dmc2280_util.tcl +source sics_ports.tcl +source server_config.tcl +#END SERVER CONFIGURATION SECTION + +######################################## +# INSTRUMENT SPECIFIC CONFIGURATION + +fileeval $cfPath(velsel)/velsel.tcl +fileeval $cfPath(motors)/motor_configuration.tcl +#fileeval gen_hipadaba.tcl + +fileeval $cfPath(plc)/plc.tcl +fileeval $cfPath(counter)/counter.tcl +fileeval $cfPath(hmm)/hmm_configuration.tcl +fileeval $cfPath(nexus)/nxscripts.tcl +fileeval $cfPath(scan)/scan.tcl +source $cfPath(hipadaba)/hipadaba_configuration.tcl +source gumxml.tcl + +MakeStateMon + +fileeval extraconfig.tcl diff --git a/site_ansto/instrument/sans/script_validator/MANIFEST.TXT b/site_ansto/instrument/sans/script_validator/MANIFEST.TXT new file mode 100644 index 00000000..b541f143 --- /dev/null +++ b/site_ansto/instrument/sans/script_validator/MANIFEST.TXT @@ -0,0 +1,2 @@ +sics_ports.tcl +config diff --git a/site_ansto/instrument/sans/script_validator/sics_ports.tcl b/site_ansto/instrument/sans/script_validator/sics_ports.tcl new file mode 100644 index 00000000..25f2802a --- /dev/null +++ b/site_ansto/instrument/sans/script_validator/sics_ports.tcl @@ -0,0 +1,4 @@ +set quieckport quieck-val-platypus +set serverport server-val-platypus +set interruptport interrupt-val-platypus +set telnetport telnet-val-platypus diff --git a/site_ansto/instrument/sans/sics_ports.tcl b/site_ansto/instrument/sans/sics_ports.tcl new file mode 100644 index 00000000..6f377861 --- /dev/null +++ b/site_ansto/instrument/sans/sics_ports.tcl @@ -0,0 +1,4 @@ +set quieckport quieck-platypus +set serverport server-platypus +set interruptport interrupt-platypus +set telnetport telnet-platypus diff --git a/site_ansto/instrument/server_config.tcl b/site_ansto/instrument/server_config.tcl index 58b858ac..b7031faf 100644 --- a/site_ansto/instrument/server_config.tcl +++ b/site_ansto/instrument/server_config.tcl @@ -1,9 +1,9 @@ # SICS common configuration -# $Revision: 1.25 $ -# $Date: 2007-05-10 03:21:51 $ +# $Revision: 1.26 $ +# $Date: 2007-07-09 05:25:57 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) -# Last revision by $Author: ffr $ +# Last revision by $Author: dcl $ #set sicsroot /usr/local/sics set sicsroot ../ @@ -13,7 +13,8 @@ motors $cfParent/motors\ counter $cfParent/counter\ hmm $cfParent/hmm\ scan $cfParent/scan\ -counter $cfParent/counter\ +chopper $cfParent/chopper\ +velsel $cfParent/velsel\ nexus $cfParent/nexus\ hipadaba $cfParent/hipadaba\ plc $cfParent/plc] @@ -52,7 +53,7 @@ sics_release [lindex $tmpstr [expr [llength $tmpstr] - 1]] sics_release lock VarMake sics_revision_num Text Internal -set tmpstr [string map {"$" ""} {$Revision: 1.25 $}] +set tmpstr [string map {"$" ""} {$Revision: 1.26 $}] sics_revision_num [lindex $tmpstr [expr [llength $tmpstr] - 1]] sics_revision_num lock