This directory was accidentally omitted from the merge-release branch during the PSI code merge.
783 lines
39 KiB
XML
783 lines
39 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>Motor Controls & Drive using Python</title><author>
|
||
<personname>Ferdi Franceschini</personname>
|
||
</author>
|
||
<date>2008-11-08 12:48</date>
|
||
</info>
|
||
<sect1>
|
||
<title>Drive commands</title>
|
||
<para>Many objects in SICS are drivable . This means they can run to a new value. Obvious
|
||
examples are motors. Less obvious examples include composite adjustments such as setting
|
||
a wavelength or an energy. Such devices are also called virtual motors. This class of
|
||
objects can be operated by the drive, run, success family of commands. These commands
|
||
cater for blocking and non-blocking modes of operation. </para>
|
||
<para>In the example commands below, <replaceable>"mot1"</replaceable> can be replaced by
|
||
the motor short name, or the hdb_path. hdb_path is the verbose path to the motor e.g.
|
||
<command>/sample/azimuthal_angle</command> whereas the short name is
|
||
<command>stth</command>. The tcl command line only allows use of the short name for
|
||
these commands. </para>
|
||
<para>Commands are <emphasis role="bold">CASE SENSITIVE</emphasis>.</para>
|
||
<para>These python commands are available from both the python command line and python
|
||
scripts. Firstly you must import the sics module. </para>
|
||
<para><command>from gumpy.commons import sics</command>
|
||
</para>
|
||
</sect1>
|
||
<sect1>
|
||
<title>Commands</title>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.execute</command>
|
||
<replaceable>("any_sics_command")</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>executes <replaceable>any_sics_command</replaceable> without feedback.
|
||
Useful for when a sics command is not implemented in python. </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.run</command>
|
||
<replaceable>("mot1", pos1)</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>runs <replaceable>mot1</replaceable> to <replaceable>pos1</replaceable>.
|
||
Asynchronous. </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.set</command>
|
||
<replaceable>("mot1", pos1)</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>is the same as <command>sics.run</command>. Prints log information to
|
||
console. "set" is a universal computing keyword for setting values.
|
||
Asynchronous. </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>success()</command>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python. In tcl, waits and blocks the command connection
|
||
until all pending operations have finished (or an interrupt occured).</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.drive</command>
|
||
<replaceable>("mot1", pos1)</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>is the same as <command>run</command> but it blocks the client that
|
||
requested the <command>drive</command> from issuing commands until the
|
||
motion has finished. This command will set the variables in motion and wait
|
||
until the driving has finished. A <command>drive</command> can be seen as a
|
||
sequence of a <command>run</command> command as stated above immediatly
|
||
followed by a <command>success</command> command</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.multiDrive</command>
|
||
<replaceable>({"mot1":pos1, "mot2":pos2})</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>is the same as <command>sics.drive</command> but allows you to drive a
|
||
list of motors simultaneously. Due to the verbose syntax to create a list,
|
||
this is not the default drive command. </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.setpos</command>
|
||
<replaceable>("mot", oldPosition, newPosition)</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>Sets the position value of <replaceable>oldPosition</replaceable> to
|
||
<replaceable>newPosition</replaceable>. TO BE TESTED.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<command>sics.getValue</command><replaceable>("mot")</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>returns the current position of the motor. All zero point and sign
|
||
corrections are applied</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>hardposition</command>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>list</command>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>reset</command>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>interest</command>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>uninterest</command>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>homerun </command>
|
||
<option>1 or 0</option>
|
||
</term>
|
||
<listitem>
|
||
<para>not implemented in python</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</sect1>
|
||
<sect1>
|
||
<title>Parameters</title>
|
||
<para>These values can be get and set using
|
||
<command>sics.getValue("</command><replaceable>hdb_path</replaceable><command>")</command>
|
||
and
|
||
<command>sics.set("</command><replaceable>hdb_path</replaceable><command>",</command><replaceable>value</replaceable><command>)</command>
|
||
via their hdb_path.</para>
|
||
<para><emphasis role="bold">BUG</emphasis>: If you try to set values that are at a higher
|
||
level of privilege, the console will report OK, but the SICS Server view will report an
|
||
error.</para>
|
||
<para>Parameters to be added: Blockage_Thresh, Blockage_Ratio, Blockage_Fail,
|
||
Backlash_offset, </para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>absenc</command>
|
||
</term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>not implemented in python. Value of absolute encoder not available via
|
||
hdb_path. </para>
|
||
<para>Get the absolute encoder reading. (Only implemented by motors that have
|
||
absolute encoders.)</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>accel</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>accel")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>accel",</command><replaceable>val</replaceable><command>)</command></term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>Get/Set the acceleration along/about the axis controlled by this motor in
|
||
physical units per square second, ie mm/s^2, deg/s^2</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>accesscode</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>accesscode")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>accesscode",</command><replaceable>val</replaceable><command>)</command><emphasis
|
||
role="b">(persists)</emphasis></term>
|
||
<listitem>
|
||
<para>Default = <option>2</option> i.e. user</para>
|
||
<para>Privilege = Manager</para>
|
||
<para>Controls which type of user is allowed to control the motor</para>
|
||
<para>Allowed <replaceable>val</replaceable>
|
||
</para>
|
||
<para><option>0</option> Internal. Motor is reserved for internal use by
|
||
<application>SICS</application></para>
|
||
<para><option>1</option> Manager. Only users who logon as managers are allowed
|
||
to move the motor. Usually just instrument scientists </para>
|
||
<para><option>2</option> User</para>
|
||
<para><option>3</option> Spy. Anyone is allowed to move the motor</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>Blockage_Check_Interval</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>blockage_check_interval")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>blockage_check_interval",</command><replaceable>val</replaceable><command>)</command><emphasis
|
||
role="b">(persists)</emphasis></term>
|
||
<listitem>
|
||
<para>Privilege = Manager</para>
|
||
<para>Units = seconds</para>
|
||
<para>Get/Set the interval at which the motor driver checks the axis for
|
||
significant changes in position</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>decel</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>decel")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>decel",</command><replaceable>val</replaceable><command>)</command></term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>Get/Set the deceleration along/about the axis controlled by this motor in
|
||
physical units per second, ie mm/s<superscript>2</superscript>,
|
||
deg/s<superscript>2</superscript>.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>failafter</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>failafter")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>failafter",</command><replaceable>val</replaceable><command>)</command></term>
|
||
<listitem>
|
||
<para>Privilege = Manager</para>
|
||
<para>This is the number of consecutive failures of positioning operations this
|
||
motor allows before it thinks that something is really broken and aborts the
|
||
experiment</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>fixed</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>fixed")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>fixed",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Default = 1.0</para>
|
||
<para>Privilege = User</para>
|
||
<para>Set to 1.0 to prevent the motor from being moved, set to -1.0 to allow
|
||
movement.</para>
|
||
<para>NOTE: The instrument manager can set the accesscode to prevent users from
|
||
moving a motor.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>home</command>
|
||
<replaceable>val</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
<warning>
|
||
<para>subject to change. This may be changed to a configuration only
|
||
parameter</para>
|
||
</warning>
|
||
</para>
|
||
<para>Privilege = Manager</para>
|
||
<para>Get/Set the home position for the axis which the motor controls, (ie phi,
|
||
chi, two-theta, x, y). So it is the physical home position in the units
|
||
given by the <emphasis role="b">units</emphasis> parameter below, (ie mm,
|
||
degrees, ...)</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>ignorefault</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>ignorefault")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>ignorefault",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Position faults will be ignored if this is greater than zero</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>interruptmode</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>interruptmode")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>interruptmode",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Default = 0 (continue)</para>
|
||
<para>Privilege = Manager</para>
|
||
<para>Controls what effect a motor failure has on operations</para>
|
||
<para>Allowed <replaceable>val</replaceable> one of: </para>
|
||
<para><option>0</option> Continue. A motor failure will not affect other
|
||
operations</para>
|
||
<para><option>1</option> AbortOperation. Stop current hardware operation but no
|
||
scans or batchfiles</para>
|
||
<para><option>2</option> AbortScan. Stop current scan or operation but continue
|
||
processing of batch files with next command</para>
|
||
<para><option>3</option> AbortBatch. Stop all processing, even batch
|
||
files</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>maxretry</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>maxretry")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>maxretry",</command><replaceable>val</replaceable><command>)</command></term>
|
||
<listitem>
|
||
<para>Default = <option>3</option></para>
|
||
<para>Privilege = Manager</para>
|
||
<para>The number of times that <application>SICS</application> will retry a move
|
||
if a motor has not reached the target position to within the required
|
||
precision</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>movecount</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>movecount")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>movecount",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Default=<option>10</option></para>
|
||
<para>Privilege = Manager</para>
|
||
<para>Controls frequency with which position changes are reported if a user
|
||
subscribes interest to a motor. A larger value reduces the frequency</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>precision</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>precision")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>precision",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Privilege = Manager</para>
|
||
<para>Controls precision of movements. If a motor has not completed a move to
|
||
the required precision then the move command will be resent. The number of
|
||
retries is controlled by the maxretry parameter.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>sign</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>sign")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>sign",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Default = <option>1</option></para>
|
||
<para>Privilege = Manager</para>
|
||
<para>Controls direction of motion, set to -1 to reverse.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>softlowerlim</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>softlowerlim")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>softlowerlim",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis>(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>Get/set lower software limit. This is automatically adjusted when you set
|
||
the softzero or use the <command>setpos</command> command.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>softupperlim</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>softupperlim")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>softupperlim",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>Get/set upper software limit. This is automatically adjusted when you set
|
||
the softzero or use the <command>setpos</command> command.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>softzero</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>softzero")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>softzero",</command><replaceable>val</replaceable><command>)</command>
|
||
<emphasis role="b">(persists)</emphasis>
|
||
</term>
|
||
<listitem>
|
||
<para>Default = 0</para>
|
||
<para>Privilege = User</para>
|
||
<para>Sets the zero position to <replaceable>val</replaceable>. You probably
|
||
want to use <command>setpos</command> described below, it's easier to
|
||
understand. </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><command>speed</command></term>
|
||
<term><command>sics.getValue("</command><replaceable>/hdb_path/</replaceable><command>speed")</command></term>
|
||
<term><command>sics.set("</command><replaceable>/hdb_path/</replaceable><command>speed",</command><replaceable>val</replaceable><command>)</command></term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>Get/Set the speed of motion along/about the axis controlled by this motor
|
||
in physical units per second, ie mm/s, deg/s.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<replaceable>mot</replaceable>
|
||
<command>units</command>
|
||
<replaceable>val</replaceable>
|
||
</term>
|
||
<listitem>
|
||
<para>Privilege = User</para>
|
||
<para>Not implemented. Does not have a hdb_path. </para>
|
||
<para>Get/Set the physical units</para>
|
||
<para>Preferred <replaceable>val</replaceable>:</para>
|
||
<para><option>mm</option></para>
|
||
<para><option>degrees</option></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</sect1>
|
||
<sect1>
|
||
<title><command>list </command>output </title>
|
||
<para><replaceable>mot </replaceable><command>list</command> shows the values of the
|
||
parameters listed below, in the order listed below.</para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>Position</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Reports the current positon</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>TargetPosition</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Shows target position</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>hardlowerlim </computeroutput></term>
|
||
<listitem>
|
||
<para>Hardware lower limit for motor set in SICS configuration file</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>hardupperlim </computeroutput></term>
|
||
<listitem>
|
||
<para>Hardware upper limit for motor set in SICS configuration file</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>softlowerlim</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Lower software limit. This is automatically adjusted when you set the
|
||
softzero or use the <command>setpos</command> command.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>softupperlim</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Upper software limit. This is automatically adjusted when you set the
|
||
softzero or use the <command>setpos</command> command.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>softzero</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>The zero position. </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>fixed</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para><option>-1.0</option> prevents movement</para>
|
||
<para><option>1.0</option> allows movement.</para>
|
||
<para>NOTE: The instrument manager can set the accesscode to prevent users from
|
||
moving a motor.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>interruptmode</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Controls what effect a motor failure has on operations</para>
|
||
<para>Values: </para>
|
||
<para><option>0</option> Continue. A motor failure will not affect other
|
||
operations</para>
|
||
<para><option>1</option> AbortOperation. Stop current hardware operation but no
|
||
scans or batchfiles</para>
|
||
<para><option>2</option> AbortScan. Stop current scan or operation but continue
|
||
processing of batch files with next command</para>
|
||
<para><option>3</option> AbortBatch. Stop all processing, even batch
|
||
files</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>precision</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Controls precision of movements. If a motor has not completed a move to
|
||
the required precision then the move command will be resent. The number of
|
||
retries is controlled by the <command>maxretry</command> parameter.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>accesscode</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Controls which type of user is allowed to control the motor</para>
|
||
<para>Allowed values: </para>
|
||
<para><option>0</option> Internal. Motor is reserved for internal use by
|
||
<application>SICS</application></para>
|
||
<para><option>1</option> Manager. Only users who logon as managers are allowed
|
||
to move the motor. Usually just instrument scientists </para>
|
||
<para><option>2</option> User</para>
|
||
<para><option>3</option> Spy. Anyone is allowed to move the motor</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>sign</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Default = 1</para>
|
||
<para>Privilege = Manager</para>
|
||
<para>Controls direction of motion, set to -1 to reverse.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>failafter</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>This is the number of consecutive failures of positioning operations this
|
||
motor allows before it thinks that something is really broken and aborts the
|
||
experiment</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>maxretry</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>The number of times that <application>SICS</application> will retry a move
|
||
if a motor has not reached the target position to within the required
|
||
precision</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>ignorefault</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Position faults will be ignored if this is greater than zero</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>movecount</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Default=10</para>
|
||
<para>Controls frequency with which position changes are reported if a user
|
||
subscribes interest to a motor. A larger value reduces the frequency</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>home</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>home position for the axis which the motor controls, (ie phi, chi,
|
||
two-theta, x, y). So it is the physical home position in the units given by
|
||
the <emphasis role="b">units</emphasis> parameter below, (ie mm, degrees,
|
||
...)</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>speed</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>The speed of motion along/about the axis controlled by this motor in
|
||
physical units per second, ie mm/s, deg/s.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>maxSpeed </computeroutput></term>
|
||
<listitem>
|
||
<para>Speed in <command>units</command>/s</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>accel</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Acceleration along/about the axis controlled by this motor. </para>
|
||
<para>Configurable</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>maxAccel </computeroutput></term>
|
||
<listitem>
|
||
<para>Maximum allowed acceleration in
|
||
<command>units</command>/s<superscript>2</superscript></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<computeroutput>decel</computeroutput>
|
||
</term>
|
||
<listitem>
|
||
<para>Deceleration along/about the axis controlled by this motor. </para>
|
||
<para>Configurable</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>maxDecel </computeroutput></term>
|
||
<listitem>
|
||
<para>Maximum allowed deceleration in
|
||
<command>units</command>/s<superscript>2</superscript></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>motOffDelay </computeroutput></term>
|
||
<listitem>
|
||
<para>Number of msec to wait before switching off a motor after a move</para>
|
||
<para>Default = <option>0</option></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Debug </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Settle </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Blockage_Check_Interval </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Blockage_Thresh </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Blockage_Ratio </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Blockage_Fail </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Backlash_offset </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Protocol </computeroutput><replaceable/></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>absEncoder </computeroutput></term>
|
||
<listitem>
|
||
<para>Allowed values:</para>
|
||
<para><option>0</option> no absolute encoder</para>
|
||
<para><option>1</option> absolute encoder enabled</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>absEncHome </computeroutput></term>
|
||
<listitem>
|
||
<para>The calibrated "home" position in encoder counts</para>
|
||
<para>Required if <command>absEncoder</command> = 1</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>cntsPerX </computeroutput></term>
|
||
<listitem>
|
||
<para>Number of absolute encoder counts per <command>unit</command> of movement
|
||
along/about the axis of motion</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Creep_Offset </computeroutput></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>Creep_Precision </computeroutput></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>posit_count </computeroutput></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>posit_1 </computeroutput></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>posit_2 </computeroutput></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>posit_3 </computeroutput></term>
|
||
<listitem>
|
||
<para/>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><computeroutput>stepsPerX </computeroutput></term>
|
||
<listitem>
|
||
<para>Number of motor steps per <command>unit</command> of movement along/about
|
||
the axis of motion</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</sect1>
|
||
</chapter>
|