Files
sics/site_ansto/manual/dbSICSch34_fermi_chopper_shortnames.xml
Nick Hauser cbcd98c10c Manual copied from ANSTO branch and committed to RELEASE-3_0 branch.
This directory was accidentally omitted from the merge-release branch during the PSI code merge.
2013-10-28 11:22:59 +11:00

573 lines
27 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rng" type="xml"?>
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0">
<info><title>SKF Fermi Chopper. Under construction.</title><author>
<personname>Nick Hauser</personname>
</author>
<date>2009-03-31 15:50</date>
</info>
<sect1>
<title>Commands</title>
<para>This chapter is untested documentation. The node names and descriptions should be
correct. There will be some further modifications made to the chopper driver. </para>
<para>The Mirrortron/SKF fermi chopper is a SICS script context object???. </para>
<para>There are 2 choppers, the master chopper which uses the prefix <command>mch</command>
and the slave chopper <command>sch</command>. There should be 2 parts, the script
context object, which has the name <command>/instrument/fermi_chopper</command> and the
2 driveable interfaces to the object, which have the names <command>mchs</command> for
speed and <command>mchp</command> for phase. Hence you can <command>drive</command> and
<command>run</command> the <command>mchs</command> and <command>mchp</command>. 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. </para>
<variablelist>
<varlistentry>
<term><command>drive mchs</command>
<replaceable> rpm</replaceable>
</term>
<listitem>
<para>Units: RPM</para>
<para>Runs the fermi chopper to <replaceable>rpm</replaceable>. This will not
always be exactly the value that you set. See permspd below. </para>
<para>Allowed values <command>mchs</command> (master), <command>schs</command>
(slave)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>mchs permspd</command>
<replaceable> rpm</replaceable>
</term>
<listitem>
<para>Units: RPM</para>
<para>Returns the permitted speed closest to the requested
<replaceable>rpm</replaceable>. 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. </para>
<para>Allowed values <command>mchs</command> (master), <command>schs</command>
(slave)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>drive mchp</command>
<replaceable> phase</replaceable>
</term>
<listitem>
<para>Units: ns</para>
<para>Allowed values <command>mchp</command> (master), <command>schp</command>
(slave)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>mchs idle</command>
</term>
<listitem>
<para>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.</para>
<para><command>mchs idle</command></para>
<para><command>drive mchs 4000</command></para>
<para>Simply putting in a value of rpm of the opposite sign won't work.</para>
<para>Allowed values <command>mchs</command> (master), <command>schs</command>
(slave)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>hlist /instrument/fermi_chopper</command>
</term>
<listitem>
<para>Lists all the <command>fermi_chopper</command> nodes</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>hset
/instrument/fermi_chopper/</command><replaceable>chopper</replaceable>/<replaceable>node</replaceable>
<replaceable>val</replaceable>
</term>
<listitem>
<para>Set <replaceable>val</replaceable> on a <replaceable>node</replaceable> of
<replaceable>chopper</replaceable>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>hget
/instrument/fermi_chopper/</command><replaceable>chopper/node</replaceable></term>
<listitem>
<para>Get the value of a <replaceable>chopper/node</replaceable></para>
</listitem>
</varlistentry>
</variablelist>
<para>Allowed speed table ???</para>
<para>The fermi chopper is under the
<computeroutput>/instrument/fermi_chopper</computeroutput> node in hipadaba, which is
where it will be found when using the Gumtree TableTree. This complies with the NeXus
standard. </para>
</sect1>
<sect1>
<title>Parameters</title>
<para>For more detailed description of these parameter, please see the <uri
xlink:href="http://cms.nbi.ansto.gov.au/devices/chopper.-mirrortron-skf"
>MIRRORTRON/SKF chopper manual</uri> in the NBI content management system.</para>
<para><command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable> e.g. </para>
<para><command>hget /instrument/fermi_chopper/mch/rotation_speed</command>
</para>
<para>Contains all the chopper specific parameters</para>
<variablelist>
<varlistentry>
<term><command>device_error</command>
</term>
<listitem>
<para>Communications error reported by the chopper controller. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>rotation_speed</command>
</term>
<listitem>
<para>Units = rpm</para>
<para>Get the actual speed</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_veto_count</command>
</term>
<listitem>
<para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_nonveto_count</command></term>
<listitem>
<para>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</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_acc</command>
</term>
<listitem>
<para>Units = µs</para>
<para>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</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_rep</command>
</term>
<listitem>
<para>Units = µs</para>
<para>Get the phase repeatability. PHASE REPEATABILITY is the standard deviation
of phase.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_ok</command>
</term>
<listitem>
<para>Units = %</para>
<para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>vetowin100ns</command>
</term>
<listitem>
<para>Units = 100ns</para>
<para>This command gets the VETO WINDOW parameter in volatile memory. (This
parameter returns to its default value when the controller is
re-powered.)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>vetowin50ns</command>
</term>
<listitem>
<para>Units = 50ns</para>
<para>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. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>mode</command>
</term>
<listitem>
<para>Gets the MOTOR CONTROL MODE. </para>
<para>0=RPM, 1=PHASE (default)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>speed_setpt</command>
</term>
<listitem>
<para>Units = RPM</para>
<para>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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>prop_gain</command></term>
<listitem>
<para>Gets the motor control proportional gain parameter and saves it in
non-volatile memory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>int_gain</command></term>
<listitem>
<para>Gets the motor control integral gain parameter and saves it in
non-volatile memory</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_gain</command></term>
<listitem>
<para>Gets the motor control phase gain parameter and saves it in non-volatile
memory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ref_delay</command></term>
<listitem>
<para>Units = ms</para>
<para>Gets the phasing time delay and saves it in non-volatile memory</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ref_period</command></term>
<listitem>
<para>Units = ns</para>
<para>Gets the reference period and saves it in non-volatile memory</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>sync_srce</command></term>
<listitem>
<para>Gets the sync source (0=external, 1=internal)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>motdir</command></term>
<listitem>
<para>Gets the motor direction (0=CW, 1=CCW)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>idle_toggle</command></term>
<listitem>
<para>Gets the idle toggle. This is always 1. </para>
</listitem>
</varlistentry>
</variablelist>
<sect2>
<title>System status</title>
<para><command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status</command>
e.g. </para>
<para><command>hget /instrument/fermi_chopper/mch/system_status/motdir</command>. </para>
<para>Contains the system status, which are chopper specific. </para>
<para><command>hget</command> only. </para>
<para>These are read-only binary, allowed values 0 or 1.</para>
<variablelist>
<varlistentry>
<term><command>avc_on</command></term>
<listitem>
<para>gets the ??? 1=true, 0=false</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>motdir</command></term>
<listitem>
<para>gets the motor direction (0=CW, 1=CCW)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>phase_locked</command></term>
<listitem>
<para>1=TDC signal is locked to reference signal. This corresponds to the
PHASE LOCK relay contact.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>lev_complete</command></term>
<listitem>
<para>1=Rotor is Levitated</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>alarm</command></term>
<listitem>
<para>1=Shutdown is latched. The state of this bit matches the status of the
front panel Fault LED and the SHUTDOWN relay contact.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>run</command></term>
<listitem>
<para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>up_to_speed</command></term>
<listitem>
<para>1=Speed is within 1% of the OPERATING SPEED parameter</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ok</command></term>
<listitem>
<para>1=Controller is able and ready to levitate, or is levitating. This
corresponds with the REALY LED flashing or being steady green</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>Interlock status</title>
<para><command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status</command>
e.g. </para>
<para><command>hget /instrument/fermi_chopper/mch/intlck_status/test_mode</command>. </para>
<para>Contains the interlock status. </para>
<para><command>hget</command> only.</para>
<para>Check here if a chopper won't do as it is commanded. To run a chopper, all these
status must be 0. </para>
<para>These are read-only binary, allowed values 0 or 1.</para>
<variablelist>
<varlistentry>
<term><command>test_mode</command></term>
<listitem>
<para>1=Test mode active (rotation prevented).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>cc_shutdown_req</command></term>
<listitem>
<para>1= Motor controller requests shutdown of levitation controller because
it has detected a shutdown condition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>dsp_summ_shtdwn</command></term>
<listitem>
<para>1= DSP Summary Shutdown. Levitation controller request a motor
shutdown.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>cooling_loss</command></term>
<listitem>
<para>1 = Cooling Loss Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>spd_sensor_loss</command></term>
<listitem>
<para>1 = Speed Sensor Loss Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ref_sig_loss</command></term>
<listitem>
<para>1 = Reference Signal Loss</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>over_temp</command></term>
<listitem>
<para>1= Motor Over Temperature Shutdown or RTD Over Temperature
Shutdown.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>vac_fail</command></term>
<listitem>
<para>1 = Vacuum Fail Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>overspeed_or_breakfail</command></term>
<listitem>
<para>1 = Over Speed Trip Shutdown or Motor Brake Fail Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>cc_wd_fail</command></term>
<listitem>
<para>1 = Customer Card Watch Dog Fail Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ext_fault</command></term>
<listitem>
<para>1 = External Fault Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>ups_fail</command></term>
<listitem>
<para>1= UPS Fail Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>emerg_stop</command></term>
<listitem>
<para>1 = Emergency Stop Shutdown</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>pos_alarm</command></term>
<listitem>
<para>1 = Position Shutdown on one of the bearing axis</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>osc_fail</command></term>
<listitem>
<para>1 = Oscillator Fail Shutdown.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>dsp_wd_fail</command></term>
<listitem>
<para>1 = DSP Watch Dog Fail Shutdown</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>Control commands</title>
<para><command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/</command>
e.g. </para>
<para><command>hset /instrument/fermi_chopper/mch/control/setvetowin100 700</command></para>
<para>Contains the settable parameters that control the chopper. </para>
<variablelist>
<varlistentry>
<term><command>device_error</command></term>
<listitem>
<para>??? is this the overall error state. You can't set it, so why is it
under control?</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_vetowin100</command></term>
<listitem>
<para>Units = 100ns</para>
<para>This command sets the VETO WINDOW parameter in volatile memory. (This
parameter returns to its default value when the controller is
re-powered.)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_vetowin50</command></term>
<listitem>
<para>Units = 50ns</para>
<para>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</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_mode</command></term>
<listitem>
<para>Sets the MOTOR CONTROL MODE (0=RPM, 1=PHASE)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_rotspeed</command></term>
<listitem>
<para>Units = rpm</para>
<para>Set the target speed</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_prop_gain</command></term>
<listitem>
<para>Sets the motor control proportional gain parameter and saves it in
non-volatile memory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_int_gain</command></term>
<listitem>
<para>Sets the motor control integral gain parameter and saves it in
non-volatile memory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_phase_gain</command></term>
<listitem>
<para>Sets the motor control phase gain parameter and saves it in
non-volatile memory</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_ref_delay</command></term>
<listitem>
<para>Units = ns</para>
<para>Sets the phasing time delay and saves it in non-volatile memory</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_ref_period</command></term>
<listitem>
<para>Units = ns</para>
<para>Sets the reference period and saves it in non-volatile memory</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_sync_source</command></term>
<listitem>
<para>Sets the sync source (0=external, 1=internal)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set_motor_dir</command></term>
<listitem>
<para>Sets the motor direction (0=CW, 1=CCW)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>start</command></term>
<listitem>
<para>run to the target value from <command>set_rotspeed</command></para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>stop</command></term>
<listitem>
<para>will drive to 0 rpm and delevitate</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>idle_toggle</command></term>
<listitem>
<para>Toggles between run and idle state. </para>
<para>The state of the controller can be requested. A command to read Modbus
coil 3 will be added. </para>
<para>Allowed value: 1</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>reset</command></term>
<listitem>
<para>If the controller is in an alarm state, you need to send this reset
before setting other parameters. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
</chapter>