diff --git a/site_ansto/instrument/pelican/config/chopper/fermimot.tcl b/site_ansto/instrument/pelican/config/chopper/fermimot.tcl index b0ce85f8..27c57966 100644 --- a/site_ansto/instrument/pelican/config/chopper/fermimot.tcl +++ b/site_ansto/instrument/pelican/config/chopper/fermimot.tcl @@ -429,7 +429,11 @@ namespace eval ::chopper { proc imot_SHalt {hpath node addr name} { global SCode - hset $hpath/$node/control/stop 1 + # Don't halt the choppers just because someone tried to interrupt a scan. + if { [GetInt] == "continue" } { + hset $hpath/$node/control/stop 1 + hsetprop $hpath/$node abort 1 + } return $SCode(OKOK) } @@ -533,7 +537,8 @@ namespace eval ::chopper { return $SCode(OKOK) } - proc stop {hpath node addr name} { + # Speed motor stop + proc Sstop {hpath node addr name} { global SCode hset $hpath/$node/control/stop 1 hsetprop $hpath/$node abort 1 @@ -558,7 +563,7 @@ proc mkFSpeedMot {fmot hdbroot chnode addr lowlim uplim} { setspeed "::chopper::setSpeed $hdbroot $chnode $addr"\ permspd "::chopper::permSpd $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 $fmot movecount 5000 @@ -603,12 +608,17 @@ proc mkFPhaseMot {fmot hdbroot chnode addr lowlim uplim} { # @param slave, Slave chopper hdb node name # @param saddr, Slave chopper modbus address #proc mkFermiMotors {mSpdmot sSpdmot master maddr slave saddr} { -proc mkFermiMotors {mSpdmot sSpdmot sPhmot master maddr slave saddr} { - set hdbPath [mkChoppers " $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"] + mkFSpeedMot $sSpdmot $hdbPath $slave $saddr -24000 24000 + 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 - mkFSpeedMot $sSpdmot $hdbPath $slave $saddr -24000 24000 - mkFPhaseMot $sPhmot $hdbPath $slave $saddr 0 180 } -mkFermiMotors mchs schs schp mch 1 sch 2 +mkFermiMotors mchs mch 2 schs schp sch 3