From 85d58121a5a7ae3572fea0374e267f892d3e65e6 Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Fri, 20 Jul 2007 10:05:00 +1000 Subject: [PATCH] progressive commissioning r2080 | dcl | 2007-07-20 10:05:00 +1000 (Fri, 20 Jul 2007) | 2 lines --- .../config/motors/motor_configuration.tcl | 1160 ++++++++--------- .../sans/config/nexus/nexus_bmonscan.dic | 2 +- .../sans/config/nexus/nexus_hmscan.dic | 2 +- .../sans/script_validator/sics_ports.tcl | 8 +- site_ansto/instrument/sans/sics_ports.tcl | 8 +- 5 files changed, 538 insertions(+), 642 deletions(-) diff --git a/site_ansto/instrument/sans/config/motors/motor_configuration.tcl b/site_ansto/instrument/sans/config/motors/motor_configuration.tcl index a3ab3688..45171746 100644 --- a/site_ansto/instrument/sans/config/motors/motor_configuration.tcl +++ b/site_ansto/instrument/sans/config/motors/motor_configuration.tcl @@ -1,11 +1,11 @@ -# $Revision: 1.1 $ -# $Date: 2007-07-09 05:21:43 $ +# $Revision: 1.2 $ +# $Date: 2007-07-20 00:05:00 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) # Last revision by: $Author: dcl $ # START MOTOR CONFIGURATION -set animal platypus +set animal quokka set sim_mode [SplitReply [motor_simulation]] if {$sim_mode == "true"} { set motor_driver_type asim @@ -33,151 +33,47 @@ 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 +set samchi_Home 7500000 +set samphi_Home 7500000 +set samx_Home 7500000 +set samy_Home 7500000 +set samz_Home 7500000 +set samthet_Home 7500000 +set det_Home 7500000 +set detoff_Home 7500000 -#Measured or computed step rate for sz (Sample Raise) -#set szStepRate -116500 -set szStepRate -125000 -#set szCountRate [expr -(8192.0/5.0/0.932)] +set c1_Home 7500000 +set c2_Home 7500000 +set c3_Home 7500000 +set c4_Home 7500000 +set c5_Home 7500000 +set c6_Home 7500000 +set c7_Home 7500000 +set c8_Home 7500000 + +set c9_Home 7500000 +set c10_Home 7500000 +set pent_Home 7500000 +set srce_Home 7500000 +set apx_Home 7500000 +set apz_Home 7500000 +set att_Home 7500000 + +set bsx_Home 7500000 +set bsz_Home 7500000 +set bs5_Home 7500000 +set bs4_Home 7500000 +set bs3_Home 7500000 +set bs2_Home 7500000 +set bs1_Home 7500000 +set pol_Home 7500000 + +#Measured or computed step rate for samz (Sample Raise) +#set samzStepRate -116500 +set samzStepRate -125000 +#set samzCountRate [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 samzCountRate [expr -(8192.0/5.0/(14.0/15.0))] # set movecount high to reduce the frequency of # hnotify messages to a reasonable level @@ -191,125 +87,181 @@ set move_count 100 #:TP at HOME # -# Beam Shade Vertical Translation (6mm/T double helix, 500mm) -Motor bz $motor_driver_type [params \ +# Sample tilt along beam [-20,+20] degrees +Motor samchi $motor_driver_type [params \ asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ axis A\ - units mm\ - hardlowerlim 0\ - hardupperlim 275\ - maxSpeed 5\ - maxAccel 1\ + units degrees\ + hardlowerlim -20\ + hardupperlim 20\ + maxSpeed 1\ + maxAccel 5\ maxDecel 5\ - stepsPerX [expr -25000.0/6.0]\ + stepsPerX 25000\ 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 + absEncHome $samchi_Home\ + cntsPerX 8192] +samchi part sample +samchi long_name sample_chi +samchi softlowerlim -20 +samchi softupperlim 20 +samchi home 0 -# Collimator Table Horizontal Translation, X -Motor c1ht $motor_driver_type [params \ +# Sample tilt across beam [-20,+20] degrees +Motor samphi $motor_driver_type [params \ asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ axis B\ + units degrees\ + hardlowerlim -20\ + hardupperlim 20\ + maxSpeed 1\ + maxAccel 5\ + maxDecel 5\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $samphi_Home\ + cntsPerX 8192] +samphi part sample +samphi long_name sample_phi +samphi softlowerlim -20 +samphi softupperlim 20 +samphi home 0 + +# Sample translation across beam [0,1000] mm +Motor samx $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ + axis C\ units mm\ hardlowerlim 0\ - hardupperlim 1065\ - maxSpeed 10\ - maxAccel 1\ - maxDecel 10\ + hardupperlim 1000\ + maxSpeed 1\ + maxAccel 5\ + maxDecel 5\ 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 + absEncHome $samx_Home\ + cntsPerX [expr 8192.0/5.0]] +samx part sample +samx long_name sample_x +samx softlowerlim 0 +samx softupperlim 1000 +samx 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 \ +# Sample translation along beam [0,1000] mm +Motor samy $motor_driver_type [params \ asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ axis D\ units mm\ hardlowerlim 0\ - hardupperlim 200\ + hardupperlim 1000\ maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX [expr 25000.0/16.0]\ + maxAccel 5\ + maxDecel 5\ + stepsPerX [expr 25000.0/5.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 + absEncHome $samy_Home\ + cntsPerX [expr 8192.0/5.0]] +samy part sample +samy long_name sample_y +samy softlowerlim 0 +samy softupperlim 1000 +samy home 0 -# Slit 3 Tower Translation (1mm/T, +/- 100mm) -Motor st3vt $motor_driver_type [params \ +# Sample translation vertical [0,500] mm +Motor samz $motor_driver_type [params \ asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ axis E\ units mm\ hardlowerlim 0\ - hardupperlim 253\ + hardupperlim 500\ + maxSpeed 10\ + maxAccel 1\ + maxDecel 10\ + stepsPerX $samzStepRate\ + absEnc 1\ + absEncHome $samz_Home\ + cntsPerX $samzCountRate] +samz part sample +samz long_name sample_z +samz softlowerlim 0 +samz softupperlim 500 +samz home 0 + +# Sample rotation (theta) [0,180] degrees +Motor samthet $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ + axis F\ + units degrees\ + hardlowerlim 0\ + hardupperlim 180\ 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 + absEncHome $samthet_Home\ + cntsPerX 8192] +samthet part sample +samthet long_name sample_theta +samthet softlowerlim 0 +samthet softupperlim 180 +samthet home 0 -# Slit 4 Tower Translation (1mm/T, +/- 100mm) -Motor st4vt $motor_driver_type [params \ +# Detector translation along beam [0,20000] mm +Motor det $motor_driver_type [params \ asyncqueue mc1\ - axis F\ + host mc1-quokka\ + port pmc1-quokka\ + axis G\ units mm\ hardlowerlim 0\ - hardupperlim 249\ + hardupperlim 20000\ maxSpeed 10\ maxAccel 1\ maxDecel 10\ - stepsPerX 25000\ + stepsPerX [expr -25000.0*70.0*3.1415926*120.0]\ 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 + absEncHome $det_Home\ + cntsPerX [expr -8192.0/3.1415926/120.0]] +det part detector +det long_name detector_y +det softlowerlim 0 +det softupperlim 20000 +det home 0 + +# Detector translation across beam [-50,450] mm +Motor detoff $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-quokka\ + port pmc1-quokka\ + axis H\ + units mm\ + hardlowerlim -50\ + hardupperlim 450\ + maxSpeed 10\ + maxAccel 1\ + maxDecel 10\ + stepsPerX -25000\ + absEnc 1\ + absEncHome $detoff_Home\ + cntsPerX 8192] +detoff part detector +detoff long_name detector_x +detoff softlowerlim -50 +detoff softupperlim 450 +detoff home 0 ############################ # Motor Controller 2 @@ -319,148 +271,173 @@ st4vt home 0 #:TP at HOME # -# Sample Tilt 1, upper (1 degree/turn) -Motor sth $motor_driver_type [params \ +# Collimation motor 1 +Motor c1 $motor_driver_type [params \ asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ axis A\ - units degrees\ - hardlowerlim -15\ - hardupperlim 15\ + units mm\ + hardlowerlim 0\ + hardupperlim 5\ maxSpeed 1\ maxAccel 1\ - maxDecel 1\ + aaxDecel 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 + absEncHome $c1_Home\ + cntsPerX -8192] +c1 part collimator +c1 long_name c1 +setHomeandRange -motor c1 -home 0 -lowrange 0 -uprange 5 +c1 speed 1 -# Sample Tilt 2, lower (1 degree/turn) -Motor sphi $motor_driver_type [params \ +# Collimation motor 2 +Motor c2 $motor_driver_type [params \ asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ axis B\ - units degrees\ - hardlowerlim -5\ + units mm\ + hardlowerlim 0\ hardupperlim 5\ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -25000\ + stepsPerX 25000\ absEnc 1\ - absEncHome $sphi_home\ + absEncHome $c2_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 +c2 part collimator +c2 long_name c2 +setHomeandRange -motor c2 -home 0 -lowrange 0 -uprange 5 +c2 speed 1 -# Sample Translation, Linear X (5mm/T, 0-750mm) -Motor sx $motor_driver_type [params \ +# Collimation motor 3 +Motor c3 $motor_driver_type [params \ asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ axis C\ units mm\ hardlowerlim 0\ - hardupperlim 734\ - maxSpeed 10\ + hardupperlim 5\ + maxSpeed 1\ maxAccel 1\ - maxDecel 10\ - stepsPerX [expr 25000.0/5.0]\ + maxDecel 1\ + stepsPerX 25000\ 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 + absEncHome $c3_Home\ + cntsPerX -8192] +c3 part collimator +c3 long_name c3 +setHomeandRange -motor c3 -home 0 -lowrange 0 -uprange 5 +c3 speed 3 -# 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 \ +# Collimation motor 4 +Motor c4 $motor_driver_type [params \ asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ + axis D\ + units mm\ + hardlowerlim 0\ + hardupperlim 5\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $c4_Home\ + cntsPerX -8192] +c4 part collimator +c4 long_name c4 +setHomeandRange -motor c4 -home 0 -lowrange 0 -uprange 5 +c4 speed 1 + +# Collimation motor 5 +Motor c5 $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ axis E\ units mm\ hardlowerlim 0\ - hardupperlim 280.0\ - maxSpeed 2\ + hardupperlim 5\ + maxSpeed 1\ maxAccel 1\ - maxDecel 2\ - stepsPerX $szStepRate\ - backlash_offset -1\ - creep_offset 0.01\ + maxDecel 1\ + stepsPerX 25000\ 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 + absEncHome $c5_Home\ + cntsPerX -8192] +c5 part collimator +c5 long_name c5 +setHomeandRange -motor c5 -home 0 -lowrange 0 -uprange 5 +c5 speed 1 -# 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 \ +# Collimation motor 6 +Motor c6 $motor_driver_type [params \ asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ + axis F\ + units mm\ + hardlowerlim 0\ + hardupperlim 5\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $c6_Home\ + cntsPerX -8192] +c6 part collimator +c6 long_name c6 +setHomeandRange -motor c6 -home 0 -lowrange 0 -uprange 5 +c6 speed 1 + +# Collimation motor 7 +Motor c7 $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ axis G\ units mm\ hardlowerlim 0\ - hardupperlim 1351\ - maxSpeed 5\ + hardupperlim 5\ + maxSpeed 1\ maxAccel 1\ - maxDecel 5\ - stepsPerX -25000\ + maxDecel 1\ + 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 + absEncHome $c7_Home\ + cntsPerX -8192] +c7 part collimator +c7 long_name c7 +setHomeandRange -motor c7 -home 0 -lowrange 0 -uprange 5 +c7 speed 1 + +# Collimation motor 8 +Motor c8 $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-quokka\ + port pmc2-quokka\ + axis H\ + units mm\ + hardlowerlim 0\ + hardupperlim 5\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $c8_Home\ + cntsPerX -8192] +c8 part collimator +c8 long_name c8 +setHomeandRange -motor c8 -home 0 -lowrange 0 -uprange 5 +c8 speed 1 ############################ # Motor Controller 3 @@ -469,149 +446,152 @@ dz home 0 ############################ # -# Slit 1, left -Motor ss1l $motor_driver_type [params \ +# Collimation motor 9 +Motor c9 $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis A\ units mm\ - hardlowerlim $ss1l_LoRange\ - hardupperlim $ss1l_HiRange\ + hardlowerlim 0\ + hardupperlim 5\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $c9_Home\ + cntsPerX -8192] +c9 part collimator +c9 long_name c9 +setHomeandRange -motor c9 -home 0 -lowrange 0 -uprange 5 +c9 speed 1 -# Slit 1, right -Motor ss1r $motor_driver_type [params \ +# Collimation motor 10 +Motor c10 $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis B\ units mm\ - hardlowerlim $ss1r_LoRange\ - hardupperlim $ss1r_HiRange\ + hardlowerlim 0\ + hardupperlim 5\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $c10_Home\ + cntsPerX -8192] +c10 part collimator +c10 long_name c10 +setHomeandRange -motor c10 -home 0 -lowrange 0 -uprange 5 +c10 speed 1 -# Slit 1, upper -Motor ss1u $motor_driver_type [params \ +# Pentaprism +Motor pent $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis C\ units mm\ - hardlowerlim $ss1u_LoRange\ - hardupperlim $ss1u_HiRange\ + hardlowerlim 0\ + hardupperlim 5\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $pent_Home\ + cntsPerX -8192] +pent part collimator +pent long_name pent +setHomeandRange -motor pent -home 0 -lowrange 0 -uprange 5 +pent speed 1 -# Slit 1, lower -Motor ss1d $motor_driver_type [params \ +# Rotary source aperture +Motor srce $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis D\ units mm\ - hardlowerlim $ss1d_LoRange\ - hardupperlim $ss1d_HiRange\ + hardlowerlim 0\ + hardupperlim 5\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $srce_Home\ + cntsPerX -8192] +srce part collimator +srce long_name srce +setHomeandRange -motor srce -home 0 -lowrange 0 -uprange 5 +srce speed 1 -# Slit 2, left -Motor ss2l $motor_driver_type [params \ +# Sample aperture x +Motor apx $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis E\ units mm\ - hardlowerlim $ss2l_LoRange\ - hardupperlim $ss2l_HiRange\ + hardlowerlim -10\ + hardupperlim 10\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $apx_Home\ + cntsPerX -8192] +apx part collimator +apx long_name apx +setHomeandRange -motor apx -home 0 -lowrange -10 -uprange 360 +apx speed 1 -# Slit 2, right -Motor ss2r $motor_driver_type [params \ +# Sample aperture y +Motor apz $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis F\ units mm\ - hardlowerlim $ss2r_LoRange\ - hardupperlim $ss2r_HiRange\ + hardlowerlim -10\ + hardupperlim 10\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $apz_Home\ + cntsPerX -8192] +apz part collimator +apz long_name apz +setHomeandRange -motor apz -home 0 -lowrange 0 -uprange 5 +apz speed 1 -# 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 \ +# Rotary attenuator +Motor att $motor_driver_type [params \ asyncqueue mc3\ + host mc3-quokka\ + port pmc3-quokka\ axis H\ units mm\ - hardlowerlim $ss2d_LoRange\ - hardupperlim $ss2d_HiRange\ + hardlowerlim 0\ + hardupperlim 5\ 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 + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome $att_Home\ + cntsPerX 8192] +att part collimator +att long_name att +setHomeandRange -motor att -home 0 -lowrange 0 -uprange 5 +att speed 1 ############################ # Motor Controller 4 @@ -620,254 +600,170 @@ ss2d home 0 ############################ # -# Slit 3, lower -Motor ss3d $motor_driver_type [params \ +# beam stop horizontal [-100,300] mm +Motor bsx $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis A\ units mm\ - hardlowerlim $ss3d_LoRange\ - hardupperlim $ss3d_HiRange\ + hardlowerlim -100\ + hardupperlim 300\ 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 + stepsPerX 25000\ + absEnc 1\ + absEncHome $bsx_Home\ + cntsPerX 8192] +bsx part detector +bsx long_name bsx +bsx softlowerlim -100 +bsx softupperlim 300 +bsx home 0 -# Slit 3, upper -Motor ss3u $motor_driver_type [params \ +# beam stop vertical [-240,100] mm +Motor bsz $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis B\ units mm\ - hardlowerlim $ss3u_LoRange\ - hardupperlim $ss3u_HiRange\ + hardlowerlim -240\ + hardupperlim 100\ 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 + stepsPerX 25000\ + absEnc 1\ + absEncHome $bsz_Home\ + cntsPerX 8192] +bsz part detector +bsz long_name bsz +bsz softlowerlim -240 +bsz softupperlim 100 +bsz home 0 -# Slit 3, Left -Motor ss3l $motor_driver_type [params \ +# beam stop disk 5 (largest) +Motor bs5 $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis C\ units mm\ - hardlowerlim $ss3l_LoRange\ - hardupperlim $ss3l_HiRange\ + hardlowerlim 0\ + hardupperlim 1\ 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 + stepsPerX 25000\ + motorHome $bs5_Home] +bs5 part detector +bs5 long_name bs5 +bs5 softlowerlim 0 +bs5 softupperlim 1 +bs5 home 0 -# Slit 3, right -Motor ss3r $motor_driver_type [params \ +# beam stop disk 4 +Motor bs4 $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis D\ units mm\ - hardlowerlim $ss3r_LoRange\ - hardupperlim $ss3r_HiRange\ + hardlowerlim 0\ + hardupperlim 1\ 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 + stepsPerX 25000\ + motorHome $bs4_Home] +bs4 part detector +bs4 long_name bs4 +bs4 softlowerlim 0 +bs4 softupperlim 1 +bs4 home 0 -# Slit 4, lower -Motor ss4d $motor_driver_type [params \ +# beam stop disk 3 +Motor bs3 $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis E\ units mm\ - hardlowerlim $ss4d_LoRange\ - hardupperlim $ss4d_HiRange\ + hardlowerlim 0\ + hardupperlim 1\ 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 + stepsPerX 25000\ + motorHome $bs3_Home] +bs3 part detector +bs3 long_name bs3 +bs3 softlowerlim 0 +bs3 softupperlim 1 +bs3 home 0 -# Slit 4, upper -Motor ss4u $motor_driver_type [params \ +# beam stop disk 2 +Motor bs2 $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis F\ units mm\ - hardlowerlim $ss4u_LoRange\ - hardupperlim $ss4u_HiRange\ + hardlowerlim 0\ + hardupperlim 1\ 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 + stepsPerX 25000\ + motorHome $bs2_Home] +bs2 part detector +bs2 long_name bs2 +bs2 softlowerlim 0 +bs2 softupperlim 1 +bs2 home 0 -# Slit 4, left -Motor ss4l $motor_driver_type [params \ +# beam stop disk 1 (smallest) +Motor bs1 $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis G\ units mm\ - hardlowerlim $ss4l_LoRange\ - hardupperlim $ss4l_HiRange\ + hardlowerlim 0\ + hardupperlim 1\ 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 + stepsPerX 25000\ + motorHome $bs1_Home] +bs1 part detector +bs1 long_name bs1 +bs1 softlowerlim 0 +bs1 softupperlim 1 +bs1 home 0 -# Slit 4, right -Motor ss4r $motor_driver_type [params \ +# Polarizer Rotation +Motor pol $motor_driver_type [params \ asyncqueue mc4\ + host mc4-quokka\ + port pmc4-quokka\ axis H\ - units mm\ - hardlowerlim $ss4r_LoRange\ - hardupperlim $ss4r_HiRange\ + units degrees\ + hardlowerlim 0\ + hardupperlim 3\ 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 + stepsPerX 25000\ + absEnc 1\ + absEncHome $pol_Home\ + cntsPerX 8192] +pol part detector +pol long_name pol +pol softlowerlim 0 +pol softupperlim 3 +pol home 0 # END MOTOR CONFIGURATION diff --git a/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic b/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic index 8af59e1f..26139180 100644 --- a/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic +++ b/site_ansto/instrument/sans/config/nexus/nexus_bmonscan.dic @@ -18,7 +18,7 @@ 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 $} +-attr {nx_schema_release_tag,$Name: not supported by cvs2svn $} -attr {nx_schema_revision_num,$Revision: 1.2 $} erun=/$(entryName),NXentry/SDS run_number -type NX_INT32 -rank 1 -dim {-1} estart=/$(entryName),NXentry/SDS start_time -type NX_CHAR diff --git a/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic b/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic index d4760b93..8ba91a74 100644 --- a/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic +++ b/site_ansto/instrument/sans/config/nexus/nexus_hmscan.dic @@ -18,7 +18,7 @@ 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 $} +-attr {nx_schema_release_tag,$Name: not supported by cvs2svn $} -attr {nx_schema_revision_num,$Revision: 1.2 $} erun=/$(entryName),NXentry/SDS run_number -type NX_INT32 -rank 1 -dim {-1} estart=/$(entryName),NXentry/SDS start_time -type NX_CHAR diff --git a/site_ansto/instrument/sans/script_validator/sics_ports.tcl b/site_ansto/instrument/sans/script_validator/sics_ports.tcl index 25f2802a..5d41e8ca 100644 --- a/site_ansto/instrument/sans/script_validator/sics_ports.tcl +++ b/site_ansto/instrument/sans/script_validator/sics_ports.tcl @@ -1,4 +1,4 @@ -set quieckport quieck-val-platypus -set serverport server-val-platypus -set interruptport interrupt-val-platypus -set telnetport telnet-val-platypus +set quieckport quieck-val-quokka +set serverport server-val-quokka +set interruptport interrupt-val-quokka +set telnetport telnet-val-quokka diff --git a/site_ansto/instrument/sans/sics_ports.tcl b/site_ansto/instrument/sans/sics_ports.tcl index 6f377861..a8cba5be 100644 --- a/site_ansto/instrument/sans/sics_ports.tcl +++ b/site_ansto/instrument/sans/sics_ports.tcl @@ -1,4 +1,4 @@ -set quieckport quieck-platypus -set serverport server-platypus -set interruptport interrupt-platypus -set telnetport telnet-platypus +set quieckport quieck-quokka +set serverport server-quokka +set interruptport interrupt-quokka +set telnetport telnet-quokka