re-produce package for Dingo
r3596 | jgn | 2012-06-06 12:01:42 +1000 (Wed, 06 Jun 2012) | 1 line
This commit is contained in:
committed by
Douglas Clowes
parent
06ab0664eb
commit
f6cb6602b1
1
site_ansto/instrument/dingo/DMC2280/README.txt
Normal file
1
site_ansto/instrument/dingo/DMC2280/README.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Programs for the DMC2280 controllers.
|
||||||
80
site_ansto/instrument/dingo/DMC2280/controller4.txt
Normal file
80
site_ansto/instrument/dingo/DMC2280/controller4.txt
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
NO TE: TAIPAN - CONTROLLER 4
|
||||||
|
NO TE:
|
||||||
|
NO TE: $Revision: 1.2 $
|
||||||
|
NO TE: $Date: 2007-09-24 01:28:42 $
|
||||||
|
NO TE: Author: Dan Bartlett
|
||||||
|
NO TE: Last revision by: $Author: dbx $
|
||||||
|
NO TE:
|
||||||
|
NO TE: A-SPARE
|
||||||
|
NO TE: B-SPARE
|
||||||
|
NO TE: C-SPARE
|
||||||
|
NO TE: D-SPARE
|
||||||
|
NO TE: E-VIRTUAL SOURCE RIGHT, +VE OPEN, 6mm/TURN
|
||||||
|
NO TE: F-VIRTUAL SOURCE LEFT, -VE OPEN, 6mm/TURN
|
||||||
|
NO TE: G-SPARE
|
||||||
|
NO TE: H-SPARE
|
||||||
|
NO TE: 55mm GAP AT LIMITS, EQUAL ABOUT BEAM CL
|
||||||
|
NO ----------------------------------------
|
||||||
|
#AUTO
|
||||||
|
NO TE: THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
|
||||||
|
MT-2,-2,-2,-2,-2,-2,-2,-2;'CONFIGURES ALL AXES AS STEPPER
|
||||||
|
MO;' FIRST TIME MOTOR OFF
|
||||||
|
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
|
||||||
|
II 8,,,0;' CONFIGURES THE 8TH INPUT TO ACTIVATE THE #ININT ROUTINE
|
||||||
|
OP 65280;' SETS OUTPUTS 9-16 ON = RELAYS OFF
|
||||||
|
IA 137,157,203,134;' CONFIGURES IP ADDRESS
|
||||||
|
AC ,,,,25000,25000,,;' SET ACELERATION
|
||||||
|
DC ,,,,25000,25000,,;' SET DECELERATION
|
||||||
|
SP ,,,,12500,12500,,;' SET SPEED
|
||||||
|
JS #THREAD0
|
||||||
|
EN
|
||||||
|
NO ----------------------------------------
|
||||||
|
#THREAD0
|
||||||
|
NO TE: THERE MUST BE A THREAD RUNNING FOR #LIMSWI, #TCPERR AND #ININT TO WORK
|
||||||
|
NO TE: CHECKS IF SPEEDS ARE ABOVE MAXIMUM ALLOWED
|
||||||
|
NO IF (_SPA>50000)
|
||||||
|
NO SPA=50000
|
||||||
|
NO ENDIF
|
||||||
|
NO IF (_SPB>50000)
|
||||||
|
NO SPB=50000
|
||||||
|
NO ENDIF
|
||||||
|
NO IF (_SPC>50000)
|
||||||
|
NO SPC=50000
|
||||||
|
NO ENDIF
|
||||||
|
NO IF (_SPD>50000)
|
||||||
|
NO SPD=50000
|
||||||
|
NO ENDIF
|
||||||
|
IF (_SPE<>12500)
|
||||||
|
SPE=12500
|
||||||
|
ENDIF
|
||||||
|
IF (_SPF<>12500)
|
||||||
|
SPF=12500
|
||||||
|
ENDIF
|
||||||
|
NO IF (_SPG>50000)
|
||||||
|
NO SPG=50000
|
||||||
|
NO ENDIF
|
||||||
|
NO IF (_SPH>50000)
|
||||||
|
NO SPH=50000
|
||||||
|
NO ENDIF
|
||||||
|
NO TE: CHECKS TO SEE IF DECELERATIONS OK
|
||||||
|
IF (_DCE<>25000)
|
||||||
|
DCE=25000
|
||||||
|
ENDIF
|
||||||
|
IF (_DCF<>25000)
|
||||||
|
DCF=25000
|
||||||
|
ENDIF
|
||||||
|
JP #THREAD0
|
||||||
|
EN
|
||||||
|
NO ----------------------------------------
|
||||||
|
#TCPERR
|
||||||
|
NO TE: EMPTY ROUTINE FOR A TCP ERROR
|
||||||
|
RE
|
||||||
|
NO ----------------------------------------
|
||||||
|
#ININT
|
||||||
|
NO TE: INTERUPT ROUTINE TO STOP ALL AXES
|
||||||
|
NO TE: WHEN SAFETY & INTERLOCK SYSTEM REQUESTS IT
|
||||||
|
STA,B,C,D,E,F,G,H
|
||||||
|
AM
|
||||||
|
MO
|
||||||
|
RI
|
||||||
|
NO ----------------------------------------
|
||||||
67
site_ansto/instrument/dingo/DMC2280/controller5.txt
Normal file
67
site_ansto/instrument/dingo/DMC2280/controller5.txt
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
NO TE: TAIPAN - CONTROLLER 5
|
||||||
|
NO TE:
|
||||||
|
NO TE: $Revision: 1.2 $
|
||||||
|
NO TE: $Date: 2007-09-24 01:29:31 $
|
||||||
|
NO TE: Author: Dan Bartlett
|
||||||
|
NO TE: Last revision by: $Author: dbx $
|
||||||
|
NO TE:
|
||||||
|
NO TE: A-SECONDARY SHUTTER, +VE OPEN, 6mm/TURN
|
||||||
|
NO TE: ONE AXIS CONTROLLER ONLY
|
||||||
|
NO ----------------------------------------
|
||||||
|
#AUTO
|
||||||
|
NO TE: THIS IS THE PROGRAM THAT RUNS AUTOMATICALLY ON CONTROLLER STARTUP
|
||||||
|
SHA
|
||||||
|
MTA=-2;'CONFIGURES ALL AXES AS STEPPER
|
||||||
|
CN 1;' CONFIGURES LIMIT SWITCHES TO ACCEPT NC CONTACTS
|
||||||
|
IA 137,157,203,135;' CONFIGURES IP ADDRESS
|
||||||
|
ACA=100000;' SET ACELERATION
|
||||||
|
DCA=100000;' SET DECELERATION
|
||||||
|
SPA=50000;' SET SPEED
|
||||||
|
JS #THREAD0
|
||||||
|
EN
|
||||||
|
NO ----------------------------------------
|
||||||
|
#THREAD0
|
||||||
|
NO TE: CONTROLS THE SECONDARY SHUTTER
|
||||||
|
NO TE: INPUT 5=SECONDARY SHUTTER CLOSE SIGNAL 1
|
||||||
|
NO TE: INPUT 6=SECONDARY SHUTTER CLOSE SIGNAL 2
|
||||||
|
NO TE: INPUT 7=SECONDARY SHUTTER OPEN SIGNAL 1
|
||||||
|
NO TE: INPUT 8=SECONDARY SHUTTER OPEN SIGNAL 2
|
||||||
|
IF ((_TI0&192)=0)&(_BGA=0)&(_LFA=1)
|
||||||
|
NO TE: INPUTS 7,8 EXCLUSIVELY ACTIVE(0) & NOT MOVING & NOT ALREADY OPEN
|
||||||
|
NO TE: SECONDARY SHUTTER COMMANDED TO OPEN
|
||||||
|
NO TE: INPUTS 1,2,3 AND 4 ARE MASKED OUT BY THE &192
|
||||||
|
PRA=580000;'APROX 140mm
|
||||||
|
BGA
|
||||||
|
ENDIF
|
||||||
|
IF ((_TI0&192<>0)&(_LRA=1)
|
||||||
|
NO TE: INPUTS 7,8 NOT EXCLUSIVELY ACTIVE(0) & NOT ALREADY CLOSED
|
||||||
|
NO TE: SECONDARY SHUTTER COMMANDED TO CLOSE
|
||||||
|
NO TE: INPUTS 1,2,3 AND 4 ARE MASKED OUT BY THE &192
|
||||||
|
STA;' STOP ANY MOTION
|
||||||
|
AMA;' AFTER MOTION IS STOPPED
|
||||||
|
PRA=-580000;' APROX 140mm
|
||||||
|
BGA;' DRIVE SHUTTER CLOSED TO LIMIT SWITCH
|
||||||
|
AMA
|
||||||
|
ENDIF
|
||||||
|
JP #THREAD0
|
||||||
|
EN
|
||||||
|
NO ----------------------------------------
|
||||||
|
#TCPERR
|
||||||
|
NO TE: EMPTY ROUTINE FOR A TCP ERROR
|
||||||
|
RE
|
||||||
|
NO ----------------------------------------
|
||||||
|
#CMDERR
|
||||||
|
NO TE: THIS IS A ROUTINE TO HANDLE COMMAND ERRORS
|
||||||
|
ZS0;' ZERO STACK
|
||||||
|
EN1
|
||||||
|
NO ----------------------------------------
|
||||||
|
#MONSWI
|
||||||
|
NO TE: THIS IS A ROUTINE TO MONITOR THE POSITION
|
||||||
|
NO TE: OF THE SECONDARY SHUTTER
|
||||||
|
IF (_LFA=1)&(_LRA=1)
|
||||||
|
MG {EA}, "SS NOT OPEN, NOT CLOSED"
|
||||||
|
WT200
|
||||||
|
ENDIF
|
||||||
|
JP #MONSWI
|
||||||
|
EN
|
||||||
|
NO ----------------------------------------
|
||||||
5
site_ansto/instrument/dingo/MANIFEST.TXT
Normal file
5
site_ansto/instrument/dingo/MANIFEST.TXT
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
dingo_configuration.tcl
|
||||||
|
sics_ports.tcl
|
||||||
|
script_validator_ports.tcl
|
||||||
|
config
|
||||||
|
util
|
||||||
5
site_ansto/instrument/dingo/Makefile
Normal file
5
site_ansto/instrument/dingo/Makefile
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
all:
|
||||||
|
make -C config
|
||||||
|
|
||||||
|
clean:
|
||||||
|
make -C config clean
|
||||||
18
site_ansto/instrument/dingo/config/INSTCFCOMMON.TXT
Normal file
18
site_ansto/instrument/dingo/config/INSTCFCOMMON.TXT
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
config/source/source_common.tcl
|
||||||
|
config/anticollider/anticollider_common.tcl
|
||||||
|
config/plc/plc_common_1.tcl
|
||||||
|
config/counter/counter_common_1.tcl
|
||||||
|
config/hipadaba/hipadaba_configuration_common.tcl
|
||||||
|
config/hipadaba/common_instrument_dictionary.tcl
|
||||||
|
config/hipadaba/instdict_specification.tcl
|
||||||
|
config/hmm/hmm_configuration_common_1.tcl
|
||||||
|
config/hmm/hmm_cylindrical_detector_configuration.tcl
|
||||||
|
config/hmm/hmm_object.tcl
|
||||||
|
config/hmm/anstohm_linked.xml
|
||||||
|
config/hmm/sct_orhvps_common.tcl
|
||||||
|
config/scan/scan_common_1.hdd
|
||||||
|
config/scan/scan_common_1.tcl
|
||||||
|
config/nexus/nxscripts_common_1.tcl
|
||||||
|
config/commands/commands_common.tcl
|
||||||
|
config/motors/sct_positmotor_common.tcl
|
||||||
|
config/motors/sct_jogmotor_common.tcl
|
||||||
4
site_ansto/instrument/dingo/config/Makefile
Normal file
4
site_ansto/instrument/dingo/config/Makefile
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
all:
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# Forbid detector motion when the detector voltage is on
|
||||||
|
# comment out -- Jing
|
||||||
|
#forbid {-inf inf} for det when dhv1 in {800 inf}
|
||||||
|
#forbid {-inf inf} for detoff when dhv1 in {800 inf}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
|
|
||||||
|
source $cfPath(anticollider)/anticollider_common.tcl
|
||||||
|
|
||||||
|
# NOTE: This is called with a list of motorname target pairs
|
||||||
|
proc ::anticollider::enable {args} {
|
||||||
|
if {[SplitReply [::anticollider::protect_detector]] == "false"} {
|
||||||
|
return "false"
|
||||||
|
} else {
|
||||||
|
return "true"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::anticollider::loadscript acscript.txt
|
||||||
12
site_ansto/instrument/dingo/config/commands/commands.tcl
Normal file
12
site_ansto/instrument/dingo/config/commands/commands.tcl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Author : Jing Chen (jgn@ansto.gov.au)
|
||||||
|
|
||||||
|
source $cfPath(commands)/commands_common.tcl
|
||||||
|
|
||||||
|
namespace eval motor {
|
||||||
|
# is_homing_list = comma separated list of motors which are safe to send "home"
|
||||||
|
variable is_homing_list ""
|
||||||
|
}
|
||||||
|
|
||||||
|
proc ::commands::isc_initialize {} {
|
||||||
|
::commands::ic_initialize
|
||||||
|
}
|
||||||
28
site_ansto/instrument/dingo/config/counter/counter.tcl
Normal file
28
site_ansto/instrument/dingo/config/counter/counter.tcl
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
source $cfPath(counter)/counter_common_1.tcl
|
||||||
|
|
||||||
|
## TODO Put all the counter macros in the counter namespace
|
||||||
|
namespace eval counter {
|
||||||
|
variable isc_numchannels
|
||||||
|
variable isc_monitor_address
|
||||||
|
variable isc_portlist
|
||||||
|
variable isc_beam_monitor_list
|
||||||
|
proc set_sobj_attributes {} {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc ::counter::isc_initialize {} {
|
||||||
|
if [catch {
|
||||||
|
variable isc_numchannels
|
||||||
|
variable isc_monitor_address
|
||||||
|
variable isc_portlist
|
||||||
|
variable isc_beam_monitor_list {MONITOR_1 MONITOR_2 MONITOR_3}
|
||||||
|
|
||||||
|
set isc_monitor_address "das1-[SplitReply [instrument]]"
|
||||||
|
set isc_portlist [list 33000 33001 33002 33003 33004 33005 33006 33007]
|
||||||
|
set isc_numchannels [llength $isc_beam_monitor_list]
|
||||||
|
::counter::ic_initialize
|
||||||
|
} message ] {
|
||||||
|
if {$::errorCode=="NONE"} {return $message}
|
||||||
|
return -code error "$message"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
source $cfPath(hipadaba)/hipadaba_configuration_common.tcl
|
||||||
121
site_ansto/instrument/dingo/config/hmm/hmm_configuration.tcl
Normal file
121
site_ansto/instrument/dingo/config/hmm/hmm_configuration.tcl
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
# Author Jing Chen (jgn@ansto.gove.au)
|
||||||
|
|
||||||
|
|
||||||
|
source $cfPath(hmm)/hmm_configuration_common_1.tcl
|
||||||
|
source $cfPath(hmm)/hmm_cylindrical_detector_configuration.tcl
|
||||||
|
set sim_mode [SplitReply [hmm_simulation]]
|
||||||
|
|
||||||
|
proc ::histogram_memory::init_OAT_TABLE {} {
|
||||||
|
if [ catch {
|
||||||
|
|
||||||
|
OAT_TABLE X -setdata MAX_CHAN 8
|
||||||
|
OAT_TABLE Y -setdata MAX_CHAN 1024
|
||||||
|
OAT_TABLE X -setdata BMIN -0.5
|
||||||
|
OAT_TABLE X -setdata BMAX 7.5
|
||||||
|
OAT_TABLE Y -setdata BMIN -0.5
|
||||||
|
OAT_TABLE Y -setdata BMAX 1023.5
|
||||||
|
|
||||||
|
OAT_TABLE -set X { 7.5 6.5 } NXC 8 Y { -0.5 0.5 } NYC 1024 T { 0 200000 } NTC 1
|
||||||
|
} message ] {
|
||||||
|
if {$::errorCode=="NONE"} {return $message}
|
||||||
|
return -code error $message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc CAT_TABLE {args} {
|
||||||
|
return {
|
||||||
|
<CAT>
|
||||||
|
<WIX APPLY="ENABLE" MIN_RAW="0" MAX_RAW="7" TABLE_SIZE="8">
|
||||||
|
<link_numeric_file filename="../../dingo_wix.dat" default_filename="../HMconfig/Default/dingo_wix.dat" />
|
||||||
|
</WIX>
|
||||||
|
<OFFSET_Y_PER_X APPLY="ENABLE" MIN_RAW="0" MAX_RAW="7" TABLE_SIZE="8" BASE_VAL="0">
|
||||||
|
<link_numeric_file filename="../../dingo_offset_y_per_x.dat" default_filename="../HMconfig/Default/dingo_offset_y_per_x.dat" />
|
||||||
|
</OFFSET_Y_PER_X>
|
||||||
|
<MAGNIFY APPLY="ENABLE" MIN_RAW="0" MAX_RAW="7" TABLE_SIZE="8" DIRECTION="X" MAX_IN="1023" MAX_OUT="1023" RANGE="UNSIGNED">
|
||||||
|
<link_numeric_file filename="../../dingo_magnify.dat" default_filename="../HMconfig/Default/dingo_magnify.dat" />
|
||||||
|
</MAGNIFY>
|
||||||
|
</CAT>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc ::histogram_memory::init_CAT_TABLE {} {
|
||||||
|
CAT_TABLE -set MESYTEC_MPSD8_CHANNEL_GAINS {
|
||||||
|
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
}
|
||||||
|
CAT_TABLE -set MESYTEC_MPSD8_THRESHOLDS { 10 }
|
||||||
|
CAT_TABLE -set MESYTEC_TUBE_PAIR_RESISTANCE_RATIOS {
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
}
|
||||||
|
CAT_TABLE -set MESYTEC_TUBE_MAGNIFICATIONS {
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
}
|
||||||
|
CAT_TABLE -set MESYTEC_TUBE_OFFSETS {
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
}
|
||||||
|
CAT_TABLE -set MESYTEC_TUBE_HISTOGRAM_WEIGHTS {
|
||||||
|
1 1 1 1 1 1 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# @brief Return the detector position
|
||||||
|
proc ::histogram_memory::detector_posn_degrees {} {
|
||||||
|
return [SplitReply [stth]]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc ::histogram_memory::pre_count {} {}
|
||||||
|
proc ::histogram_memory::post_count {} {}
|
||||||
|
proc ::histogram_memory::isc_initialize {} {
|
||||||
|
# Instrument specific X and Y dimension names
|
||||||
|
variable INST_NXC "oat_nxc_eff"
|
||||||
|
variable INST_NYC "oat_nyc_eff"
|
||||||
|
|
||||||
|
if [ catch {
|
||||||
|
::histogram_memory::init_hmm_objs
|
||||||
|
if {$::sim_mode == "true"} {
|
||||||
|
hmm configure oat_ntc_eff 1
|
||||||
|
hmm configure $INST_NYC 1024
|
||||||
|
hmm configure $INST_NXC 8
|
||||||
|
}
|
||||||
|
BAT_TABLE -init
|
||||||
|
# CAT_TABLE -init
|
||||||
|
SAT_TABLE -init
|
||||||
|
OAT_TABLE -init
|
||||||
|
FAT_TABLE -init
|
||||||
|
::histogram_memory::ic_initialize
|
||||||
|
::histogram_memory::set_graphtype "two_theta" "boundaries"
|
||||||
|
|
||||||
|
# MJL TODO detector geometry for Kookaburra TBD. Figures need revision during commissioning
|
||||||
|
# Width = 25mm spacing * 8 tubes = 5000mm (??? degree coverage)
|
||||||
|
# Height = 1015mm (tube length)
|
||||||
|
# Radius = 2400mm
|
||||||
|
detector_active_height_mm 1015
|
||||||
|
detector_active_height_mm lock
|
||||||
|
detector_active_width_mm 5000
|
||||||
|
detector_active_width_mm lock
|
||||||
|
detector_radius_mm 2400.0
|
||||||
|
detector_radius_mm lock
|
||||||
|
|
||||||
|
# hmm configure FAT_SIMULATED_EVENT_Y0 $y_bb0
|
||||||
|
# hmm configure FAT_SIMULATED_EVENT_Y1 $ybbmax
|
||||||
|
# hmm configure FAT_SIMULATED_EVENT_X0 $x_bb0
|
||||||
|
# hmm configure FAT_SIMULATED_EVENT_X1 $xbbmax
|
||||||
|
::histogram_memory::init_OAT_TABLE
|
||||||
|
::histogram_memory::init_SAT_TABLE
|
||||||
|
# ::histogram_memory::init_CAT_TABLE
|
||||||
|
::histogram_memory::upload_config Filler_defaults
|
||||||
|
|
||||||
|
set ::histogram_memory::histmem_axes(HOR) /instrument/detector/x_pixel_angular_offset
|
||||||
|
set ::histogram_memory::histmem_axes(VER) /instrument/detector/y_pixel_offset
|
||||||
|
} message ] {
|
||||||
|
if {$::errorCode=="NONE"} {return $message}
|
||||||
|
return -code error $message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc histmem {cmd args} {
|
||||||
|
eval "_histmem $cmd $args"
|
||||||
|
}
|
||||||
|
publish histmem user
|
||||||
|
|
||||||
|
|
||||||
14
site_ansto/instrument/dingo/config/motors/extraconfig.tcl
Normal file
14
site_ansto/instrument/dingo/config/motors/extraconfig.tcl
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
###
|
||||||
|
# Oscillating collimator control
|
||||||
|
# oscmd start n -- will run the oscillator motor rco for n cycles and send a stop to the histmem
|
||||||
|
|
||||||
|
|
||||||
|
MakeOscillator oscmd rco
|
||||||
|
|
||||||
|
proc rco_cb {} {
|
||||||
|
hmm pause
|
||||||
|
}
|
||||||
|
publish rco_cb user
|
||||||
|
|
||||||
|
scriptcallback connect rco MOTEND rco_cb
|
||||||
|
|
||||||
@@ -0,0 +1,715 @@
|
|||||||
|
# Author: Jing Chen (jgn@ansto.gov.au)
|
||||||
|
# All Motors are 25000 steps per motor revolution
|
||||||
|
|
||||||
|
# SET TO 1 TO USE THE TILT STAGE ie sample phi and chi
|
||||||
|
set use_tiltstage 0
|
||||||
|
|
||||||
|
set animal dingo
|
||||||
|
set sim_mode [SplitReply [motor_simulation]]
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
if {$sim_mode == "true"} {
|
||||||
|
set motor_driver_type asim
|
||||||
|
} else {
|
||||||
|
set motor_driver_type DMC2280
|
||||||
|
# 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)
|
||||||
|
# MakeAsyncQueue mc6 DMC2280 $dmc2280_controller6(host) $dmc2280_controller6(port)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#Measured absolute encoder reading at home position
|
||||||
|
set dummy_Home 0
|
||||||
|
|
||||||
|
set ftz_Home 0
|
||||||
|
set ptz_Home 0
|
||||||
|
set pom_Home 0
|
||||||
|
set stth_Home 0
|
||||||
|
set mtth_Home 0
|
||||||
|
|
||||||
|
set sv1_Home 0
|
||||||
|
set sh1_Home 0
|
||||||
|
set sv2_Home 0
|
||||||
|
set sh2_Home 0
|
||||||
|
set gom_Home 0
|
||||||
|
set scor_Home 0
|
||||||
|
|
||||||
|
# AND abs Encoder Reading with FFF to get the lowest 12 bits only
|
||||||
|
#set mra_Home 4286
|
||||||
|
set mra_Home 191
|
||||||
|
#set moma_Home 8386659
|
||||||
|
set moma_Home 2147
|
||||||
|
#set mrb_Home 294
|
||||||
|
set mrb_Home 294
|
||||||
|
#set momb_Home 8386694
|
||||||
|
set momb_Home 2182
|
||||||
|
#set mrc_Home 4558982
|
||||||
|
set mrc_Home 86
|
||||||
|
#set momc_Home 12499198
|
||||||
|
set momc_Home 2302
|
||||||
|
|
||||||
|
set mphi_Home 0
|
||||||
|
set mchi_Home 8383096
|
||||||
|
set mx_Home 8390604
|
||||||
|
set my_Home 8391084
|
||||||
|
set mom_Home 8389414
|
||||||
|
|
||||||
|
set rco_Home 0
|
||||||
|
set rcz_Home 0
|
||||||
|
set bsr_Home 0
|
||||||
|
set gv1_Home 0
|
||||||
|
set gv2_Home 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
|
||||||
|
############################
|
||||||
|
#
|
||||||
|
|
||||||
|
# Dummy translation motor, useful for testing scans
|
||||||
|
|
||||||
|
#Motor dummy_motor asim [params \
|
||||||
|
asyncqueue mc1\
|
||||||
|
host mc1-dingo\
|
||||||
|
port pmc1-dingo\
|
||||||
|
axis A\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -500\
|
||||||
|
hardupperlim 500\
|
||||||
|
maxSpeed 1\
|
||||||
|
maxAccel 5\
|
||||||
|
maxDecel 5\
|
||||||
|
stepsPerX [expr 25000.0/5.0]\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $dummy_Home\
|
||||||
|
cntsPerX [expr 8192.0/5.0]]
|
||||||
|
#dummy_motor part instrument
|
||||||
|
#dummy_motor long_name dummy_motor
|
||||||
|
#dummy_motor softlowerlim -500
|
||||||
|
#dummy_motor softupperlim 500
|
||||||
|
#dummy_motor home 0
|
||||||
|
|
||||||
|
# mc1: Polariser & Spin Flipper - Z translation slide
|
||||||
|
# Moto: 100:1 gear, 2mm pitch
|
||||||
|
set ptzStepRate [expr (300000.0/100.0)/2.0]
|
||||||
|
|
||||||
|
Motor ptz $motor_driver_type [params \
|
||||||
|
asyncqueue mc1\
|
||||||
|
host mc1-dingo\
|
||||||
|
port pmc1-dingo\
|
||||||
|
axis B\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 500\
|
||||||
|
maxSpeed [expr 400000.0/300000.0]\
|
||||||
|
maxAccel [expr 150000.0/300000.0]\
|
||||||
|
maxDecel [expr 150000.0/300000.0]\
|
||||||
|
stepsPerX $ptzStepRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $ptz_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
ptz part crystal
|
||||||
|
ptz long_name ptz
|
||||||
|
ptz softlowerlim 0
|
||||||
|
ptz softupperlim 500
|
||||||
|
ptz home 0
|
||||||
|
|
||||||
|
#if $use_tiltstage {
|
||||||
|
# mc1: Beryllium / Graphite filter shared - Z translation slide
|
||||||
|
# Moto: 100:1 gear, 2mm pitch
|
||||||
|
set ftzStepRate [expr (300000.0/100.0)/2.0]
|
||||||
|
|
||||||
|
Motor ftz $motor_driver_type [params \
|
||||||
|
asyncqueue mc1\
|
||||||
|
host mc1-dingo\
|
||||||
|
port pmc1-dingo\
|
||||||
|
axis C\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 500\
|
||||||
|
maxSpeed [expr 400000.0/300000.0]\
|
||||||
|
maxAccel [expr 150000.0/300000.0]\
|
||||||
|
maxDecel [expr 150000.0/300000.0]\
|
||||||
|
stepsPerX $ftzStepRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $ftz_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
ftz part crystal
|
||||||
|
ftz long_name ftz
|
||||||
|
ftz softlowerlim 0
|
||||||
|
ftz softupperlim 500
|
||||||
|
ftz home 0
|
||||||
|
|
||||||
|
# mc1: Polariser (& Spin Flipper) - Rotation + - 2 deg about polariser (i.e, The Elbow)
|
||||||
|
set pomSetRate 25000
|
||||||
|
|
||||||
|
Motor pom $motor_driver_type [params \
|
||||||
|
asyncqueue mc1\
|
||||||
|
host mc1-dingo\
|
||||||
|
port pmc1-dingo\
|
||||||
|
axis E\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 2\
|
||||||
|
maxSpeed [expr 250000.0/$pomSetRate]\
|
||||||
|
maxAccel [expr 25000.0/$pomSetRate]\
|
||||||
|
maxDecel [expr 25000.0/$pomSetRate]\
|
||||||
|
stepsPerX $pomSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $pom_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
pom part crystal
|
||||||
|
pom long_name pom
|
||||||
|
pom softlowerlim 0
|
||||||
|
pom softupperlim 2
|
||||||
|
pom home 0
|
||||||
|
|
||||||
|
# mc1: Sample/Detector Chamber Rotation (Detector)
|
||||||
|
set stthSetRate 25000
|
||||||
|
|
||||||
|
Motor stth $motor_driver_type [params \
|
||||||
|
asyncqueue mc1\
|
||||||
|
host mc1-dingo\
|
||||||
|
port pmc1-dingo\
|
||||||
|
axis F\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim -125\
|
||||||
|
hardupperlim 8\
|
||||||
|
maxSpeed [expr 150000.0/$stthSetRate]\
|
||||||
|
maxAccel [expr 5000.0/$stthSetRate]\
|
||||||
|
maxDecel [expr 5000.0/$stthSetRate]\
|
||||||
|
stepsPerX $stthSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $stth_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
stth part detector
|
||||||
|
stth long_name stth
|
||||||
|
stth softlowerlim -125
|
||||||
|
stth softupperlim 8
|
||||||
|
stth home 0
|
||||||
|
|
||||||
|
# mc1: Instrument Drive System (Main Drive)
|
||||||
|
set mtthSetRate 25000
|
||||||
|
|
||||||
|
Motor mtth $motor_driver_type [params \
|
||||||
|
asyncqueue mc1\
|
||||||
|
host mc1-dingo\
|
||||||
|
port pmc1-dingo\
|
||||||
|
axis G\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim 40\
|
||||||
|
hardupperlim 140\
|
||||||
|
maxSpeed [expr 150000.0/$mtthSetRate]\
|
||||||
|
maxAccel [expr 25000.0/$mtthSetRate]\
|
||||||
|
maxDecel [expr 25000.0/$mtthSetRate]\
|
||||||
|
stepsPerX $mtthSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mtth_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
mtth part detector
|
||||||
|
mtth long_name mtth
|
||||||
|
mtth softlowerlim 40
|
||||||
|
mtth softupperlim 140
|
||||||
|
mtth home 0
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Motor Controller 2
|
||||||
|
# Motor Controller 2
|
||||||
|
# Motor Controller 2
|
||||||
|
############################
|
||||||
|
#
|
||||||
|
|
||||||
|
# mc2: Slits Set AB1- (After Beryllium Filter) (2 blades and 1 Motor & Encoder set)
|
||||||
|
set sv1SetRate 25000
|
||||||
|
|
||||||
|
Motor sv1 $motor_driver_type [params \
|
||||||
|
asyncqueue mc2\
|
||||||
|
host mc2-dingo\
|
||||||
|
port pmc2-dingo\
|
||||||
|
axis A\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -2\
|
||||||
|
hardupperlim 60\
|
||||||
|
maxSpeed [expr 25000.0/$sv1SetRate]\
|
||||||
|
maxAccel [expr 25000.0/$sv1SetRate]\
|
||||||
|
maxDecel [expr 25000.0/$sv1SetRate]\
|
||||||
|
stepsPerX $sv1SetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $sv1_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
sv1 part aperture
|
||||||
|
sv1 long_name sv1
|
||||||
|
sv1 softlowerlim -2
|
||||||
|
sv1 softupperlim 60
|
||||||
|
sv1 home 0
|
||||||
|
|
||||||
|
# mc2: Slits Set AB2- (After Beryllium Filter) (2 blades and 1 Motor & Encoder set)
|
||||||
|
set sh1SetRate 25000
|
||||||
|
|
||||||
|
Motor sh1 $motor_driver_type [params \
|
||||||
|
asyncqueue mc2\
|
||||||
|
host mc2-dingo\
|
||||||
|
port pmc2-dingo\
|
||||||
|
axis B\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -2\
|
||||||
|
hardupperlim 50\
|
||||||
|
maxSpeed [expr 25000.0/$sh1SetRate]\
|
||||||
|
maxAccel [expr 25000.0/$sh1SetRate]\
|
||||||
|
maxDecel [expr 25000.0/$sh1SetRate]\
|
||||||
|
stepsPerX $sh1SetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $sh1_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
sh1 part aperture
|
||||||
|
sh1 long_name sh1
|
||||||
|
sh1 softlowerlim -2
|
||||||
|
sh1 softupperlim 50
|
||||||
|
sh1 home 0
|
||||||
|
|
||||||
|
# mc2: Slits Set AF1- (After Fermi Chopper) (2 blades and 1 Motor & Encoder set)
|
||||||
|
set sv2SetRate 25000
|
||||||
|
|
||||||
|
Motor sv2 $motor_driver_type [params \
|
||||||
|
asyncqueue mc2\
|
||||||
|
host mc2-dingo\
|
||||||
|
port pmc2-dingo\
|
||||||
|
axis C\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -2\
|
||||||
|
hardupperlim 40\
|
||||||
|
maxSpeed [expr 25000.0/$sv2SetRate]\
|
||||||
|
maxAccel [expr 25000.0/$sv2SetRate]\
|
||||||
|
maxDecel [expr 25000.0/$sv2SetRate]\
|
||||||
|
stepsPerX $sv2SetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $sv2_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
sv2 part aperture
|
||||||
|
sv2 long_name sv2
|
||||||
|
sv2 softlowerlim -2
|
||||||
|
sv2 softupperlim 40
|
||||||
|
sv2 home 0
|
||||||
|
|
||||||
|
# mc2: Slits Set AF2- (After Fermi Chopper) (2 blades and 1 Motor & Encoder set)
|
||||||
|
set sh2SetRate 25000
|
||||||
|
|
||||||
|
Motor sh2 $motor_driver_type [params \
|
||||||
|
asyncqueue mc2\
|
||||||
|
host mc2-dingo\
|
||||||
|
port pmc2-dingo\
|
||||||
|
axis D\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -2\
|
||||||
|
hardupperlim 30\
|
||||||
|
maxSpeed [expr 25000.0/$sh2SetRate]\
|
||||||
|
maxAccel [expr 25000.0/$sh2SetRate]\
|
||||||
|
maxDecel [expr 25000.0/$sh2SetRate]\
|
||||||
|
stepsPerX $sh2SetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $sh2_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
sh2 part aperture
|
||||||
|
sh2 long_name sh2
|
||||||
|
sh2 softlowerlim -2
|
||||||
|
sh2 softupperlim 30
|
||||||
|
sh2 home 0
|
||||||
|
|
||||||
|
# mc2: Graphite filter rotation stage (post 1st slit and post 1st Fermi chopper)
|
||||||
|
set gomSetRate 25000
|
||||||
|
|
||||||
|
Motor gom $motor_driver_type [params \
|
||||||
|
asyncqueue mc2\
|
||||||
|
host mc2-dingo\
|
||||||
|
port pmc2-dingo\
|
||||||
|
axis E\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 15\
|
||||||
|
maxSpeed [expr 50000.0/$gomSetRate]\
|
||||||
|
maxAccel [expr 25000.0/$gomSetRate]\
|
||||||
|
maxDecel [expr 25000.0/$gomSetRate]\
|
||||||
|
stepsPerX $gomSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $gom_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
gom part sample
|
||||||
|
gom long_name gom
|
||||||
|
gom softlowerlim 0
|
||||||
|
gom softupperlim 15
|
||||||
|
gom home 0
|
||||||
|
|
||||||
|
# mc2: Sample rotation correction - 10 deg rotation
|
||||||
|
set scorSetRate 25000
|
||||||
|
|
||||||
|
Motor scor $motor_driver_type [params \
|
||||||
|
asyncqueue mc2\
|
||||||
|
host mc2-dingo\
|
||||||
|
port pmc2-dingo\
|
||||||
|
axis F\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 360\
|
||||||
|
maxSpeed [expr 50000.0/$scorSetRate]\
|
||||||
|
maxAccel [expr 25000.0/$scorSetRate]\
|
||||||
|
maxDecel [expr 25000.0/$scorSetRate]\
|
||||||
|
stepsPerX $scorSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $scor_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
scor part sample
|
||||||
|
scor long_name scor
|
||||||
|
scor softlowerlim 0
|
||||||
|
scor softupperlim 360
|
||||||
|
scor home 0
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Motor Controller 3
|
||||||
|
# Motor Controller 3
|
||||||
|
# Motor Controller 3
|
||||||
|
############################
|
||||||
|
#
|
||||||
|
|
||||||
|
# ROTATION STAGES 120:1 PLUS GEARBOX 8:1
|
||||||
|
# ROTATION STAGE RESOLVER 360:55
|
||||||
|
|
||||||
|
# FOCUS STAGE GEARBOX 6:1
|
||||||
|
# FOCUS STAGE RESOLVER DIRECT 310 DEG, 3527 COUNTS USABLE RANGE
|
||||||
|
|
||||||
|
# Computes Monochromator step rates (steps per degree) of focusing and Rotation
|
||||||
|
# 1 unit here is 1 degree
|
||||||
|
set monoRotateStepsPerUnit [expr 25000.0*8.0*120.0/360.0]
|
||||||
|
|
||||||
|
# Encode reading at the roation, 1 unit here is 1 degree
|
||||||
|
set MonoRotateCntsPerUnit [expr 4096.0*360.0/55.0/360.0]
|
||||||
|
|
||||||
|
# Setup Focus range as min = 0 and max = 1, working range = 0 to 1 (310 degrees)
|
||||||
|
# or, 0 for full focus and 1 for non focus
|
||||||
|
# Focusing rate 25000 steps * 6:1 gears = 150000, 1 unit here is 310 degrees
|
||||||
|
set monoFocusStepsPerUnit [expr -25000.0*6.0*310.0/360.0]
|
||||||
|
|
||||||
|
# Encode reading at Focusing stage, 1 unit here is 310 degrees
|
||||||
|
set monoFocusCntsPerUnit [expr 4096.0*310.0/360.0]
|
||||||
|
|
||||||
|
# Max speed for Focusing , -- currently set as 0.083
|
||||||
|
# speed unit here is 310 degrees
|
||||||
|
set monoFocusSpeed 0.05
|
||||||
|
set monoFocusMaxSpeed 0.083
|
||||||
|
|
||||||
|
# Precision setting turn/move, or 310*turn/move (degrees)
|
||||||
|
set monoFocusprecision 0.001
|
||||||
|
|
||||||
|
# mc3: Monochromator Focusing 1 - Focus
|
||||||
|
Motor mra $motor_driver_type [params \
|
||||||
|
asyncqueue mc3\
|
||||||
|
host mc3-dingo\
|
||||||
|
port pmc3-dingo\
|
||||||
|
axis A\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 1\
|
||||||
|
precision $monoFocusprecision\
|
||||||
|
maxSpeed $monoFocusMaxSpeed\
|
||||||
|
maxAccel [expr 25000.0/25000.0]\
|
||||||
|
maxDecel [expr 25000.0/25000.0]\
|
||||||
|
stepsPerX $monoFocusStepsPerUnit\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mra_Home\
|
||||||
|
bias_bits 12\
|
||||||
|
cntsPerX $monoFocusCntsPerUnit]
|
||||||
|
mra speed $monoFocusSpeed
|
||||||
|
mra accel $monoFocusSpeed
|
||||||
|
mra decel $monoFocusSpeed
|
||||||
|
mra part crystal
|
||||||
|
mra long_name mra
|
||||||
|
mra softlowerlim 0
|
||||||
|
mra softupperlim 1
|
||||||
|
mra home 0
|
||||||
|
# fix the motor
|
||||||
|
mra fixed -1
|
||||||
|
|
||||||
|
# mc3: Monochromator Focusing 1 - Rotation
|
||||||
|
Motor moma $motor_driver_type [params \
|
||||||
|
asyncqueue mc3\
|
||||||
|
host mc3-dingo\
|
||||||
|
port pmc3-dingo\
|
||||||
|
axis B\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim -72.003174\
|
||||||
|
hardupperlim -20.0379\
|
||||||
|
maxSpeed 0.5\
|
||||||
|
maxAccel 0.5\
|
||||||
|
maxDecel 0.5\
|
||||||
|
stepsPerX $monoRotateStepsPerUnit\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $moma_Home\
|
||||||
|
bias_bits 12\
|
||||||
|
cntsPerX $MonoRotateCntsPerUnit]
|
||||||
|
moma part crystal
|
||||||
|
moma long_name moma
|
||||||
|
moma softlowerlim -70
|
||||||
|
moma softupperlim -20.537842
|
||||||
|
moma home -45
|
||||||
|
|
||||||
|
# mc3: Monochromator Focusing 2 - Focus
|
||||||
|
Motor mrb $motor_driver_type [params \
|
||||||
|
asyncqueue mc3\
|
||||||
|
host mc3-dingo\
|
||||||
|
port pmc3-dingo\
|
||||||
|
axis C\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 1\
|
||||||
|
precision $monoFocusprecision\
|
||||||
|
maxSpeed $monoFocusMaxSpeed\
|
||||||
|
maxAccel [expr 25000.0/25000.0]\
|
||||||
|
maxDecel [expr 25000.0/25000.0]\
|
||||||
|
stepsPerX $monoFocusStepsPerUnit\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mrb_Home\
|
||||||
|
bias_bits 12\
|
||||||
|
cntsPerX $monoFocusCntsPerUnit]
|
||||||
|
mrb speed $monoFocusSpeed
|
||||||
|
mrb accel $monoFocusSpeed
|
||||||
|
mrb decel $monoFocusSpeed
|
||||||
|
mrb part crystal
|
||||||
|
mrb long_name mrb
|
||||||
|
mrb softlowerlim 0
|
||||||
|
mrb softupperlim 1
|
||||||
|
mrb home 0
|
||||||
|
# fix the motor
|
||||||
|
mrb fixed -1
|
||||||
|
|
||||||
|
# mc3: Monochromator Focusing 2 - Rotation
|
||||||
|
Motor momb $motor_driver_type [params \
|
||||||
|
asyncqueue mc3\
|
||||||
|
host mc3-dingo\
|
||||||
|
port pmc3-dingo\
|
||||||
|
axis D\
|
||||||
|
units degree\
|
||||||
|
hardlowerlim -72.003174\
|
||||||
|
hardupperlim -20.198975\
|
||||||
|
maxSpeed 0.5\
|
||||||
|
maxAccel 0.5\
|
||||||
|
maxDecel 0.5\
|
||||||
|
stepsPerX $monoRotateStepsPerUnit\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $momb_Home\
|
||||||
|
bias_bits 12\
|
||||||
|
cntsPerX $MonoRotateCntsPerUnit]
|
||||||
|
momb part crystal
|
||||||
|
momb long_name momb
|
||||||
|
momb softlowerlim -70
|
||||||
|
momb softupperlim -20.698975
|
||||||
|
momb home -45
|
||||||
|
|
||||||
|
# mc3: Monochromator Focusing 3 - Focus
|
||||||
|
Motor mrc $motor_driver_type [params \
|
||||||
|
asyncqueue mc3\
|
||||||
|
host mc3-dingo\
|
||||||
|
port pmc3-dingo\
|
||||||
|
axis E\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim 0\
|
||||||
|
hardupperlim 1\
|
||||||
|
precision $monoFocusprecision\
|
||||||
|
maxSpeed $monoFocusMaxSpeed\
|
||||||
|
maxAccel [expr 25000.0/25000.0]\
|
||||||
|
maxDecel [expr 25000.0/25000.0]\
|
||||||
|
stepsPerX $monoFocusStepsPerUnit\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mrc_Home\
|
||||||
|
bias_bits 12\
|
||||||
|
cntsPerX $monoFocusCntsPerUnit]
|
||||||
|
mrc speed $monoFocusSpeed
|
||||||
|
mrc accel $monoFocusSpeed
|
||||||
|
mrc decel $monoFocusSpeed
|
||||||
|
mrc part crystal
|
||||||
|
mrc long_name mrc
|
||||||
|
mrc softlowerlim 0
|
||||||
|
mrc softupperlim 1
|
||||||
|
mrc home 0
|
||||||
|
# fix the motor
|
||||||
|
mrc fixed -1
|
||||||
|
|
||||||
|
# mc3: Monochromator Focusing 3 - Rotation
|
||||||
|
Motor momc $motor_driver_type [params \
|
||||||
|
asyncqueue mc3\
|
||||||
|
host mc3-dingo\
|
||||||
|
port pmc3-dingo\
|
||||||
|
axis F\
|
||||||
|
units degree\
|
||||||
|
hardlowerlim -72.003174\
|
||||||
|
hardupperlim -21.246338\
|
||||||
|
maxSpeed 0.5\
|
||||||
|
maxAccel 0.5\
|
||||||
|
maxDecel 0.5\
|
||||||
|
stepsPerX $monoRotateStepsPerUnit\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $momc_Home\
|
||||||
|
bias_bits 12\
|
||||||
|
cntsPerX $MonoRotateCntsPerUnit]
|
||||||
|
momc part crystal
|
||||||
|
momc long_name momc
|
||||||
|
momc softlowerlim -70
|
||||||
|
momc softupperlim -21.746338
|
||||||
|
momc home -45
|
||||||
|
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Motor Controller 4
|
||||||
|
# Motor Controller 4
|
||||||
|
# Motor Controller 4
|
||||||
|
############################
|
||||||
|
#
|
||||||
|
|
||||||
|
# mc4: Monochromator crystal stages tilt stage - G270
|
||||||
|
set mphiSetRate 25000
|
||||||
|
|
||||||
|
Motor mphi $motor_driver_type [params \
|
||||||
|
asyncqueue mc4\
|
||||||
|
host mc4-dingo\
|
||||||
|
port pmc4-dingo\
|
||||||
|
axis A\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim -5\
|
||||||
|
hardupperlim 5\
|
||||||
|
maxSpeed [expr 50000.0/25000.0]\
|
||||||
|
maxAccel [expr 12500.0/25000.0]\
|
||||||
|
maxDecel [expr 12500.0/25000.0]\
|
||||||
|
stepsPerX $mphiSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mphi_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
mphi part crystal
|
||||||
|
mphi long_name mphi
|
||||||
|
mphi softlowerlim -5
|
||||||
|
mphi softupperlim 5
|
||||||
|
mphi home 0
|
||||||
|
|
||||||
|
# mc4: Monochromator crystal stages tilt stage - G350
|
||||||
|
set mchiSetRate 25000
|
||||||
|
|
||||||
|
Motor mchi $motor_driver_type [params \
|
||||||
|
asyncqueue mc4\
|
||||||
|
host mc4-dingo\
|
||||||
|
port pmc4-dingo\
|
||||||
|
axis B\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim -5\
|
||||||
|
hardupperlim 5\
|
||||||
|
maxSpeed [expr 50000.0/25000.0]\
|
||||||
|
maxAccel [expr 12500.0/25000.0]\
|
||||||
|
maxDecel [expr 12500.0/25000.0]\
|
||||||
|
stepsPerX $mchiSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mchi_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
mchi part crystal
|
||||||
|
mchi long_name mchi
|
||||||
|
mchi softlowerlim -5
|
||||||
|
mchi softupperlim 5
|
||||||
|
mchi home 0
|
||||||
|
mchi speed 0.2
|
||||||
|
mchi accel 0.1
|
||||||
|
mchi decel 0.1
|
||||||
|
|
||||||
|
# mc4: Monochromator crystal stages Linear stage X - T250
|
||||||
|
set mxSetRate 25000
|
||||||
|
|
||||||
|
Motor mx $motor_driver_type [params \
|
||||||
|
asyncqueue mc4\
|
||||||
|
host mc4-dingo\
|
||||||
|
port pmc4-dingo\
|
||||||
|
axis C\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -20\
|
||||||
|
hardupperlim 20\
|
||||||
|
maxSpeed [expr 50000.0/25000.0]\
|
||||||
|
maxAccel [expr 12500.0/25000.0]\
|
||||||
|
maxDecel [expr 12500.0/25000.0]\
|
||||||
|
stepsPerX $mxSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mx_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
mx part crystal
|
||||||
|
mx long_name mx
|
||||||
|
mx softlowerlim -20
|
||||||
|
mx softupperlim 20
|
||||||
|
mx home 0
|
||||||
|
mx speed 1.0
|
||||||
|
|
||||||
|
# mc4: Monochromator crystal stages Linear stage Y - T250
|
||||||
|
set mySetRate 25000
|
||||||
|
|
||||||
|
Motor my $motor_driver_type [params \
|
||||||
|
asyncqueue mc4\
|
||||||
|
host mc4-dingo\
|
||||||
|
port pmc4-dingo\
|
||||||
|
axis D\
|
||||||
|
units mm\
|
||||||
|
hardlowerlim -20\
|
||||||
|
hardupperlim 20\
|
||||||
|
maxSpeed [expr 50000.0/25000.0]\
|
||||||
|
maxAccel [expr 12500.0/25000.0]\
|
||||||
|
maxDecel [expr 12500.0/25000.0]\
|
||||||
|
stepsPerX $mySetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $my_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
my part crystal
|
||||||
|
my long_name my
|
||||||
|
my softlowerlim -10
|
||||||
|
my softupperlim 10
|
||||||
|
my home 0
|
||||||
|
my speed 1.0
|
||||||
|
|
||||||
|
# mc4: Monochromator crystal stages Rotation stage - R275
|
||||||
|
set momSetRate 25000
|
||||||
|
|
||||||
|
Motor mom $motor_driver_type [params \
|
||||||
|
asyncqueue mc4\
|
||||||
|
host mc4-dingo\
|
||||||
|
port pmc4-dingo\
|
||||||
|
axis E\
|
||||||
|
units degrees\
|
||||||
|
hardlowerlim -15\
|
||||||
|
hardupperlim 15\
|
||||||
|
maxSpeed [expr 50000.0/25000.0]\
|
||||||
|
maxAccel [expr 12500.0/25000.0]\
|
||||||
|
maxDecel [expr 12500.0/25000.0]\
|
||||||
|
stepsPerX $momSetRate\
|
||||||
|
absEnc 1\
|
||||||
|
absEncHome $mom_Home\
|
||||||
|
cntsPerX 4096]
|
||||||
|
mom speed 0.5
|
||||||
|
mom part crystal
|
||||||
|
mom long_name mom
|
||||||
|
mom softlowerlim -15
|
||||||
|
mom softupperlim 15
|
||||||
|
mom home 0
|
||||||
|
|
||||||
|
proc motor_set_sobj_attributes {} {
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# Author: Jing Chen (jgn@ansto.gov.au)
|
||||||
|
|
||||||
|
source $cfPath(motors)/sct_positmotor_common.tcl
|
||||||
|
|
||||||
|
set port1 [portnum pmc1-dingo]
|
||||||
|
set port2 [portnum pmc2-dingo]
|
||||||
|
set port3 [portnum pmc3-dingo]
|
||||||
|
set port4 [portnum pmc4-dingo]
|
||||||
|
|
||||||
|
makesctcontroller sct_mc1 std mc1-dingo:$port1
|
||||||
|
makesctcontroller sct_mc2 std mc2-dingo:$port2
|
||||||
|
makesctcontroller sct_mc3 std mc3-dingo:$port3
|
||||||
|
makesctcontroller sct_mc4 std mc4-dingo:$port4
|
||||||
|
|
||||||
|
|
||||||
|
# label pos
|
||||||
|
#index position
|
||||||
|
set 20sample_table {
|
||||||
|
1 453.7
|
||||||
|
2 411.7
|
||||||
|
3 369.7
|
||||||
|
4 327.7
|
||||||
|
5 285.7
|
||||||
|
6 203.7
|
||||||
|
7 161.7
|
||||||
|
8 119.7
|
||||||
|
9 77.7
|
||||||
|
10 35.7
|
||||||
|
11 -46.3
|
||||||
|
12 -88.3
|
||||||
|
13 -130.3
|
||||||
|
14 -172.3
|
||||||
|
15 -214.3
|
||||||
|
16 -296.3
|
||||||
|
17 -338.3
|
||||||
|
18 -380.3
|
||||||
|
19 -422.3
|
||||||
|
20 -464.3
|
||||||
|
}
|
||||||
|
|
||||||
|
#mkPosit sct_mc1 sampleNum float samx sample $20sample_table
|
||||||
|
|
||||||
|
#diameter position
|
||||||
|
set auto_ap_table {
|
||||||
|
2.5 0
|
||||||
|
5.0 -23
|
||||||
|
7.5 -47
|
||||||
|
10.0 -72
|
||||||
|
12.5 -98
|
||||||
|
15.0 -125
|
||||||
|
17.5 -153
|
||||||
|
20.0 -183
|
||||||
|
25.0 -215
|
||||||
|
30.0 -250
|
||||||
|
}
|
||||||
|
#mkPosit sct_mc3 diameter float apx sample $auto_ap_table
|
||||||
|
|
||||||
3
site_ansto/instrument/dingo/config/nexus/Makefile
Normal file
3
site_ansto/instrument/dingo/config/nexus/Makefile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
all:
|
||||||
|
|
||||||
|
clean:
|
||||||
4
site_ansto/instrument/dingo/config/nexus/nxscripts.tcl
Normal file
4
site_ansto/instrument/dingo/config/nexus/nxscripts.tcl
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
source $cfPath(nexus)/nxscripts_common_1.tcl
|
||||||
|
proc ::nexus::isc_initialize {} {
|
||||||
|
::nexus::ic_initialize
|
||||||
|
}
|
||||||
8
site_ansto/instrument/dingo/config/plc/plc.tcl
Normal file
8
site_ansto/instrument/dingo/config/plc/plc.tcl
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
set sim_mode [SplitReply [plc_simulation]]
|
||||||
|
if {$sim_mode == "false"} {
|
||||||
|
# MakeAsyncQueue plc_chan SafetyPLC 137.157.204.79 31001
|
||||||
|
# MakeSafetyPLC plc plc_chan 0
|
||||||
|
}
|
||||||
|
|
||||||
|
source $cfPath(plc)/plc_common_1.tcl
|
||||||
|
|
||||||
6
site_ansto/instrument/dingo/config/scan/scan.tcl
Normal file
6
site_ansto/instrument/dingo/config/scan/scan.tcl
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
source $cfPath(scan)/scan_common_1.tcl
|
||||||
|
proc ::scan::pre_hmm_scan_prepare {} {}
|
||||||
|
|
||||||
|
proc ::scan::isc_initialize {} {
|
||||||
|
::scan::ic_initialize
|
||||||
|
}
|
||||||
8
site_ansto/instrument/dingo/config/source/source.tcl
Normal file
8
site_ansto/instrument/dingo/config/source/source.tcl
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Author Jing Chen (jgn@ansto.gov.au)
|
||||||
|
|
||||||
|
source $cfPath(source)/source_common.tcl
|
||||||
|
|
||||||
|
proc ::source::isc_initialize {} {
|
||||||
|
::source::ic_initialize "thermal"
|
||||||
|
}
|
||||||
|
|
||||||
50
site_ansto/instrument/dingo/dingo_configuration.tcl
Normal file
50
site_ansto/instrument/dingo/dingo_configuration.tcl
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Author: Jing Chen (jgn@ansto.gov.au)
|
||||||
|
|
||||||
|
# Required by server_config.tcl
|
||||||
|
VarMake Instrument Text Internal
|
||||||
|
Instrument dingo
|
||||||
|
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
|
||||||
|
|
||||||
|
source $cfPath(hipadaba)/hipadaba_configuration.tcl
|
||||||
|
|
||||||
|
fileeval $cfPath(source)/source.tcl
|
||||||
|
fileeval $cfPath(motors)/motor_configuration.tcl
|
||||||
|
fileeval $cfPath(motors)/positmotor_configuration.tcl
|
||||||
|
#fileeval $cfPath(motors)/extraconfig.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
|
||||||
|
fileeval $cfPath(commands)/commands.tcl
|
||||||
|
fileeval $cfPath(anticollider)/anticollider.tcl
|
||||||
|
|
||||||
|
source gumxml.tcl
|
||||||
|
|
||||||
|
::utility::mkVar ::anticollider::protect_detector text manager protect_detector false detector true false
|
||||||
|
::anticollider::protect_detector "true"
|
||||||
|
|
||||||
|
# fix all motors
|
||||||
|
foreach m [sicslist type motor] {
|
||||||
|
if {$m == "motor" || $m == "dummy_motor"} {
|
||||||
|
# skipit
|
||||||
|
} else {
|
||||||
|
clientput fix $m position
|
||||||
|
$m fixed 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server_init
|
||||||
|
###########################################
|
||||||
|
# WARNING: Do not add any code below server_init, if you do SICS may fail to initialise properly.
|
||||||
|
|
||||||
|
# You can add extra-configuration code in ../extraconfig.tcl
|
||||||
4
site_ansto/instrument/dingo/script_validator_ports.tcl
Normal file
4
site_ansto/instrument/dingo/script_validator_ports.tcl
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
set quieckport sics-quieck-val-dingo
|
||||||
|
set serverport sics-server-val-dingo
|
||||||
|
set interruptport sics-interrupt-val-dingo
|
||||||
|
set telnetport sics-telnet-val-dingo
|
||||||
4
site_ansto/instrument/dingo/sics_ports.tcl
Normal file
4
site_ansto/instrument/dingo/sics_ports.tcl
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
set quieckport sics-quieck-dingo
|
||||||
|
set serverport sics-server-dingo
|
||||||
|
set interruptport sics-interrupt-dingo
|
||||||
|
set telnetport sics-telnet-dingo
|
||||||
Reference in New Issue
Block a user