Pullback from Wombat 2015-02-19

This commit is contained in:
Douglas Clowes
2015-02-19 11:51:51 +11:00
parent 042119898d
commit 14be249401
16 changed files with 347 additions and 184 deletions

View File

@ -1,5 +1,9 @@
set scaleval 1000.0 set scaleval 2000.0
set rampstep 100
set rampdelay 3
set motdir 1
set pulserstate 0
proc SetVoltScale {newscaleval} { proc SetVoltScale {newscaleval} {
global scaleval global scaleval
@ -11,16 +15,57 @@ proc VoltScale {involt} {
return [expr {($involt*1.0)/$scaleval}] return [expr {($involt*1.0)/$scaleval}]
} }
proc SetRampParms {_rampstep _rampdelay} {
global rampstep rampdelay
set rampstep $_rampstep
set rampdelay $_rampdelay
}
proc SetVolt {volt} { proc SetVolt {volt} {
global pulserstate
if {$volt== 0} { if {$volt== 0} {
PulserOff PulserOff
set pulserstate 0
} else { } else {
set pulservolt [VoltScale $volt] set pulservolt [VoltScale $volt]
sct_pulser send "VOLT:OFFS $pulservolt; OFFS?" # sct_pulser send "VOLT:OFFS $pulservolt; OFFS?"
# PulserDC $pulservolt
if {$pulserstate==0} {
PulserDC $pulservolt PulserDC $pulservolt
PulserOn PulserOn
set pulserstate 1
} else {
sct_pulser send "VOLT:OFFS $pulservolt; OFFS?"
PulserOn
} }
} }
}
proc VoltSetStep {start step fin delay} {
set i [expr {$start*1.0}]
set loopvar 1
SetVolt $i
if {($start == $fin) || ($step == 0)} {break}
while {$loopvar} {
wait $delay
if {($start < $fin)} {
set i [expr {$i + abs($step)}]
if {$i >= $fin} {
set i $fin
set loopvar 0
}
}
if {($start > $fin)} {
set i [expr {$i - abs($step)}]
if {$i <= $fin} {
set i $fin
set loopvar 0
}
}
SetVolt $i
}
}
proc GetVolt {} { proc GetVolt {} {
sct_pulser transact VOLT:OFFS? sct_pulser transact VOLT:OFFS?
@ -29,25 +74,18 @@ proc GetVolt {} {
proc SingleVolt {volt oscno} { proc SingleVolt {volt oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
if {$volt== 0} { SetVolt $volt
PulserOff oct oscillate_count $oscno
} else { oct oscillate start
set pulservolt [VoltScale $volt]
sct_pulser send "VOLT:OFFS $pulservolt; OFFS?"
pulserDC $pulservolt
PulserOn
}
oscmd start $oscno
hmm countblock
save 0 save 0
oscmd stop
} }
proc SetDC {} { proc SetDC {} {
pulseroff pulseroff
#NOTE: Setting FUNC DC generates a remote ctrl error if the #NOTE: Setting FUNC DC generates a remote ctrl error if the
# burst mode happens to be on # burst mode happens to be on
set resp [sct_pulser transact "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS 0; OFFS?"] set resp [sct_pulser send "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS 0; OFFS?"]
pulseron pulseron
} }
@ -61,54 +99,57 @@ proc VoltRamp {start step fin oscno} {
set j [expr {$i*$step+$start}] set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break} if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break} if {$j< $fin && $step < 0} {break}
if {$j== 0} { SetVolt $j
PulserOff oct oscillate_count $oscno
} else { oct oscillate start
set pulservolt [VoltScale $j]
pulserDC $pulservolt
PulserOn
}
oscmd start $oscno
hmm countblock
save $i save $i
incr i incr i
} }
oscmd stop
} }
proc VoltTextureRamp {start step fin mot tstart tstep tfin oscno} { proc SingleVTexScan {mot tstart tstep tfin oscno} {
histmem mode unlimited global motdir
broadcast in singlevtexscan
set loopvar 1 set loopvar 1
set i_bool 0
histmem mode unlimited
if {$motdir == 1} {
set currentmot $tstart
set i 0 set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
if {$j== 0} {
PulserOff
} else { } else {
set pulservolt [VoltScale $j] set currentmot $tfin
pulserDC $pulservolt set i [expr {int(($tfin-$tstart)/$tstep)}]
PulserOn
} }
sampledescription voltage $j
broadcast voltage $j
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
set m 0 while {$i_bool==0} {
while {1} { drive $mot $currentmot
set n [expr {$m*$tstep+$tstart}] oct oscillate_count $oscno
if {$n> $tfin && $tstep > 0} {break} oct oscillate start
if {$n< $tfin && $tstep < 0} {break}
drive $mot $n
oscmd start $oscno
hmm countblock hmm countblock
save $m save $i
incr m if {($motdir > 0)} {
}
oscmd stop set currentmot [expr {$currentmot + $tstep}]
if {$currentmot > $tfin} {set i_bool 1}
incr i incr i
} else {
set currentmot [expr {$currentmot - $tstep}]
if {$currentmot < $tstart} {set i_bool 1}
incr i -1
}
}
set motdir [expr {(-1*$motdir)}]
}
proc VListTexScan {voltlist mot tstart tstep tfin oscno} {
global rampstep rampdelay
set curvolt [lindex $voltlist 0]
broadcast $curvolt
SetVolt $curvolt
foreach volt $voltlist {
broadcast $volt
VoltSetStep $curvolt $rampstep $volt $rampdelay
SingleVTexScan $mot $tstart $tstep $tfin $oscno
} }
} }
@ -124,12 +165,10 @@ proc SquarePulseTexture {motor start step numsteps volt freq bins oscno} {
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
} }
oscmd stop
} }
proc UniPulseTexture {motor start step numsteps volt freq bins oscno} { proc UniPulseTexture {motor start step numsteps volt freq bins oscno} {
@ -144,12 +183,10 @@ proc UniPulseTexture {motor start step numsteps volt freq bins oscno} {
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
} }
oscmd stop
} }
@ -162,8 +199,8 @@ proc BehlkePulseTexture {motor start step numsteps freq bins oscno} {
PulserOn PulserOn
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
} }
} }
@ -189,12 +226,11 @@ proc SquarePulseVolt {start step fin freq bins oscno} {
PulserOn PulserOn
# sct_pulser send "APPL:SQU $freq,$pulservolt,0" # sct_pulser send "APPL:SQU $freq,$pulservolt,0"
} }
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
incr i incr i
} }
oscmd stop
} }
proc SquarePulseFreq {volt freqlist bins oscno} { proc SquarePulseFreq {volt freqlist bins oscno} {
@ -209,12 +245,11 @@ proc SquarePulseFreq {volt freqlist bins oscno} {
PulserSquare $freq $pulservolt PulserSquare $freq $pulservolt
PulserOn PulserOn
# sct_pulser send "APPL:SQU $freq,$pulservolt,0" # sct_pulser send "APPL:SQU $freq,$pulservolt,0"
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
incr i incr i
} }
oscmd stop
} }
proc BehlkePulseFreq {freqlist bins oscno} { proc BehlkePulseFreq {freqlist bins oscno} {
@ -227,12 +262,11 @@ proc BehlkePulseFreq {freqlist bins oscno} {
wait 3 wait 3
PulserSquareOffs $freq 2.5 2.5 PulserSquareOffs $freq 2.5 2.5
PulserOn PulserOn
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
incr i incr i
} }
oscmd stop
} }
proc SinePulseFreq {volt freqlist bins oscno} { proc SinePulseFreq {volt freqlist bins oscno} {
@ -246,12 +280,11 @@ proc SinePulseFreq {volt freqlist bins oscno} {
wait 3 wait 3
PulserSin $freq $pulservolt PulserSin $freq $pulservolt
PulserOn PulserOn
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
incr i incr i
} }
oscmd stop
} }
@ -271,12 +304,11 @@ proc UniPulseFreq {volt freqlist bins oscno} {
PulserSquareOffs $freq $pulservolt $pulseroffs PulserSquareOffs $freq $pulservolt $pulseroffs
PulserOn PulserOn
# sct_pulser send "APPL:SQU $freq,$pulservolt,[expr {$pulservolt/2}]" # sct_pulser send "APPL:SQU $freq,$pulservolt,[expr {$pulservolt/2}]"
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $i save $i
incr i incr i
} }
oscmd stop
} }
proc UniPulseFatigue {volt freq bins oscno reps runs} { proc UniPulseFatigue {volt freq bins oscno reps runs} {
@ -290,13 +322,14 @@ proc UniPulseFatigue {volt freq bins oscno reps runs} {
for {set i 0} {$i<$runs} {incr i} { for {set i 0} {$i<$runs} {incr i} {
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
for {set j 0} {$j<$reps} {incr j} { for {set j 0} {$j<$reps} {incr j} {
oscmd start $oscno oct oscillate_count $oscno
hmm countblock oct oscillate start
save $j save $j
} }
oscmd stop oscmd stop
} }
PulserOff PulserOff
set pulserstate 0
Histmem_strobo_off Histmem_strobo_off
} }
@ -315,6 +348,7 @@ proc PulserBurst {} {
if {[string first 1 $sval] >-1} {break} if {[string first 1 $sval] >-1} {break}
} }
PulserOff PulserOff
set pulserstate 0
} }
@ -338,6 +372,7 @@ proc VoltPulseRun {vlo vhi freq cycl} {
sct_pulser send "BURS:NCYC $prem; NCYC?" sct_pulser send "BURS:NCYC $prem; NCYC?"
PulserBurst PulserBurst
PulserOff PulserOff
set pulserstate 0
sct_pulser send "BURS:STAT OFF; STAT?" sct_pulser send "BURS:STAT OFF; STAT?"
} }
@ -376,6 +411,7 @@ proc OneTri {volt period} {
sct_pulser send "BURS:NCYC 1; NCYC?" sct_pulser send "BURS:NCYC 1; NCYC?"
PulserBurst PulserBurst
PulserOff PulserOff
set pulserstat 0
} }
@ -384,6 +420,9 @@ publish GetVolt user
publish SetDC user publish SetDC user
publish SetVolt user publish SetVolt user
publish SetVoltScale user publish SetVoltScale user
publish SingleVTexScan user
publish VListTexScan user
publish SetRampParms user
publish SingleVolt user publish SingleVolt user
publish VoltRamp user publish VoltRamp user
publish SquarePulseVolt user publish SquarePulseVolt user
@ -399,5 +438,6 @@ publish SquarePulseTexture user
publish BehlkePulseTexture user publish BehlkePulseTexture user
publish BehlkePulseFreq user publish BehlkePulseFreq user
publish UniPulseTexture user publish UniPulseTexture user
publish VoltSetStep user

