diff --git a/site_ansto/instrument/dingo/config/motors/motor_configuration.tcl b/site_ansto/instrument/dingo/config/motors/motor_configuration.tcl index aa4a1f69..e7f4dc5a 100644 --- a/site_ansto/instrument/dingo/config/motors/motor_configuration.tcl +++ b/site_ansto/instrument/dingo/config/motors/motor_configuration.tcl @@ -16,6 +16,12 @@ if {$sim_mode == "true"} { #MakeAsyncQueue mc3 DMC2280 [dict get $::MOTOR_HOSTPORT MC3 HOST] [dict get $::MOTOR_HOSTPORT MC3 PORT] } +set sample_stage_rotate "normal_sample_stage" +if { [ info exists ::config_dict ] } { + if { [ dict exists $::config_dict sample_stage implementation ] } { + set sample_stage_rotate [ dict get $::config_dict sample_stage implementation ] + } +} # Dummy translation motor, useful for testing scans set dummy_Home 0 @@ -135,41 +141,43 @@ sy softlowerlim -50 sy softupperlim 230 sy home 0 -# mc1: Sample rotation axis -# Gearbox 100:1, screw pitch 356:1 -# Encoder 2P17 -#set stth_Home 821487 -set stth_Home 0 -#set stthStepRate [expr -$motorrate*100.0] -set stthStepRate -2478000 -Motor stth $motor_driver_type [params \ - asyncqueue mc1\ - host mc1-dingo\ - port pmc1-dingo\ - axis D\ - units degree\ - hardlowerlim -722\ - hardupperlim 722\ - maxSpeed 0.12\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $stthStepRate\ - absEnc 1\ - absEncHome $stth_Home\ - nopowersave 1\ - cntsPerX 93206.75556 ] -stth speed 0.1 -stth accel 0.1 -stth decel 0.1 -stth part sample -stth long_name stth -stth softlowerlim 0.01 -stth softupperlim 359.99 -stth home 0 -#stth bias_bits 25 -#stth bias_bias -33432264 -stth rotary_bits 25 -stth creep_offset 0.05 +if {[string equal -nocase ${sample_stage_rotate} "normal_sample_stage"]} { + # mc1: Sample rotation axis + # Gearbox 100:1, screw pitch 356:1 + # Encoder 2P17 + #set stth_Home 821487 + set stth_Home 0 + #set stthStepRate [expr -$motorrate*100.0] + set stthStepRate -2478000 + Motor stth $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-dingo\ + port pmc1-dingo\ + axis D\ + units degree\ + hardlowerlim -722\ + hardupperlim 722\ + maxSpeed 2.0\ + maxAccel 1\ + maxDecel 1\ + stepsPerX $stthStepRate\ + absEnc 1\ + absEncHome $stth_Home\ + nopowersave 1\ + cntsPerX 93206.75556 ] + stth speed 0.5 + stth accel 0.1 + stth decel 0.1 + stth part sample + stth long_name stth + stth softlowerlim 0.01 + stth softupperlim 359.99 + stth home 0 + #stth bias_bits 25 + #stth bias_bias -33432264 + stth rotary_bits 25 + stth creep_offset 0.05 +} # mc1: detection Z-stage Translation # Gearbox 5:1, Gear ratio 16:1, pitch 4mm @@ -199,40 +207,81 @@ dz softlowerlim 0 dz softupperlim 170 dz home 0 -# mc1:H Sample rotation axis -# Resolver 2,048 counts per degree -# Motor 12,500 steps per degree -# Positive steps are CCW viewed from above -set soma_Home 9867748 -#set somaStepRate [expr -$motorrate*100.0] -set somaStepRate 12500 -Motor soma $motor_driver_type [params \ - asyncqueue mc1\ - host mc1-dingo\ - port pmc1-dingo\ - axis H\ - units degree\ - hardlowerlim -722\ - hardupperlim 722\ - maxSpeed 12\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $somaStepRate\ - absEnc 1\ - absEncHome $soma_Home\ - nopowersave 1\ - cntsPerX 2048 ] -soma speed 0.1 -soma accel 0.1 -soma decel 0.1 -soma part sample -soma long_name soma -soma softlowerlim -1 -soma softupperlim 361 -soma home 0 -#soma bias_bits 25 -#soma rotary_bits 25 -soma creep_offset 0.05 +if {[string equal -nocase ${sample_stage_rotate} "soma"]} { + # mc1:H Sample rotation axis + # Resolver 2,048 counts per degree + # Motor 12,500 steps per degree + # Positive steps are CCW viewed from above + set soma_Home 9867748 + #set somaStepRate [expr -$motorrate*100.0] + set somaStepRate 12500 + Motor soma $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-dingo\ + port pmc1-dingo\ + axis H\ + units degree\ + hardlowerlim -722\ + hardupperlim 722\ + maxSpeed 12\ + maxAccel 1\ + maxDecel 1\ + stepsPerX $somaStepRate\ + absEnc 1\ + absEncHome $soma_Home\ + nopowersave 1\ + cntsPerX 2048 ] + soma speed 0.1 + soma accel 0.1 + soma decel 0.1 + soma part sample + soma long_name soma + soma softlowerlim -1 + soma softupperlim 361 + soma home 0 + #soma bias_bits 25 + #soma rotary_bits 25 + soma creep_offset 0.05 +} + +if {[string equal -nocase ${sample_stage_rotate} "somb"]} { + # mc1:D,H Sample rotation axis + # Resolver 4,096 counts per degree + # Motor 10*25,000 steps per degree + # Positive steps are CCW viewed from above + set somb_Home [expr 2**23] + #set sombStepRate [expr -$motorrate*100.0] + set sombStepRate [expr 10 * 25000] + Motor somb $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-dingo\ + port pmc1-dingo\ + axis D\ + encoderaxis H\ + units degree\ + hardlowerlim -722\ + hardupperlim 722\ + maxSpeed 0.4\ + maxAccel 1\ + maxDecel 1\ + stepsPerX $sombStepRate\ + absEnc 1\ + absEncHome $somb_Home\ + nopowersave 1\ + cntsPerX 4096 ] + somb speed 0.1 + somb accel 0.1 + somb decel 0.1 + somb part sample + somb long_name somb + somb softlowerlim -1 + somb softupperlim 361 + somb home 0 + somb bias_bits 24 + somb bias_bias [expr 2**23] + #somb rotary_bits 25 + somb creep_offset 0.05 +} ############################ @@ -243,7 +292,7 @@ soma creep_offset 0.05 # # mc2: Camera translation axis along beam -# Gearbox ?, Gear ratio ?, +# Gearbox ?, Gear ratio ?, set dy_Home 8847069 set dyStepRate [expr 25000.0/2.0] Motor dy $motor_driver_type [params \ diff --git a/site_ansto/instrument/dingo/util/sics_config.ini b/site_ansto/instrument/dingo/util/sics_config.ini new file mode 100644 index 00000000..9be02e0a --- /dev/null +++ b/site_ansto/instrument/dingo/util/sics_config.ini @@ -0,0 +1,251 @@ +[CF5] +cascade = T1:CF5_ls340,sample_stage:normal_sample_stage +enabled = False +[Default] +cascade = sample_stage:normal_sample_stage +enabled = True +[Function_Generator] +datype = V +enabled = False +id = 1 +implementation = none +name = pulser +optype = function_generator +[I1] +datype = I +enabled = False +id = 1 +implementation = none +name = curr1 +optype = multimeter +[I2] +datype = I +enabled = False +id = 2 +implementation = none +name = curr2 +optype = multimeter +[T1] +datype = T +enabled = False +id = 1 +implementation = none +name = tc1 +optype = temperature +[T2] +datype = T +enabled = False +id = 2 +implementation = none +name = tc2 +optype = temperature +[T3] +datype = T +enabled = False +id = 3 +implementation = none +name = tc3 +optype = temperature +[T4] +datype = T +enabled = False +id = 4 +implementation = none +name = tc4 +optype = temperature +[V1] +datype = V +enabled = False +id = 1 +implementation = none +name = volts1 +optype = multimeter +[V2] +datype = V +enabled = False +id = 2 +implementation = none +name = volts2 +optype = multimeter +[sample_stage] +enabled = Always +implementation = somb +name = sample_stage +optype = motion_axis +[CF5_ls340] +asyncqueue = sct +desc = "Lakeshore 340 temperature controller" +driver = "ls340" +imptype = temperature +ip = 10.157.205.34 +port = 4001 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[agilent_33220A] +asyncqueue = sct +desc = "Function Generator" +driver = agilent_33220A +imptype = function_generator +ip = 10.157.205.16 +port = 5025 + +[ls336_01] +asyncqueue = sct +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 10.157.205.28 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls336_02] +asyncqueue = sct +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 10.157.205.29 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls336_04] +asyncqueue = sct +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 10.157.205.30 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls336_05] +asyncqueue = sct +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 137.157.201.21 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls336_06] +asyncqueue = sct +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 137.157.201.21 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls336_11] +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 10.157.205.27 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls336_12] +asyncqueue = sct +desc = "Lakeshore 336 temperature controller" +driver = "ls336" +imptype = temperature +ip = 10.157.205.31 +port = 7777 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls340_01] +asyncqueue = sct +desc = "Lakeshore 340 temperature controller" +driver = "ls340" +imptype = temperature +ip = 137.157.201.86 +port = 4001 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls340_02] +asyncqueue = sct +desc = "Lakeshore 340 temperature controller" +driver = "ls340" +imptype = temperature +ip = 137.157.201.86 +port = 4002 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[ls340_11] +desc = "Lakeshore 340 temperature controller" +driver = "ls340" +imptype = temperature +ip = 137.157.201.86 +port = 4001 +terminator = \r\n +tol1 = 1.0 +tol2 = 1.0 + +[mercury_scpi_01] +desc = "Oxford Mercury temperature controller with three temperature loops." +driver = "mercury_base" +imptype = temperature +ip = 10.157.205.5 +permlink = LT +port = 7020 +terminator = \r\n +tol = 1.0 +valve_tol = 2 + +[mercury_scpi_02] +desc = "Oxford Mercury temperature controller with four temperature loops and needle valve control" +driver = "mercury_scpi" +imptype = temperature +ip = 10.157.205.47 +permlink = LT +port = 7020 +terminator = \r\n +tol = 1.0 +valve_tol = 2 + +[normal_sample_stage] +desc = "This is the default sample stage configuration" +imptype = motion_axis + +[protek_01] +asyncqueue = sct +desc = "Protek Multimeter" +driver = "protekmm" +imptype = multimeter +ip = 10.157.205.36 +port = 4001 + +[protek_02] +asyncqueue = sct +desc = "Protek Multimeter" +driver = "protekmm" +imptype = multimeter +ip = 10.157.205.37 +port = 4001 + +[soma] +desc = "This is alternative Sample Omega A" +imptype = motion_axis + +[somb] +desc = "This is alternative Sample Omega B" +imptype = motion_axis +