This directory was accidentally omitted from the merge-release branch during the PSI code merge.
573 lines
27 KiB
XML
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>
|