View File

@ -54,7 +54,7 @@ proc PulserSquareOffs {Freq Volt Offs} {
proc PulserDC {Volt} { proc PulserDC {Volt} {
#NOTE: Setting FUNC DC generates a remote ctrl error if the #NOTE: Setting FUNC DC generates a remote ctrl error if the
# burst mode happens to be on # burst mode happens to be on
set resp [sct_pulser transact "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS $Volt; OFFS?"] set resp [sct_pulser send "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS $Volt; OFFS?"]
broadcast $resp broadcast $resp
} }

View File

@ -7,7 +7,6 @@ namespace eval counter {
proc ::counter::transferscript {} { proc ::counter::transferscript {} {
variable isc_numchannels variable isc_numchannels
bm status
set val [SplitReply [bm1 gettime]] set val [SplitReply [bm1 gettime]]
for {set i 1} {$i <= $isc_numchannels} {incr i} { for {set i 1} {$i <= $isc_numchannels} {incr i} {
append val " [SplitReply [bm$i getcounts] ]" append val " [SplitReply [bm$i getcounts] ]"

View File

@ -50,7 +50,7 @@ namespace eval ::scobj::[set vendor]_[set device] {
proc debug_log {debug_level arg_string} { proc debug_log {debug_level arg_string} {
# write a timestamped string message to a log file for debugging # write a timestamped string message to a log file for debugging
set debug_threshold 0 set debug_threshold 5
if {$debug_level >= $debug_threshold} { if {$debug_level >= $debug_threshold} {
set fd [open "[set [namespace current]::log_file]" "a"] set fd [open "[set [namespace current]::log_file]" "a"]
set line "[clock format [clock seconds] -format "%T"] $arg_string" set line "[clock format [clock seconds] -format "%T"] $arg_string"

View File

@ -32,7 +32,7 @@ proc ::scobj::lakeshore_m370::mkDriver { sct_controller name device_class simula
set ns "[namespace current]" set ns "[namespace current]"
set catch_status [ catch { set catch_status [ catch {
MakeSICSObj ${name} SCT_OBJECT user float MakeSICSObj ${name} SCT_OBJECT user none
sicslist setatt ${name} klass ${device_class} sicslist setatt ${name} klass ${device_class}
sicslist setatt ${name} long_name ${name} sicslist setatt ${name} long_name ${name}
@ -43,8 +43,8 @@ proc ::scobj::lakeshore_m370::mkDriver { sct_controller name device_class simula
hsetprop ${scobj_hpath} debug_threshold 5 hsetprop ${scobj_hpath} debug_threshold 5
# mkDriver hook code starts # mkDriver hook code starts
::scobj::lakeshore_370::mk_sct_driver $sct_controller environment $name $tol ::scobj::lakeshore_370::mk_sct_driver $sct_controller environment $name $tol
hsetprop ${scobj_hpath}/setpoint permlink data_set T[format "%02d" ${id}]SP01 hsetprop ${scobj_hpath}/Loop1/setpoint permlink data_set T[format "%02d" ${id}]SP01
hsetprop ${scobj_hpath}/setpoint @description T[format "%02d" ${id}]SP01 hsetprop ${scobj_hpath}/Loop1/setpoint @description T[format "%02d" ${id}]SP01
hsetprop ${scobj_hpath}/Sensor/value permlink data_set T[format "%02d" ${id}]S01 hsetprop ${scobj_hpath}/Sensor/value permlink data_set T[format "%02d" ${id}]S01
hsetprop ${scobj_hpath}/Sensor/value @description T[format "%02d" ${id}]S01 hsetprop ${scobj_hpath}/Sensor/value @description T[format "%02d" ${id}]S01
# mkDriver hook code ends # mkDriver hook code ends

View File

@ -58,7 +58,7 @@ namespace eval ::scobj::[set vendor]_[set device] {
proc debug_log {debug_level arg_string} { proc debug_log {debug_level arg_string} {
# write a timestamped string message to a log file for debugging # write a timestamped string message to a log file for debugging
set debug_threshold 0 set debug_threshold 5
if {$debug_level >= $debug_threshold} { if {$debug_level >= $debug_threshold} {
set fd [open "[set [namespace current]::log_file]" "a"] set fd [open "[set [namespace current]::log_file]" "a"]
set line "[clock format [clock seconds] -format "%T"] $arg_string" set line "[clock format [clock seconds] -format "%T"] $arg_string"

View File

@ -20,10 +20,12 @@ MakeRS232Controller sertemp $IP 502
sertemp timeout 300 sertemp timeout 300
sertemp sendterminator 0x0 sertemp sendterminator 0x0
sertemp replyterminator 0x0 sertemp replyterminator 0x0
EvFactory new tc1 west4100 sertemp $ID 2 #ffr 2014-09-22: The modbus addr should be 1 for single port moxas (Not $ID which is a SICS ID)
# EvFactory new tc1 west4100 sertemp $ID 2
EvFactory new $temp_sobj west4100 sertemp 1 2
sicslist setatt tc1 units kelvin sicslist setatt $temp_sobj units kelvin
sicslist setatt tc1 klass @none sicslist setatt $temp_sobj klass @none
} }
# @brief Adds a west400 temperature controller object. # @brief Adds a west400 temperature controller object.

View File

@ -6,7 +6,7 @@ namespace eval motor {
} }
namespace eval ajscmds { namespace eval ajscmds {
namespace export SetRadColl SimpleRun SimpleScan RadCollRun RadCollTimed RadCollScan namespace export SetRadColl SimpleRun SimpleScan RadCollRun RadCollTimed RadCollScan RadCollBiScan
# SetRadColl # SetRadColl
command SetRadColl { command SetRadColl {
@ -34,13 +34,13 @@ catch {
} msg } msg
clientput $msg clientput $msg
} }
# SimpleRun # SimpleRun
command SimpleRun { command SimpleRun {
float=0:inf steptime float=0:inf steptime
int=1:inf numsteps int=1:inf numsteps
} { } {
# RadCollOff
histmem mode time histmem mode time
histmem preset $steptime histmem preset $steptime
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
@ -49,6 +49,7 @@ int=1:inf numsteps
save $i save $i
} }
} }
# SimpleScan # SimpleScan
command SimpleScan { command SimpleScan {
text=drivable motor text=drivable motor
@ -58,7 +59,6 @@ int=1:inf numsteps
float=0:inf steptime float=0:inf steptime
} { } {
# RadCollOff
histmem mode time histmem mode time
histmem preset $steptime histmem preset $steptime
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
@ -68,13 +68,13 @@ float=0:inf steptime
save $i save $i
} }
} }
# RadCollRun # RadCollRun
command RadCollRun { command RadCollRun {
int=1:inf oscno int=1:inf oscno
int=1:inf reps int=1:inf reps
} { } {
# RadCollOn $oscno
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
for {set i 0} {$i < $reps} {incr i} { for {set i 0} {$i < $reps} {incr i} {
@ -83,8 +83,8 @@ int=1:inf reps
hmm countblock hmm countblock
save $i save $i
} }
# RadCollOff
} }
# RadCollTimed # RadCollTimed
command RadCollTimed { command RadCollTimed {
int=1:inf oscno int=1:inf oscno
@ -99,14 +99,16 @@ float=0:inf time
set i 0 set i 0
set timsecs [expr $time*60] set timsecs [expr $time*60]
while {$bool == 0} { while {$bool == 0} {
oct oscillate_count $oscno
oct oscillate start
histmem start block histmem start block
save $i save $i
incr i incr i
set tim2 [expr [clock seconds] - $tim1] set tim2 [expr [clock seconds] - $tim1]
if {$tim2 > $timsecs} {set bool 1} if {$tim2 > $timsecs} {set bool 1}
} }
RadCollOff
} }
# RadCollScan # RadCollScan
command RadCollScan { command RadCollScan {
text=drivable motor text=drivable motor
@ -115,8 +117,6 @@ float step
int=1:inf numsteps int=1:inf numsteps
int=1:inf oscno int=1:inf oscno
} { } {
# RadCollOn $oscno
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
@ -126,8 +126,12 @@ int=1:inf oscno
hmm countblock hmm countblock
save $i save $i
} }
# RadCollOff
} }
} }
namespace import ::ajscmds::* namespace import ::ajscmds::*
publish SetRadColl user publish SetRadColl user
@ -140,3 +144,86 @@ publish RadCollScan user
proc ::commands::isc_initialize {} { proc ::commands::isc_initialize {} {
::commands::ic_initialize ::commands::ic_initialize
} }
# RadCollScanRange
proc RadCollScanRange {motor start step fin oscno} {
if {$step==0} {break}
if {($start > $fin) && ($step > 0)} {break}
if {($start < $fin) && ($step < 0)} {break}
set i_bool 0
histmem mode unlimited
set currentmot $start
set i 0
newfile HISTOGRAM_XY
while {$i_bool==0} {
drive $motor $currentmot
$motor send SH`
oct oscillate_count $oscno
oct oscillate start
hmm countblock
set currentmot [expr {$currentmot + $step}]
if {($step > 0) && ($currentmot > $fin)} {set i_bool 1}
if {($step < 0) && ($currentmot < $fin)} {set i_bool 1}
if {($i_bool == 0)} {run $motor $currentmot}
save $i
incr i
}
}
publish RadCollScanRange user
#RadCollScanBi
proc RadCollScanBi {motor start step fin oscno motdir} {
set i_bool 0
set spx -12500
set spstep [expr {$spx * $step * $motdir}]
histmem stop
histmem mode unlimited
if {$motdir == 1} {
set currentmot $start
set i 0
} else {
set currentmot $fin
set i [expr {int(($fin-$start)/$step)}]
}
drive $motor $currentmot
newfile HISTOGRAM_XY
while {$i_bool==0} {
oct oscillate_count $oscno
oct oscillate start
hmm countblock
if {($motdir > 0)} {
set currentmot [expr {$currentmot + $step}]
if {$currentmot > $fin} {set i_bool 1}
} else {
set currentmot [expr {$currentmot - $step}]
if {$currentmot < $start} {set i_bool 1}
}
if {($i_bool == 0)} {run $motor $currentmot}
save $i
if {($motdir > 0)} {incr i 1} else {incr i -1}
# if {($i_bool == 0)} {
# $motor send SH`
# $motor send PR` $spstep
# $motor send BG`
#
# }
# save $i
}
}
publish RadCollScanBi user

View File

@ -1,7 +1,22 @@
# Euler cradle scan commands for texture runs # Euler cradle scan commands for texture runs
# AJS Dec 2010 # AJS Dec 2010
proc EulerScan {mstart mstep mend oscno} {
ephi speed 5
ephi accel 5
ephi decel 5
echi speed 2
set motdir 1
drive echi 0 ephi $mstart
foreach chival {0 15 30 45 60 75 90} {
drive echi $chival
RadCollScanBi ephi $mstart $mstep $mend $oscno $motdir
set motdir [expr {$motdir * -1}]
}
drive echi 0 ephi $mstart
}
publish EulerScan user
# continous scan for EPHI- the euler cradle phi stage (innermost axis) # continous scan for EPHI- the euler cradle phi stage (innermost axis)
# note make sure controller 2 has the PHISCAN code in it # note make sure controller 2 has the PHISCAN code in it

View File

@ -148,7 +148,7 @@ proc SetHistoOneShot {frq framenum } {
bat_table -set NO_REPEAT_ENTRY 1 NO_REPEAT_TABLE 1 NO_EXECUTE_TABLE 1 PERIOD_INDICES { 0 1 } bat_table -set NO_REPEAT_ENTRY 1 NO_REPEAT_TABLE 1 NO_EXECUTE_TABLE 1 PERIOD_INDICES { 0 1 }
fat_table -set NOS_PERIODS $framenum fat_table -set NOS_PERIODS $framenum
oat_table -set T {0 2200000} NTC 1 oat_table -set T {0 2200000} NTC 1
oat_table -set Y {-0.5 15.5} NYC 16 oat_table -set Y {-0.5 31.5} NYC 16
histmem freq $frq histmem freq $frq
histmem loadconf histmem loadconf
@ -160,4 +160,22 @@ proc SetHistoOneShot {frq framenum } {
publish SetHistoOneShot user publish SetHistoOneShot user
proc SetHistoStd {} {
histmem stop
hmm astop
FAT_TABLE -set MULTI_HOST_HISTO_STITCH_OVERLAP 8 MULTI_HOST_HISTO_JOIN_STITCH_ORDER INVERTED
OAT_TABLE -set X { 991.5 987.5 } NXC 248 Y { -0.5 3.5 } NYC 128 T { 0 20000 } NTC 1
histmem loadconf
}
publish SetHistoStd user
proc SetHistoDX {} {
histmem stop
hmm astop
FAT_TABLE -set MULTI_HOST_HISTO_STITCH_OVERLAP 16 MULTI_HOST_HISTO_JOIN_STITCH_ORDER INVERTED
OAT_TABLE -set X { 991.5 989.5 } NXC 496 Y { -0.5 3.5 } NYC 128 T { 0 20000 } NTC 1
histmem loadconf
}
publish SetHistoDX user

View File

@ -56,20 +56,20 @@ Motor ephi $motor_driver_type [params \
asyncqueue mc2\ asyncqueue mc2\
axis C\ axis C\
units degrees\ units degrees\
hardlowerlim -185\ hardlowerlim -365\
hardupperlim 185\ hardupperlim 365\
maxSpeed 5\ maxSpeed 5\
maxAccel 5\ maxAccel 5\
maxDecel 1\ maxDecel 5\
stepsPerX -12500\ stepsPerX -12500\
absEnc 1\ absEnc 1\
absEncHome $ephi_Home\ absEncHome $ephi_Home\
cntsPerX -4096] cntsPerX -4096]
setHomeandRange -motor ephi -home 0 -lowrange 180 -uprange 180 setHomeandRange -motor ephi -home 0 -lowrange -360 -uprange 360
ephi softlowerlim -180 ephi softlowerlim -360
ephi softupperlim 180 ephi softupperlim 360
ephi home 0 ephi home 0
ephi speed 1 ephi speed 3
ephi movecount $move_count ephi movecount $move_count
ephi precision 0.01 ephi precision 0.01
ephi part sample ephi part sample

View File

@ -24,8 +24,9 @@ if {$sim_mode == "true"} {
#set mx_Home 23263535 #set mx_Home 23263535
set mx_Home 8390583 set mx_Home 8390583
#set mom_Home 9274794 #set mom_Home 9274794
#set mom_Home 8391038 ##set mom_Home 8391038
set mom_Home 8147038 #set mom_Home 8147038
set mom_Home 7979102
set mtth_Home 19927837 set mtth_Home 19927837
#set mphi_Home 7613516 #set mphi_Home 7613516
#set mphi_Home 27847793 #set mphi_Home 27847793
@ -33,6 +34,7 @@ set mphi_Home 8384818
#set mchi_Home 9050090 #set mchi_Home 9050090
#set mchi_Home 25561619 #set mchi_Home 25561619
set mchi_Home 8389526 set mchi_Home 8389526
#set mchi_Home 6847710
#set my_Home 6767221 #set my_Home 6767221
set my_Home 8378212 set my_Home 8378212
set som_Home 17214054 set som_Home 17214054
@ -342,7 +344,7 @@ Motor $sample_stage_rotate $motor_driver_type [params \
asyncqueue mc2\ asyncqueue mc2\
axis E\ axis E\
units degrees\ units degrees\
hardlowerlim -71\ hardlowerlim -121\
hardupperlim 116\ hardupperlim 116\
maxSpeed 5\ maxSpeed 5\
maxAccel 3\ maxAccel 3\
@ -362,8 +364,10 @@ Motor stth $motor_driver_type [params \
asyncqueue mc2\ asyncqueue mc2\
axis F\ axis F\
units degrees\ units degrees\
hardlowerlim 15.8\ hardlowerlim 13\
hardupperlim 29.7\ hardupperlim 29.7\
softlowerlim 13.4\
softupperlim 29.6\
maxSpeed 0.5\ maxSpeed 0.5\
maxAccel 0.1\ maxAccel 0.1\
maxDecel 0.1\ maxDecel 0.1\
@ -373,7 +377,7 @@ Motor stth $motor_driver_type [params \
bias_bits 25\ bias_bits 25\
bias_bias 932070\ bias_bias 932070\
cntsPerX -93207] cntsPerX -93207]
stth softlowerlim 15.9 stth softlowerlim 13.4
stth softupperlim 29.6 stth softupperlim 29.6
stth home 28.481113 stth home 28.481113
#stth home 18.981113 #stth home 18.981113
@ -413,28 +417,34 @@ oct long_name oct
############################ ############################
# #
# Monochromator Focusing (HOPG) set mf_config 1
#Motor mf1 $motor_driver_type [params \
# asyncqueue mc3\
# axis A\
# units degrees\
# hardlowerlim xxxx\
# hardupperlim xxxx\
# maxSpeed xxxx\
# maxAccel xxxx\
# maxDecel xxxx\
# stepsPerX xxxx\
# absEnc 1\
# absEncHome $mf1_Home\
# cntsPerX xxxx]
#setHomeandRange -motor mf1 -home 0 -lowrange 0 -uprange 360
#mf1 speed 1
#mf1 movecount $move_count
#mf1 precision 0.01
#mf1 part monochromator
#mf1 long_name mf1
switch $mf_config {
1 {
# Monochromator Focusing (HOPG)
Motor mf1 $motor_driver_type [params \
asyncqueue mc3\
axis A\
units degrees\
hardlowerlim -0.1\
hardupperlim 1.1\
maxSpeed 0.1\
maxAccel 0.1\
maxDecel 0.1\
stepsPerX 22000\
absEnc 1\
absEncHome 3965\
cntsPerX -3500]
setHomeandRange -motor mf1 -home 0 -lowrange 0 -uprange 1
mf1 speed 0.02
# mf1 movecount $move_count
mf1 precision 0.005
mf1 part monochromator
mf1 long_name mf1
}
# Monochromator Focusing (Ge) # Monochromator Focusing (Ge)
## ffr 31/7/2012 ## ffr 31/7/2012
## absEncHome was found to be 16777217 on 31/7/2012 when the ## absEncHome was found to be 16777217 on 31/7/2012 when the
## encoder clocked over to 114 counts to give a posn ## encoder clocked over to 114 counts to give a posn
@ -443,26 +453,32 @@ oct long_name oct
## and has a 24bit range (ie max cnt=16777216) ## and has a 24bit range (ie max cnt=16777216)
## I set a bias of 10000 counts with absenchome = 10000 ## I set a bias of 10000 counts with absenchome = 10000
## so that SICS can drive the axis to the allowed limits. ## so that SICS can drive the axis to the allowed limits.
2 {
Motor mf2 $motor_driver_type [params \ Motor mf2 $motor_driver_type [params \
asyncqueue mc3\ asyncqueue mc3\
axis A\ axis A\
units degrees\ units degrees\
hardlowerlim -2\ hardlowerlim -0.1\
hardupperlim 2\ hardupperlim 1.1\
maxSpeed 0.1\ maxSpeed 0.1\
maxAccel 0.1\ maxAccel 0.1\
maxDecel 0.1\ maxDecel 0.1\
stepsPerX 22000\ stepsPerX 22000\
absEnc 1\ absEnc 1\
absEncHome 42768\ absEncHome 10000\
bias_bits 24\ bias_bits 24\
bias_bias 10000\ bias_bias 10000\
cntsPerX -3500] cntsPerX -3500]
setHomeandRange -motor mf2 -home 0 -lowrange 0 -uprange 2 setHomeandRange -motor mf2 -home 0 -lowrange 0 -uprange 1
mf2 speed 0.02 mf2 speed 0.02
mf2 precision 0.005 mf2 precision 0.005
mf2 part monochromator mf2 part monochromator
mf2 long_name mf2 mf2 long_name mf2
}
}
# Slit 1, right # Slit 1, right
Motor ss1r $motor_driver_type [params \ Motor ss1r $motor_driver_type [params \

View File

@ -1,7 +1,8 @@
# This must be loaded by motor_configuration.tcl # This must be loaded by motor_configuration.tcl
set sphi_Home 7938520 set sphi_Home 7938520
set schi_Home 7586052 #set schi_Home 7586052
set schi_Home 9932404
set sy_Home 7790194 set sy_Home 7790194
set sx_Home 7556649 set sx_Home 7556649

View File

@ -104,7 +104,7 @@ name = sample_stage
optype = motion_axis optype = motion_axis
[12tmagnet_oxford] [12tmagnet_oxford]
desc = "12 Tesla Oxford Magnet" desc = "12 Tesla Oxford Magnet"
driver = "oxford_labview" driver = "oxford12tlv"
imptype = magnetic_field imptype = magnetic_field
ip = 10.157.205.3 ip = 10.157.205.3
port = 55001 port = 55001
@ -294,37 +294,17 @@ imptype = motion_axis
asyncqueue = sct asyncqueue = sct
desc = "VF1 Blue furnace temperature controller" desc = "VF1 Blue furnace temperature controller"
dev_id = 1 dev_id = 1
driver = "west4100"
imptype = temperature
ip = 10.157.205.24
port = 502
[vf1_west6100]
asyncprotocol = modbus_ap
desc = "VF1 Blue furnace 6100 temperature controller"
dev_id = 1
driver = "west_6100" driver = "west_6100"
imptype = temperature imptype = temperature
ip = 10.157.205.24 ip = 10.157.205.24
port = 502 port = 502
timeout = 2000
[vf2_west4100] [vf2_west4100]
asyncqueue = sct asyncqueue = sct
desc = "VF2 Blue furnace temperature controller" desc = "VF2 Blue furnace temperature controller"
dev_id = 1 dev_id = 1
driver = "west4100"
imptype = temperature
ip = 10.157.205.25
port = 502
[vf2_west6100]
asyncprotocol = modbus_ap
desc = "VF2 Blue furnace 6100 temperature controller"
dev_id = 1
driver = "west_6100" driver = "west_6100"
imptype = temperature imptype = temperature
ip = 10.157.205.25 ip = 10.157.205.25
port = 502 port = 502
timeout = 2000

View File

@ -29,8 +29,9 @@ fileeval $cfPath(environment)/sct_agilent_33220A.tcl
fileeval $cfPath(environment)/sct_hiden_xcs.tcl fileeval $cfPath(environment)/sct_hiden_xcs.tcl
fileeval $cfPath(environment)/sct_huber_pilot.tcl fileeval $cfPath(environment)/sct_huber_pilot.tcl
fileeval $cfPath(environment)/sct_isotech_ps.tcl fileeval $cfPath(environment)/sct_isotech_ps.tcl
fileeval $cfPath(environment)/temperature/sct_eurotherm_2000.tcl #fileeval $cfPath(environment)/temperature/sct_eurotherm_2000.tcl
fileeval $cfPath(environment)/temperature/sct_eurotherm_m2000.tcl #fileeval $cfPath(environment)/temperature/sct_eurotherm_m2000.tcl
fileeval $cfPath(environment)/temperature/eurotherm_3200_sct.tcl
fileeval $cfPath(environment)/sct_keithley_2700.tcl fileeval $cfPath(environment)/sct_keithley_2700.tcl
fileeval $cfPath(environment)/sct_keithley_m2700.tcl fileeval $cfPath(environment)/sct_keithley_m2700.tcl
fileeval $cfPath(environment)/temperature/sct_lakeshore_218.tcl fileeval $cfPath(environment)/temperature/sct_lakeshore_218.tcl
@ -52,6 +53,7 @@ fileeval $cfPath(environment)/temperature/sct_julabo_lh45_gen.tcl
fileeval $cfPath(environment)/temperature/sct_qlink.tcl fileeval $cfPath(environment)/temperature/sct_qlink.tcl
fileeval $cfPath(environment)/temperature/west400.tcl fileeval $cfPath(environment)/temperature/west400.tcl
fileeval $cfPath(environment)/temperature/sct_west4100.tcl fileeval $cfPath(environment)/temperature/sct_west4100.tcl
fileeval $cfPath(environment)/temperature/sct_west_6100.tcl
fileeval $cfPath(environment)/magneticField/sct_oxford_labview.tcl fileeval $cfPath(environment)/magneticField/sct_oxford_labview.tcl
fileeval $cfPath(environment)/magneticField/sct_oxford12tlv.tcl fileeval $cfPath(environment)/magneticField/sct_oxford12tlv.tcl
fileeval $cfPath(environment)/he3/sct_he3.tcl fileeval $cfPath(environment)/he3/sct_he3.tcl
@ -65,13 +67,16 @@ fileeval $cfPath(commands)/pulser.tcl
fileeval $cfPath(commands)/hvcommands.tcl fileeval $cfPath(commands)/hvcommands.tcl
fileeval $cfPath(commands)/vactex.tcl fileeval $cfPath(commands)/vactex.tcl
fileeval $cfPath(commands)/eulerscan.tcl fileeval $cfPath(commands)/eulerscan.tcl
fileeval $cfPath(commands)/cfcommands.tcl
fileeval $cfPath(anticollider)/anticollider.tcl fileeval $cfPath(anticollider)/anticollider.tcl
fileeval $cfPath(beamline)/sct_he3_polanal.tcl
fileeval $cfPath(hmm)/hmm_rapid.tcl fileeval $cfPath(hmm)/hmm_rapid.tcl
source gumxml.tcl source gumxml.tcl
# Wombat only change to hvcommands' scaleval variable # Wombat only change to hvcommands' scaleval variable
SetVoltScale 2000.0 SetVoltScale 2000.0
# The Alice Thing # The Alice Thing
# Qlink : 9600, 8 data, 1 stop, No Parity, None Flow # Qlink : 9600, 8 data, 1 stop, No Parity, None Flow
# LS340 : 9600, 7 data, 1 stop, Odd Parity, None Flow # LS340 : 9600, 7 data, 1 stop, Odd Parity, None Flow