Fermi chopper motors should ignore INT1712 interrupts.
Don't halt choppers just because someone tried to interrupt a scan. Also make slave chopper optional in mkFermiMotors.
This commit is contained in:
@@ -429,7 +429,11 @@ namespace eval ::chopper {
|
|||||||
|
|
||||||
proc imot_SHalt {hpath node addr name} {
|
proc imot_SHalt {hpath node addr name} {
|
||||||
global SCode
|
global SCode
|
||||||
|
# Don't halt the choppers just because someone tried to interrupt a scan.
|
||||||
|
if { [GetInt] == "continue" } {
|
||||||
hset $hpath/$node/control/stop 1
|
hset $hpath/$node/control/stop 1
|
||||||
|
hsetprop $hpath/$node abort 1
|
||||||
|
}
|
||||||
return $SCode(OKOK)
|
return $SCode(OKOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -533,7 +537,8 @@ namespace eval ::chopper {
|
|||||||
return $SCode(OKOK)
|
return $SCode(OKOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
proc stop {hpath node addr name} {
|
# Speed motor stop
|
||||||
|
proc Sstop {hpath node addr name} {
|
||||||
global SCode
|
global SCode
|
||||||
hset $hpath/$node/control/stop 1
|
hset $hpath/$node/control/stop 1
|
||||||
hsetprop $hpath/$node abort 1
|
hsetprop $hpath/$node abort 1
|
||||||
@@ -558,7 +563,7 @@ proc mkFSpeedMot {fmot hdbroot chnode addr lowlim uplim} {
|
|||||||
setspeed "::chopper::setSpeed $hdbroot $chnode $addr"\
|
setspeed "::chopper::setSpeed $hdbroot $chnode $addr"\
|
||||||
permspd "::chopper::permSpd $hdbroot $chnode $addr"\
|
permspd "::chopper::permSpd $hdbroot $chnode $addr"\
|
||||||
start "::chopper::start $hdbroot $chnode $addr"\
|
start "::chopper::start $hdbroot $chnode $addr"\
|
||||||
stop "::chopper::stop $hdbroot $chnode $addr"\
|
stop "::chopper::Sstop $hdbroot $chnode $addr"\
|
||||||
}]
|
}]
|
||||||
hsetprop $hdbroot/$chnode abort 0
|
hsetprop $hdbroot/$chnode abort 0
|
||||||
$fmot movecount 5000
|
$fmot movecount 5000
|
||||||
@@ -603,12 +608,17 @@ proc mkFPhaseMot {fmot hdbroot chnode addr lowlim uplim} {
|
|||||||
# @param slave, Slave chopper hdb node name
|
# @param slave, Slave chopper hdb node name
|
||||||
# @param saddr, Slave chopper modbus address
|
# @param saddr, Slave chopper modbus address
|
||||||
#proc mkFermiMotors {mSpdmot sSpdmot master maddr slave saddr} {
|
#proc mkFermiMotors {mSpdmot sSpdmot master maddr slave saddr} {
|
||||||
proc mkFermiMotors {mSpdmot sSpdmot sPhmot master maddr slave saddr} {
|
proc mkFermiMotors { mSpdmot master maddr {sSpdmot "EMPTY"} {sPhmot "EMPTY"} {slave "EMPTY"} {saddr "EMPTY"} } {
|
||||||
|
if {$sSpdmot == "schs"} {
|
||||||
|
# Make master and slave choppers
|
||||||
set hdbPath [mkChoppers " $master $maddr $slave $saddr"]
|
set hdbPath [mkChoppers " $master $maddr $slave $saddr"]
|
||||||
# Create Master Chopper Speed motor object
|
|
||||||
mkFSpeedMot $mSpdmot $hdbPath $master $maddr -24000 24000
|
|
||||||
mkFSpeedMot $sSpdmot $hdbPath $slave $saddr -24000 24000
|
mkFSpeedMot $sSpdmot $hdbPath $slave $saddr -24000 24000
|
||||||
mkFPhaseMot $sPhmot $hdbPath $slave $saddr 0 180
|
mkFPhaseMot $sPhmot $hdbPath $slave $saddr 0 180
|
||||||
|
} else {
|
||||||
|
set hdbPath [mkChoppers " $master $maddr"]
|
||||||
|
}
|
||||||
|
# Create Master Chopper Speed motor object
|
||||||
|
mkFSpeedMot $mSpdmot $hdbPath $master $maddr -24000 24000
|
||||||
}
|
}
|
||||||
|
|
||||||
mkFermiMotors mchs schs schp mch 1 sch 2
|
mkFermiMotors mchs mch 2 schs schp sch 3
|
||||||
|
|||||||
Reference in New Issue
Block a user