SKF Fermi Chopper. Under construction.
Nick Hauser
2009-03-31 15:50
Commands
This chapter is untested documentation. The node names and descriptions should be
correct. There will be some further modifications made to the chopper driver.
The Mirrortron/SKF fermi chopper is a SICS script context object???.
There are 2 choppers, the master chopper which uses the prefix mch
and the slave chopper sch. There should be 2 parts, the script
context object, which has the name /instrument/fermi_chopper and the
2 driveable interfaces to the object, which have the names mchs for
speed and mchp for phase. Hence you can drive and
run the mchs and mchp. With
the master/slave chopper setup, the slave indicates the controller is in PHASE CONTROL
MODE to a master controller. This is required if the slave controller is operating
sub-synchronously to the REFERENCE parameter.
drive mchs
rpm
Units: RPM
Runs the fermi chopper to rpm. This will not
always be exactly the value that you set. See permspd below.
Allowed values mchs (master), schs
(slave)
mchs permspd
rpm
Units: RPM
Returns the permitted speed closest to the requested
rpm. The choppers have a range of speeds that are
not allowed due to resonances. The SICS driver will try to set the chopper
to a speed as close as possible to the requested speed.
Allowed values mchs (master), schs
(slave)
drive mchp
phase
Units: ns
Allowed values mchp (master), schp
(slave)
mchs idle
To change the direction of a chopper, you need to run it to the idle state
first, which should already be set to 0 rpm, then drive the chopper to in
the opposite direction. e.g.
mchs idle
drive mchs 4000
Simply putting in a value of rpm of the opposite sign won't work.
Allowed values mchs (master), schs
(slave)
hlist /instrument/fermi_chopper
Lists all the fermi_chopper nodes
hset
/instrument/fermi_chopper/chopper/node
val
Set val on a node of
chopper
hget
/instrument/fermi_chopper/chopper/node
Get the value of a chopper/node
Allowed speed table ???
The fermi chopper is under the
/instrument/fermi_chopper node in hipadaba, which is
where it will be found when using the Gumtree TableTree. This complies with the NeXus
standard.
Parameters
For more detailed description of these parameter, please see the MIRRORTRON/SKF chopper manual in the NBI content management system.
/instrument/fermi_chopper/chopper/ e.g.
hget /instrument/fermi_chopper/mch/rotation_speed
Contains all the chopper specific parameters
device_error
Communications error reported by the chopper controller.
rotation_speed
Units = rpm
Get the actual speed
phase_veto_count
Get the veto count. VETO is the number of TDC pulses that have fallen
outside the veto window or occurred when a Reference Loss alarm was present
since the veto count was last reset.
phase_nonveto_count
Get the non veto count. NON_VETO is the number of TDC pulses that fall
inside the veto window without Reference Loss alarm being present since the
veto count was last reset
phase_acc
Units = µs
Get the phase accuracy. PHASE ACCURACY is calculated as the mean value of
phase errors. PHASE ACCURACY should equal the PHASE DELAY motor parameter
when the machine is phased locked
phase_rep
Units = µs
Get the phase repeatability. PHASE REPEATABILITY is the standard deviation
of phase.
phase_ok
Units = %
Get phase OK. PHASE OK is the percentage of TDC pulses that fall in a time
window centered around the Reference-In pulse adjusted for PHASE DELAY. The
width of time window is defined by the VETO WINDOW parameter.
vetowin100ns
Units = 100ns
This command gets the VETO WINDOW parameter in volatile memory. (This
parameter returns to its default value when the controller is
re-powered.)
vetowin50ns
Units = 50ns
This command gets the VETO WINDOW parameter in volatile memory. (This
parameter returns to its default value when the controller is re-powered.)
Although the parameter is sent with resolution of 10ns, it will be rounded
and used with precision of 50ns.
mode
Gets the MOTOR CONTROL MODE.
0=RPM, 1=PHASE (default)
speed_setpt
Units = RPM
This command gets RUN SPEED set point parameter value in non-volatile
memory. This only sets this value, it does not run the motor to this value.
prop_gain
Gets the motor control proportional gain parameter and saves it in
non-volatile memory.
int_gain
Gets the motor control integral gain parameter and saves it in
non-volatile memory
phase_gain
Gets the motor control phase gain parameter and saves it in non-volatile
memory.
ref_delay
Units = ms
Gets the phasing time delay and saves it in non-volatile memory
ref_period
Units = ns
Gets the reference period and saves it in non-volatile memory
sync_srce
Gets the sync source (0=external, 1=internal)
motdir
Gets the motor direction (0=CW, 1=CCW)
idle_toggle
Gets the idle toggle. This is always 1.
System status
/instrument/fermi_chopper/chopper/system_status
e.g.
hget /instrument/fermi_chopper/mch/system_status/motdir.
Contains the system status, which are chopper specific.
hget only.
These are read-only binary, allowed values 0 or 1.
avc_on
gets the ??? 1=true, 0=false
motdir
gets the motor direction (0=CW, 1=CCW)
phase_locked
1=TDC signal is locked to reference signal. This corresponds to the
PHASE LOCK relay contact.
lev_complete
1=Rotor is Levitated
alarm
1=Shutdown is latched. The state of this bit matches the status of the
front panel Fault LED and the SHUTDOWN relay contact.
run
1=Permission to run motor. This is given when the RUN bit is set and
the SHUTDOWN bit is not set. This indicates levitation complete AND
position shutdown alarms are enabled. It matches the status of the RUN
relay contact.
up_to_speed
1=Speed is within 1% of the OPERATING SPEED parameter
ok
1=Controller is able and ready to levitate, or is levitating. This
corresponds with the REALY LED flashing or being steady green
Interlock status
/instrument/fermi_chopper/chopper/intlck_status
e.g.
hget /instrument/fermi_chopper/mch/intlck_status/test_mode.
Contains the interlock status.
hget only.
Check here if a chopper won't do as it is commanded. To run a chopper, all these
status must be 0.
These are read-only binary, allowed values 0 or 1.
test_mode
1=Test mode active (rotation prevented).
cc_shutdown_req
1= Motor controller requests shutdown of levitation controller because
it has detected a shutdown condition.
dsp_summ_shtdwn
1= DSP Summary Shutdown. Levitation controller request a motor
shutdown.
cooling_loss
1 = Cooling Loss Shutdown
spd_sensor_loss
1 = Speed Sensor Loss Shutdown
ref_sig_loss
1 = Reference Signal Loss
over_temp
1= Motor Over Temperature Shutdown or RTD Over Temperature
Shutdown.
vac_fail
1 = Vacuum Fail Shutdown
overspeed_or_breakfail
1 = Over Speed Trip Shutdown or Motor Brake Fail Shutdown
cc_wd_fail
1 = Customer Card Watch Dog Fail Shutdown
ext_fault
1 = External Fault Shutdown
ups_fail
1= UPS Fail Shutdown
emerg_stop
1 = Emergency Stop Shutdown
pos_alarm
1 = Position Shutdown on one of the bearing axis
osc_fail
1 = Oscillator Fail Shutdown.
dsp_wd_fail
1 = DSP Watch Dog Fail Shutdown
Control commands
/instrument/fermi_chopper/chopper/control/
e.g.
hset /instrument/fermi_chopper/mch/control/setvetowin100 700
Contains the settable parameters that control the chopper.
device_error
??? is this the overall error state. You can't set it, so why is it
under control?
set_vetowin100
Units = 100ns
This command sets the VETO WINDOW parameter in volatile memory. (This
parameter returns to its default value when the controller is
re-powered.)
set_vetowin50
Units = 50ns
This command sets the VETO WINDOW parameter in volatile memory. (This
parameter returns to its default value when the controller is
re-powered.) Although the parameter is sent with resolution of 10ns, it
will be rounded and used with precision of 50ns
set_mode
Sets the MOTOR CONTROL MODE (0=RPM, 1=PHASE)
set_rotspeed
Units = rpm
Set the target speed
set_prop_gain
Sets the motor control proportional gain parameter and saves it in
non-volatile memory.
set_int_gain
Sets the motor control integral gain parameter and saves it in
non-volatile memory.
set_phase_gain
Sets the motor control phase gain parameter and saves it in
non-volatile memory
set_ref_delay
Units = ns
Sets the phasing time delay and saves it in non-volatile memory
set_ref_period
Units = ns
Sets the reference period and saves it in non-volatile memory
set_sync_source
Sets the sync source (0=external, 1=internal)
set_motor_dir
Sets the motor direction (0=CW, 1=CCW)
start
run to the target value from set_rotspeed
stop
will drive to 0 rpm and delevitate
idle_toggle
Toggles between run and idle state.
The state of the controller can be requested. A command to read Modbus
coil 3 will be added.
Allowed value: 1
reset
If the controller is in an alarm state, you need to send this reset
before setting other parameters.