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.
19
site_ansto/manual/db5SICSInstallationManual.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS Installation Manual</title>
|
||||
<subtitle>DRAFT ANSTO version 0.1</subtitle>
|
||||
<date>20th May 2009</date>
|
||||
<author><personname>Ferdi Francheschini</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
</info>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch22_installation.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</book>
|
||||
66
site_ansto/manual/db5SICSUserGuideQuokka.xml
Normal file
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info><title>UNDER CONSTRUCTION User Guide for Small Angle Scattering. Quokka
|
||||
Edition</title><subtitle>ANSTO version 0.2. May 2013</subtitle>
|
||||
<date/>
|
||||
<author><personname>Katy Wood</personname></author><author><personname>Nick
|
||||
Hauser</personname></author>
|
||||
<bibliosource>Manually maintained from this source ie. can't Xinclude a book into a book.
|
||||
</bibliosource>
|
||||
<cover>
|
||||
<para>This is a cover </para>
|
||||
<para>This guide is not intended to replace your local contact, but to jog your memory
|
||||
if you are operating independently. Anything strange, call your local
|
||||
contact…</para>
|
||||
</cover>
|
||||
</info>
|
||||
<part>
|
||||
<title>QUICK START</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5quickstart_quokka.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5sics_login.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part>
|
||||
<title>DETAIL</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch26_magnet_11T.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part>
|
||||
<title>SAMPLE ENVIRONMENT</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch18_programmer_overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part>
|
||||
<title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch23_extraconfig.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
</book>
|
||||
68
site_ansto/manual/db5SICSUserGuideTaipan.xml
Normal file
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info><title>User Guide for Triple Axis Spectrometer. Taipan Edition</title><subtitle>ANSTO
|
||||
version 0.2. May 2013</subtitle>
|
||||
<date/>
|
||||
<author><personname>Kirrily Rule</personname></author>
|
||||
<cover>
|
||||
<para>This is a cover. Does not appear in the pdf or HTML versions. Why???</para>
|
||||
<para>This guide is not intended to replace your local contact, but to jog your memory
|
||||
if you are operating independently. Anything strange, call your local
|
||||
contact…</para>
|
||||
</cover>
|
||||
<bibliosource>Manually maintained from this source ie. can't Xinclude a book into a book.
|
||||
</bibliosource>
|
||||
</info>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5quickstart_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5sics_login.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<part>
|
||||
<title>EXPERIMENT</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5alignment_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5experiment_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="db5environment_control_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part>
|
||||
<title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="db5environment_config_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
</book>
|
||||
155
site_ansto/manual/db5SICSUserManual3Axis.xml
Normal file
@@ -0,0 +1,155 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS User Manual for Triple Axis Spectrometers</title>
|
||||
<subtitle>DRAFT ANSTO version 0.2 27 June 2012</subtitle>
|
||||
<date>27 June 2012</date>
|
||||
<author><personname>Mark Koennecke</personname></author>
|
||||
<author><personname>Heinz Heer</personname></author>
|
||||
<author><personname>Ferdi Franceschini</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
<bibliosource>db5SICSUserManual.xml plus instrument specific chapters.
|
||||
Manually maintained from this source ie. can't Xinclude a book into a book. </bibliosource>
|
||||
</info>
|
||||
<part><title>INTRODUCTION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch1_intro.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch17_control_and_interrupt.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch19_interrupting_sics.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch20_file_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>COMMANDS IN DETAIL</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch24_UB_matrix.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch2_motor_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch6_counters.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<!-- Taipan does not use a histogram memory server, only a beam monitor server.
|
||||
Hence, the histogram memory chapter is omitted -->
|
||||
<!--
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch3_histogram_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
-->
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch4_simple_scan_taipan_only.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch5_batch.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch7_user_defn_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch8_batch_manager.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch10_tcl_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch23_extraconfig.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch9_motor_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch21_histogram_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch14_troubleshooting.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>OVERVIEW OF SICS DESIGN AND IMPLEMENTATION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch18_programmer_overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
|
||||
</book>
|
||||
159
site_ansto/manual/db5SICSUserManualPelican.xml
Normal file
@@ -0,0 +1,159 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS User Manual for Pelican TOF Polarisation spectrometer</title>
|
||||
<subtitle>DRAFT ANSTO version 0.1 13 May 2013</subtitle>
|
||||
<date>27 June 2012</date>
|
||||
<author><personname>Mark Koennecke</personname></author>
|
||||
<author><personname>Heinz Heer</personname></author>
|
||||
<author><personname>Ferdi Franceschini</personname></author>
|
||||
<author><personname>Jing Chen</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
<bibliosource>db5SICSUserManual.xml plus instrument specific chapters.
|
||||
Manually maintained from this source ie. can't Xinclude a book into a book. </bibliosource>
|
||||
</info>
|
||||
<part><title>INTRODUCTION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch1_intro.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch17_control_and_interrupt.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch19_interrupting_sics.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch20_file_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>COMMANDS IN DETAIL</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch34_fermi_chopper_shortnames.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch28_LF_amplifier.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch2_motor_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch6_counters.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch3_histogram_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch4_simple_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch5_batch.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch7_user_defn_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch8_batch_manager.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch10_tcl_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch23_extraconfig.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch9_motor_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch21_histogram_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch14_troubleshooting.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>OVERVIEW OF SICS DESIGN AND IMPLEMENTATION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch18_programmer_overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
|
||||
</book>
|
||||
166
site_ansto/manual/db5SICSUserManualPlatypus.xml
Normal file
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS User Manual for Reflectometry. Platypus Edition</title>
|
||||
<subtitle>ANSTO version 0.2. 1 August 2012</subtitle>
|
||||
<date>1st August 2012</date>
|
||||
<author><personname>Mark Koennecke</personname></author>
|
||||
<author><personname>Heinz Heer</personname></author>
|
||||
<author><personname>Ferdi Franceschini</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
<bibliosource>db5SICSUserManual.xml plus instrument specific chapters.
|
||||
Manually maintained from this source ie. can't Xinclude a book into a book. </bibliosource>
|
||||
</info>
|
||||
<part><title>INTRODUCTION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch1_intro.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch17_control_and_interrupt.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch19_interrupting_sics.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch20_file_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>PLATYPUS SPECIFIC COMMANDS</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch32_platypus_disk_chopper.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch27_autosave.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch11_julabo.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>COMMANDS IN DETAIL</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch18_programmer_overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch2_motor_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch6_counters.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch3_histogram_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch4_simple_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch5_batch.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch7_user_defn_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch8_batch_manager.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch10_tcl_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch23_extraconfig.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch9_motor_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch21_histogram_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch14_troubleshooting.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
|
||||
</book>
|
||||
142
site_ansto/manual/db5SICSUserManualPowder.xml
Normal file
@@ -0,0 +1,142 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS User Manual for Diffractometers</title>
|
||||
<subtitle>DRAFT ANSTO version 0.1</subtitle>
|
||||
<date>6th April 2009</date>
|
||||
<author><personname>Mark Koennecke</personname></author>
|
||||
<author><personname>Heinz Heer</personname></author>
|
||||
<author><personname>Ferdi Franceschini</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
<bibliosource>db5SICSUserManual.xml plus instrument specific chapters.
|
||||
Manually maintained from this source ie. can't Xinclude a book into a book. </bibliosource>
|
||||
</info>
|
||||
<part><title>INTRODUCTION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch1_intro.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch17_control_and_interrupt.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch19_interrupting_sics.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch20_file_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>COMMANDS IN DETAIL</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch18_programmer_overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch2_motor_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch6_counters.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch3_histogram_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch4_simple_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch5_batch.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch7_user_defn_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch8_batch_manager.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch10_tcl_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch23_extraconfig.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch9_motor_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch21_histogram_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch14_troubleshooting.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
|
||||
</book>
|
||||
194
site_ansto/manual/db5SICSUserManualQuokka.xml
Normal file
@@ -0,0 +1,194 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS User Manual for Small Angle Scattering. Quokka Edition</title>
|
||||
<subtitle>ANSTO version 0.2. 1 August 2012</subtitle>
|
||||
<date>1st August 2012</date>
|
||||
<author><personname>Mark Koennecke</personname></author>
|
||||
<author><personname>Heinz Heer</personname></author>
|
||||
<author><personname>Ferdi Franceschini</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
<bibliosource>db5SICSUserManual.xml plus instrument specific chapters.
|
||||
Manually maintained from this source ie. can't Xinclude a book into a book. </bibliosource>
|
||||
</info>
|
||||
<part><title>INTRODUCTION</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch1_intro.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch17_control_and_interrupt.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch19_interrupting_sics.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch20_file_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>QUOKKA SPECIFIC COMMANDS</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch27_autosave.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch16_ordela_hv.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch15_beamstop.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch12_velsel.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch11_julabo.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch25_rheometer.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch26_magnet_11T.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>COMMANDS IN DETAIL</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch18_programmer_overview.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch2_motor_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch6_counters.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch3_histogram_control.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch4_simple_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch5_batch.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch7_user_defn_scan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch8_batch_manager.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch10_tcl_commands.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part><title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch23_extraconfig.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch9_motor_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch21_histogram_configuration.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch14_troubleshooting.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
|
||||
</book>
|
||||
49
site_ansto/manual/db5SICSUserManualSampleEnvironment.xml
Normal file
@@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info>
|
||||
<title>SICS User Manual for Sample Environment</title>
|
||||
<subtitle>DRAFT ANSTO version 0.1 30 October 2012</subtitle>
|
||||
<date>30 October 2012</date>
|
||||
<author><personname>Mark Koennecke</personname></author>
|
||||
<author><personname>Heinz Heer</personname></author>
|
||||
<author><personname>Ferdi Francheschini</personname></author>
|
||||
<author><personname>Jing Chen</personname></author>
|
||||
<author><personname>Nick Hauser</personname></author>
|
||||
<bibliosource>db5SICSUserManual.xml plus instrument specific chapters.
|
||||
Manually maintained from this source ie. can't Xinclude a book into a book. </bibliosource>
|
||||
</info>
|
||||
<part><title>SAMPLE ENVIRONMENT</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch11_julabo.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch25_rheometer.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch26_magnet_11T.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="dbSICSch28_LF_amplifier.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
|
||||
|
||||
</book>
|
||||
412
site_ansto/manual/db5alignment_taipan.xml
Normal file
@@ -0,0 +1,412 @@
|
||||
<?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>Preparing the spectrometer</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Aligning the spectrometer</title>
|
||||
<warning>
|
||||
<title>12T magnet</title>
|
||||
<para> When using the 12T magnet on TAIPAN, you must work in fixed Ki mode, as the
|
||||
magnet is too heavy to move M2. Consider the energy transfer range required to
|
||||
determine the appropriate Ei for these experiments. </para>
|
||||
</warning>
|
||||
<para>After discussing your instrument preferences with your local contact, they will align
|
||||
the spectrometer in the following way:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Drive the spectrometer to the required incident energy (for elastic mode) =
|
||||
e.g. 14.87meV</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Drive the analyser arm to the straight-through position (s2=0, a1=0, a2=0,
|
||||
atrans=19)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Visually check the straight-through arm and change any motors
|
||||
accordingly</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Place the Ni sample on the sample stage, and Borated Al sheets over the
|
||||
analyser collimator. (the detector saturates at ~35,000 counts/sec)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check M1 alignment with a rocking scan</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check S2=0 alignment with a rocking scan</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check A2=0 alignment with a rocking scan</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Remove the Al attenuator and insert collimators if they need changing</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Perform the Ni powder calibration, using 5 peaks</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>From the least squares fitting of these peaks, update the new M1 offset, M2
|
||||
offset and S2 offset.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>With the spectrometer at S2=-50, and atrans=0 (to view the Vanadium incoherent
|
||||
peak from the Ni sample can), perform an A1 scan and an A1/A2 scan around the
|
||||
elastic position.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Perform an En scan (where Ei will move if Ef is fixed). Here the FWHM of the
|
||||
peak will give you the resolution of your instrument.</para>
|
||||
<para/>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para></para>
|
||||
<para></para>
|
||||
<para></para>
|
||||
<para></para>
|
||||
<para></para>
|
||||
<para></para>
|
||||
<para></para>
|
||||
<para/>
|
||||
<para/>
|
||||
<para/>
|
||||
<para/>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Focusing monochromator and analyser</title>
|
||||
<para> Currently the continuous focusing mechanism is not implemented on Taipan. If you wish
|
||||
to use focusing for your inelastic measurement, consider the following parameters sets. </para>
|
||||
<para>
|
||||
<table frame="all" >
|
||||
<title></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" colnum="1"/>
|
||||
<colspec colname="c2" colnum="2"/>
|
||||
<colspec colname="c3" colnum="3"/>
|
||||
<colspec colname="c4" colnum="4"/>
|
||||
<colspec colname="c5" colnum="5"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Focus condition</entry>
|
||||
<entry>mvfocus</entry>
|
||||
<entry>mhfocus</entry>
|
||||
<entry>avfocus</entry>
|
||||
<entry>ahfocus</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>Flat</entry>
|
||||
<entry>50</entry>
|
||||
<entry>220</entry>
|
||||
<entry>0</entry>
|
||||
<entry>0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Optimal for 14.87meV</entry>
|
||||
<entry>125</entry>
|
||||
<entry>155</entry>
|
||||
<entry>125</entry>
|
||||
<entry>80</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Optimal for 30.5meV</entry>
|
||||
<entry>150</entry>
|
||||
<entry>170</entry>
|
||||
<entry>180</entry>
|
||||
<entry>65</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
<warning>
|
||||
<title/>
|
||||
<para>When driving Ei or Ef in this stage of the setup, the software calculates a
|
||||
constant-Q instrument position based on the current UB matrix (usually from the
|
||||
previous experiment). This will often drive S1, S2, sgu and sgl to unexpected
|
||||
positions. To constrain these so that they don’t move unexpectedly, fix the motors
|
||||
so they don't move. </para>
|
||||
<para>Motors can be fixed (1) or unfixed (-1) and their status checked by typing the
|
||||
motor name </para>
|
||||
<para><command>> S1 fixed 1 (fixes S1) </command></para>
|
||||
<para><command>> S1 fixed -1 (unfixes S1)</command></para>
|
||||
<para>Alternatively you can drive vei which drives only the M1 and M2 motors – this
|
||||
cannot be used in a scan command. </para>
|
||||
<para><command>> drive vei 14.87 </command></para>
|
||||
<para><command>> tasub update </command></para>
|
||||
<para><command>> ei </command></para>
|
||||
<para/>
|
||||
</warning>
|
||||
<warning>
|
||||
<title/>
|
||||
<para>You will often need to “home” the slits if they have been unplugged or removed
|
||||
during the setup. The pa_left and pa_right slits can vary between -27 (open) and 0
|
||||
(closed), while the pa_top and pa_bottom slits can vary between -200 (open) and 0
|
||||
(closed). The same limits apply for the ps_slits. </para>
|
||||
<para><command>> pa_left homerun 1 </command> (this will do all of the slits)</para>
|
||||
</warning>
|
||||
<para/>
|
||||
<para>Confirm the following setup for your experiment. </para>
|
||||
<para><command>> tasub ss </command> (Scattering sense = M+1, S-1, A+1) </para>
|
||||
<para><command>> tasub ana ss </command> (Scattering sense = M+1, S-1, A+1) </para>
|
||||
<para><command>> tasub outofplane </command> (Confines the scattering sense to be in the
|
||||
plane) </para>
|
||||
<para><command>> tasub const </command> (Defines whether Ei or Ef are fixed, or if both
|
||||
are fixed) </para>
|
||||
<para/>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Aligning your sample</title>
|
||||
<para> At the beginning of an experiment load the “Experimental setup” script (in the
|
||||
scripts window, right screen) to list the most important configuration identifiers for
|
||||
the experiment. These should appear in the header lines in your data files. For
|
||||
instance, these include: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Proposal number and title</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>User’s name, and research team present</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Local contact’s name</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Sample information including number of samples and sample environment
|
||||
requirements</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Particular instrument setup features (scattering sense, collimation, filters,
|
||||
slits etc)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Next the UB matrix needs to be set. To do this, you need to input the cell parameters
|
||||
and at least 2 reflections which will define your scattering plane. These can be
|
||||
calculated for your system using the file “/home/taipan/calculatedDspaceTAIPAN.xls” or
|
||||
something similar, such as the ICSD website. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>> tasub listub</command></term>
|
||||
<listitem>
|
||||
<para>shows the current UB matrix, cell parameters and reference peaks</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub cell a b c alpha beta gamma</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para> input new lattice parameters</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub addref qh qk ql</command></term>
|
||||
<listitem>
|
||||
<para> adds a new reflection to the list when Taipan is at the reflection</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub addref qh qk ql a3 a4 sgu sgl ei ef</command></term>
|
||||
<listitem>
|
||||
<para> adds a new reflection from a calculation</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub addauxref qh qk ql</command></term>
|
||||
<listitem>
|
||||
<para> adds a new reflection where S2 is calculated from the lattice parameters
|
||||
only. This will also calculate the relative S1 positions</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub del num</command></term>
|
||||
<listitem>
|
||||
<para> deletes one of the previously stored reflections</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub listref</command></term>
|
||||
<listitem>
|
||||
<para> lists the reflections that have been input</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub makeub 1 2</command></term>
|
||||
<listitem>
|
||||
<para> calculates new UB matrix from reflections 1 and 2</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub calcang qh qk ql ei ef</command></term>
|
||||
<listitem>
|
||||
<para> calculates reflection from UB matrix – be careful when changing lattice
|
||||
parameters, as this command won’t use them! Output: M2 S1 S2 sgu sgl
|
||||
A2</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>Sample alignment</title>
|
||||
<para> For Ei = Ef = 14.87 meV</para>
|
||||
<para><command>> tasub cell 5.011 5.85 10.353 90 92.4 90</command>
|
||||
</para>
|
||||
<para><command>> tasub calcang 1 0 0 14.87 14.87 (calculated S2 = 27.1) </command></para>
|
||||
<para><command>> tasub calcang 1 1 0 14.87 14.87 (calculated S2 = 35.9) </command></para>
|
||||
<para><command>> tasub calcang 0 2 0 14.87 14.87 (calculated S2 = 47.3) </command></para>
|
||||
<para>Drive the instrument to the calculated S2 value of a particular peak. The other
|
||||
motor positions are not correctly set at this point. This will also give you a
|
||||
relative s1 position between the peaks.</para>
|
||||
<para>Scan S1 until you find the peak. </para>
|
||||
<para><command>> bmonscan clear</command></para>
|
||||
<para><command>> bmonscan add S1 -10 0.2 </command> (motor name, starting point, step
|
||||
size)</para>
|
||||
<para><command>> bmonscan run 60 timer 5 </command> (scans 60 points, for a time of 5
|
||||
seconds per point)</para>
|
||||
<para>OR</para>
|
||||
<para><command>> runscan s1 -10 0 101 time 5 </command> (motor, start, stop, # pts,
|
||||
time (the mode in secs))</para>
|
||||
<para>(this does not work for multiple motors yet)</para>
|
||||
<para> (This step should hopefully be replaced by the differential scan, or the
|
||||
rate-meter) </para>
|
||||
<para>Once the peak position (S1) has been optimised, scan sgu and sgl </para>
|
||||
<para><command>> runscan sgl -10 10 21 time 1 </command></para>
|
||||
<para><command>> runscan sgu -10 10 21 time 1 </command></para>
|
||||
<para>Once the peak has been optimised with SGU and SGL (and you are sitting at the peak
|
||||
position!!) you can set this as one of your reference peaks, where the current motor
|
||||
values define the peak position. </para>
|
||||
<para><command>> tasub addref 1 0 0 </command></para>
|
||||
<para>Calculate the values of S1 and S2 for the next peak – use the </para>
|
||||
<para><command>> tasub calcang qh qk ql ei ef </command></para>
|
||||
<para>command to see the relative values of S1 and S2 as calculated from the lattice
|
||||
parameters!</para>
|
||||
<para>
|
||||
</para>
|
||||
<para>Repeat for at least one other peak, preferably one orthogonal to the first. </para>
|
||||
<para><command>> tasub addref 0 0 1 </command></para>
|
||||
<para><command>> tasub listref </command> (to see the observed peaks in your list
|
||||
(e.g. number 4 and 5)) </para>
|
||||
<para><command>> tasub makeub 4 5 </command>(this used peaks 4 and 5 to calculate the
|
||||
UB matrix) </para>
|
||||
<para><command>> tasub update </command></para>
|
||||
<para><command>> tasub listub </command></para>
|
||||
<para>Once this has been set, then you should be able to drive your spectrometer to any
|
||||
accessible qh, qk, ql and en.</para>
|
||||
<warning>
|
||||
<title>
|
||||
</title>
|
||||
<para>At the end of each change, be sure to type <command>> tasub
|
||||
update</command></para>
|
||||
</warning>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Reducing background with a slit scan</title>
|
||||
<para>Once your sample has been aligned, add the PG filter to the instrument. You could test
|
||||
the effectiveness of the filter by scanning a peak that will display higher order
|
||||
scattering – e.g. (½ 0 0) which does not exist except from higher order scattering from
|
||||
the (1 0 0 ). Sometimes you might want to add an additional filter. Finally you can scan
|
||||
your slits to reduce the background scattering. </para>
|
||||
<para><command>> runscan pa_left -15 -2 27 time 1 </command>(scans 27 points, for a time
|
||||
of 1 seconds per point)</para>
|
||||
<para> After this, consider if you need to add more shielding to the detector drum or any
|
||||
other part of the instrument (e.g. manual slits on analyser arm, additional PG
|
||||
filters).</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Setting the (new) lattice parameters</title>
|
||||
<para>During your experiment you may need to change the lattice parameters (due to a phase
|
||||
transition, thermal expansion etc). If this is the case you MUST find and optimise two
|
||||
new reflections to make your UB-matrix from. For example, scan a Qh peak as follows: </para>
|
||||
<para><command>> drive qh 4 qk 0 ql 0 en 0 </command></para>
|
||||
<para><command>> runscan qh 3.985 4.015 31 time 5 </command></para>
|
||||
<para>The centre of this scan should be close to 4, but could be shifted. This will be the
|
||||
fit value from the scan. Then you can <emphasis role="underline">change the <emphasis
|
||||
role="bold">a</emphasis> lattice parameter</emphasis> accordingly in tasub </para>
|
||||
<para>
|
||||
a<subscript>new</subscript>=a<subscript>old</subscript>(peak<subscript>calculated</subscript>/peak<subscript>centre
|
||||
from scan</subscript>) </para>
|
||||
<para><inlineequation>
|
||||
<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
|
||||
<mml:mrow>
|
||||
<mml:msub>
|
||||
<mml:mrow>
|
||||
<mml:mi>a</mml:mi>
|
||||
</mml:mrow>
|
||||
<mml:mrow>
|
||||
<mml:mi>n</mml:mi>
|
||||
<mml:mi>e</mml:mi>
|
||||
<mml:mi>w</mml:mi>
|
||||
</mml:mrow>
|
||||
</mml:msub>
|
||||
<mml:mo>=</mml:mo>
|
||||
<mml:msub>
|
||||
<mml:mrow>
|
||||
<mml:mi>a</mml:mi>
|
||||
</mml:mrow>
|
||||
<mml:mrow>
|
||||
<mml:mi>old</mml:mi>
|
||||
</mml:mrow>
|
||||
</mml:msub>
|
||||
<mml:mrow>
|
||||
<mml:mo>(</mml:mo>
|
||||
<mml:mfrac>
|
||||
<mml:mrow>
|
||||
<mml:mo>⁢</mml:mo>
|
||||
<mml:msub>
|
||||
<mml:mrow>
|
||||
<mml:mi>peak</mml:mi>
|
||||
</mml:mrow>
|
||||
<mml:mrow>
|
||||
<mml:mi>calculated</mml:mi>
|
||||
</mml:mrow>
|
||||
</mml:msub>
|
||||
</mml:mrow>
|
||||
<mml:mrow>
|
||||
<mml:msub>
|
||||
<mml:mrow>
|
||||
<mml:mi>peak</mml:mi>
|
||||
</mml:mrow>
|
||||
<mml:mrow>
|
||||
<mml:mi>centre from scan</mml:mi>
|
||||
</mml:mrow>
|
||||
</mml:msub>
|
||||
</mml:mrow>
|
||||
</mml:mfrac>
|
||||
<mml:mo>)</mml:mo>
|
||||
</mml:mrow>
|
||||
</mml:mrow>
|
||||
</mml:math>
|
||||
</inlineequation></para>
|
||||
<para><command>> tasub cell a b c alpha beta gamma </command></para>
|
||||
<para>The next peak can be aligned in the same way </para>
|
||||
<para><command>> drive qh 0 qk 4 ql 0 en 0 </command></para>
|
||||
<para><command>> runscan qk 3.985 4.015 31 time 5 </command></para>
|
||||
<para>Once you have changed your unit cell parameters, you need to add the two new peaks
|
||||
into your reference list, optimise the goniometers again and re-make your UB matrix with
|
||||
these new peaks</para>
|
||||
<para><command>> tasub cell</command></para>
|
||||
<para>3 9 15 90 90 90</para>
|
||||
<para><command>> tasub cell 2.9 8.7 14.5 90 90 90</command></para>
|
||||
<para><command>> tasub addauxref 0 0 4 </command></para>
|
||||
<para><command>> tasub addauxref 0 4 0</command></para>
|
||||
<literallayout>
|
||||
NO QH QK QL S1 S2 SGU SGL EI EF
|
||||
1 0.00 0.00 4.00 22.62 -27.10 0.00 0.00 25.86 14.87 (old lattice parameters)
|
||||
2 0.00 4.00 0.00 -65.74 -51.21 0.00 0.00 25.86 14.87 (old lattice parameters)
|
||||
3 0.00 0.00 4.00 -156.85 -28.38 0.00 0.00 25.86 14.87 (new lattice parameters)
|
||||
4 0.00 4.00 0.00 -66.10 -53.30 0.00 0.00 25.86 14.87 (new lattice parameters)
|
||||
</literallayout>
|
||||
<para>You can see already that by changing the lattice parameters the scattering angles
|
||||
change. So you need to optimise these peaks again, as before and add the new reflections
|
||||
to the list before re-making your UB-matrix.</para>
|
||||
<para>If your sample is cubic (and remains cubic at low temperatures) and you are in the HK0
|
||||
scattering plane, then the lattice parameters are best set with a peak that involved
|
||||
both H and K – for instance the 110 peak.</para>
|
||||
<para>Make sure after you have changed your lattice parameters, and both peaks have been
|
||||
added to the reference list that you remake your ub matrix! </para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
241
site_ansto/manual/db5environment_config_taipan.xml
Normal file
@@ -0,0 +1,241 @@
|
||||
<?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>Sample environment configuration (Local contact only)</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>How to edit configuration files</title>
|
||||
<para>On ics1-taipan, you'll be editing SICS configuration files so that SICS will load the
|
||||
driver for a device. The editor is <command>vim</command>. This process will be done
|
||||
through a graphical interface in the future. </para>
|
||||
<variablelist>
|
||||
<title><command>vim</command> commands</title>
|
||||
<varlistentry>
|
||||
<term><command>:colorscheme ron </command></term>
|
||||
<listitem>
|
||||
<para>Change the color scheme. This make editing easier</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>/tasub</command></term>
|
||||
<listitem>
|
||||
<para> This searches for the string “tasub” </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>i</term>
|
||||
<listitem>
|
||||
<para>insert mode. Add text.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>r</term>
|
||||
<listitem>
|
||||
<para>replace. Replace a character.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>x</term>
|
||||
<listitem>
|
||||
<para> delete</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>ESC key</term>
|
||||
<listitem>
|
||||
<para> escape out of the current mode</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Lakeshore 340 configuration</title>
|
||||
<para>When using the Lakeshore 340, various things need to be changed in the
|
||||
configuration files. This should only be done by the local contact.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim extraconfig.tcl</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Remove both the # in the following four lines </para>
|
||||
<para>#catch </para>
|
||||
<para>#add_sct_… </para>
|
||||
<para># hsetprop </para>
|
||||
<para>#}msg </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>High voltage configuration</title>
|
||||
<para>When using the High voltage setup, various things need to be changed in the
|
||||
configuration files. This should only be done by the local contact.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim extraconfig.tcl</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Remove both the # in the four lines </para>
|
||||
<para># Make AsyncP… </para>
|
||||
<para># Make AsyncP… </para>
|
||||
<para># pulser delay </para>
|
||||
<para># pulser timeout </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure that the IP on the function generator is set to the following:
|
||||
137.157.203.149 </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Get an electrician such as Dan Bartlett to confirm the setup is safe!
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>12T magnet configuration</title>
|
||||
<para>When using the 12T magnet, various things need to be changed in the configuration
|
||||
files. This should only be done by the local contact. </para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Turn on the magnet laptop – check that the Ethernet cable and grey cable
|
||||
are connected. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click on “SICS oxford instruments” to bring up the front panel. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click on ITC503 Front Panel </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>open a Putty terminal</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/server </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> sudo vim taipan_configuration.tcl </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>On line 59, remove the # from # fileeval ../aerotech.tcl </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>On line 61 is s1 in the TASUB command. Change this to vs1. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
<para>If you made a mistake, quit without changing by typing
|
||||
<command>:q!</command> and start again.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> cd config/motors/ </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> sudo vim motor_configuration.tcl </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>/magnet</command>
|
||||
</para>
|
||||
<para>Search for the string “magnet” </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The following {0} should change to {1} for the magnet: </para>
|
||||
<para>If {0}{</para>
|
||||
<para> # Convert magnet angle to s1 angle </para>
|
||||
<para> VarMake vs1speed float user </para>
|
||||
<para> vs1speed 1 </para>
|
||||
<para> … </para>
|
||||
<para> } } </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim extraconfig.tcl</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>#--------------- </para>
|
||||
<para># 12T magnet </para>
|
||||
<para>#--------------- </para>
|
||||
<para>Remove the # in the following lines (choose which temp controller method
|
||||
you require – running with the Mercury, or as Legacy mode) </para>
|
||||
<para>#add_oxford_magnet "magnetic" 137.157.203.153 </para>
|
||||
<para>#add_oxford_mercury "tc9" 137.157.203.151 7020 2.0 "\r" </para>
|
||||
<para>#add_itc500 tc1 137.157.203.151 7020 2.0 "@8" This is for running in
|
||||
Legacy Mode (to look like ITC500) </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><superscript>3</superscript>He configuration</title>
|
||||
<para>When using the <superscript>3</superscript>He setup, various things need to be
|
||||
changed in the configuration files. This should only be done by the local contact.</para>
|
||||
<para>When using the <superscript>3</superscript>He setup, you need to switch to the
|
||||
appropriate speeds and accelerations for the elongated instrument. To do this, in
|
||||
the PuTTy window, go to </para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim taipan_setup.txt</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change the 0 to 1 to turn on this file </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
207
site_ansto/manual/db5environment_control_taipan.xml
Normal file
@@ -0,0 +1,207 @@
|
||||
<?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>Sample environment control</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Cryo-furnace with Lakeshore 340 controller</title>
|
||||
<para>The typical closed cycle cryo-furnace used on Taipan is cryo-furnace #1 (CF1). This
|
||||
uses a Lakeshore 340 controller. SICS is capable of reading and driving the temperature
|
||||
on this device. The Moxa box must be installed, and connected to the Lakeshore hardware.
|
||||
In the future, the Lakeshores will have a dedicated Moxa box. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> tc1_driveable2</command></term>
|
||||
<listitem>
|
||||
<para>shows the sample temperature from channel A </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> run tc1_driveable 200 </command></term>
|
||||
<listitem>
|
||||
<para>drives the regulation temperature (B) to 200K </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> wait 600 </command></term>
|
||||
<listitem>
|
||||
<para>shows wait in seconds </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> drive tc1_driveable 200 </command></term>
|
||||
<listitem>
|
||||
<para>drives the regulation temperature (B) to 200K and waits for it to be
|
||||
within 1K of this value before continuing to the next command </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>>sct_ls340_tc1 send "RANGE?" </command></term>
|
||||
<listitem>
|
||||
<para>this will query the heater power range – 0 = off, 5 = 100W </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>>sct_ls340_tc1 send "RANGE 1" </command></term>
|
||||
<listitem>
|
||||
<para>this will set the heater power range. Set to a value between 0-5 </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>The fine control of the temperature parameters, such as tolerance, heater power range,
|
||||
etc, can be adjusted by clicking on the SIC Server tree view. Alternatively you can use
|
||||
certain commands listed below in a batch file: </para>
|
||||
<para>Check the heater power range of the closed cycle. To heat the sample relatively
|
||||
quickly you need to have the heater range to 5. To reach base temperature (10K or less),
|
||||
the heater range should be set to 4 or lower. </para>
|
||||
<figure>
|
||||
<title>Setting temperature</title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree3.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para> These detailed commands can be used (also in batch files) to control the temperature
|
||||
parameters:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hlist –val /sics/tc1/sensor </command></term>
|
||||
<listitem>
|
||||
<para>shows set points and sensors etc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hget /sics/tc1/sensor/setpoint1</command></term>
|
||||
<listitem>
|
||||
<para>to show the temperature</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hset /sics/tc1/sensor/setpoint1 200</command></term>
|
||||
<listitem>
|
||||
<para>to set the temperature to 200K – there is no blockage of the drive
|
||||
functions when this command is used</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> > hset /sample/tc9/Loop1/setpoint 200</command></term>
|
||||
<listitem>
|
||||
<para>to set the temperature of the 12T magnet to 200K</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hget /sample/tc9/Loop3/sensor</command></term>
|
||||
<listitem>
|
||||
<para>to read the temperature of the 12T magnet</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hset /sics/tc1/heater/heaterRange 5</command></term>
|
||||
<listitem>
|
||||
<para>for 100W power, or 4 for 10W power</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hset /sics/tc1/control/tolerance 1 5</command></term>
|
||||
<listitem>
|
||||
<para>to set the tolerance of 5K to reach desired temperature</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>High voltage control</title>
|
||||
<para> Sics and gumtree can also control the high voltage rig which is also set up on CF1.
|
||||
The following commands will be useful</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> pulseron</command></term>
|
||||
<listitem>
|
||||
<para>turn on HV</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> pulseroff</command></term>
|
||||
<listitem>
|
||||
<para>turn off HV</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> getvolt</command></term>
|
||||
<listitem>
|
||||
<para/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> setvolt 100</command></term>
|
||||
<listitem>
|
||||
<para>sets the voltage to 100V</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>12T magnet control. Important procedures before ramping the field. </title>
|
||||
<warning>
|
||||
<title>Protect the slits</title>
|
||||
<para>Once you have set your slits, turn the motion control <emphasis role="bold"
|
||||
>OFF</emphasis> (on the same box as the shutter control) and <emphasis role="bold"
|
||||
>unplug</emphasis> the 4 cables. Turn the motion control ON again. The slits are
|
||||
now in a safe mode for driving the field.</para>
|
||||
</warning>
|
||||
<warning>
|
||||
<title>Stop magnet quenching</title>
|
||||
<para>To perform field ramps safely (without risk of quenching), you should put the beam
|
||||
stop down. To do this, turn the motion control OFF (on the same box as the shutter
|
||||
control), ramp the field into persistent mode and then turn the motion control ON
|
||||
again. Once you have reached your new field, drive to a new Q-E position to ensure
|
||||
that all the motors still behave correctly after the motion OFF. If not, you might
|
||||
have to reset particular motors: </para>
|
||||
<para><command>> m1 send RS</command> (this will reset the m1 motor controller)</para>
|
||||
<para>To keep the beam stop down</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para> Turn off motion control</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Close valve located at the base of the beam stop</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Turn on motion control</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</warning>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>12T magnet control. Driving s1</title>
|
||||
<para>There are two parameters you will need for driving the <command>s1</command> via the
|
||||
sample stick. <command>vs1</command> drives the motor from the command line, while
|
||||
<command>dummy_s1</command> is in the UB matrix and scan parameters. So use these in
|
||||
the following way: </para>
|
||||
<para><command>> drive vs1 30</command> (in the command line – this drives the motor to a
|
||||
value) </para>
|
||||
<para><command>> runscan dummy_s1 25 35 101 time 1</command>
|
||||
</para>
|
||||
<para><command>> runscan qh</command>
|
||||
</para>
|
||||
<para>When running a powder sample in the magnet, fix <command>dummy_s1</command>
|
||||
</para>
|
||||
<para><command>> dummy_s1 fix 1</command> (> dummy_s1 fix 0 to unfix)</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
120
site_ansto/manual/db5experiment_taipan.xml
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>Running an experiment</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title> Creating and running batch files</title>
|
||||
<para>Batch files are stored in /usr/local/nbi/sics/taipan/batch and are just text files
|
||||
with the extension .tcl. You can edit these in a text editor, or the editing panel
|
||||
of the left window. Your file, filename.tcl can be run by dragging and dropping into
|
||||
the Buffer Queue and then run by pressing the “Play” button. </para>
|
||||
<para>You can also queue additional files to run by dragging and dropping them into
|
||||
Batch Queue window. These will then be run sequentially. Files can be removed and
|
||||
edited or replaced as desired from the Batch Queue window. Once the file has been
|
||||
read into the buffer, it can no longer be edited. For this reason it is recommended
|
||||
that multiple short files are created. These can be run multiple times if necessary.
|
||||
</para></sect1>
|
||||
<sect1><title>Synchronising validation server with control server</title>
|
||||
<para>There are actual 2 version of the SICS control server running, the one that does the
|
||||
control, and one that you use to validate scripts, known as the validation server. The
|
||||
validation server doesn't control real hardware. The hardware is virtual. Motors move
|
||||
instantaneously. It is used to check that a batch file that you have written doesn't
|
||||
violate the limits of motion, and to check that you haven't made syntactic errors. </para>
|
||||
<para>With Taipan, the UB matrix has to be shared between the 2 versions of the server. To
|
||||
do this, in the SICS validation terminal type:</para>
|
||||
<para><command>> sync </command></para>
|
||||
<para>Note that this is not the SICS control terminal. You'll need to open a connection to
|
||||
SICS on port 60013 via a putty session. </para>
|
||||
<para>Later versions of Gumtree for Taipan will include a button that synchronises the
|
||||
servers. </para>
|
||||
<para>Sync'ing may take some time. To ensure that you know when the sync has finished, you
|
||||
can type</para>
|
||||
<para><command>> getlog command </command></para>
|
||||
<para><command>> getlog value </command></para>
|
||||
<para><command>> sync </command></para>
|
||||
<para>You will see something like the following feedback on the validator connection as the
|
||||
sync command is running:</para>
|
||||
<para><literallayout>
|
||||
Executing -> sync <- from socket 16
|
||||
Executing -> restore ../script_validator//log/status.tcl <- from dummy socket
|
||||
pa_top = -102.499977
|
||||
pa_bottom = -104.000000
|
||||
pa_top = -102.499977
|
||||
pa_bottom = -104.000000
|
||||
pa_top = -102.499977
|
||||
pa_bottom = -104.000000
|
||||
pa_left = -24.699976
|
||||
….
|
||||
New en position: 46.434
|
||||
New qm position: 6.048
|
||||
Simulation Server has SYNCHRONIZED!
|
||||
Fixed motors may not have correct positions</literallayout></para>
|
||||
<para>Then
|
||||
when the synchronisation is complete issue </para>
|
||||
<para><command>> getlog kill</command></para>
|
||||
<para>to kill the feedback, otherwise
|
||||
you will see log messages for the commands that run when you validate the script, but
|
||||
maybe that’s desirable. </para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Validation of scans</title>
|
||||
<para>To check your script, you can validate it using the Validation tab in the Buffer
|
||||
Queue. Drag your file into the Validate window and click on Validate. Information
|
||||
about your file will scroll through the log screen. Use this to see if any errors or
|
||||
motor limits have been reached. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Example experiment script</title>
|
||||
<para>
|
||||
<literallayout>
|
||||
# This is a comment and will not be executed
|
||||
drive qh 2.5 qk 0 ql 3.5 en 32
|
||||
bmonscan clear
|
||||
bmonscan add qh 2.5 0.1
|
||||
bmonscan run 31 monitor 1000000
|
||||
|
||||
# This is another comment with important information
|
||||
drive qh -2.5 qk 0 ql 3.5 en 32
|
||||
bmonscan clear
|
||||
bmonscan add s2 -55 -0.1
|
||||
bmonscan run 31 monitor 1000000
|
||||
clientput [m2 absenc] # (prints out the m2 absolute encoder value)
|
||||
</literallayout>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Motor errors</title>
|
||||
<warning>
|
||||
<title/>
|
||||
<para>If you ever see the following error message:</para>
|
||||
<para><command>> ERROR: THREAD ZERO NOT RUNNING ON CONTROLLER on m1</command></para>
|
||||
<para> Type the following (this is case sensitive)</para>
|
||||
<para><command>> m1 send RS </command></para>
|
||||
<para> If you ever see the following error message:</para>
|
||||
<para><command>> ERROR: MOTOR CONTROLLER RUN ERROR: -102 on m2 </command></para>
|
||||
<para>Type the following (this is case sensitive)</para>
|
||||
<para><command>> m2 send MG RUNF</command> and if this is a number not 0 or 1,
|
||||
then:</para>
|
||||
<para><command>> m2 send RUNF=0</command></para>
|
||||
</warning>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Creating and accessing log files</title>
|
||||
<para>There are new log files written for each experiment. These are located in:
|
||||
<computeroutput>J:\data\current\reports\exp#\LogFile.txt</computeroutput> on the
|
||||
Microsoft Windows DAV computer. These will be updated as the experiment progresses
|
||||
and should include both commands from the command line window and the batch file. </para>
|
||||
<para>Use a program such as WinSCP to transfer files to your computer. The files will be
|
||||
in
|
||||
<computeroutput>/experiments/taipan/data/current/reports/exp#/LogFile.txt</computeroutput>.
|
||||
These files are archived to a proposal directory at the end of each cycle e.g.
|
||||
<computeroutput>/experiments/taipan/data/proposal/proposal#/reports/exp#/LogFile.txt</computeroutput>
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
64
site_ansto/manual/db5quickstart_quokka.xml
Normal file
@@ -0,0 +1,64 @@
|
||||
<?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>Quick Start Guide</title><author>
|
||||
<personname>Katy Wood</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Running Gumtree</title>
|
||||
<para>To start running Gumtree, double click on the icon on the desktop. Two windows will
|
||||
automatically open and you will be logged in as “Manager”. (Why manager, why not
|
||||
user???)</para>
|
||||
<para>This quick start guide assume SICS is configured for your experiment, and that it is
|
||||
running. If it is not, go to the section <xref linkend="status"/></para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>To edit and run a batch file</title>
|
||||
<figure>
|
||||
<title>Script Perspective </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Open one of the previous batch files by double clicking on a .tcl file in the Project
|
||||
Explorer window. This will appear in the Tree View panel above. You can edit this and
|
||||
save it with a new file name (File -> Save as). </para>
|
||||
<para>To run this file, drag it into the Buffer Queue. You can either press Play, or
|
||||
Validate to check the file. </para>
|
||||
<para>All commands listed with <emphasis>>
|
||||
</emphasis> should be typed into the SICS command line in Gumtree, or in the black
|
||||
sicsclient window opened via PuTTy (Taipan ICS profile). Either of these will drive the
|
||||
instrument. Only those commands executed from Gumtree will be printed into the Log file.
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title> Live visualisation of data</title>
|
||||
<figure>
|
||||
<title>Analysis Perspective </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree1.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>In the Scripting control window, choose </para>
|
||||
<para><command>Load Script -> analysis -> live data</command> to show a live plot as the
|
||||
counts are taken. </para>
|
||||
<para>In this window, you can tick (or untick) autofit (for a Gaussian fit), and normalise
|
||||
(which normalises to time) You can also change which detector you wish to see the counts
|
||||
in:</para>
|
||||
<para>bm1_counts = monitor </para>
|
||||
<para>bm2_counts = detector </para>
|
||||
<para>You can also control the fitting range in this window </para>
|
||||
<para>You can add past data sets to the Plot 2 window (beneath the liveplot window).
|
||||
Highlight the plots you wish to add, be sure you have the correct detector choice and
|
||||
x-axis parameter selected, then click on the button “Import Data Files to Plot2”. </para>
|
||||
<note><title>Stopping the instrument</title>
|
||||
<para>At any time, to interrupt SICS you can click on the red button, or type >>INT1712
|
||||
3</para>
|
||||
</note>
|
||||
</sect1>
|
||||
</chapter>
|
||||
64
site_ansto/manual/db5quickstart_taipan.xml
Normal file
@@ -0,0 +1,64 @@
|
||||
<?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>Quick Start Guide</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Running Gumtree</title>
|
||||
<para>To start running Gumtree, double click on the icon on the desktop. Two windows will
|
||||
automatically open and you will be logged in as “Manager”. (Why manager, why not
|
||||
user???)</para>
|
||||
<para>This quick start guide assume SICS is configured for your experiment, and that it is
|
||||
running. If it is not, go to the section <xref linkend="status"/></para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>To edit and run a batch file</title>
|
||||
<figure>
|
||||
<title>Script Perspective </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Open one of the previous batch files by double clicking on a .tcl file in the Project
|
||||
Explorer window. This will appear in the Tree View panel above. You can edit this and
|
||||
save it with a new file name (File -> Save as). </para>
|
||||
<para>To run this file, drag it into the Buffer Queue. You can either press Play, or
|
||||
Validate to check the file. </para>
|
||||
<para>All commands listed with <emphasis>>
|
||||
</emphasis> should be typed into the SICS command line in Gumtree, or in the black
|
||||
sicsclient window opened via PuTTy (Taipan ICS profile). Either of these will drive the
|
||||
instrument. Only those commands executed from Gumtree will be printed into the Log file.
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title> Live visualisation of data</title>
|
||||
<figure>
|
||||
<title>Analysis Perspective </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree1.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>In the Scripting control window, choose </para>
|
||||
<para><command>Load Script -> analysis -> live data</command> to show a live plot as the
|
||||
counts are taken. </para>
|
||||
<para>In this window, you can tick (or untick) autofit (for a Gaussian fit), and normalise
|
||||
(which normalises to time) You can also change which detector you wish to see the counts
|
||||
in:</para>
|
||||
<para>bm1_counts = monitor </para>
|
||||
<para>bm2_counts = detector </para>
|
||||
<para>You can also control the fitting range in this window </para>
|
||||
<para>You can add past data sets to the Plot 2 window (beneath the liveplot window).
|
||||
Highlight the plots you wish to add, be sure you have the correct detector choice and
|
||||
x-axis parameter selected, then click on the button “Import Data Files to Plot2”. </para>
|
||||
<note><title>Stopping the instrument</title>
|
||||
<para>At any time, to interrupt SICS you can click on the red button, or type >>INT1712
|
||||
3</para>
|
||||
</note>
|
||||
</sect1>
|
||||
</chapter>
|
||||
99
site_ansto/manual/db5sics_login.xml
Normal file
@@ -0,0 +1,99 @@
|
||||
<?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>SICS status and login</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1 xml:id="status">
|
||||
<title>Login to the SICS computer from a PuTTy terminal</title>
|
||||
<para>Before you can control the instrument, there are 2 programs that need to be running,
|
||||
SICS and Gumtree. SICS should already be configured and set running by the local
|
||||
contact. This procedure allows you to check this.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>On the Microsoft Windows computer in the instrument cabin, find the putty
|
||||
program. <figure>
|
||||
<title>PuTTy icon on the Microsoft Windows desktop </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="left" width="30mm" fileref="putty.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Choose the ICS computer from the list of Saved Sessions</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Load and open</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Use your NBI username and password, supplied by the Bragg Institute User
|
||||
Office</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>You will now have a command prompt to a Linux operating system</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Check SICS status</title>
|
||||
<para>Normally SICS will be running. You can check if SICS is running by using the PuTTy
|
||||
window and at the Linux operating system command prompt type</para>
|
||||
<para><command>> runsics status</command>
|
||||
</para>
|
||||
<para>If the status shows that SICS is not running, or if there is a change in the SICS
|
||||
configuration files e.g. a piece of sample environment has been added, you should
|
||||
contact your local contact. </para>
|
||||
<para>If the local contact has confirmed it is OK to restart SICS, then in the PuTTy window
|
||||
type </para>
|
||||
<para><command>> runsics stop</command>
|
||||
</para>
|
||||
<para><command>> runsics start</command>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Login to SICS using the putty session</title>
|
||||
<para>In the previous section, you logged into the ICS (instrument control server) computer
|
||||
using putty. At the Linux operating system command prompt, you will run a program that
|
||||
will give you a sics command prompt. </para>
|
||||
<para>For most cases, you won't have to do this. A SICS command prompt is available in
|
||||
Gumtree. </para>
|
||||
<para>At the Linux operating system command prompt type </para>
|
||||
<para><command>> sicsclient</command></para>
|
||||
<para>You should see <computeroutput>OK</computeroutput> on the screen.</para>
|
||||
<para>You now have a SICS command prompt. It may look strange since the cursor will be on a
|
||||
blank line. You will not have access to the Linux operating system command prompt until
|
||||
you log off.</para>
|
||||
<para>Next step is to login to sics by typing</para>
|
||||
<para><command>> user password</command> where user is literally the word "user" and the
|
||||
password will be supplied by the local contact</para>
|
||||
<para>You can replace user with spy. The spy login provides read-only access to SICS.
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Login to SICS from Gumtree</title>
|
||||
<figure>
|
||||
<title>Gumtree connected to SICS </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree2.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Normally, Gumtree will be connected to SICS, as in the figure above. </para>
|
||||
<para>In Gumtree you reconnect to SICS if you restart SICS. This is done by clicking on the
|
||||
little man at the bottom of the Gumtree screen when logged in to SICS. He will be
|
||||
standing still, and you will see the word Disconnected when not connected. He will be
|
||||
running when connected as in the figure. You will then need to start a new Sics terminal
|
||||
in Gumtree. From the left screen, in the project explorer window, Right click on SICS
|
||||
and choose the option to start a new “SICS telnet terminal”. </para>
|
||||
<note>
|
||||
<para>Reconnection won't work properly if SICS has changed configuration e.g. you've
|
||||
added a piece of sample environment. In this case, when you restart SICS you should
|
||||
also restart Gumtree </para>
|
||||
<para/>
|
||||
</note>
|
||||
</sect1>
|
||||
</chapter>
|
||||
63
site_ansto/manual/dbSICSch0_TEMPLATE.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<?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>Chapter Title</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-08-29 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Configuration</title>
|
||||
<para>How to get this running in SICe.g. edit</para>
|
||||
<para>
|
||||
<literal>/usr/local/sics/extraconfig.tcl</literal> file </para>
|
||||
<para><command>select_environment_controller "11TMagnet"</command></para>
|
||||
<para>Make sure that the other entries are commented out, save the file and restart SICS.</para>
|
||||
<para>This will set up the lakeshore temperature controller as well as the magnet power
|
||||
supply control. They will appear as <varname>tc1</varname> and <varname>ips120</varname>
|
||||
under the <varname>sample</varname> group in GumTree.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>General description of commands are doing.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hset /sample/ips120/Control/A 0</command></term>
|
||||
<listitem>
|
||||
<para>What the command does</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>drive ips120_driveable </command><replaceable>n</replaceable></term>
|
||||
<listitem>
|
||||
<para>Drive the magnet to <replaceable>n</replaceable> Tesla</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>/sample/ips120/sensor/value </command></term>
|
||||
<listitem>
|
||||
<para>Parameters that set the state of the command object. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Description</title>
|
||||
<para>Explanation of what a command is doing when it is more than just setting a target
|
||||
value. e.g. changing magnetic field in a superconducting magnet. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Known Issues</title>
|
||||
<para>Alerts the user to known operational problems</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Troubleshooting</title>
|
||||
<para>What to do if things go wrong</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
209
site_ansto/manual/dbSICSch10_tcl_commands.xml
Normal file
@@ -0,0 +1,209 @@
|
||||
<?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>TCL command language interface</title><author><personname>Ferdi
|
||||
Franceschini</personname></author>
|
||||
<date>2006-08-17 14:01</date></info>
|
||||
<sect1>
|
||||
<title>Common commands & exclusions</title>
|
||||
<para>From the PSI SANS documentation by Dr. Joachim Kohlbrecher and Dr. Mark Könnecke with
|
||||
slight modifications.</para>
|
||||
<para>The macro language implemented in the SICS server is <uri
|
||||
xlink:href="http://home.pacbell.net/ouster/">John Ousterhout</uri> Tool Command
|
||||
Language <uri xlink:href="http://www.tcl.tk/">TCL</uri> . Tcl has control constructs,
|
||||
variables of its own, loop constructs, associative arrays and procedures. Tcl is well
|
||||
<uri xlink:href="http://www.tcl.tk/doc/">documented</uri> by several books, online
|
||||
tutorials and manuals. All SICS commands are available in the macro language. </para>
|
||||
<para>Some potentially harmful Tcl commands have been deleted from the standard Tcl
|
||||
interpreter. These are: </para>
|
||||
<para>
|
||||
<command>exec</command></para>
|
||||
<para><command>source</command></para>
|
||||
<para><command>puts</command></para>
|
||||
<para><command>vwait</command></para>
|
||||
<para><command>exit</command></para>
|
||||
<para><command>gets</command></para>
|
||||
<para><command>socket</command></para>
|
||||
<para>Below only a small subset of the most important Tcl commands like assigning variables,
|
||||
evaluating expressions, control and loop constructs are described. For complete
|
||||
description of Tcl commands have a look on the <uri
|
||||
xlink:href="http://www.tcl.tk/man/tcl8.4/">manual pages</uri> or on one of the many
|
||||
books about Tcl/Tk.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>set </command><replaceable> varName value</replaceable>
|
||||
<command>set </command><replaceable>arrName(index) value</replaceable></term>
|
||||
<listitem>
|
||||
<para>Set/get scalar variables or array elements. Arrays in Tcl are actually
|
||||
associative arrays, this means that their indices are not restricted to
|
||||
integers. The following examples demonstrate setting a scalar variable and
|
||||
a couple of array elements. Note the third array example which shows that
|
||||
the same array can have mixed indices (the number 1 and 'one') as well as
|
||||
mixed data types (the number 10 and 'ten') in the same array.</para>
|
||||
<programlisting>set a 3
|
||||
set arr(1) 10
|
||||
set arr(one) ten</programlisting>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>expr </command><replaceable>arg arg arg</replaceable></term>
|
||||
<listitem>
|
||||
<para>Concatenates arg’s (adding separator spaces between them), evaluates the
|
||||
result as a Tcl expression, and returns the value. The operators permitted
|
||||
in Tcl expressions are a subset of the operators permitted in C expressions,
|
||||
and they have the same meaning and precedence as the corresponding C
|
||||
operators. Expressions almost always yield numeric results (integer or
|
||||
floating-point values). For example, the expression </para>
|
||||
<programlisting>expr 8.2 + 6</programlisting>
|
||||
<para>evaluates to 14.2. For some examples of simple expressions, suppose the
|
||||
variable a = 3 and b = 6. Then the commands shown below will produce the
|
||||
value after the ->
|
||||
</para>
|
||||
<programlisting>set a 3
|
||||
set b 6
|
||||
expr 3.1 + $a -> 6.1
|
||||
expr 2 + "$a.$b" -> 5.6
|
||||
expr [ splitreply [omega] ] / 2.0 ->
|
||||
omega axis position / 2.0</programlisting>
|
||||
<para>Note the use of square brackets [] for command substitution.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Math functions</title>
|
||||
<para>Tcl supports the following mathematical functions in
|
||||
expressions:<?db2html element="br"?></para>
|
||||
<para><informaltable>
|
||||
<tgroup cols="4">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>acos</entry>
|
||||
<entry>cos </entry>
|
||||
<entry>hypot </entry>
|
||||
<entry>sinh </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>asin </entry>
|
||||
<entry>cosh </entry>
|
||||
<entry>log </entry>
|
||||
<entry>sqrt </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>atan </entry>
|
||||
<entry>exp </entry>
|
||||
<entry>log10 </entry>
|
||||
<entry>tan </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>atan2 </entry>
|
||||
<entry>floor </entry>
|
||||
<entry>pow </entry>
|
||||
<entry>tanh </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>ceil </entry>
|
||||
<entry>fmod </entry>
|
||||
<entry>sin </entry>
|
||||
<entry> </entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>Note you must use the <command>expr</command> command to invoke these
|
||||
functions eg,</para>
|
||||
<programlisting>expr cos(0)
|
||||
set pi [expr acos(-1)]
|
||||
expr sin($pi)</programlisting>
|
||||
<para>Each of these functions invokes the math library function of the same name; see the
|
||||
manual entries for the library functions for details on what they do. Tcl also
|
||||
implements the following functions for conversion between integers and floating-point
|
||||
numbers and the generation of random numbers: </para>
|
||||
<para><command>abs</command>(<replaceable>arg</replaceable>),
|
||||
<command>double</command>(<replaceable>arg</replaceable>) ,
|
||||
<command>int</command>(<replaceable>arg</replaceable>),
|
||||
<command>rand</command>(<replaceable>arg</replaceable>),
|
||||
<command>round</command>(<replaceable>arg</replaceable>),
|
||||
<command>srand</command>(<replaceable>arg</replaceable>). </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>if - execute scripts conditionally</title>
|
||||
<programlisting><command>if</command> <replaceable>expr1 </replaceable><command>then </command>
|
||||
<replaceable>body1</replaceable>
|
||||
<command>elseif </command><replaceable>expr2 </replaceable><command>then</command>
|
||||
<replaceable>body2</replaceable>
|
||||
<command>elseif</command>...
|
||||
<command>else</command>
|
||||
<replaceable>bodyN</replaceable>
|
||||
</programlisting>
|
||||
<para>The <command>if</command> command evaluates <replaceable>expr1</replaceable> as an
|
||||
expression (in the same way that <command>expr</command> evaluates its argument). The
|
||||
value of the expression must be a boolean (a numeric value, where 0 is false and
|
||||
anything is true, or a string value such as "true" or "yes" for true and "false" or "no"
|
||||
for false); if it is true then <replaceable>body1</replaceable> is executed by passing
|
||||
it to the Tcl interpreter. Otherwise <replaceable>expr2</replaceable> is evaluated as an
|
||||
expression and if it is true then <replaceable>body2</replaceable> is executed, and so
|
||||
on. If none of the expressions evaluates to true then <replaceable>bodyN</replaceable>
|
||||
is executed. The <command>then</command> and <command>else</command> arguments are
|
||||
optional "noise words" to make the command easier to read. There may be any number of
|
||||
<command>elseif</command> clauses, including zero. <replaceable>BodyN</replaceable>
|
||||
may also be omitted as long as <command>else</command> is omitted too. The return value
|
||||
from the command is the result of the body script that was executed, or an empty string
|
||||
if none of the expressions was non-zero and there was no
|
||||
<replaceable>bodyN</replaceable>. </para>
|
||||
<example>
|
||||
<title>"if"</title>
|
||||
<programlisting>set a 3
|
||||
if {$a == 3} {puts "a equals three"} </programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>for - "for" loop</title>
|
||||
<programlisting><command>for </command><replaceable>start test
|
||||
next
|
||||
body</replaceable>
|
||||
</programlisting>
|
||||
<para><command>for</command> is a looping command, similar in structure to the C
|
||||
<command>for</command> statement. The <replaceable>start, next</replaceable>, and
|
||||
<replaceable>body</replaceable> arguments must be Tcl command strings, and
|
||||
<replaceable>test</replaceable> is an expression string. If a
|
||||
<command>continue</command> command is invoked within <replaceable>body</replaceable>
|
||||
then any remaining commands in the current execution of <replaceable>body</replaceable>
|
||||
are skipped; processing continues by invoking the Tcl interpreter on
|
||||
<replaceable>next</replaceable>, then evaluating <replaceable>test</replaceable> , and
|
||||
so on. If a <command>break</command> command is invoked within
|
||||
<replaceable>body</replaceable> or <replaceable>next</replaceable> , then the
|
||||
<command>for</command> command will return immediately. The operation of
|
||||
<command>break</command> and <command>continue</command> are similar to the
|
||||
corresponding statements in C. <command>for</command> returns an empty string. </para>
|
||||
<example>
|
||||
<title>"for"</title>
|
||||
<programlisting>for {set x 0} {$x<10} {incr x} {puts "x is $x"}</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>while - execute script repeatedly as long as a condition is met</title>
|
||||
<programlisting><command>while</command> <replaceable>test
|
||||
body </replaceable></programlisting>
|
||||
<para> The <command>while</command> command evaluates <replaceable>test</replaceable> as an
|
||||
expression (in the same way that <command>expr</command> evaluates its argument). The
|
||||
value of the expression must be a proper boolean value; if it is a true value then
|
||||
<replaceable>body</replaceable> is executed by passing it to the Tcl interpreter.
|
||||
Once <replaceable>body</replaceable> has been executed then
|
||||
<replaceable>test</replaceable> is evaluated again, and the process repeats until
|
||||
eventually <replaceable>test</replaceable> evaluates to a false boolean value.
|
||||
<command>continue</command> commands may be executed inside
|
||||
<replaceable>body</replaceable> to terminate the current iteration of the loop, and
|
||||
<command>break</command> commands may be executed inside <command>body</command> to
|
||||
cause immediate termination of the <command>while</command> command. The
|
||||
<command>while</command> command always returns an empty string. </para>
|
||||
<example>
|
||||
<title>"while"</title>
|
||||
<programlisting>set x 0
|
||||
while {$x<10} {
|
||||
puts "x is $x"
|
||||
incr x
|
||||
}</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
</chapter>
|
||||
279
site_ansto/manual/dbSICSch11_julabo.xml
Normal file
@@ -0,0 +1,279 @@
|
||||
<?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>Julabo Temperature Control</title><author>
|
||||
<personname>Nick Hauser</personname>
|
||||
</author>
|
||||
<date>2009-03-27 15:50</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>The Julabo temperature controller is a SICS script context object. There are 2 parts,
|
||||
the script context object, which has the name <command>/sample/tc1</command> and the
|
||||
driveable interface to the object, which has the name <command>tc1_driveable</command>
|
||||
ie. "tee-cee-one". Note this name can change in the configuration. Hence you can
|
||||
<command>drive</command> and <command>run</command>
|
||||
<command>tc1_driveable</command>. To get and set other parameters use
|
||||
<command>hget</command> or <command>hset /sample/tc1</command></para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>run tc1_driveable</command>
|
||||
<replaceable>temp1</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Runs the temperature controller <command>tc1</command> to
|
||||
<replaceable>temp1</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>drive tc1_driveable</command>
|
||||
<replaceable>temp1</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 task
|
||||
has finished.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hlist /sample/tc1</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Lists all the <command>tc1</command> nodes. Nodes can be get and set using
|
||||
<command>hget</command> and <command>hset</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>The temperature controller is usually put under the
|
||||
<computeroutput>/sample</computeroutput> node in hipadaba, which is where it will be
|
||||
found when using the Gumtree SICS. This complies with the NeXus standard. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<para>Use <command>hget </command>and <command>hset </command>on these parameters. Parameter
|
||||
without <replaceable>val</replaceable> are read only and therefore cannot be set. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>setpoint</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get/Set the temperature setpoint. If the setpoint is set, the controller
|
||||
will change the temperature to this value, subject to constraints including
|
||||
<command>operate remote_ctrl hitemp lotemp upperlimit lowerlimit
|
||||
</command>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>overtemp_warnlimit</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get/Set the controller's temperature upper limit. When the temperature is
|
||||
>
|
||||
<replaceable>val</replaceable>, <application>SICS </application> will veto
|
||||
counters until the temperature fall below <replaceable>val
|
||||
</replaceable>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>subtemp_warnlimit</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get/Set the controller's temperature lower limit. When the temperature is
|
||||
< <replaceable>val</replaceable>, <application>SICS </application> will
|
||||
veto the histogram memory and counters until the temperature rises above
|
||||
<replaceable>val </replaceable>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>sensor/value</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the controller's temperature sensor value</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>heating_power_percent</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = percent</para>
|
||||
<para>Get the controller's current heating power</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>operate</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get/Set the operate state.</para>
|
||||
<para>Allowed <replaceable>val</replaceable>:</para>
|
||||
<para><option>0</option> Controller doesn't control temperature. Will still
|
||||
report parameters</para>
|
||||
<para><option>1</option> Controller provides control. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>status</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Get the controller's operate state</para>
|
||||
<para>Allowed <replaceable>val</replaceable>:</para>
|
||||
<para><option>Busy</option> Equivalent to <replaceable>tc1</replaceable>
|
||||
<command>operate</command>
|
||||
<option>1</option>
|
||||
</para>
|
||||
<para><option>Idle</option> Equivalent to <replaceable>tc1</replaceable>
|
||||
<command>operate</command>
|
||||
<option>0</option>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>remote_ctrl</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get/Set remote control enable/disable </para>
|
||||
<para>Allowed <replaceable>val</replaceable>:</para>
|
||||
<para><option>True</option>
|
||||
<replaceable>tc1</replaceable> remote control enabled </para>
|
||||
<para><option>False</option>
|
||||
<replaceable>tc1</replaceable> remote control disabled </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>lh45_lasterror</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Get the last error recorded on the controller. Note that this error
|
||||
condition is not cleared if the error no longer exists. This value is only
|
||||
overwritten by another error state. </para>
|
||||
<para>Example of an error state: </para>
|
||||
<para><computeroutput>-04 LOW TEMPERATURE WARNING</computeroutput>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>tolerance</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get/Set <command>tolerance</command>. </para>
|
||||
<para><command>overtemp_warnlimit</command> and
|
||||
<command>subtemp_warnlimit</command> will be set when you use the
|
||||
<command>run</command> or <command>drive</command>
|
||||
<replaceable>tc1 temp1</replaceable>. Control is dependent on the
|
||||
<command>overtemp_warnlimit</command> and
|
||||
<command>subtemp_warnlimit</command> values, not on tolerance. Setting
|
||||
<command>overtemp_warnlimit</command> or
|
||||
<command>subtemp_warnlimit</command> will override
|
||||
<command>tolerance</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>apply_tolerance</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get/Set apply_tolerance <emphasis role="bold">Don't know what this
|
||||
does</emphasis></para>
|
||||
<para>Allowed <replaceable>val</replaceable>:</para>
|
||||
<para><option>0</option>
|
||||
</para>
|
||||
<para><option>1</option>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>lowerlimit</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = Manager</para>
|
||||
<para>Get/Set the lower limit for <command>setpoint</command>. If you try to set
|
||||
<command>setpoint</command> below this value, will return.</para>
|
||||
<para>ERROR: setpoint violates limits</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>upperlimit</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = Manager</para>
|
||||
<para>Get/Set the lower limit for <command>setpoint</command>. If you try to set
|
||||
<command>setpoint</command> above this value, will return.</para>
|
||||
<para>ERROR: setpoint violates limits</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>/sample/tc1/</command><command>emon/monmode</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Get emon's monitor mode <emphasis role="bold">Don't know what this
|
||||
does</emphasis></para>
|
||||
<para>Returned values:</para>
|
||||
<para><option>monitor</option>
|
||||
</para>
|
||||
<para><option>???</option>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>/sample/tc1/</command><command>emon/isintol</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Get if the value is within tolerance (but which tolerance?) hitemp lotemp
|
||||
or tolerance</para>
|
||||
<para>Returned values:</para>
|
||||
<para><option>0</option> out of tolerance</para>
|
||||
<para><option>1</option> in tolerance</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>/sample/tc1/</command><command>emon/errhandler</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Get if the value is within tolerance (but which tolerance?) hitemp lotemp
|
||||
or tolerance</para>
|
||||
<para>Returned values:</para>
|
||||
<para><option>pause</option> ???</para>
|
||||
<para><option>???</option> ???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
276
site_ansto/manual/dbSICSch12_velsel.xml
Normal file
@@ -0,0 +1,276 @@
|
||||
<?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>Astrium Velocity Selector</title><author>
|
||||
<personname>Nick Hauser</personname>
|
||||
</author>
|
||||
<date>2009-03-31 15:50</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>The Astrium velocity selector is a SICS script context object. There are 2 parts, the
|
||||
script context object, which has the name
|
||||
<command>/instrument/velocity_selector</command> and the 2 driveable interfaces to the
|
||||
object, which have the names <command>nvs_speed</command> and
|
||||
<command>nvs_lambda</command>. Hence you can <command>drive</command> and
|
||||
<command>run</command>
|
||||
<command>nvs_speed</command> and <command>nvs_lambda</command>. To get and set other
|
||||
parameters use <command>hget</command> or <command>hset
|
||||
/instrument/velocity_selector/</command></para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>run nvs_lambda</command>
|
||||
<replaceable> wavelength</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units: Angstroms</para>
|
||||
<para>Runs the velocity selector to <replaceable>wavelength</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>drive nvs_lambda</command>
|
||||
<replaceable> wavelength</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units: Angstroms</para>
|
||||
<para>Is the same as <command>run</command> but it blocks the client that
|
||||
requested the <command>drive</command> from issuing commands until the task
|
||||
has finished.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset /instrument/velocity_selector/setstate
|
||||
</command><option>brake</option></term>
|
||||
<listitem>
|
||||
<para>Set the state. The state can be read using <command>hget
|
||||
/instrument/velocity_selector/state</command></para>
|
||||
<para>If the state is set to <command>brake </command>, then <command>hget
|
||||
/instrument/velocity_selector/state</command> will return
|
||||
<computeroutput>BRAKING </computeroutput>even when the rotor has
|
||||
stopped.</para>
|
||||
<para>You can use <command>run nvs_speed</command> to run the rotor again</para>
|
||||
<para>Allowed values:</para>
|
||||
<para><option>brake</option>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/state </command></term>
|
||||
<listitem>
|
||||
<para>Get the state. The normal operating state under SICS control is
|
||||
<computeroutput>CONTROL</computeroutput></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hlist /instrument/velocity_selector</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Lists all the <command>velocity_selector</command> nodes</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset
|
||||
/instrument/velocity_selector/</command><replaceable>node</replaceable>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Set <replaceable>val</replaceable> on a
|
||||
<replaceable>node</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/velocity_selector/</command><replaceable>node</replaceable></term>
|
||||
<listitem>
|
||||
<para>Get the value of a <replaceable>node</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset /instrument/velocity_selector/setspeed </command>
|
||||
<replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = rpm</para>
|
||||
<para>Set the rotor set speed. </para>
|
||||
<para>Once this is set, the velocity selector will attempt to run to this speed.</para>
|
||||
<para>If called with no argument, will return an error</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>The velocity selector is under the
|
||||
<computeroutput>/instrument/velocity_selector</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://gumtree:9080/nbicms/devices/velocity-selector/doc_ngs040.pdf/view"
|
||||
>ASTRIUM velocity selector manual</uri> on ANSTOnet. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>wvalv</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get the state of the water valve. The water valve will open in once the
|
||||
velocity selector has reached 3000 rpm. The valve will close again and the
|
||||
selector will brake to 0 rpm if the water flow is not within tolerance.</para>
|
||||
<para><option>open</option> Water valve open</para>
|
||||
<para><option>clos</option> Water valve closed </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>rtemp</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the rotor temperature.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>state</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get the state.</para>
|
||||
<para><option>IDLING</option> Is not being controlled. Should be at zero rpm.</para>
|
||||
<para><option>RESET</option> A reset has been issued by the velocity selector
|
||||
client program </para>
|
||||
<para><option>CONTROL</option> Control has been requested by SICS or the
|
||||
velocity selector client program</para>
|
||||
<para><option>BRAKING</option> The velocity selector has the brake applied due
|
||||
to an <command>hset setstate brake</command> request, the
|
||||
<guibutton>Brake</guibutton> button applied on the velocity selector client
|
||||
program, or due to a fault condition</para>
|
||||
<para><option>POWERLOSS MEASUREMENT</option>
|
||||
<guibutton>Powerloss measurement </guibutton>button applied on the velocity
|
||||
selector client program </para>
|
||||
<para><option>EMERGENCY STOP</option>
|
||||
<guibutton>Emergency stop</guibutton> button applied on the velocity
|
||||
selector client program </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/velocity_selector/</command><command>aspeed</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = rpm</para>
|
||||
<para>Get the actual speed</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>sspeed
|
||||
</command><replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Units = rpm</para>
|
||||
<para>No idea ??? </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>winlt</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the cooling water inlet temperature</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>wflow</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = litres/min</para>
|
||||
<para>Get the cooling water flow rate</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>ploss</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Watts</para>
|
||||
<para>Get the last measured power loss</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>splos</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = rpm </para>
|
||||
<para>Get the speed of the last measured power loss </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/velocity_selector/</command><command>rspeed</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = rpm</para>
|
||||
<para>Get the requested speed, set using <command>run nvs_speed
|
||||
</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>woutt</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the cooling water outlet temperature </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>hget /instrument/velocity_selector/</command><command>vacum</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = 10<superscript>-3</superscript>bar</para>
|
||||
<para>Get the vacuum</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>bcuun</command></term>
|
||||
<listitem>
|
||||
<para>Get the BCU units</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>ttang</command></term>
|
||||
<listitem>
|
||||
<para>Units = degrees</para>
|
||||
<para>Get the turntable angle. 999.99 if not initialised</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>vibrt</command></term>
|
||||
<listitem>
|
||||
<para>Units = mm/s</para>
|
||||
<para>Get the vibration</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>vvalv</command></term>
|
||||
<listitem>
|
||||
<para>Get the vacuum valve state</para>
|
||||
<para>Returned values:</para>
|
||||
<para><option>open</option>
|
||||
</para>
|
||||
<para><option>closed</option>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/velocity_selector/</command><command>aveto</command></term>
|
||||
<listitem>
|
||||
<para>Get the veto state</para>
|
||||
<para>Returned values:</para>
|
||||
<para><option>nok</option> not OK</para>
|
||||
<para><option>ok</option> OK</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
234
site_ansto/manual/dbSICSch13_echidna_motor_names.xml
Normal file
@@ -0,0 +1,234 @@
|
||||
<?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>Echidna Motor Names</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2007-02-07 15:50</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>Motor names used in SICS.</para>
|
||||
<para>
|
||||
<emphasis role="b">Monochromator Motors</emphasis>
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>motor</entry>
|
||||
<entry>axis</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>monochromator translation 1 (upper)</entry>
|
||||
<entry>my</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>monochromator translation 2 (lower)</entry>
|
||||
<entry>mx</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>monochromator tilt 1 (upper)</entry>
|
||||
<entry>mphi </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>monochromator tilt 2 (lower) </entry>
|
||||
<entry>mchi </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>monochromator rotate</entry>
|
||||
<entry>mom</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<emphasis role="b">Sample Stage Motors</emphasis>
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>motor</entry>
|
||||
<entry>axis</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>sample translation 1 (upper)</entry>
|
||||
<entry>sy</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>sample translation 2 (lower)</entry>
|
||||
<entry>sx</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>sample tilt 1 (upper)</entry>
|
||||
<entry>sphi</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>sample tilt 2 (lower)</entry>
|
||||
<entry>schi</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>sample rotate</entry>
|
||||
<entry>som</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable></para>
|
||||
<para>
|
||||
<emphasis role="b">Detector and Sample Stage Movement</emphasis>
|
||||
</para>
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>motor</entry>
|
||||
<entry>axis</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>Detector Rotate</entry>
|
||||
<entry>stth</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Sample Stage (Take-off angle)</entry>
|
||||
<entry>mtth</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
</para>
|
||||
<para>
|
||||
<emphasis role="b">First Slit Package</emphasis>
|
||||
</para>
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>motor</entry>
|
||||
<entry>axis</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Left slit blade</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1l</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Right slit blade</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1r</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Upper slit blade</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1u</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Lower slit blade</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1d</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Horizontal gap width</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1hg</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Horizontal gap offset</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1o</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Vertical gap width</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1vg</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>Vertical gap offset</para>
|
||||
</entry>
|
||||
<entry>
|
||||
<para>ss1vo</para>
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<para>
|
||||
<emphasis role="b">Second Slit Package</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>motor</entry>
|
||||
<entry>axis</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> Left slit blade</entry>
|
||||
<entry>ss2l </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Right slit blade</entry>
|
||||
<entry> ss2r</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Upper slit blade</entry>
|
||||
<entry> ss2u</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Lower slit blade</entry>
|
||||
<entry> ss2d</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Horizontal gap width</entry>
|
||||
<entry> ss2hg</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Horizontal gap offset</entry>
|
||||
<entry> ss2ho</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Vertical gap width</entry>
|
||||
<entry> ss2vg</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> Vertical gap offset</entry>
|
||||
<entry> ss2vo</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
138
site_ansto/manual/dbSICSch14_troubleshooting.xml
Normal file
@@ -0,0 +1,138 @@
|
||||
<?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 Troubleshooting</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2006-09-04 15:50</date>
|
||||
</info>
|
||||
<para>You can check for problems between SICS and the instrument by running the troubleshoot.tcl
|
||||
application in the /usr/local/sics/server/common directory.The trouble-shooter constructs a
|
||||
control panel from information in the SICS configuration file and from information in the
|
||||
troubleshoot_setup.tcl file. The trouble-shooter setup file specifies the expected
|
||||
configuration for the motor controllers, this file should be updated whenever the motor
|
||||
controller configuration is changed.</para>
|
||||
<sect1>
|
||||
<title>A Troubleshooting Session</title>
|
||||
<warning>
|
||||
<para>This chapter requires testing. nha. 1 May 2009</para>
|
||||
</warning>
|
||||
<para>If you have a computer with an X server then you can troubleshoot your instrument via
|
||||
remote terminal session. If you are running linux on your computer then the following
|
||||
will just work. If you are using an Apple computer you should have the X11 support
|
||||
installed. If you are running windows you will need to have something like X-Win32 or
|
||||
or Cygwin (with X11) installed. Otherwise you will have to run this on the instrument
|
||||
control computer locally.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Starting the troubleshooter</title>
|
||||
<para>First log on to the instrument control computer by entering the following in a
|
||||
terminal (linux or cygwin) </para>
|
||||
<programlisting>ssh -Y uname@ic-instname.nbi.ansto.gov.au</programlisting>
|
||||
<para>Where uname is your ANSTO user id and instname is the name of your instrument (eg
|
||||
echidna, wombat).</para>
|
||||
<para>Once you have logged in, go to the sics server directory,</para>
|
||||
<programlisting>cd /usr/local/sics/server</programlisting>
|
||||
<para>There should be a troubleshoot.tcl script and troubleshoot_setup.tcl file in this
|
||||
directory, check this by listing the directory contents with the 'ls' command.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>An example showing failures</title>
|
||||
<para>This example uses the following troubleshoot_setup.tcl file for Echidna. </para>
|
||||
<programlisting># ECHIDNA setupset configFileName "hrpd_configuration.tcl"# These subroutines should be installed on the controllersset contSubs(dmc2280_controller1) "#AUTO #ABC #LIMSWI #SOLCTRL #TCPERR"set contSubs(dmc2280_controller2) "#AUTO #LIMSWI #SOLCTRL #TCPERR"set contSubs(dmc2280_controller3) "#AUTO #HOME #LOOPER #RES #TCPERR"set contSubs(dmc2280_controller4) "#AUTO #HOME #LIMSWI #LOOPER #TCPERR"# These threads should be running on the controllers.set contThreads(dmc2280_controller1) "0"set contThreads(dmc2280_controller2) "0"set contThreads(dmc2280_controller3) "0"set contThreads(dmc2280_controller4) "0"</programlisting>
|
||||
<para>Two simulated failures and one real failure are demonstrated in what follows. I have
|
||||
simulated a missing subroutine error by adding a dummy subroutine name "#ABC" to
|
||||
controller one in the setup file above. A network failure is simulated by simply
|
||||
unplugging the ethernet cable from controller two. There is a real failure on
|
||||
controller three, a necessary thread was not running on that controller because a
|
||||
command failed in the auto start subroutine.</para>
|
||||
<para>Start the troubleshooter with the following command</para>
|
||||
<programlisting>common/troubleshoot.tcl</programlisting>
|
||||
<para>You will see this dialog box which lets you specify the name of your instrument's
|
||||
configuration file.</para>
|
||||
<para><inlinemediaobject><imageobject><imagedata fileref="troubleshoot1.jpeg"
|
||||
/></imageobject></inlinemediaobject>
|
||||
</para>
|
||||
<para>Note: The default file name can be set in the "troubleshoot_setup.tcl" script.</para>
|
||||
<para>When you press the "Load config" button a control window will be constructed from the
|
||||
information in the instrument configuration file and the "troubleshoot_setup.tcl" file.</para>
|
||||
<para>
|
||||
<inlinemediaobject><imageobject><imagedata fileref="troubleshoot2.jpeg" width="150mm"
|
||||
/></imageobject></inlinemediaobject>
|
||||
</para>
|
||||
<para>There is a column for each of the motion controllers specified in the instrument
|
||||
configuration file (hrpd_configuration.tcl in this example). The control buttons allow
|
||||
you to test the connection to each controller and then perform some tests on the
|
||||
controllers.</para>
|
||||
<para>To test the communications and motor controller status just click on the buttons in
|
||||
each column from top to bottom. If the test succeeds the button lights up green, if it
|
||||
fails a message box describing the failure will pop-up. Following are some examples of
|
||||
the failure messages.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Motor Controller Communications Failure Example</title>
|
||||
<para>When you press the connect button it should light up green if everything is OK,
|
||||
otherwise you will see the following message.</para>
|
||||
<para>
|
||||
<inlinemediaobject><imageobject><imagedata fileref="troubleshoot3.jpeg" width="150mm"
|
||||
/></imageobject></inlinemediaobject>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Missing motor controller subroutine example</title>
|
||||
<para>Assuming that the connection has succeeded (ie the "connect" button is now green) then
|
||||
you can click on the "Check subs" button. If the check succeeds the button will light
|
||||
up green, if not you will see the following message.</para>
|
||||
<para>
|
||||
<inlinemediaobject><imageobject><imagedata fileref="troubleshoot4.jpeg" width="150mm"
|
||||
/></imageobject></inlinemediaobject>
|
||||
</para>
|
||||
<para>This means the a required subroutine named "#ABC" was not found on controller
|
||||
one.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Motor controller thread not running example</title>
|
||||
<para>You can if necessary threads are running on the motor controller by clicking on the
|
||||
"Check threads" button. If the check succeeds then the button should now be green. On
|
||||
failure you will see the following message.</para>
|
||||
<para>
|
||||
<inlinemediaobject><imageobject><imagedata fileref="troubleshoot5.jpeg" width="150mm"
|
||||
/></imageobject></inlinemediaobject>
|
||||
</para>
|
||||
<para>This means that something should be running in thread zero but it's not. Typically
|
||||
the #AUTO subroutine will be running an empty loop in thread zero to trigger trip points
|
||||
in the controller software. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Final status display</title>
|
||||
<para>After completing all the tests for this example you will see the following display.
|
||||
This means that controller one is missing one or more subroutines, the connection failed
|
||||
on controller two, one or more required threads are not running on controller three, and
|
||||
all the tests succeeded on controller four.</para>
|
||||
<para>
|
||||
<inlinemediaobject><imageobject><imagedata fileref="troubleshoot6.jpeg"
|
||||
/></imageobject></inlinemediaobject>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Using sicsclient for troubleshoot</title>
|
||||
<para>The <command>sicsclient</command> command line can be used for troubleshooting motors.</para>
|
||||
<para> There can be circumstances when a third party, such as the handle-held wireless Galil
|
||||
controller, or a terminal client is used to control motors. In these cases, the values
|
||||
in SICS can be out of sync with those on the controller. The Galil controller can be
|
||||
interrogated using <command>send</command>. </para>
|
||||
<para>
|
||||
<replaceable>mot1</replaceable>
|
||||
<command>send </command>
|
||||
<replaceable>"MG _SP`"</replaceable>
|
||||
</para>
|
||||
<para>In this example, the controller and axis of motor <replaceable>mot1</replaceable> will
|
||||
the sent a command which will return the speed <replaceable>_SP</replaceable> of the
|
||||
motor. Note that a substitution is made in SICS of the controller and axis using the
|
||||
backtick character `</para>
|
||||
<para>The values from the controller can be compared manually with the values from SICS </para>
|
||||
<para><replaceable>mot1</replaceable>
|
||||
<command>list</command></para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
87
site_ansto/manual/dbSICSch15_beamstop.xml
Normal file
@@ -0,0 +1,87 @@
|
||||
<?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>Beamstops</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-12-15 </date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>Raising and lowering of beamstops is implemented via the <command>selbs</command>
|
||||
command.</para>
|
||||
<para><command>selbs</command> raises the selected beamstop in a safe manner. It will leave
|
||||
the previously selected beamstop in place until the selected stop is fully raised and
|
||||
then lower the other beamstop. </para>
|
||||
<para><emphasis>If you are changing the <option>x z </option>coordinates there is no safe
|
||||
sequence. You should set maximum attenuation or close the fast shutter before moving
|
||||
the beamstops.</emphasis></para>
|
||||
<para>You can monitor the beamstop position via GumTree as it is being raised, and you can
|
||||
also see the state by reading angles. </para>
|
||||
<para>The odd and even numbered beamstops are on separate parallel axes which are
|
||||
horizontally offset by about 10cm. This means that beamstops must be raised to an angle
|
||||
which is a few degrees of vertical so that the odd and even beamstops will overlap, you
|
||||
will see that the odd numbered stops will be at roughly 93 degrees and the even numbered
|
||||
ones will be at 86 degrees to vertical when raised.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>selbs </command><replaceable>n </replaceable><replaceable>x
|
||||
z</replaceable></term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>n</replaceable>
|
||||
<option>1,2,3,4,5,6</option> where </para>
|
||||
<para>1 = largest beamstop </para>
|
||||
<para>6 = smallest beamstop</para>
|
||||
<para><option>x</option> = beam x position in detector coordinates</para>
|
||||
<para><option>z</option> = beam z position in detector coordinates</para>
|
||||
<para>The beam position (x,z) is optional</para>
|
||||
<note>
|
||||
<para>This is a blocking command. You will not be able to run other commands
|
||||
in the session running <command>selbs</command> until it has
|
||||
finished.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>selbs example</title>
|
||||
<para><command>selbs 1 487.7 490</command></para>
|
||||
<para>Select beamstop one and position it over the middle of the detector.</para>
|
||||
<para><command>selbs 2</command></para>
|
||||
<para>Leave the beamstop carriage in place and select beamstop two.</para>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><varname>beamstop</varname></term>
|
||||
<listitem>
|
||||
<para><command>selbs</command> also sets a variable called
|
||||
<varname>beamstop</varname> and saves it in the data file.</para>
|
||||
<para>Possible values for <varname>beamstop</varname></para>
|
||||
<para><option>0</option>
|
||||
<command>selbs</command> has never been run or the sics status.tcl file has
|
||||
been cleared</para>
|
||||
<para><option>-1</option>
|
||||
<command>selbs</command> failed while driving the beamstops</para>
|
||||
<para><replaceable>n</replaceable>
|
||||
<command>selbs</command> completed driving successfully and has selected
|
||||
beamstop <replaceable>n</replaceable></para>
|
||||
<para>The value of the "beamstop" variable persists between restarts of SICS.</para>
|
||||
<warning>
|
||||
<para>If someone drives the beamstops directly then the
|
||||
<varname>beamstop</varname> variable may be wrong</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Troubleshooting</title>
|
||||
<para>Beamstop position can be checked visually (by eyes) from the vessel port with touch.
|
||||
To do this, you should drive the detector to position 9300mm, and view from the middle
|
||||
vessel port.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
133
site_ansto/manual/dbSICSch16_ordela_hv.xml
Normal file
@@ -0,0 +1,133 @@
|
||||
<?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>Ordela Detector Voltage Control</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-08-29 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>The High Voltage controller for the Ordela detector has been implemented as a standard
|
||||
SICS environment controller object with a driveable interface. It has been configured
|
||||
differently to other SICS objects in several ways. Firstly, you use
|
||||
<command>up</command> and <command>down</command> commands to drive the voltage to its
|
||||
<command>upper</command> and <command>lower</command> limits. This is a blocking
|
||||
task i.e. no other task can started until this is complete. Secondly, the instrument has
|
||||
been configured with the SICS anticollider to prevent you from moving the detector when
|
||||
the voltage is above a certain threshold, which will lead to damage of the detector.
|
||||
This is important for Quokka as the detector is moved frequently. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 up</command></term>
|
||||
<listitem>
|
||||
<para>Raise the voltage</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 down</command></term>
|
||||
<listitem>
|
||||
<para>Lower the voltage</para>
|
||||
<note>
|
||||
<para>NOTE This command blocks until the power supply reaches the "upper" or
|
||||
"lower" running voltages, see below.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>INT1712 1</command></term>
|
||||
<listitem>
|
||||
<para>If this commands hang SICS you can interrupt it with by entering this at
|
||||
the SICS command line, or by pressing the interrupt button at the bottom of
|
||||
GumTree</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 reset</command></term>
|
||||
<listitem>
|
||||
<para>Reset the controller </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 list</command></term>
|
||||
<listitem>
|
||||
<para>Displays the values of the various parameters</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 send </command><replaceable>command</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sends a <replaceable>command</replaceable> to the unit and displays the
|
||||
response</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 off </command></term>
|
||||
<listitem>
|
||||
<para>Drives the output voltage to zero</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 upper </command><replaceable>voltage</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets the running voltage for the <command>up</command> command. This would
|
||||
normally be the operating voltage for the equipment to which the power
|
||||
supply is connected.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 lower </command><replaceable>voltage</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets the standby voltage for the <command>down</command> command. This
|
||||
would normally be the standby voltage for the equipment to which the power
|
||||
supply is connected.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 max </command><replaceable>voltage</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets the hardware maximum for the power supply. For the Ordela power
|
||||
supplies, it is important that this is the correct full-scale value of the
|
||||
power supply itself. This is used to convert between the voltage step and
|
||||
voltages and to calculate the step period from the voltage slew rate.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 rate </command><replaceable>voltage</replaceable></term>
|
||||
<listitem>
|
||||
<para>The volts per second at which the power supply slews between voltages. For
|
||||
the Ordela power supplies, this is used to calculate the time between
|
||||
voltage steps based on the <option>max</option> parameter</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 debug </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>val</replaceable></para>
|
||||
<para><option>0</option> No debug information in log</para>
|
||||
<para><option>1</option> Debug information in log</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 lock </command></term>
|
||||
<listitem>
|
||||
<para>This locks the device from being set by users. Users can use <command>up
|
||||
down</command> and <command>off</command> commands to set
|
||||
voltages</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dhv1 unlock </command></term>
|
||||
<listitem>
|
||||
<para>Managers may unlock the device</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
896
site_ansto/manual/dbSICSch17_control_and_interrupt.xml
Normal file
@@ -0,0 +1,896 @@
|
||||
<?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>Control, interrupt and system commands</title><author>
|
||||
<personname>Mark Koennecke</personname>
|
||||
</author>
|
||||
<date/>
|
||||
<bibliosource>
|
||||
</bibliosource>
|
||||
</info>
|
||||
<sect1>
|
||||
<info>
|
||||
<bibliosource> from The SICS Master User manual. userrefman. converted to tex using
|
||||
html2tex (from Mark Koennecke) converted to docbook4using htlatex converted to
|
||||
docbook5 using the transform available in Oxygen hand edited to remove lint and put
|
||||
into</bibliosource>
|
||||
<title>Introduction</title></info>
|
||||
<para>In the previous chapter, you learnt how to start and stop SICS, and how to login. Now
|
||||
you'll learn how to control the instrument. </para>
|
||||
<para>The first part of this chapter deals with some of the most used commands in SICS. This
|
||||
includes system commands and control commands. This provides you with a soft start. </para>
|
||||
<para>The second part of the chapter deals with logging activity and configuring your
|
||||
connection to SICS.</para>
|
||||
<para>The next chapter will go more deeply into the how SICS executes those commands,
|
||||
through a sequence of states. You may want to skip the next chapter if you don't require
|
||||
a deeper understanding of SICS.</para>
|
||||
<para>This chapter and the next are from the master user manual for SICS. It gives an
|
||||
overview over all commands implemented, independent of a specific instrument. This is to
|
||||
be used as the source for more instrument specific user manuals and gives an overview of
|
||||
the commands available within SICS. Please note, that many instruments have special
|
||||
commands realized as scripts in the SICS built in scripting language. Only the most
|
||||
common of such commands are listed here. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<info>
|
||||
<title>System Commands and Concepts</title>
|
||||
</info>
|
||||
<sect2>
|
||||
<info>
|
||||
<title>Authorisation</title>
|
||||
</info>
|
||||
<para>A client server system is potentially open to unauthorised hackers who might mess
|
||||
up the instrument and your valuable measurements. A known problem in instrument
|
||||
control is that less knowledgeable user accidentally change instrument parameters
|
||||
which ought to be left fixed. In order to solve these two problems SICS supports
|
||||
authorisation on a very fine level. As a user you have to specify a username and
|
||||
password in order to able to access SICS. Some clients already do this for you
|
||||
automatically. SICS support four levels of access to an instrument: </para>
|
||||
<variablelist>
|
||||
<title>Roles</title>
|
||||
<varlistentry>
|
||||
<term>Spy</term>
|
||||
<listitem>
|
||||
<para> may look at everything, request any value, but may not actually
|
||||
change anything. No damage potential here. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>User</term>
|
||||
<listitem>
|
||||
<para> is privileged to perform a certain amount of operations necessary to
|
||||
run the instrument. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Manager</term>
|
||||
<listitem>
|
||||
<para> has the permission to mess with almost everything. A very dangerous
|
||||
person. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>Internal</term>
|
||||
<listitem>
|
||||
<para> is not accessible to the outside world and is used to circumvent
|
||||
protection for internal uses. However some parameters are considered to
|
||||
be so critical that they cannot be changed during the runtime of the
|
||||
SICS-server, not even by Managers.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para> All this is stated here in order to explain the common error message: You are not
|
||||
authorised to do that and that or something along these lines. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>General Structure</title>
|
||||
<para>SICS is a client server system. The application the user sees is usually some form
|
||||
of client. A client has two tasks: the first is to collect user input and send it to
|
||||
the SICS server which then executes the command. The clients second task is to
|
||||
listen to the server messages and display them in a readable format. This approach
|
||||
has two advantages: clients can reside on machines across the whole network thus
|
||||
enabling remote control from everywhere in the world. The second advantage is that
|
||||
new clients (such as graphical user interface clients) can be written in any
|
||||
feasible language without changes to the server. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<info>
|
||||
<title>SICS Command Syntax </title>
|
||||
</info>
|
||||
<para>SICS is an object oriented system. This is reflected in the command syntax. SICS
|
||||
objects can be devices such as motors, single counters, histogram memories or other
|
||||
hardware variables such as wavelength or Title and measurement procedures.
|
||||
Communication with these objects happens by sending messages to the target object.
|
||||
This is very simply done by typing something like: object message par1 par2 .. parn.
|
||||
For example, if we have a motor called A1: </para>
|
||||
<programlisting>
|
||||
A1 list
|
||||
</programlisting>
|
||||
<para>will print a parameter listing for the motor A1. In this example no parameters
|
||||
were needed. There exist a number of one-word commands as well. For compatibility
|
||||
reasons some commands have a form which resembles a function call such as: </para>
|
||||
<programlisting>
|
||||
drive a1 26.54
|
||||
</programlisting>
|
||||
<para>This will drive motor a1 to 26.54. All commands are ASCII-strings and usually in
|
||||
english. SICS is in general CASE INSENSITIVE. However, this does not hold for
|
||||
parameters you have to specify. On a unix system for instance file names are case
|
||||
sensitive and that had to be preserved. Commands defined in the scripting language
|
||||
are lower case by convention. </para>
|
||||
<para> Most SICS objects also hold the parameters required for their proper operation.
|
||||
The general syntax for handling such parameters is: </para>
|
||||
<programlisting>
|
||||
objectname parametername
|
||||
</programlisting>
|
||||
<para> prints the current value of the parameter </para>
|
||||
<programlisting>
|
||||
objectname parametername newvalue
|
||||
</programlisting>
|
||||
<para> sets the parameter value to newvalue if you are properly authorized. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<info>
|
||||
<title>SICS Variables</title>
|
||||
</info>
|
||||
<para>Most of the parameters SICS uses are hidden in the objects to which they belong.
|
||||
But some are separate objects of their own right and are accessible at top level.
|
||||
For instance things like Title or wavelength. They share a common syntax for
|
||||
changing and requesting their values. This is very simple: The command objectname
|
||||
will return the value, the command objectname newvalue will change the variable. But
|
||||
only if the authorisation codes match. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Commonly Used SICS Commands</title>
|
||||
<para>The most used commands in SICS are: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>status</command></term>
|
||||
<listitem>
|
||||
<para>Prints SICS state. Useful for troubleshooting.</para>
|
||||
<para>Possible return values can be: </para>
|
||||
<para><computeroutput>Eager to execute commands</computeroutput></para>
|
||||
<para><computeroutput>Scanning</computeroutput></para>
|
||||
<para><computeroutput>Counting</computeroutput></para>
|
||||
<para><computeroutput>Running</computeroutput></para>
|
||||
<para><computeroutput>Halted</computeroutput></para>
|
||||
<para>Note that if a command is executing which takes some time to complete
|
||||
the server will return an <computeroutput>ERROR: Busy </computeroutput>
|
||||
message when further commands are issued.</para>
|
||||
<para>This does not take into account the state of the PLC. See
|
||||
<command>plc_ready</command>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>plc_ready</command></term>
|
||||
<listitem>
|
||||
<para>Prints the state of the PLC. Useful for troubleshooting.</para>
|
||||
<para>If FALSE, you won't be able to open a shutter or move a motor. It
|
||||
means that you should look at the PLC panel in the instrument cabin and
|
||||
see what exactly is need to be attended to and fix it e.g. Enable
|
||||
Motion. You can't access operations on this panel remotely. </para>
|
||||
<para>Possible return values can be: </para>
|
||||
<para><computeroutput>FALSE</computeroutput>Instrument not ready</para>
|
||||
<para><computeroutput>TRUE</computeroutput>Instrument ready </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist interface drivable</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints a list of all drivable objects. This is more than motors and
|
||||
includes virtual motors, sample environment devices and wavelength
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>run</command>
|
||||
<replaceable>device value</replaceable></term>
|
||||
<listitem>
|
||||
<para><command>run</command> a <replaceable>device</replaceable> to a
|
||||
<replaceable>value</replaceable></para>
|
||||
<para>runs any object listed using <command>sicslist interface
|
||||
drivable</command> in non-blocking/asynchronous mode </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>drive</command>
|
||||
<replaceable>device value</replaceable></term>
|
||||
<listitem>
|
||||
<para><command>drive</command> a <replaceable>device</replaceable> to a
|
||||
<replaceable>value</replaceable></para>
|
||||
<para>drives any object listed using <command>sicslist interface
|
||||
drivable</command> in blocking/synchronous mode </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>stopexe</command>
|
||||
<replaceable>device</replaceable></term>
|
||||
<listitem>
|
||||
<para>interrupts a <command>drive</command> or <command>run</command>
|
||||
command. In the case of motors, the motor will decelerate. It won't stop
|
||||
immediately, as this can cause damage to the instrument </para>
|
||||
<warning>
|
||||
<para>This will not interrupt a scan e.g. <command>runscan</command>. </para>
|
||||
<para>SICS will continue to accept commands from a client</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>stopexe all</command></term>
|
||||
<listitem>
|
||||
<para>interrupts all devices. In the case of motors, the motor will
|
||||
decelerate. It won't stop immediately, as this can cause damage to the
|
||||
instrument </para>
|
||||
<warning>
|
||||
<para>This will not interrupt a scan e.g. <command>runscan</command>. </para>
|
||||
<para>SICS will continue to accept commands from a client</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
<command>runscan </command>
|
||||
<replaceable>scanvar start stop numpoints mode preset [force datatype
|
||||
savetype]</replaceable></para>
|
||||
<para>Arguments must be in the order described. See more detail in the "Simple Scans"
|
||||
chapter.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>scanvar</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>a drivable device, ie a motor or temperature controller etc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>start</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the start position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>stop</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the stop position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>numpoints</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the number of scan points (the start and stop positions will be
|
||||
included in the scan)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>mode </replaceable>one of:</para>
|
||||
<para>
|
||||
<command>time</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>unlimited</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>period</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>count</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>frame</command>
|
||||
</para>
|
||||
<para><command>MONITOR_n</command> (where n=1,2,3 ...)</para>
|
||||
<para>If you set the mode to MONITOR_1 then the histogram server will stop
|
||||
when MONITOR_1 reaches the preset number of counts which has been set
|
||||
with the following <replaceable>preset</replaceable> parameter</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>preset</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the acquisition duration at each scan point, this is in second if the
|
||||
mode is time, or counts if the mode is count or MONITOR_n</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>INT1712 3</command></term>
|
||||
<listitem>
|
||||
<para>interrupts a <command>runscan</command> command. In the case of
|
||||
motors, the motor will decelerate. It won't stop immediately, as this
|
||||
can cause damage to the instrument </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<info>
|
||||
<title>SICS System Commands</title>
|
||||
</info>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>sics_exitus</command></term>
|
||||
<listitem>
|
||||
<para>A single word commands which shuts the server down. Only managers may
|
||||
use this command. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>wait time</command></term>
|
||||
<listitem>
|
||||
<para>waits time seconds before the next command is executed. This does not
|
||||
stop other clients from issuing commands. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>resetserver</command></term>
|
||||
<listitem>
|
||||
<para>resets the server after an interrupt. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist</command></term>
|
||||
<listitem>
|
||||
<para>Prints a list of all SICS objects. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist server</command></term>
|
||||
<listitem>
|
||||
<para>Prints a list of all server options.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist </command><replaceable>sicsobject</replaceable></term>
|
||||
<listitem>
|
||||
<para>Prints all the metadata associated with the SICS object
|
||||
<replaceable>sicsobject</replaceable>. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist </command><replaceable>sicsobject key</replaceable></term>
|
||||
<listitem>
|
||||
<para>Prints the value of the <replaceable>key</replaceable> associated with
|
||||
the SICS object <replaceable>sicsobject</replaceable>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist setatt </command><replaceable>sicsobject key
|
||||
value</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets a user defined attribute with the name
|
||||
<replaceable>key</replaceable> and the value
|
||||
<replaceable>value</replaceable> for the SICS object
|
||||
<replaceable>sicsobject</replaceable>. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist </command><replaceable>metadatakey</replaceable></term>
|
||||
<listitem>
|
||||
<para>List all unique entries for the specified metadata key. </para>
|
||||
<para>System supplied metadata keys are: </para>
|
||||
<para><option>type</option> The object class</para>
|
||||
<para><option>interface</option> The object interfaces implemented by SICS </para>
|
||||
<para>e.g. <command>sicslist type</command> will print all the objects
|
||||
classes available in the SICS server</para>
|
||||
<para>This list may be augmented with user generated keys as defined through
|
||||
using the <command>sicslist setatt obj key value</command>
|
||||
command</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist </command><replaceable>metadatakey value</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>List all the SICS objects which match the value for the
|
||||
<replaceable>metadatakey</replaceable> given as parameters. </para>
|
||||
<para>e.g. <command>sicslist interface drivable </command> will print all
|
||||
objects implementing the drivable interface in the SICS server.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist objstatus</command>
|
||||
<replaceable>obj</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Will query the current state of the SICS object
|
||||
<replaceable>obj</replaceable>. This makes sense for things like motors,
|
||||
counter etc. which can be run asynchronously. The result can be:</para>
|
||||
<para><computeroutput>idle, fault, busy </computeroutput>etc. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicslist match </command><replaceable>mask</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Will print the names of all SICS objects where the name matches the
|
||||
wildcard given as <replaceable>mask</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>status</command></term>
|
||||
<listitem>
|
||||
<para>A single word command which makes SICS print its current status.</para>
|
||||
<para>Possible return values can be: </para>
|
||||
<para><computeroutput>Eager to execute commands</computeroutput></para>
|
||||
<para><computeroutput>Scanning</computeroutput></para>
|
||||
<para><computeroutput>Counting</computeroutput></para>
|
||||
<para><computeroutput>Running</computeroutput></para>
|
||||
<para><computeroutput>Halted</computeroutput></para>
|
||||
<para>Note that if a command is executing which takes some time to complete
|
||||
the server will return an <computeroutput>ERROR: Busy </computeroutput>
|
||||
message when further commands are issued. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>status interest</command></term>
|
||||
<listitem>
|
||||
<para>initiates automatic printing of any status change in the server. This
|
||||
command is primarily of interest for status display client implementors.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>backup</command></term>
|
||||
<listitem>
|
||||
<para>saves the current values of SICS variables and selected motor and
|
||||
device parameters to the disk file specified as parameter. If no file
|
||||
parameter is given the data is written to the system default status
|
||||
backup file. The format of the file is a list of SICS commands to set
|
||||
all these parameters again. The file is written on the instrument
|
||||
computer relative to the path of the SICS server. This is usually
|
||||
/home/INSTRUMENT/bin. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>backup motsave</command></term>
|
||||
<listitem>
|
||||
<para>toggles a flag which controls saving of motor positions. If this flag is
|
||||
set, commands for driving motors to the current positions are included
|
||||
in the backup file. This is useful for instruments with slipping motors.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>restore</command></term>
|
||||
<listitem>
|
||||
<para>reads a file produced by the backup command described above and
|
||||
restores SICS to the state it was in when the status was saved with
|
||||
backup. If no file argument is given the system default file gets read.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>restore listerr</command></term>
|
||||
<listitem>
|
||||
<para>prints the list of lines which caused errors during the last restore.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>killfile</command></term>
|
||||
<listitem>
|
||||
<para>decrements the data number used for SICS file writing and thus
|
||||
consequently overwrites the last datafile. This is useful when useless
|
||||
data files have been created during tests. As this is critical command
|
||||
in normal user operations, this command requires managers privilege.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>sicsidle</command></term>
|
||||
<listitem>
|
||||
<para>prints the number of seconds since the last invocation of a counting
|
||||
or driving operation. Used in scripts. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Deprecated commands</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>dir</command></term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis> a
|
||||
command which lists objects available in the SICS system. Without
|
||||
any options prints a list of all objects. The list can be restricted
|
||||
with: </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>dir var</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis>prints
|
||||
all SICS primitive variables </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dir mot</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis>prints a
|
||||
list of all motors </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dir inter driv</command></term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis>prints a
|
||||
list of all drivable objects. This is more than motors and includes
|
||||
virtual motors such as environment devices and wavelength as well.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dir inter count</command></term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis>Shows
|
||||
everything which can be counted upon. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dir inter env</command></term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis>Shows all
|
||||
currently configured environment devices. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>dir match </command><replaceable>wildcard</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DEPRECATED: use sicslist</emphasis>lists all
|
||||
objects which match the wildcard string given in wildcard -
|
||||
<emphasis role="bold">doesn't work</emphasis></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<info>
|
||||
<title>Logging your activity</title>
|
||||
</info>
|
||||
<para> SICS offers not less then three different ways of logging your commands and the SICS
|
||||
server’s responses </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>You may create a similar per client log file on the computer running the SICS
|
||||
server through the <command>logbook</command> command. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Then there is a way to log all activity registered from users with either user
|
||||
or manager privilege into a file. This means all commands which affect the
|
||||
experiment regardless from which client they have been issued. This is
|
||||
accomplished with the <command>commandlog</command> command.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> the <command>GetLog</command> command receives messages from all active
|
||||
clients. This allows you to view all events on your connection, and is intended
|
||||
for debugging.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<sect2>
|
||||
<info>
|
||||
<title>LogBook command</title>
|
||||
</info>
|
||||
<para> Some users like to have all the input typed to SICS and responses collected in a
|
||||
file for further review. This is implemented via the <command>LogBook</command>
|
||||
command. <command>LogBook</command> is actually a wrapper around the config file
|
||||
command. <command>LogBook</command> understands the following syntax: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>LogBook</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>alone prints the name of the current logfile and the status of event
|
||||
logging. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>LogBook file</command>
|
||||
<replaceable>filename</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>sets the filename to which output will be printed. Please note that
|
||||
this new filename will only be in effect after restarting logging.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>LogBook on</command></term>
|
||||
<listitem>
|
||||
<para>This command turns logging on. All commands and all answers will be
|
||||
written to the file defined with the command described above. Please
|
||||
note, that this command will overwrite an existing file with the same
|
||||
name. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>LogBook off</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>This command closes the logfile and ends logging.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<info>
|
||||
<title>The Commandlog</title>
|
||||
</info>
|
||||
<para> The Commandlog is a file where all communication with clients having user or
|
||||
manager privilege is logged. This log allows to retrace each step of an experiment.
|
||||
This log is normally configured in the startup file or can be configured by the
|
||||
instrument manager. There exists a special command, <command>Commandlog</command>,
|
||||
which allows to control this log file. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>Commandlog new</command>
|
||||
<replaceable>filename</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>starts a new commandlog writing to
|
||||
<replaceable>filename</replaceable>. Any prior files will be closed. The
|
||||
log file can be found in the directory specified by the ServerOption
|
||||
LogFileDir. Usually this is the log directory. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>Commandlog</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>displays the status of the commandlog. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>Commandlog close</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>closes the commandlog file. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>Commandlog auto</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Switches automatic log file creation on. This is normally switched on.
|
||||
Log files are written to the log directory of the instrument account.
|
||||
There are time stamps any hour in that file and there is a new file any
|
||||
24 hours. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>Commandlog tail</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the last <replaceable>n</replaceable> entries made into the
|
||||
command log. n is optional and defaults to 20. Up to 1000 lines are held
|
||||
in an internal buffer for this command. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>Commandlog intervall</command>
|
||||
<replaceable>minutes</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Queries and configures the intervall in
|
||||
<replaceable>minutes</replaceable> at which time stamps are written to
|
||||
the commandlog.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para> It is now possible to have a script executed whenever a new log file is started.
|
||||
In order to make this work a ServerOption with the name logstartfile must exist in
|
||||
the instrument configuration file. The value of this option must be the full path
|
||||
name of the file to execute. </para>
|
||||
<para> Note: with the command <command>config listen 1</command> you can have the output
|
||||
to the command log printed into your client, too. With <command>config listen
|
||||
0</command> you can switch this off again. This is useful for listening into a
|
||||
running instrument. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>GetLog Command</title>
|
||||
<para> The SICS server logs all its activities to a logfile, regardless of what the user
|
||||
requested. This logfile is mainly intended to help in server debugging. However,
|
||||
clients may register an interest in certain server events and can have them
|
||||
displayed. This facility is accessed via the <command>GetLog</command> command. It
|
||||
needs to be stressed that this log receives messages from all active clients.
|
||||
<command>GetLog</command> understands the following messages: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>GetLog All</command></term>
|
||||
<listitem>
|
||||
<para> achieves that all output to the server logfile is also written to the
|
||||
client which issued this command. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>GetLog Kill</command></term>
|
||||
<listitem>
|
||||
<para>stops all logging output to the client.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>GetLog OutCode</command></term>
|
||||
<listitem>
|
||||
<para>request that only certain events will be logged to the client issuing
|
||||
this command. Enables only the level specified. Multiple calls are
|
||||
possible.</para>
|
||||
<para> Possible values for <command>OutCode</command> are: </para>
|
||||
<para><computeroutput>Internal</computeroutput> internal errors such as
|
||||
memory errors etc.</para>
|
||||
<para><computeroutput>Command</computeroutput> all commands issued from any
|
||||
client to the server. </para>
|
||||
<para><computeroutput>HWError</computeroutput> all errors generated by
|
||||
instrument hardware. The SICS server tries hard to fix HW errors in
|
||||
order to achieve stable operations and may not generate an error message
|
||||
if it was able to fix the problem. This option may be very helpful when
|
||||
tracking dodgy devices. </para>
|
||||
<para><computeroutput>InError</computeroutput> All input errors found on any
|
||||
clients input. </para>
|
||||
<para><computeroutput>Error</computeroutput> All error messages generated by
|
||||
all clients. </para>
|
||||
<para><computeroutput>Status</computeroutput> some commands send status
|
||||
messages to the client invoking the command in order to monitor the
|
||||
state of a scan. </para>
|
||||
<para><computeroutput>Value</computeroutput> Some commands return requested
|
||||
values to a user. These messages have an output code of Value.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<info>
|
||||
<title>Connection Configuration Commands</title>
|
||||
</info>
|
||||
<para> SICS has a command for changing the user rights of the current client server
|
||||
connection, control the amount of output a client receives and to specify additional
|
||||
logfiles where output will be placed. All this is accessed through the following
|
||||
commands: </para>
|
||||
<sect2>
|
||||
<title>Config command</title>
|
||||
<para> The <command>config</command> command configures various aspects of the current
|
||||
client server connection. Basically three things can be manipulated: The connections
|
||||
output class, the user rights associated with it, and output files. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>config OutCode </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>sets the output code for the connection. By default all output is sent
|
||||
to the client. But a graphical user interface client might want to
|
||||
restrict message to only those delivering requested values and error
|
||||
messages and suppressing anything else. In order to achieve this, this
|
||||
command is provided. </para>
|
||||
<para>Possible values: Values for <replaceable>val</replaceable> are</para>
|
||||
<para><option>Internal</option></para>
|
||||
<para><option>Command</option></para>
|
||||
<para><option>HWError</option></para>
|
||||
<para><option>InError</option></para>
|
||||
<para><option>Status</option></para>
|
||||
<para><option>Error</option></para>
|
||||
<para><option>Value</option></para>
|
||||
<para>This list is hierarchical. For example specifying
|
||||
<option>InError</option> for <replaceable>val</replaceable> lets the
|
||||
client receive all messages tagged <option>InError, Status,
|
||||
Error</option> and <option>Value</option>, but not <option>HWError,
|
||||
Command</option> and <option>Internal</option> messages. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config Rights</command>
|
||||
<replaceable>Username Password</replaceable></term>
|
||||
<listitem>
|
||||
<para>Each connection between a client and the SICS server has user rights
|
||||
assocociated with it. These user rights can be configured at runtime
|
||||
with the command <command>config Rights </command>
|
||||
<replaceable>Username Password</replaceable>. If a matching entry can be
|
||||
found in the servers password database new rights will be set. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config File</command>
|
||||
<replaceable>name</replaceable></term>
|
||||
<listitem>
|
||||
<para>Scientists are not content with having output on the screen. In order
|
||||
to check results a log of all output may be required. The command
|
||||
<command>config File</command>
|
||||
<replaceable>name</replaceable> makes all output to the client to be
|
||||
written to the file specified by <replaceable>name</replaceable> as
|
||||
well. The file must be a file accessible to the server, i.e. reside on
|
||||
the same machine as the server. Up to 10 logfiles can be specified.
|
||||
Note, that a directly connected line printer is only a special filename
|
||||
in unix. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config close</command>
|
||||
<replaceable>num</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>closes the log file denoted by num again. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config list</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>lists the currently active values for outcode and user rights. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config myname</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>returns the name of the connection. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config myrights</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the rights associated with your connection. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>config listen</command>
|
||||
<replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>switches listening to the commandlog on or off for this conenction. If
|
||||
this on, all output to the commandlog, i.e. all interesting things
|
||||
happening in SICS, is printed to your connection as well.</para>
|
||||
<para><replaceable>val</replaceable> = <option>0</option> is off</para>
|
||||
<para><replaceable>val</replaceable> = <option>1</option> is on</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
672
site_ansto/manual/dbSICSch18_programmer_overview.xml
Normal file
@@ -0,0 +1,672 @@
|
||||
<?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><bibliosource> The SICS programmers guide. overview.tex converted to docbook using
|
||||
htlatex. SINQ specific content removed</bibliosource>
|
||||
<title>SICS Overview</title></info>
|
||||
<sect1>
|
||||
<title>Introduction</title>
|
||||
<para>SICS, the SINQ Instrument Control System, meets the following specifications: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 11-->
|
||||
<para>Control the instrument reliably. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 12-->
|
||||
<para>Good remote access to the instrument via the internet. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 13-->
|
||||
<para>Portability across operating system platforms. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 14-->
|
||||
<para>Enhanced portability across instrument hardware. This means that it should
|
||||
be easy to add other types of motors, counters or other hardware to the
|
||||
system. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 17-->
|
||||
<para>Support authorization on the command and parameter modification level.
|
||||
This means that certain instrument settings can be protected against random
|
||||
changes by less knowledgeable users. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 21-->
|
||||
<para>Good maintainability and extendability. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 22-->
|
||||
<para>Be capable to accommodate graphical user interfaces. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 23-->
|
||||
<para>One code base for all instruments. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 24-->
|
||||
<para>Powerful macro language.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>A suitable new system was implemented using an object oriented design which
|
||||
matches the above criteria. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>SICS Overall Design</title>
|
||||
<para>In order to achieve the design goals stated above it was decided to divide the
|
||||
system into a client server system. This means that there are at least two programs
|
||||
necessary to run an instrument: a client program and a server program. The server
|
||||
program, the SICS server, does all the work and implements the actual instrument
|
||||
control. The SICS server usually runs on the ics (instrument control server)
|
||||
computer. The client program may run on any computer on the world and implements the
|
||||
user interface to the instrument. Any numbers of clients can communicate with one
|
||||
SICS server. The SICS server and the clients communicate via a simple ASCII command
|
||||
protocol through TCP/IP sockets. With this design good remote control through the
|
||||
network is easily achieved. As clients can be implemented in any language or system
|
||||
capable of handling TCP/IP the user interface and the functional aspect are well
|
||||
separated. This allows for easy exchange of user interfaces by writing new clients.
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>SICS Clients</title>
|
||||
<para>SICS Clients implement the SICS user interface. The Gumtree client is implemented
|
||||
in Java for platform independence. This is a real concern where MS Windows,
|
||||
Macintosh and Unix users have to be satisfied. As many instrument scientists still
|
||||
prefer the command line for interacting with instruments, the most used client is a
|
||||
visual command line client. Status displays are another kind of specialized client
|
||||
programs. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>The SICS Server</title>
|
||||
<para>The SICS server is the core component of the SICS system. The SICS server is
|
||||
responsible for doing all the work in instrument control. Additionally the server
|
||||
has to answer the requests of possibly multiple clients. The SICS server can be
|
||||
subdivided into three subsystems: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term> The kernel </term>
|
||||
<listitem>
|
||||
<!--l. 102-->
|
||||
<para>The SICS server kernel takes care of client multitasking and the
|
||||
preservation of the proper I/O and error context for each client command
|
||||
executing. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> SICS Object Database </term>
|
||||
<listitem>
|
||||
<!--l. 105-->
|
||||
<para>SICS objects are software modules which represent all aspects of an
|
||||
instrument: hardware devices, commands, measurement strategies and data
|
||||
storage. This database of objects is initialized at server startup time
|
||||
from an initialization script. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> The Interpreter </term>
|
||||
<listitem>
|
||||
<!--l. 109-->
|
||||
<para>The interpreter allows to issue commands to the objects in the objects
|
||||
database.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<figure>
|
||||
<title>Schematic Representation of the SICS server structure </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="150mm"
|
||||
fileref="newsics.gif"/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>The SICS Server Kernel</title>
|
||||
<para>In more detail the SICS server kernel has the following tasks: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 125-->
|
||||
<para>Accept and verify client connection requests. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 126-->
|
||||
<para>Read and execute client commands. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 127-->
|
||||
<para>Maintain the I/O and error context for each client connection. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 128-->
|
||||
<para>Serialize data access. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 129-->
|
||||
<para>Serialize hardware access. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 130-->
|
||||
<para>Monitor HW operations. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 131-->
|
||||
<para>Monitor environment devices.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Any program serving multiple clients has the problem how to organize multiple
|
||||
clients accessing the same server and how to prevent one client from reading data,
|
||||
while another client is writing. The approach used for the SICS server is a
|
||||
combination of polling and cooperative multitasking. This scheme is simple and can
|
||||
be implemented in an operating system independent manner. One way to look at the
|
||||
SICS server is as a series of tasks in a circular queue executing one after another.
|
||||
The servers main loop does nothing but executing the tasks in this circular buffer
|
||||
in an endless loop. There are several system tasks and one such task for each living
|
||||
client connection. Thus only one task executes at any given time and data access is
|
||||
efficiently serialized. </para>
|
||||
<para>One of the main system tasks, and the one which will be always there, is the
|
||||
network reader. The network reader has a list of open network connections and checks
|
||||
each of them for pending requests. What happens when data is pending on an open
|
||||
network port depends on the type of port: If it is the servers main connection port,
|
||||
the network reader will try to accept and verify a new client connection and create
|
||||
the associated data structures. If the port belongs to an open client connection the
|
||||
network reader will read the command pending and put it onto a command stack
|
||||
existing for each client connection. When it is time for a client task to execute,
|
||||
it will fetch a command from its very own command stack and execute it. This is how
|
||||
the SICS server deals with client requests. </para>
|
||||
<para>The scheme described above relies on the fact that most SICS command need only
|
||||
very little time to execute. A command needing time extensive calculations may
|
||||
effectively block the server. Implementations of such commands have to take care
|
||||
that control passes back to the task switching loop at regular intervals in order to
|
||||
prevent the server from blocking. </para>
|
||||
<para>Another problem in a server handling multiple client requests is how to maintain
|
||||
the proper execution context for each client. This includes the clients I/O-context
|
||||
(socket), the authorisation of the client and possible error conditions pending for
|
||||
a client connection. SICS does this via a connection object, a special data
|
||||
structure holding all the above information plus a set of functions operating on
|
||||
this data structure. This connection object is passed along with many calls
|
||||
throughout the whole system. </para>
|
||||
<para>Multiple clients issuing commands to the SICS server may mean that multiple
|
||||
clients might try to move motors or access other hardware in conflicting ways. As
|
||||
there is only one set of instrument hardware this needs to be prevented. This is
|
||||
achieved by a convention. No SICS object drives hardware directly but registers it's
|
||||
request with a special object, the device executor. This device executor starts the
|
||||
requested operation and reserves the hardware for the length of the operation.
|
||||
During the execution of such an hardware request all other clients requests to drive
|
||||
the hardware will return an error. The device executor is also responsible for
|
||||
monitoring the progress of an hardware operation. It does so by adding a special
|
||||
task into the system which checks the status of the operation each time this tasks
|
||||
executes. When the hardware operation is finished this device executor task will
|
||||
end. A special system facility allows a client task to wait for the device executor
|
||||
task to end while the rest of the task queue is still executing. In this way time
|
||||
intensive hardware operations can be performed by drive, count or scan commands
|
||||
without blocking the whole system for other clients. </para>
|
||||
<para>The SICS server can be configured to support another security feature, the token
|
||||
system. In this scheme a client can grab control of the instrument. With the control
|
||||
token grabbed, only the client which has the token may control the instrument. Any
|
||||
other client may look at things in the SICS server but does not have permission to
|
||||
change anything. Passing the control token requires that the client which has the
|
||||
token releases the token so that another client may grab it. There exists a password
|
||||
protected back door for SICS managers which allows to force the release of a control
|
||||
token. </para>
|
||||
<para>Most experiments do not happen at ambient room conditions but require some special
|
||||
environment for the sample. Mostly this is temperature but it can also be magnetic
|
||||
of electric fields etc. Most of such devices can regulate themselves but the data
|
||||
acquisition program needs to monitor such devices. Within SICS, this is done via a
|
||||
special system object, the environment monitor. A environment device, for example a
|
||||
temperature controller, registers it's presence with this object. Then a special
|
||||
system task will control this device when it is executing, check for possible out of
|
||||
range errors and initiates the proper error handling if such a problem is
|
||||
encountered. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>The SICS Interpreter</title>
|
||||
<para>When a task belonging to a client connection executes a command it will pass the
|
||||
command along with the connection object to the SICS interpreter. The SICS
|
||||
interpreter will then analyze the command and forward it to the appropriate SICS
|
||||
object in the object database for further action. The SICS interpreter is very much
|
||||
modeled after the Tcl interpreter as devised by John Ousterhout</para>
|
||||
<para> For each SICS object visible from the interpreter there is a wrapper function.
|
||||
Using the first word of the command as a key, the interpreter will locate the
|
||||
objects wrapper function. If such a function is found it is passed the command
|
||||
parameters, the interpreter object and the connection object for further processing.
|
||||
An interface exists to add and remove commands to this interpreter very easily. Thus
|
||||
the actual command list can be configured easily to match the instrument in
|
||||
question, sometimes even at run time. Given the closeness of the design of the SICS
|
||||
interpreter to the Tcl interpreter, the reader may not be surprised to learn that
|
||||
the SICS server incorporates Tcl as its internal macro language. The internal macro
|
||||
language may use Tcl commands as well as SICS commands. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>SICS Objects</title>
|
||||
<para>As already said, SICS objects implement the true functionality of SICS instrument
|
||||
control. All hardware, all commands and procedures, all data handling strategies are
|
||||
implemented as SICS objects. Hardware objects, for instance motors deserve some
|
||||
special attention. Such objects are divided into two objects in the SICS system: A
|
||||
logical hardware object and a driver object. The logical object is responsible for
|
||||
implementing all the nuts and bolts of the hardware device, whereas the driver
|
||||
defines a set of primitive operations on the device. The benefit of this scheme is
|
||||
twofold: switching to new hardware, for instance a new type of motor, just requires
|
||||
to incorporate a new driver into the system. Internally, independent from the actual
|
||||
hardware, all hardware object of the same type, for example motors look the same and
|
||||
can be treated the same by higher level objects. No need to rewrite a scan command
|
||||
because a motor changed. </para>
|
||||
<para>In order to live happily within the SICS system SICS object have to adhere to a
|
||||
system of protocols. There are protocols for: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 247-->
|
||||
<para>Input/Output to the client. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 248-->
|
||||
<para>Error handling. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 249-->
|
||||
<para>Interaction with the interpreter. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 250-->
|
||||
<para>For identification of the object to the system at run time. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 251-->
|
||||
<para>For interacting with hardware, see device executor above. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 252-->
|
||||
<para>For checking the authorisation of the client who wants to execute the
|
||||
command.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>SICS objects have the ability to notify clients and other objects of internal
|
||||
state changes. For example when a motor is driven, the motor object can be
|
||||
configured to tell SICS clients or other SICS objects about his new position. </para>
|
||||
<para>SICS uses NeXus, the upcoming standard for data exchange for neutron and xray
|
||||
scattering as its raw data format. </para>
|
||||
<para>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>SICS Working Examples</title>
|
||||
<para>In order to get a better feeling for the internal working of SICS the course of a
|
||||
few different requests through the SICS system is traced in this section. The
|
||||
examples traced will be: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 269-->
|
||||
<para>A request for a new client connection. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 270-->
|
||||
<para>A simple command. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 271-->
|
||||
<para>A command to drive a motor in blocking mode. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 272-->
|
||||
<para>A command to drive a motor which got interrupted by the user. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 273-->
|
||||
<para>A command to drive a motor in non blocking mode.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>For the whole discussion it is assumed that the main loop is running, executing
|
||||
cyclically each single task registered in the server. Task switching is done by a
|
||||
special system component, the task switcher. </para>
|
||||
<para>
|
||||
</para>
|
||||
<sect2>
|
||||
<title>The Request for a new Client Connection</title>
|
||||
<para>
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 281-->
|
||||
<para>The network reader recognizes pending data on its main server port.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 282-->
|
||||
<para>The network reader accepts the connection and tries to read an
|
||||
username/password pair. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 284-->
|
||||
<para>If such an username/password pair comes within a suitable time
|
||||
interval it is checked for validity. On failure the connection is closed
|
||||
again. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 287-->
|
||||
<para>If a valid connection has been found: A new connection object is
|
||||
created, a new task for this client connection is introduced into the
|
||||
system and the network reader registers a new client port to check for
|
||||
pending commands. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 291-->
|
||||
<para>Control is passed back to the task switcher.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>A Simple Command</title>
|
||||
<para>
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 296-->
|
||||
<para>The network reader finds data pending at one of the client ports.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 297-->
|
||||
<para>The network reader reads the command, splits it into single lines and
|
||||
put those on top of the client connections command stack. The network
|
||||
reader passes control to the task switcher. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 300-->
|
||||
<para>In due time the client connection task executes, inspects its command
|
||||
stack, pops the command pending and forwards it together with a pointer
|
||||
to itself to the SICS interpreter. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 303-->
|
||||
<para>The SICS interpreter inspects the first word of the command. Using
|
||||
this key the interpreter finds the objects wrapper function and passes
|
||||
control to that function. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 306-->
|
||||
<para>The object wrapper function will check further arguments, checks the
|
||||
clients authorisation if appropriate for the action requested. Depending
|
||||
on the checks, the wrapper function will create an error message or do
|
||||
its work. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 310-->
|
||||
<para>This done, control passes back through the interpreter and the
|
||||
connection task to the task switcher. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 312-->
|
||||
<para>The next task executes.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>A "drive" Command in Blocking Mode</title>
|
||||
<para>
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 317-->
|
||||
<para>The network reader finds data pending at one of the client ports.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 318-->
|
||||
<para>The network reader reads the command, splits it into single lines and
|
||||
put those on the top of the client connections command stack. The
|
||||
network reader passes control to the task switcher. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 321-->
|
||||
<para>In due time the client connection task executes, inspects its command
|
||||
stack, pops the command pending and forwards it together with a pointer
|
||||
to itself to the SICS interpreter. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 324-->
|
||||
<para>The SICS interpreter inspects the first word of the command. Using
|
||||
this key the interpreter finds the drive command wrapper function and
|
||||
passes control to that function. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 327-->
|
||||
<para>The drive command wrapper function will check further arguments,
|
||||
checks the clients authorisation if appropriate for the action
|
||||
requested. Depending on the checks, the wrapper function will create an
|
||||
error message or do its work. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 332-->
|
||||
<para>Assuming everything is OK, the motor is located in the system. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 333-->
|
||||
<para>The drive command wrapper function asks the device executor to run the
|
||||
motor. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 335-->
|
||||
<para>The device executor verifies that nobody else is driving, then starts
|
||||
the motor and grabs hardware control. The device executor also starts a
|
||||
task monitoring the activity of the motor. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 338-->
|
||||
<para>The drive command wrapper function now enters a wait state. This means
|
||||
the task switcher will execute other tasks, except the connection task
|
||||
requesting the wait state. The client connection and task executing the
|
||||
drive command will not be able to process further commands. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 342-->
|
||||
<para>The device executor task will keep on monitoring the progress of the
|
||||
motor driving whenever the task switcher allows it to execute. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 344-->
|
||||
<para>In due time the device executor task will find that the motor finished
|
||||
driving. The task will then finish executing. The clients grab of the
|
||||
hardware driving permission will be released. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 347-->
|
||||
<para>At this stage the drive command wrapper function will awake and
|
||||
continue execution. This means inspecting errors and reporting to the
|
||||
client how things worked out. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 350-->
|
||||
<para>This done, control passes back through the interpreter and the
|
||||
connection task to the task switcher. The client connection is free to
|
||||
execute other commands. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 353-->
|
||||
<para>The next task executes.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>A "drive" Command Interrupted</title>
|
||||
<para>
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 358-->
|
||||
<para>The network reader finds data pending at one of the client ports.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 359-->
|
||||
<para>The network reader reads the command, splits it into single lines and
|
||||
put those on the top of the client connections command stack. The
|
||||
network reader passes control to the task switcher. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 362-->
|
||||
<para>In due time the client connection task executes, inspects its command
|
||||
stack, pops the command pending and forwards it together with a pointer
|
||||
to itself to the SICS interpreter. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 365-->
|
||||
<para>The SICS interpreter inspects the first word of the command. Using
|
||||
this key the interpreter finds the drive command wrapper function and
|
||||
passes control to that function. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 368-->
|
||||
<para>The drive command wrapper function will check further arguments,
|
||||
checks the clients authorisation if appropriate for the action
|
||||
requested. Depending on the checks, the wrapper function will create an
|
||||
error message or do its work. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 373-->
|
||||
<para>Assuming everything is OK, the motor is located in the system. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 374-->
|
||||
<para>The drive command wrapper function asks the device executor to run the
|
||||
motor. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 376-->
|
||||
<para>The device executor verifies that nobody else is driving, then starts
|
||||
the motor and grabs hardware control. The device executor also starts a
|
||||
task monitoring the activity of the motor. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 379-->
|
||||
<para>The drive command wrapper function now enters a wait state. This means
|
||||
the task switcher will execute other tasks, except the connection task
|
||||
requesting the wait state. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 382-->
|
||||
<para>The device executor task will keep on monitoring the progress of the
|
||||
driving of the motor when it is its turn to execute. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 384-->
|
||||
<para>The network reader finds a user interrupt pending. The interrupt will
|
||||
be forwarded to all tasks in the system. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 386-->
|
||||
<para>In due time the device executor task will try to check on the progress
|
||||
of the motor. It will recognize the interrupt. If appropriate the motor
|
||||
will get a halt command. The task will then die. The clients grab of the
|
||||
hardware driving permission will be released. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 390-->
|
||||
<para>At this stage the drive command wrapper function will awake and
|
||||
continue execution. This means it finds the interrupt, tells the user
|
||||
what he already knows: an interrupt was issued. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 393-->
|
||||
<para>This done, control passes back through drive command wrapper, the
|
||||
interpreter and the connection task to the task switcher. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 396-->
|
||||
<para>The next task executes.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>A "run" Command in Non Blocking Mode</title>
|
||||
<para>
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<!--l. 401-->
|
||||
<para>The network reader finds data pending at one of the client ports.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 402-->
|
||||
<para>The network reader reads the command, splits it into single lines and
|
||||
put those on the top of the client connections command stack. The
|
||||
network reader passes control to the task switcher. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 405-->
|
||||
<para>In due time the client connection task executes, inspects its command
|
||||
stack, pops the command pending and forwards it together with a pointer
|
||||
to itself to the SICS interpreter. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 408-->
|
||||
<para>The SICS interpreter inspects the first word of the command. Using
|
||||
this key the interpreter finds the drive command wrapper function and
|
||||
passes control to that function. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 411-->
|
||||
<para>The "run" command wrapper function will check further arguments,
|
||||
checks the clients authorisation if appropriate for the action
|
||||
requested. Depending on the checks, the wrapper function will create an
|
||||
error message or do its work. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 416-->
|
||||
<para>Assuming everything is OK, the motor is located in the system. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 417-->
|
||||
<para>The "run" command wrapper function asks the device executor to run the
|
||||
motor. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 419-->
|
||||
<para>The device executor verifies that nobody else is driving, then starts
|
||||
the motor and grabs hardware control. The device executor also starts a
|
||||
task monitoring the activity of the motor. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 422-->
|
||||
<para>The run command wrapper function passes control through the
|
||||
interpreter and the clients task function back to the task switcher. The
|
||||
client connection can handle new commands. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 425-->
|
||||
<para>The device executor task will keep on monitoring the progress of the
|
||||
motor driving whenever the task switcher allows it to execute. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<!--l. 427-->
|
||||
<para>In due time the device executor task will find that the motor finished
|
||||
driving. The task will then die silently. The clients grab of the
|
||||
hardware driving permission will be released. Any errors however, will
|
||||
be reported.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>All this seems to be pretty complex and time consuming. But it is the
|
||||
complexity needed to do so many things, especially the non blocking mode of
|
||||
operation requested by users. Tests have shown that the task switcher manages
|
||||
+900 cycles per second through the task list on a DigitalUnix machine and 500
|
||||
cycles per second on a pentium 2GHz machine running linux. Both data were
|
||||
obtained with software simulation of hardware devices. With real SINQ hardware
|
||||
these numbers drop to as low as 4 cycles per second if the hardware is slow in
|
||||
responding. This shows clearly that the communication with the hardware is the
|
||||
systems bottleneck and not the task switching scheme. </para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
149
site_ansto/manual/dbSICSch19_interrupting_sics.xml
Normal file
@@ -0,0 +1,149 @@
|
||||
<?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>Interrupting SICS</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2006-09-04 15:50</date>
|
||||
<bibliosource>The SICS programmers guide. converted to docbook using htlatex. converted to
|
||||
docbook5 by xslt in Oxygen. SINQ specific content removed</bibliosource>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Safety</title>
|
||||
<para>SICS is <emphasis role="bold">NOT</emphasis> a safety system! It will allow you to do
|
||||
tasks that may damage persons and the instruments. </para>
|
||||
<para>
|
||||
</para>
|
||||
<para><emphasis role="bold">DO</emphasis> use the <emphasis role="bold">STAR</emphasis>
|
||||
principle. <emphasis role="bold">STOP. THINK. ACT. REVIEW</emphasis></para>
|
||||
<para><emphasis role="bold">Familiarise</emphasis> yourself the location of the Emergency
|
||||
Stop buttons located near the cabin exit, or in several places within the instrument
|
||||
enclosure.</para>
|
||||
<para><emphasis role="bold">Familiarise</emphasis> yourself with the instrument and its safe
|
||||
operation. </para>
|
||||
<para><emphasis role="bold">DO NOT</emphasis> do anything with SICS that may risk damage to
|
||||
persons or the instrument. </para>
|
||||
<para><emphasis role="bold">DO NOT</emphasis> rely on these commands to stop motors or close
|
||||
shutters. If in any doubt, use the Emergency Stop button.</para>
|
||||
<para>The commands in this chapter may fail for a variety of reasons. <itemizedlist>
|
||||
<listitem>
|
||||
<para>SICS has crashed</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Your network connection to the SICS is blocked, due to network congestion
|
||||
or failure</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The motor controller is no longer accepting connections or has a rogue
|
||||
process running</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>stopexe command</title>
|
||||
<para>The <command>stopexe</command> command will stop drivable objects. It will NOT stop
|
||||
scans or batch files. For that you'll have to use an interrupt as found in the next
|
||||
section.</para>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>stopexe</command>
|
||||
<replaceable>device</replaceable></term>
|
||||
<listitem>
|
||||
<para>interrupts a <command>drive</command> or <command>run</command>
|
||||
command. In the case of motors, the motor will decelerate. It won't stop
|
||||
immediately, as this can cause damage to the instrument </para>
|
||||
<warning>
|
||||
<para>This will not interrupt a scan e.g. <command>runscan</command>. </para>
|
||||
<para>SICS will continue to accept commands from a client</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>stopexe all</command></term>
|
||||
<listitem>
|
||||
<para>interrupts all devices. In the case of motors, the motor will
|
||||
decelerate. It won't stop immediately, as this can cause damage to the
|
||||
instrument </para>
|
||||
<warning>
|
||||
<para>This will not interrupt a scan e.g. <command>runscan</command>. </para>
|
||||
<para>SICS will continue to accept commands from a client</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<info>
|
||||
<title>Interrupting SICS</title>
|
||||
</info>
|
||||
<para>On occasion, you as the user, or a SICS object may come to the conclusion that an
|
||||
error is so bad that the measurement needs to be stopped. Clearly a means is needed to
|
||||
communicate this to upper level code. This means is setting an interrupt on the
|
||||
connection. The current active interrupt is located at the connection object (note for
|
||||
SICS programmers, this can be retrieved with SCGetInterrupt and set with SCSetInterrupt.
|
||||
Interrupt codes are defined in interrupt.h). These codes are ordered into a hierarchy</para>
|
||||
<para>
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term> INT1712 0 </term>
|
||||
<listitem>
|
||||
<para>Continue. Everything is just fine. eContinue</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> INT1712 1 </term>
|
||||
<listitem>
|
||||
<para>Abort Operation. </para>
|
||||
<para>Stop the current scan point or whatever is done, but do not stop
|
||||
altogether. eAbortOperation</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> INT1712 2 </term>
|
||||
<listitem>
|
||||
<para>Abort Scan. </para>
|
||||
<para>Abort the current scan, but continue processing of further commands in
|
||||
buffers or command files. eAbortScan</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> INT1712 3 </term>
|
||||
<listitem>
|
||||
<para>Abort Batch. </para>
|
||||
<para>Aborts everything, operations, scans and batch processing and leaves the
|
||||
system ready to enter new commands. eAbortBatch</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> INT1712 4 </term>
|
||||
<listitem>
|
||||
<para>Halt System. </para>
|
||||
<para>As eAbortBatch, but lock the system. eHaltSystem</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> INT1712 5 </term>
|
||||
<listitem>
|
||||
<para>Free System</para>
|
||||
<para>Unlocks a system halted with eHaltSystem. eFreeSystem</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term> INT1712 6 </term>
|
||||
<listitem>
|
||||
<warning>
|
||||
<para>For internal usage only</para>
|
||||
</warning>
|
||||
<para>Makes the SICS server run down and exit. .</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>Higher level SICS objects may come to the conclusion that the error reported by lower
|
||||
level code is actually not that critical and clear any pending interrupts by setting the
|
||||
interrupt code to eContinue and thus consume the interrupt. </para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
260
site_ansto/manual/dbSICSch1_intro.xml
Normal file
@@ -0,0 +1,260 @@
|
||||
<?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><application>SICS</application> - The Instrument Control Server</title><author>
|
||||
<personname>Ferdi Franceschini </personname>
|
||||
</author>
|
||||
<date>2007-02-28 18:29</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Safety</title>
|
||||
<para>SICS is <emphasis role="bold">NOT</emphasis> a safety system! It will allow you to do
|
||||
tasks that may damage persons and the instruments. </para>
|
||||
<para>
|
||||
</para>
|
||||
<para><emphasis role="bold">DO</emphasis> use the <emphasis role="bold">STAR</emphasis>
|
||||
principle. <emphasis role="bold">STOP. THINK. ACT. REVIEW</emphasis></para>
|
||||
<para><emphasis role="bold">Familiarise</emphasis> yourself the location of the Emergency
|
||||
Stop buttons located near the cabin exit, or in several places within the instrument
|
||||
enclosure.</para>
|
||||
<para><emphasis role="bold">Familiarise</emphasis> yourself with the instrument and its safe
|
||||
operation. </para>
|
||||
<para><emphasis role="bold">DO NOT</emphasis> do anything with SICS that may risk damage to
|
||||
persons or the instrument. </para>
|
||||
<para><emphasis role="bold">DO NOT</emphasis> rely on these commands to stop motors or close
|
||||
shutters. If in any doubt, use the Emergency Stop button.</para>
|
||||
<para>The commands in this chapter may fail for a variety of reasons. <itemizedlist>
|
||||
<listitem>
|
||||
<para>SICS has crashed</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Your network connection to the SICS is blocked, due to network congestion
|
||||
or failure</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The motor controller is no longer accepting connections or has a rogue
|
||||
process running</para>
|
||||
</listitem>
|
||||
</itemizedlist></para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>What is SICS</title>
|
||||
<para>Neutron scattering experiments require control of motors for instrument configuration,
|
||||
control of histogram memory for counting neutrons, and control of sample environment.
|
||||
SICS is a program that accepts human readable commands, and converts these to commands
|
||||
that devices understand. For simplicity, much of the control for an experiment is done
|
||||
in a sequence (synchronously), requiring that an operation completes successfully before
|
||||
the next is commenced. SICS can also be used asynchronously, but more care has to be
|
||||
exercised by the operator to ensure the desired result. </para>
|
||||
<para>Instrument control is based on a client server architecture, each instrument has a
|
||||
dedicated server, called <application>SICS</application>, which receives commands from
|
||||
client applications and then executes them by issuing control sequences to the
|
||||
hardware. <application>SICS</application> was originally developed at <uri
|
||||
xlink:href="http://lns00.psi.ch/sics/design/sics.html">PSI</uri> to control the SINQ
|
||||
spallation source instruments. Drivers and site specific extensions have been developed
|
||||
at ANSTO to control and provide status information for motors, sample environment and
|
||||
histogrammed neutron event data from the detectors.</para>
|
||||
<para/>
|
||||
<para>Driving a device synchronously is done using the <command>drive</command> command. The
|
||||
device could be a motor or sample environment e.g. temperature controller.</para>
|
||||
<para>Driving a device asynchronously is done using the <command>run</command> command.</para>
|
||||
<para>Stopping the device is done using the <command>stopexe</command> command.</para>
|
||||
<para>Counting of histogrammed neutron events is done using the <command>histmem</command>
|
||||
command.</para>
|
||||
<para>Running scans that are a linear sequence of driving, counting and file saving tasks is
|
||||
done using the <command>runscan</command> command.</para>
|
||||
<para>Creating a new file is done using the <command>newfile</command> command, and saving
|
||||
data to the file is done using the <command>save</command> command.</para>
|
||||
<para>Detail for using each of these commands is provided in the next chapter. SICS provides
|
||||
many other functions, but we won't cloud the issue at this stage. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Should I read further?</title>
|
||||
<para>In general, the Bragg Institute instrument scientists manage SICS for the instrument
|
||||
users. SICS should be running when you come to the instrument, and you should only need
|
||||
to run the Gumtree program, which is a graphical user interface. You should read further if you think that SICS is not
|
||||
running and you want to start it, you want to command a device directly with SICS (the
|
||||
first half of this manual), or you would like to change the instrument configuration
|
||||
(the second half). </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Where is SICS?</title>
|
||||
<para>SICS runs on an ICS computer (instrument control server). All ICS computers run the
|
||||
Linux operating system, and have a name that looks like ics1-echidna.nbi.ansto.gov.au.
|
||||
If you have an account on the NBI network, you can use that username and password to
|
||||
login. You must login using <command>ssh</command> from a unix computer, or using an ssh
|
||||
client on a Microsoft Windows computer like <link
|
||||
xlink:href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">
|
||||
<application>putty</application></link> or
|
||||
<application>F-Secure</application></para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Starting and stopping <application>SICS</application> using
|
||||
<command>runsics</command></title>
|
||||
<para>To control the instrument, the SICS software must be running on the instrument control
|
||||
computer. First, check to see if SICS is already running by calling the
|
||||
<command>runsics</command>
|
||||
<option>status </option> command as shown below. Note: the "echidna@ics1-echidna:~>" is
|
||||
just the command line prompt.</para>
|
||||
<programlisting>
|
||||
echidna@ics1-echidna:~> runsics status
|
||||
SICServer running
|
||||
SICS script validator running
|
||||
</programlisting>
|
||||
<para>This example shows SICS is already running. In this case, you should proceed to login
|
||||
to SICS. </para>
|
||||
<para>If the reply is</para>
|
||||
<programlisting>
|
||||
echidna@ics1-echidna:~> runsics status
|
||||
SICServer NOT running
|
||||
SICS script validator NOT running
|
||||
</programlisting>
|
||||
<para>then use the <command>runsics</command>
|
||||
<option>start</option> command</para>
|
||||
<programlisting>
|
||||
echidna@ics1-echidna:~> runsics start
|
||||
|
||||
Starting SICS
|
||||
29087
|
||||
SUCCESS
|
||||
|
||||
|
||||
Starting SICS Script Validator
|
||||
29091
|
||||
SUCCESS
|
||||
</programlisting>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Login to SICS</title>
|
||||
<para>Most users won't want to login to <application>SICS.</application> However, if you do
|
||||
need to get to the <application>SICS</application> command line, then use the
|
||||
<command>sicsclient</command> command at the Linux prompt. </para>
|
||||
<programlisting>
|
||||
echidna@ics1-echidna:~> sicsclient
|
||||
OK
|
||||
</programlisting>
|
||||
<para>Now you'll have to login to SICS with your <option>role</option> and
|
||||
<option>password</option>. The role is <option>spy</option>, <option>user</option> or
|
||||
<option>manager</option>, and the instrument scientist will provide you with the
|
||||
password. </para>
|
||||
<programlisting>
|
||||
sics_username sics_password
|
||||
Login OK
|
||||
</programlisting>
|
||||
<para>When a correct username and password is entered, SICS announces that the login was
|
||||
successful. SICS commands can now be entered.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Starting <application>SICS</application> from the command line</title>
|
||||
<para>To start <application>SICS</application> you have to log on to the instrument control
|
||||
computer and then </para>
|
||||
<para>
|
||||
<computeroutput>cd /usr/local/sics/server</computeroutput>
|
||||
</para>
|
||||
<para> and launch the server in the background with a command similar to the one shown below</para>
|
||||
<para>
|
||||
<computeroutput>cd /usr/local/sics/server</computeroutput>
|
||||
</para>
|
||||
<para>
|
||||
<computeroutput>nohup ./SICServer xxx_configuration.tcl &</computeroutput>
|
||||
</para>
|
||||
<para>where <replaceable>xxx</replaceable> is the instrument name.</para>
|
||||
<note>
|
||||
<para>The <replaceable>'&'</replaceable> is important, it runs the server in the
|
||||
background, nohup logs output from <application>SICS</application> to a file called
|
||||
nohup.out and ensures that <application>SICS</application> continues running when
|
||||
you logout. The .tcl file specified on the command line is the configuration file
|
||||
for your instrument, replace the <replaceable>xxx</replaceable> with your
|
||||
instrument's ID. The configuration file may source other .tcl files.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>The validation server and synchronisation with the instrument control server </title>
|
||||
<para>You might be thinking, "What is the validation server used for?". You don't want to
|
||||
run a script on the instrument control server that might be syntactically incorrect, or
|
||||
hits the limits of the hardware. The validation server runs to allow scripts to be
|
||||
tested without moving any hardware. The validation server runs with hardware that is
|
||||
simulated in software.</para>
|
||||
<para>The validation server has its own set of configuration files. It is important to keep
|
||||
these files synchronised with the instrument control server, however there are times you
|
||||
may want to have a different configuration on the validation server. </para>
|
||||
<para>To synchronise the validation server</para>
|
||||
<para><command>> socat READLINE,history=$HOME/history tcp4:127.0.0.1:60013,crlf</command></para>
|
||||
<para>Login to the validation server using <command>sics_username</command> and
|
||||
<command>sics_password</command></para>
|
||||
<para>Synchronising is slow but you can get feedback if you issue the following sequence of
|
||||
commands when you synchronise</para>
|
||||
<para><command>getlog command</command></para>
|
||||
<para><command>getlog value</command></para>
|
||||
<para><command>sync</command></para>
|
||||
<para>You will see something like the following feedback on the validator connection as the
|
||||
sync command is running, </para>
|
||||
<literallayout><computeroutput>
|
||||
Executing -> sync <- from socket 16
|
||||
Executing -> restore ../script_validator//log/status.tcl <- from dummy socket
|
||||
pa_top = -102.499977
|
||||
pa_bottom = -104.000000
|
||||
pa_top = -102.499977
|
||||
pa_bottom = -104.000000
|
||||
pa_top = -102.499977
|
||||
pa_bottom = -104.000000
|
||||
pa_left = -24.699976
|
||||
….
|
||||
New en position: 46.434
|
||||
New qm position: 6.048
|
||||
Simulation Server has SYNCHRONIZED!
|
||||
Fixed motors may not have correct positions
|
||||
</computeroutput></literallayout>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><application>SICS</application> Directory Structure</title>
|
||||
<para><application>SICS</application> is installed on the /usr/local/sics/ directory of the
|
||||
instrument control computer. It has the following subdirectories</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<computeroutput>/server</computeroutput>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>This contains the SICServer and the *.tcl configuration files</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<computeroutput>/data</computeroutput>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Data files are stored here</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<computeroutput>/log</computeroutput>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Server log files are stored here along with the status.tcl file. The
|
||||
status.tcl file preserves variable settings and some parameter values from
|
||||
the last session with the SICServer</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<computeroutput>/tmp</computeroutput>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The server keeps temporary files here</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><application>SICS</application> Configuration</title>
|
||||
<para><application>SICS</application> is configured via *.tcl files which initialise the
|
||||
command objects which clients use to control the hardware. Also, the server's
|
||||
functionality can be extended by defining new commands in the configuration files, we
|
||||
can do this because <application>SICS</application> embeds a <uri
|
||||
xlink:href="http://www.tcl.tk/">Tcl</uri> interpreter (hence the .tcl
|
||||
extension).</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
281
site_ansto/manual/dbSICSch20_file_commands.xml
Normal file
@@ -0,0 +1,281 @@
|
||||
<?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>File commands</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date/>
|
||||
<bibliosource>
|
||||
</bibliosource>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Introduction</title>
|
||||
<sect2>
|
||||
<title>Filenames</title>
|
||||
<para>SICS provides methods to create and save files. You can create a single file, and
|
||||
save either a single dataset, or multiple datasets to the one file. You can also
|
||||
create and manage collections of files, and save single or multiple datasets to
|
||||
files in the collection</para>
|
||||
<para>SICS automatically creates the filename. The filenames have the form <variablelist>
|
||||
<varlistentry>
|
||||
<term>xxxnnnnnnn.nx.hdf</term>
|
||||
<listitem>
|
||||
<para>where xxx is a 3 letter abbreviation of the instrument</para>
|
||||
<para>QKK - quokka</para>
|
||||
<para>ECH - echidna</para>
|
||||
<para>WOM - wombat</para>
|
||||
<para>KOW - kowari</para>
|
||||
<para>PLA - platypus</para>
|
||||
<para>TPN - taipan</para>
|
||||
<para>nnnnnnn is a 7 numeral sequence number, starting at 0000000 when
|
||||
the facility commenced operation, and is automatically incremented
|
||||
by SICS. </para>
|
||||
<para>The file /usr/local/sics/DataNumber is used to keep track of the
|
||||
number. DO NOT edit this file. </para>
|
||||
<para>.nx denotes that the file is a NeXus file. </para>
|
||||
<para>.hdf denotes the file is an hdf5 (binary) file. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
<para>e.g. QKK0001234.nx.hdf </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>File Format. NeXus</title>
|
||||
<para>Files are saved using the ANSTO interpretation of the NeXus standard. </para>
|
||||
<para>SICS support both the xml and hdf5 form. For performance of reading and writing,
|
||||
by default we write hdf5 binary. </para>
|
||||
<para>SICS can also be configured to write xml. This is set in
|
||||
<filename>nxscripts_common_1.tcl</filename>. Set the file,format element of the
|
||||
state array to "xml" </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>File Content</title>
|
||||
<para>This section will give only a very brief overview of NeXus. Further reading can be
|
||||
found at the <link xlink:href="http://www.nexusformat.org">NeXus webite,
|
||||
www.nexusformat.org</link>
|
||||
</para>
|
||||
<para>NeXus is a hierachical data format; data is saved in groups and these groups live
|
||||
under entries. It a similar structure to directories on a file system. We have made
|
||||
a policy decision at the Bragg Institute to have only one entry per file. This entry
|
||||
may contain a variable parameter or scan, where e.g. temperature is varied. If you
|
||||
use the <command>runscan</command> command, histogram data is taken at discrete
|
||||
temperatures. Temperature will be a vector in the file, and the histogram data may
|
||||
be a data cube of 2 dimensional x,y or 3 dimensional x,y,t histogram arrays.</para>
|
||||
<para>There are 4 groups in NeXus. User, Sample, Instrument and Data. SICS will write
|
||||
the data it acquires to one of these groups. The content that is saved, and where in
|
||||
the file it is saved to is controlled by configuration files. </para>
|
||||
<para><filename>/usr/local/sics/server/config/nexus</filename> contains
|
||||
<filename>*.dic</filename> dictionary files. These files tell SICS how to map a SICS
|
||||
object to a location in a NeXus file, and what type the data will be, and its
|
||||
attributes e.g units. Below is an example from nexus.dic</para>
|
||||
<para>
|
||||
<programlisting>
|
||||
samphi = /entry1,NXentry/sample,NXsample/SDS sample_phi
|
||||
-type NX_FLOAT32 -rank 1 -dim {-1}
|
||||
-attr {units,degrees} -attr {long_name,sample_phi}
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>Changes to configurations are done by the facility. Dictionaries can be checked
|
||||
with check_instdict.tcl and check_sicsobj_attributes.tcl.</para>
|
||||
<para>By default, if the SICS object exists and there is an entry in the dictionary,
|
||||
then it will be saved to the data file. There is a second hierarchy of SICS objects
|
||||
which is used by Gumtree for control. This is called hipadaba. We won't go into
|
||||
detail about hipadaba in this manual, but it is important for this discussion to
|
||||
know how hipadaba controls saving of SICS objects. Hipadaba has the same structure
|
||||
as NeXus. The hipadaba tree when initially created by SICS is a complete NeXus tree,
|
||||
which is then pruned to contain only those nodes that exist for that instrument.
|
||||
This allows any node to be added to <filename>nexus.dic</filename> for an instrument
|
||||
without having to change hipadaba. There are dictionary files for hipadaba found at
|
||||
<filename>/usr/local/sics/server/config/hipadaba/</filename>. In general, there
|
||||
is no instrument specific information in these files. Every node in hipadaba has
|
||||
data and nxsave attributes. By default, nxsave is set to true, and if the node
|
||||
contains data, data is set to true. If either of these is set to false, then the
|
||||
data will not be saved. </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>File Locations</title>
|
||||
<para>A mutable (read-write) copy of the file is made a few minutes after the
|
||||
experiment, and is available at e.g.
|
||||
<filename>/experiments/wombat/data/proposal/01234</filename> where
|
||||
<filename>01234</filename> is the proposal number for the current
|
||||
experiment. </para><para>An archive of the file is made to the cycle directory
|
||||
e.g. <filename>/experiments/wombat/data/cycle/040</filename> where
|
||||
<filename>040</filename> is the reactor cycle number. </para>
|
||||
<para>File are written to
|
||||
<filename>/usr/local/sics/data</filename> of the
|
||||
ics1-<replaceable>australian_fauna</replaceable> computer. This path is
|
||||
configured in <filename>server_config.tcl</filename> by setting the
|
||||
<varname>SicsDataPath</varname> variable. Posix symbolic links are used to link
|
||||
the directory to the appropriate directory on filer.nbi.ansto.gov.au, under the
|
||||
<filename>/experiments</filename> mount point e.g
|
||||
<filename>/experiments/wombat/data/current</filename>. You can mount this
|
||||
directory on the MS Windows machine
|
||||
dav1-<replaceable>australian_fauna</replaceable>. Files in this location are
|
||||
read-only. The facility requires an immutable version of the data. </para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>File Commands. Single Files</title>
|
||||
<sect2>
|
||||
<title>newfile command</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>newfile</command>
|
||||
<replaceable>file_type</replaceable>
|
||||
<optional>scratch</optional></term>
|
||||
<listitem>
|
||||
<para>creates a new file of type <replaceable>file_type</replaceable>
|
||||
ready to write to. The command does write any information to disk. </para>
|
||||
<para>To save data, use the <command>save</command> command.</para>
|
||||
<para>You can only hold a reference to one file. If you need to
|
||||
reference a number of files, then use newfile_collection. </para>
|
||||
<para>Only use the optional <optional>scratch</optional> if you want to
|
||||
write data to a scratch file. The file will be overwritten with the
|
||||
next invocation of this option</para>
|
||||
<para><replaceable>file_type</replaceable> may have the following
|
||||
values: </para>
|
||||
<para><option>BEAM_MONITOR</option> Saves data from the configured beam
|
||||
monitors, histogram memory data is not saved.</para>
|
||||
<para><option>HISTOGRAM_T</option> Saves histogram total time data and
|
||||
beam monitor data.</para>
|
||||
<para><option>HISTOGRAM_X</option> Saves histogram x data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_XT</option> Saves histogram x,t data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_Y</option> Saves histogram y data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_YT</option> Saves histogram y,t data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_XY</option> Saves histogram x,y data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_XYT</option> Saves histogram total x,y,t data
|
||||
and beam monitor data.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>save command</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>save</command>
|
||||
<replaceable>index</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>saves data to disk. </para>
|
||||
<para><replaceable>index</replaceable> is the index of data to be saved,
|
||||
starting with 0. To save your first slice of data you would save 0.
|
||||
This provides you with a complete NeXus file. You may be doing After
|
||||
you acquire you next slice of data, you would save 1, then save 2
|
||||
etc. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Other single file commands</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>killfile</command></term>
|
||||
<listitem>
|
||||
<para>decrements the data number used for SICS file writing and thus
|
||||
consequently overwrites the last datafile. This is useful when
|
||||
useless data files have been created during tests. As this is
|
||||
critical command in normal user operations, this command requires
|
||||
managers privilege. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>File Collection Commands</title>
|
||||
<sect2>
|
||||
<title>newfile_collection command</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>newfile_collection</command>
|
||||
<option> -labels </option>
|
||||
<replaceable>{sample1 sample2}</replaceable>
|
||||
<option>-filetype</option>
|
||||
<replaceable>file_type</replaceable>
|
||||
<option>-savetype</option>
|
||||
<replaceable>save_type</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Whereas newfile creates one file, newfile_collection will create
|
||||
as many files as there are labels. The command does write any
|
||||
information to disk. </para>
|
||||
<para>To save data, use the <command>save_collection</command> command</para>
|
||||
<para>Example: You have a multi-sample changer or robot. You want to do
|
||||
a measurement on each sample at multiple temperatures. Your
|
||||
experimental sequence has the sample changer as the fastest varying
|
||||
parameter (inner loop), and temperature change as the slowest
|
||||
varying parameter (outer loop). You want to record all temperature
|
||||
data for a sample in one file.</para>
|
||||
<para><option>-savetype</option>
|
||||
<replaceable>save_type</replaceable> may have the following values: </para>
|
||||
<para>
|
||||
<option>data</option> writes to a normal data file</para>
|
||||
<para><option>scratch</option> writes to a scratch file. The file will
|
||||
be overwritten with the next invocation of this option. Used mainly
|
||||
for testing.</para>
|
||||
<para><option>-filetype</option>
|
||||
<replaceable>file_type</replaceable> may have the following values: </para>
|
||||
<para><option>BEAM_MONITOR</option> Saves data from the configured beam
|
||||
monitors, histogram memory data is not saved.</para>
|
||||
<para><option>HISTOGRAM_T</option> Saves histogram total time data and
|
||||
beam monitor data.</para>
|
||||
<para><option>HISTOGRAM_X</option> Saves histogram x data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_XT</option> Saves histogram x,t data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_Y</option> Saves histogram y data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_YT</option> Saves histogram y,t data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_XY</option> Saves histogram x,y data and beam
|
||||
monitor data.</para>
|
||||
<para><option>HISTOGRAM_XYT</option> Saves histogram total x,y,t data
|
||||
and beam monitor data.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>save_collection command</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>save_collection</command>
|
||||
<option>-index</option>
|
||||
<replaceable>val</replaceable>
|
||||
<command>-labels </command>
|
||||
<replaceable>sample1</replaceable></term>
|
||||
<listitem>
|
||||
<para>saves data to disk within a collection (multiple files)</para>
|
||||
<para><command>-index</command><replaceable>val</replaceable> is the
|
||||
index of data to be saved, starting with 0. To save your first slice
|
||||
of data you would save 0. This provides you with a complete NeXus
|
||||
file. You may be doing After you acquire you next slice of data, you
|
||||
would save 1, then save 2 etc.</para>
|
||||
<para><command>-labels </command>
|
||||
<replaceable>sample1</replaceable> will save to the file referenced
|
||||
by the label <replaceable>sample1</replaceable>. You would put all
|
||||
data relating to a sample into this one file. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
46
site_ansto/manual/dbSICSch21_histogram_configuration.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?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>Histogram Configuration - under construction</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-01-25 09:46</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<info>
|
||||
<bibliosource>http://gumtree:9080/nbicms/Members/ffr/journals/folder.2008-01-24.4596726577/histogram-memory/</bibliosource>
|
||||
<title>Histogram Configuration</title></info>
|
||||
<para>Histograms are the most complex objects in SICS, and when doing configuration you must
|
||||
have </para>
|
||||
<para>The following uploads the text in the hmconfigscript dictionary variable as well as
|
||||
the other dictionary variables to the histogram server.</para>
|
||||
<programlisting>
|
||||
hmm configure init 1
|
||||
hmm init</programlisting>
|
||||
<para>The following just uploads the values in the dictionary variables to the histogram
|
||||
server</para>
|
||||
<programlisting>
|
||||
hmm configure init 0
|
||||
hmm init</programlisting>
|
||||
<para>The following simply updates the values of the dictionary variables listed in the
|
||||
http://localhost:8080/admin/textstatus.egi page.</para>
|
||||
<programlisting>
|
||||
hmm configure statuscheck true
|
||||
hmm stop
|
||||
hmm configure statuscheck false</programlisting>
|
||||
<para>Setting "statuscheck" to false prevents the dictionary variables from being updated
|
||||
every time there is a start, pause or stop.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>OAT_TABLE</title>
|
||||
<para>The oat_table is setup in the instrument specific configuration, the current default
|
||||
for all instruments is to set one large time bin with the upper bin boundary equal to
|
||||
the frame period (ie 20msec).</para>
|
||||
<sect2>
|
||||
<title>Histogram Data Axes</title>
|
||||
<para>The x, y, theta, and time axes are calculated from the spatial and temporal bin
|
||||
boundaries, and a scale factor and offset. </para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
266
site_ansto/manual/dbSICSch22_installation.xml
Normal file
@@ -0,0 +1,266 @@
|
||||
<?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>SICS installation</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-01-25 09:46</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>SICS installation</title>
|
||||
<sect2>
|
||||
<title>Requirements</title>
|
||||
<para>For your operating system, you must have these software components installed. The
|
||||
links here are not maintained. They may or may not be up to date, and may or may not
|
||||
link with the version of SICS you are trying to compile. The standard install
|
||||
operating system for ANSTO is SuSE linux, version 9.2, 10, 10.2</para>
|
||||
<para>
|
||||
<uri xlink:href="http://rpmfind.net/linux/rpm2html/search.php?query=hdf5">HDF5</uri>
|
||||
from <uri xlink:href="http://www.hdfgroup.org/HDF5/"
|
||||
>http://www.hdfgroup.org/HDF5/</uri>
|
||||
</para>
|
||||
<para>
|
||||
<uri xlink:href="http://oss.metaparadigm.com/json-c/">JSON-C</uri> from <uri
|
||||
xlink:href="http://www.json.org/">http://www.json.org/</uri></para>
|
||||
<para>
|
||||
<uri xlink:href="http://mxml.sourceforge.net/">mxml</uri> from <uri
|
||||
xlink:href="http://mxml.sourceforge.net/">http://mxml.sourceforge.net/</uri>
|
||||
</para>
|
||||
<para>tcl8.4 - Get this from the RPMs for your operating system. Also requires
|
||||
tcl-devel, zlib, zlib-devel, libghttp and libghttp-devel RPMs and tDOM</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Getting SICS at ANSTO</title>
|
||||
<para>To get sics you must have an account on boson and you need to belong to the nbip
|
||||
group. If you are using the command line cvs client you need to set the CVS_RSH
|
||||
environment variable to ssh. You can then check sics out with the following
|
||||
command,</para>
|
||||
<programlisting>cvs -d:ext:uname@boson.ansto.gov.au:/projects/nbip/cvsroot co sics</programlisting>
|
||||
<para>where uname is your username on boson.</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Getting a Release Branch</title>
|
||||
<programlisting>cvs -d:ext:uname@boson.ansto.gov.au:/projects/nbip/cvsroot
|
||||
co -rRELEASE-<N>_0-BRANCH sics</programlisting>
|
||||
<para>where <N> is the branch number.</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Compiling sics</title>
|
||||
<para>After checking out sics cd to the <filename>site_ansto</filename> directory and
|
||||
run <command>make</command>. This will build a <command>SICServer</command> binary
|
||||
in the <filename>site_ansto</filename> directory.</para>
|
||||
<note>
|
||||
<para>The build system is a work in progress. I have manage to reduce it down to
|
||||
two files a Makefile, and make_gen_variables which is essentially a copy of the
|
||||
variables in the sics core make_gen file. The goal is to extract the variables
|
||||
from make_gen and get rid of make_gen _variables.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<info><bibliosource>http://gumtree:9080/nbicms/sics-control-system/ansto-sics/sics-configuration-and-deployment</bibliosource>
|
||||
<author><personname>Ferdi Franceschini</personname></author>
|
||||
<date> 2007-03-21 15:29</date>
|
||||
<title>Instrument Configuration and Deployment</title></info>
|
||||
<sect2>
|
||||
<title>TODO</title>
|
||||
<para> Create motion control checklists for Wombat, Koala, Kowari, and Platypus based on
|
||||
the Echidna Motion Control Functional Test Checklist</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>SICS Configuration Source Files</title>
|
||||
<para><filename>site_ansto/instrument</filename> is the toplevel directory for the
|
||||
instrument configuration source files along with the shared configuration
|
||||
information, deployment scripts, test code and scaffolding.</para>
|
||||
<para>The top level of the <filename>site_ansto/instrument</filename> directory contains
|
||||
the common instrument configuration files. All of the instruments depend on the
|
||||
following files: </para>
|
||||
<para><filename>server_config.tcl</filename> defines paths, server options and variables
|
||||
for all of the instruments. </para>
|
||||
<para><filename>util/utility.tcl</filename> file contains some tcl procs which are
|
||||
useful for defining instrument configurations.</para>
|
||||
<para><filename>/config</filename> directory contains task specific configuration files
|
||||
which may be shared by two or more instruments. It has the following structure: </para>
|
||||
<programlisting>config
|
||||
|-- counter
|
||||
|-- hipadaba
|
||||
|-- hmm
|
||||
|-- nexus
|
||||
`-- scan </programlisting>
|
||||
<para>The instrument specific configuration files are stored in subdirectories of
|
||||
<filename>site_ansto/instrument</filename> name as follows:</para>
|
||||
<simplelist>
|
||||
<member><filename>hipd</filename> (wombat) </member>
|
||||
<member><filename>hrpd</filename> (echidna) </member>
|
||||
<member><filename>pas</filename> (pelican) </member>
|
||||
<member><filename>qld</filename> (koala) </member>
|
||||
<member><filename>reflectometer</filename> (platypus) </member>
|
||||
<member><filename>rsd</filename> (kowari) </member>
|
||||
<member><filename>sans</filename> (quokka) </member>
|
||||
<member><filename>tas</filename> (taipan)</member>
|
||||
</simplelist>
|
||||
<para><emphasis role="b">TODO</emphasis> We should really rename these directories, but
|
||||
doing that in CVS requires a cool clear head and a calm steady hand.</para>
|
||||
<para>Each of the instrument specific subdirectories should have the following layout:</para>
|
||||
<programlisting><inst>
|
||||
|-- DMC2280
|
||||
|-- config
|
||||
| |-- counter
|
||||
| |-- hipadaba
|
||||
| |-- hmm
|
||||
| |-- nexus
|
||||
| `-- scan
|
||||
|-- script_validator
|
||||
| `-- config
|
||||
| |-- counter
|
||||
| |-- hmm
|
||||
| `-- motors
|
||||
`-- util
|
||||
`-- dmc2280 </programlisting>
|
||||
<para>Each <inst> directory contains the following files </para>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para><filename>sics_ports.tcl</filename>
|
||||
</para>
|
||||
<para>List of port names used by the SICS server for this instrument </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><filename>extraconfig.tcl</filename>
|
||||
</para>
|
||||
<para>In the future we will be able to override values recorded in the
|
||||
status.tcl file by setting them here. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><filename>MANIFEST.TXT</filename>
|
||||
</para>
|
||||
<para>List of files and subdirectories to be deployed to the ics1-<inst>
|
||||
computer. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><filename>Makefile</filename>
|
||||
</para>
|
||||
<para>Generates a simulated motor configuration file for the script validator
|
||||
during deployment. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><filename><instrument-name>_configuration.tcl</filename>
|
||||
</para>
|
||||
<para>This is the main configuration file, it sources all the other
|
||||
configuration files required to setup an instrument. </para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The <inst> directories are broken down into the following subdirectories,</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>DMC2280</filename></term>
|
||||
<listitem>
|
||||
<para>Contains the programs which setup and run on the Galil motion
|
||||
controllers. They will typically define subroutines and interrupt
|
||||
handlers for limit switches, and motors. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>config</filename></term>
|
||||
<listitem>
|
||||
<para>Contains subdirectories which organise the instrument configuration
|
||||
files by task. As well as the following files:</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>INSTCFCOMMON.TXT</filename></term>
|
||||
<listitem>
|
||||
<para>Lists common configuration files that this instrument depends
|
||||
on.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>Makefile</filename></term>
|
||||
<listitem>
|
||||
<para>Composes nexus dictionary files into task specific dictionaries for an
|
||||
instrument</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>script_validator</filename></term>
|
||||
<listitem>
|
||||
<para>The port numbers and simulation drivers required by the script
|
||||
validator are defined here. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><filename>util</filename></term>
|
||||
<listitem>
|
||||
<para>Maintenence and diagnostic utilities which can be run independently of
|
||||
SICS can be found here. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Deploying SICS</title>
|
||||
<sect2>
|
||||
<title>Deploying to the TEST_SICS directory on bluegum from a working directory on
|
||||
bluegum </title>
|
||||
<para>The root directory for SICS for each instrument on bluegum is
|
||||
<filename>/usr/local/TEST_SICS/<inst></filename>
|
||||
</para>
|
||||
<para>Under each of these root directories is the following directory structure:</para>
|
||||
<programlisting>/
|
||||
|-- batch
|
||||
|-- data
|
||||
|-- log
|
||||
|-- script_validator
|
||||
| |-- batch
|
||||
| |-- data
|
||||
| |-- log
|
||||
| |-- server
|
||||
| |-- tmp
|
||||
|-- server
|
||||
`-- tmp
|
||||
</programlisting>
|
||||
<para>For a fresh install you have to create these directories.</para>
|
||||
<para>Go to the source code directory <filename>site_ansto</filename></para>
|
||||
<programlisting>cd instrument
|
||||
./deploySICS.sh test/kowari localhost /usr/local/TEST_SICS/kowari/</programlisting>
|
||||
<para>Edit /etc/services</para>
|
||||
<para>Add lines for the motor services e.g.</para>
|
||||
<programlisting>
|
||||
pmc1-kowari 62335/tcp
|
||||
pmc2-kowari 62336/tcp
|
||||
pmc3-kowari 62337/tcp
|
||||
pmc4-kowari 62338/tcp
|
||||
</programlisting>
|
||||
<para>After deploying a test setup you will need to configure the fake motors for SICS</para>
|
||||
<programlisting>cd /usr/local/TEST_SICS/kowari/fakeDMC
|
||||
./mkSimAxes.tcl kowari</programlisting>
|
||||
<para>Then you can run the fake motors in separate terminals </para>
|
||||
<programlisting>./cont.tcl -cont 1 -port pmc1-kowari
|
||||
./cont.tcl -cont 2 -port pmc2-kowari
|
||||
./cont.tcl -cont 3 -port pmc3-kowari
|
||||
./cont.tcl -cont 4 -port pmc4-kowari </programlisting>
|
||||
<para>Then create the DataNumber file and launch SICS </para>
|
||||
<programlisting>cd /usr/local/TEST_SICS/kowari/sics/
|
||||
touch data/DataNumber
|
||||
cd server
|
||||
./SICServer kowari_configuration.tcl</programlisting>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Deploying to ics1-dev.nbi.ansto.gov.au and ics1-test.nbi.ansto.gov.au</title>
|
||||
<para>The instrument dev and test computers must have the information in the
|
||||
<filename>sics_test_hosts</filename> and the
|
||||
<filename>sics_test_services</filename> files under
|
||||
the <filename>site_ansto/instrument/TEST_SICS/</filename> directory appended to
|
||||
the services and hosts files. This will allow us to run multiple instances of sics
|
||||
on the test computer without changing the instrument configuration files. </para>
|
||||
<programlisting>cd instrument
|
||||
./deploySICS.sh echidna/test ics1-dev.nbi.ansto.gov.au</programlisting>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Deploying to an instrument control server</title>
|
||||
<programlisting>cd instrument
|
||||
./deploySICS.sh echidna</programlisting>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
117
site_ansto/manual/dbSICSch23_extraconfig.xml
Normal file
@@ -0,0 +1,117 @@
|
||||
<?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>Personal configuration</title><author>
|
||||
<personname>Nick Hauser</personname>
|
||||
</author>
|
||||
<date/>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Personalised configuration. extraconfig.tcl</title>
|
||||
<para>You can add your own variables and functions to sics. Start by opening
|
||||
/usr/local/sics/extraconfig.tcl in a text editor (this is on the ics computer). </para>
|
||||
<para>The purpose of the extraconfig.tcl file is to allow instrument scientists and users to
|
||||
create personal configurations, that can be stored in the user's home directory and
|
||||
reused later if required. It also allows users to experiment with additional features,
|
||||
that once proven, can be migrated to an appropriate configuration file</para>
|
||||
<para>Edit the file using the patterns provided below. </para>
|
||||
<para>For the changes to take effect, you'll need to save the file and stop and restart
|
||||
sics.</para>
|
||||
<sect2>
|
||||
<title>Adding a procedure</title>
|
||||
<para>To add a procedure to SICS. Say you want to add the procedure
|
||||
<command>movdet</command> to sics and set by a user, </para>
|
||||
<programlisting>
|
||||
proc movedet {pos} {
|
||||
|
||||
drive dhv1 600
|
||||
drive det $pos
|
||||
drive dhv1 2350
|
||||
}
|
||||
publish movedet user
|
||||
</programlisting>
|
||||
<para>This function will drive the high voltage controller to 600 volts, move the motor
|
||||
<command>det</command> to position <replaceable>pos</replaceable> and drive the
|
||||
high voltage controller to 2350 volts</para>
|
||||
<para><command>publish</command> is a SICS manager command which makes a Tcl command or
|
||||
procedure visible in the SICS interpreter. <command>publish</command> provides a
|
||||
special wrapper for a Tcl command, which first checks the user rights of the client
|
||||
connection which wants to execute the Tcl command. If the user rights are
|
||||
appropriate the command is invoked in the Tcl–interpreter.</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Adding a variable</title>
|
||||
<para>To add a variable, use the <command>mkVar</command> procedure.
|
||||
<command>mkVar</command> is a Tcl wrapper for the SICS function
|
||||
<command>VarMake</command>. These 2 functions share the same first 3 parameters.</para>
|
||||
<para>To view these settings, use <command>hlistprop</command>
|
||||
<replaceable>name</replaceable></para>
|
||||
<para>
|
||||
<command>::utility::mkVar</command>
|
||||
<replaceable>name type access_privilege long_name nxsave class control
|
||||
data</replaceable>
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><replaceable>name</replaceable></term>
|
||||
<listitem>
|
||||
<para>name on the sics command line</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>type</replaceable></term>
|
||||
<listitem>
|
||||
<para>text, int, float</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>access_privilege</replaceable></term>
|
||||
<listitem>
|
||||
<para>spy, user, manager, internal, readonly</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>long_name</replaceable></term>
|
||||
<listitem>
|
||||
<para>long name</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>nxsave</replaceable></term>
|
||||
<listitem>
|
||||
<para>saves to NeXus file</para>
|
||||
<para>true, false (default). </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>class</replaceable></term>
|
||||
<listitem>
|
||||
<para>node under which this variable is saved and controlled</para>
|
||||
<para>e.g. instrument, sample</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>control</replaceable></term>
|
||||
<listitem>
|
||||
<para>will appear in the Gumtree table tree if this is set to true</para>
|
||||
<para>true, false (default)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>data</replaceable></term>
|
||||
<listitem>
|
||||
<para>will appear in the data node of NeXus file if this is set to true.
|
||||
nxsave must also be set to true.</para>
|
||||
<para>true, false (default)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>Example</para>
|
||||
<para>::utility::mkVar starttime Text user start true experiment true true</para>
|
||||
<para>creates a variable called starttime, which is a text variable requiring user
|
||||
privilege to set. The long_name is start, it will be saved to the NeXus file under
|
||||
the 'experiment' node and appear in the Gumtree table tree. </para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
408
site_ansto/manual/dbSICSch24_UB_matrix.xml
Normal file
@@ -0,0 +1,408 @@
|
||||
<?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>TASUB: The Triple Axis Calculation Module</title><author>
|
||||
<personname>Mark Koennecke</personname>
|
||||
</author>
|
||||
<date/>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>TASUB: The Triple Axis Calculation Module</title>
|
||||
<para>On a triple axis instrument the parameters incoming energy, Q-position in 3D and
|
||||
analyzed energy have to be changed frequently. These calculations are the task of the
|
||||
TASUB module. This module uses the calculus described by M. Lumsden, J. L. Robertson and
|
||||
M. Yethiraj in J. Appl. Cryst. (2005), 38, 405-411. The special feature of this
|
||||
algorithm is that the tilt cradles of the sample table are used to help during alignment
|
||||
and in order to drive out of plane (within the limits of the tilt cradles). For
|
||||
alignment, two reflections must be located and their angles and Q-E parameters entered
|
||||
into the module. Then a UB matrix can be calculated. With a UB matrix, the Q-E variables
|
||||
ei, ki, ef, kf, en, qh, qk and ql can be driven as virtual motors in SICS. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands understood by Tasub</title>
|
||||
<sect2>
|
||||
<title>Monochromator and Analyzer Parameters</title>
|
||||
<para>Incident and scattered energies are defined by monochromator crystals. In order
|
||||
for the calculations to work, some parameters need to be configured. Monochromator
|
||||
and analyzer parameters can be accessed with the prefixes: The parameter syntax used
|
||||
is as usual: giving only the parameter name queries the value, giving the parameter
|
||||
plus a value sets the parameter to the new value. The following parameters are
|
||||
supported: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub mono</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Monochromator properties </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub ana</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Analyser properties </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>Allowed <command>properties </command> for <command>tasub mono</command> and
|
||||
<command>tasub ana</command> one of:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>dd</command></term>
|
||||
<listitem>
|
||||
<para>The d-spacing of the reflection used </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>ss</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The scattering sense, 1 or -1 are possible. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hb1</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>First parameter for the calculation of the horizontal curvature
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hb2 </command></term>
|
||||
<listitem>
|
||||
<para>Second parameter for the calculation of the horizontal curvature
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>vb1</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>First parameter for the calculation of the vertical curvature </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>vb2</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Second parameter for the calculation of the vertical curvature </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>Examples: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub mono dd </command></term>
|
||||
<listitem>
|
||||
<para>will print the current d-spacing of the monochromator </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub mono dd </command><replaceable>4.3</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Will set the d-spacing of the monochromator to 4.3 </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub mono ss </command></term>
|
||||
<listitem>
|
||||
<para>will print the scattering sense of the monochromator </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub ana ss </command></term>
|
||||
<listitem>
|
||||
<para>will print the scattering sense of the analyser </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub ana ss 1</command></term>
|
||||
<listitem>
|
||||
<para>will set the scattering sense of the analyser to 1</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Cell Parameters</title>
|
||||
<para> In order for the UB matrix calculation to work, the cell constants must be known: <variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub cell </command></term>
|
||||
<listitem>
|
||||
<para>This command prints the current cell parameters. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub cell </command><replaceable>a b c alpha beta
|
||||
gamma</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>This command sets the new cell parameters. All six values must be
|
||||
given. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Reflection Management</title>
|
||||
<para> In order to calculate a UB matrix a list of reflections must be maintained. This
|
||||
is done with the commands in this section: <variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub clear </command></term>
|
||||
<listitem>
|
||||
<para>Clears all reflections except the first reflection from the
|
||||
reflection list </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub clear all</command></term>
|
||||
<listitem>
|
||||
<para>Clears all reflections</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub listref</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints a list of all known reflections. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub del </command><replaceable>num</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Delete the reflection number num from the list </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub addref </command><replaceable>qh qk ql </replaceable></term>
|
||||
<listitem>
|
||||
<para>Adds a reflection to the list. The indices of the reflections are
|
||||
given. The angles and energy values are read from the motors. Use
|
||||
this command only when the instrument is positioned right on a
|
||||
reflection. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub addref </command><replaceable>qh qk ql a3 a4 sgu sgl ei
|
||||
ef </replaceable></term>
|
||||
<listitem>
|
||||
<para>Add a new reflection to the list. Besides the indices all angles
|
||||
are given: a3, the sample rotation, a4, sample two theta, sgu, upper
|
||||
tilt cradle, sgl, lower tilt cradle and incoming energy ei and
|
||||
outgoing energy ef. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub addauxref </command><replaceable>qh qk ql
|
||||
</replaceable></term>
|
||||
<listitem>
|
||||
<para>Adds an auxiliary reflection with indices qh, qk, ql to the list.
|
||||
A4 is calculated from cell constants. A3 is either left alone or is
|
||||
calculated to have the correct angular difference to a previous
|
||||
reflection. This is a help for setting up the instrument or running
|
||||
powder mode. When a UB has been generated from auxiliary
|
||||
reflections, a3, sgu and sgl angles will be incorrect. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub repref </command><replaceable>id qh qk ql a3 a4 sgu sgl
|
||||
ei ef </replaceable></term>
|
||||
<listitem>
|
||||
<para>Modifies the reflection with id id to have the values given.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Calculations</title>
|
||||
<para> This section covers the parameters and commands to use to make the module do
|
||||
calculations for you. <variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub const ki | kf | elastic </command></term>
|
||||
<listitem>
|
||||
<para>Sets a parameter to determine if KI or KF is fixed when the energy
|
||||
transfer en is being driven. Allowed values: ki, kf, elastic. In
|
||||
elastic mode the analyzer is disregarded. This is useful for two
|
||||
circle diffractometers. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub const </command></term>
|
||||
<listitem>
|
||||
<para>Prints if ki or kf is fixed. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub ss </command></term>
|
||||
<listitem>
|
||||
<para>Prints the sample scattering sense. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub ss 1 | -1 </command></term>
|
||||
<listitem>
|
||||
<para>Sets the sample scattering sense. Allowed values are either 1 or
|
||||
-1. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub silent 0 | 1 </command></term>
|
||||
<listitem>
|
||||
<para>Prints or sets the silent flag. If this is 0, the messages Driving
|
||||
motor .. from .. to .. are suppressed.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub outofplane 0 | 1 </command></term>
|
||||
<listitem>
|
||||
<para>Prints or sets the outofplane flag. If this flag is 0, the
|
||||
instrument will stay in the scattering plane and not move out of it.
|
||||
This is here in order to protect those bloody magnets which cannot
|
||||
be tilted.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub makeub</command><replaceable> r1 r2 </replaceable></term>
|
||||
<listitem>
|
||||
<para>Calculate a new UB matrix from the current cell constants and the
|
||||
entries r1 and r2 in the reflection list. r1 and r2 are integer
|
||||
numbers. This command will not only print the new UB matrix but also
|
||||
the results of various back and forth calculations performed with
|
||||
the new UB matrix. This can be inspected in order to check the new
|
||||
UB. WARNING: The calculation will go wrong if the scattering sense
|
||||
at the sample has changed since the reflections used for the UB
|
||||
matrix determination have been entered. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub listub </command></term>
|
||||
<listitem>
|
||||
<para>prints the current UB matrix. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub calcang </command><replaceable>qh qk ql ei ef
|
||||
</replaceable></term>
|
||||
<listitem>
|
||||
<para>Will calculate new angles for the Q-E position specified. The
|
||||
angles will be printed in the order: monochromator two theta, sample
|
||||
rotation, sample two theta, lower tilt cradle, upper tilt cradle and
|
||||
analyzer two theta. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub calcqe </command><replaceable>a2 a3 a4 sgu sgl a6
|
||||
</replaceable></term>
|
||||
<listitem>
|
||||
<para>Calculates and prints the Q-E position from the angles given: a2 =
|
||||
monochromator two theta, a3 = sample rotation, a4 = sample tow
|
||||
theta, sgu = upper tilt cradle, sgl = lower tilt cradle and a6 =
|
||||
analyzer two theta. The Q-E position is printed in the sequence: qh,
|
||||
qk, ql, ei, ef. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Virtual Motors</title>
|
||||
<para> The tasub module also installs the following virtual motors into SICS: ei, ki,
|
||||
qh, qk, ql, en, ef, kf and qm. All these motors can be used in SICS drive, run or
|
||||
scan commands like real motors. Driving them triggers a recalculation of angles and
|
||||
the drives the real motors to appropriate values. The virtual motors have a very
|
||||
limited command set (shown at the example of qh): <variablelist>
|
||||
<varlistentry>
|
||||
<term><command>qh</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The name of the motor alone will print its current position.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>qh</command>
|
||||
<replaceable>target</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>This will print the last requested target position for this
|
||||
virtual motor. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
<para> The virtual motor qm implements <emphasis role="b">powder mode</emphasis>. In
|
||||
this mode, only the sample two theta and energy motors will be driven, sample
|
||||
rotation and tilt cradles will be left at their respective positions. This is
|
||||
commonly used to analyze the energy transfer of powder samples. </para>
|
||||
<para> There are other important command: <variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub update </command></term>
|
||||
<listitem>
|
||||
<para>This command will force a recalculation of the current Q-E
|
||||
position for the virtual motors from angles. Normally tasub will
|
||||
take care of this. However, if any of the angle motors are moved
|
||||
directly or manually, this command might be required. The SICS dr
|
||||
wrapper command, however, even takes care of this. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist><variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub updatetargets</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>This command makes the QE targets match the current position. This
|
||||
is useful after initialization in the instrument.tcl file.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Internal Commands</title>
|
||||
<para>The tasub module supports some more commands which are used by SICS in order to
|
||||
restore the tasub configuration between instantiations of SICS. These commands are
|
||||
documented here for the sake of completeness: <variablelist>
|
||||
<varlistentry>
|
||||
<term><command>tasub setub </command><replaceable>ub11 ub12 ub13 ub21 ub22
|
||||
ub23 ub31 ub32 ub33 </replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets the UB matrix. Nine values are required. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub setnormal </command><replaceable>n1 n2 n3
|
||||
</replaceable></term>
|
||||
<listitem>
|
||||
<para>This command sets the plane normal which is required in
|
||||
calculations. Normally this plane normal is automatically generated
|
||||
during the calculation of the UB matrix. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub settarget </command><replaceable> qh qk ql qm ki kf
|
||||
</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets the Q-E target. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub</command>
|
||||
<replaceable> r1 qh qk ql a3 a4 sgu sgl ki kf </replaceable></term>
|
||||
<listitem>
|
||||
<para/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>tasub </command><replaceable>r2 qh qk ql a3 a4 sgu sgl ki kf
|
||||
</replaceable></term>
|
||||
<listitem>
|
||||
<para>These commands set the values for the two reflections used for
|
||||
generating the UB matrix. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
137
site_ansto/manual/dbSICSch25_rheometer.xml
Normal file
@@ -0,0 +1,137 @@
|
||||
<?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>Rheometer</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date/>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Configuration</title>
|
||||
<para>The driver is loaded into SICS by adding the following line in the
|
||||
<literal>/usr/local/sics/extraconfig.tcl</literal> file </para>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>add_rheo name IP tol settletime PORT</command></term>
|
||||
<listitem>
|
||||
<para><replaceable>name</replaceable> of parameter from rheometer, use
|
||||
either <command>rhSpeed</command> or <command>rhTorque</command> for
|
||||
consistency with existing data files</para>
|
||||
<para><replaceable>IP</replaceable> is the address of Moxa box</para>
|
||||
<para><replaceable>tol</replaceable> is the tolerance of
|
||||
<replaceable>name</replaceable></para>
|
||||
<para><replaceable>settletime</replaceable> is the time to wait in seconds
|
||||
before checking that we have reached the set value of
|
||||
<replaceable>name</replaceable>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
<para><command>add_rheo rhSpeed ca3-quokka 0.01 5 4001</command></para>
|
||||
<para>This will create a driver with a tolerance of 0.01 for the speed, with a settle time
|
||||
of 5 seconds. </para>
|
||||
<para>The rheometer speed and torque will be available under the <literal>/sample</literal>
|
||||
group and will be saved in the data file as <literal>../sample/rhTorque</literal> and
|
||||
<literal>../sample/rhSpeed</literal>.</para>
|
||||
<para>A standard HISTOGRAM_XY file (ie a QKKxxxx.nx.hdf XY data file)will be created by
|
||||
default. Use <command>newfile</command> to specify other filetypes. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>The rheometer driver in SICS starts an acquisition on the histogram memory when the
|
||||
rheometer matches the speeds in a list of trigger values held by the driver. Data will
|
||||
be saved after each acquisition. </para>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hset /sample/rhSpeed/runexp 1</command></term>
|
||||
<listitem>
|
||||
<para>The driver begins a sequence when this flag is set to 1. When the flag
|
||||
is 0 (default) the rheometer speed is ignored and no sequence is run.
|
||||
The flag is automatically reset to 0 at the end of a sequence</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hset /sample/rhTorque</command></term>
|
||||
<listitem>
|
||||
<para>
|
||||
<option>scale </option>(default 1) scale the voltage reading to the
|
||||
torque value</para>
|
||||
<para><option>offset </option>(default 0) applies an offset if
|
||||
necessary.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset /sample/rhSpeed</command></term>
|
||||
<listitem>
|
||||
<para><option>scale</option> (default 1) scale the voltage reading to the
|
||||
speed value</para>
|
||||
<para><option>offset</option> (default 0) applies an offset if necessary.</para>
|
||||
<para><option>saveIndex</option> The index of the next entry to be saved in
|
||||
the data file, starts at zero</para>
|
||||
<para><option>triggerList</option> (default "EMPTY") List of speeds which
|
||||
will trigger an acquisition and save data</para>
|
||||
<para><option>acqTime</option> (default "EMPTY") List of histogram memory
|
||||
acquisition times. If you only put one value here it will be applied to
|
||||
all of the acquisitions</para>
|
||||
<para><option>runexp</option> (default 0) The driver ignores the rheometer
|
||||
speed until this flag has been set to 1. NOTE: It is automatically reset
|
||||
at the end of a sequence</para>
|
||||
<para><option>tol</option> Tolerance, an acquisition will be triggered when
|
||||
the rheometer speed is within tolerance of the current trigger value in
|
||||
the triggerList. </para>
|
||||
<para>The <option>triggerList</option> and <option>acqTime</option> lists
|
||||
will be cleared when a sequence has been completed.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
<example>
|
||||
<title>Rheometer example</title>
|
||||
<para>
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
hset /sample/rhSpeed/triggerList 4 5 6 5 4
|
||||
OK
|
||||
hset /sample/rhSpeed/acqTime 5 10 15 10 5
|
||||
OK
|
||||
hset /sample/rhSpeed/runexp 1
|
||||
OK
|
||||
Data will be saved in a standard HISTOGRAM_XY file
|
||||
You can override this default by running the 'newfile' command first
|
||||
|
||||
rhCallBack /sics/rhSpeed 3.9807 trigger a 5 second acquisition,
|
||||
sicstime 2011-06-10 17:33:35
|
||||
rheometer_savehmmdata /sics/rhSpeed: save data index = 0,
|
||||
sicstime 2011-06-10 17:33:35
|
||||
rhCallBack /sics/rhSpeed 4.9562 trigger a 10 second acquisition,
|
||||
sicstime 2011-06-10 17:33:43
|
||||
rheometer_savehmmdata /sics/rhSpeed: save data index = 1,
|
||||
sicstime 2011-06-10 17:33:43
|
||||
rhCallBack /sics/rhSpeed 5.98 trigger a 15 second acquisition,
|
||||
sicstime 2011-06-10 17:33:50
|
||||
rheometer_savehmmdata /sics/rhSpeed: save data index = 2,
|
||||
sicstime 2011-06-10 17:33:50
|
||||
rhCallBack /sics/rhSpeed 5.023 trigger a 10 second acquisition,
|
||||
sicstime 2011-06-10 17:34:06
|
||||
rheometer_savehmmdata /sics/rhSpeed: save data index = 3,
|
||||
sicstime 2011-06-10 17:34:06
|
||||
rhCallBack /sics/rhSpeed 4.0226 trigger a 5 second acquisition,
|
||||
sicstime 2011-06-10 17:34:20
|
||||
rheometer_savehmmdata /sics/rhSpeed: save data index = 4,
|
||||
sicstime 2011-06-10 17:34:20
|
||||
</computeroutput>
|
||||
</literallayout>
|
||||
</para>
|
||||
</example>
|
||||
</sect1>
|
||||
</chapter>
|
||||
73
site_ansto/manual/dbSICSch26_magnet_11T.xml
Normal file
@@ -0,0 +1,73 @@
|
||||
<?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>11 Tesla Magnet</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-08-29 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Configuration</title>
|
||||
<para>The driver is loaded into SICS by adding the following line in the
|
||||
<literal>/usr/local/sics/extraconfig.tcl</literal> file </para>
|
||||
<para><command>select_environment_controller "11TMagnet"</command></para>
|
||||
<para>Make sure that the other entries are commented out, save the file and restart SICS.</para>
|
||||
<para>This will set up the lakeshore temperature controller as well as the magnet power
|
||||
supply control. They will appear as <varname>tc1</varname> and <varname>ips120</varname>
|
||||
under the <varname>sample</varname> group in GumTree.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>When the magnet power supply is switched on it sets itself to "clamped" mode. This
|
||||
means that the output is short-circuited. </para>
|
||||
<para><emphasis> You must unclamp it to set the magnetic field.</emphasis></para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hset /sample/ips120/Control/A 0</command></term>
|
||||
<listitem>
|
||||
<para>Unclamps the magnet</para>
|
||||
<para><emphasis>It will show that it's at zero already, set it
|
||||
anyway</emphasis></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>drive ips120_driveable </command><replaceable>n</replaceable></term>
|
||||
<listitem>
|
||||
<para>Drive the magnet to <replaceable>n</replaceable> Tesla</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>/sample/ips120/sensor/value </command></term>
|
||||
<listitem>
|
||||
<para>This reading is taken from the power supply leads while the magnet is
|
||||
ramping up. </para>
|
||||
<para>After the setpoint has been reached and the magnet is "holding" the field
|
||||
then SICS will read the field from the magnet status register of the power
|
||||
supply.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Description</title>
|
||||
<para>The magnet is normally in persistent mode (switch heater off) with the power supply at
|
||||
zero amps. The <command>drive</command> command drives the power supply to the magnet
|
||||
current, takes the magnet out of persistent mode (turns the switch heater on), drives
|
||||
the magnet to the new field, returns the magnet to persistent mode (turns the switch
|
||||
heater off) and ramps the power supply current back to zero. </para>
|
||||
<para>There are time delays to allow the switch to operate. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Known Issues</title>
|
||||
<para>If you set the limits to run at maximum magnet field, but do not run the lambda plate,
|
||||
<emphasis>you will quench the magnet. </emphasis> This driver does not check to see
|
||||
if the magnet temperature when driving maximum field. The SICS anticollider should be
|
||||
used to set allowed values.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
353
site_ansto/manual/dbSICSch27_autosave.xml
Normal file
@@ -0,0 +1,353 @@
|
||||
<?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>Autosave</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-08-29 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>autosave</command></term>
|
||||
<listitem>
|
||||
<para>With no arguments enables autosaving with a default interval of 300
|
||||
seconds (5 minutes)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>autosave </command><replaceable>n</replaceable></term>
|
||||
<listitem>
|
||||
<para><replaceable>n</replaceable> <= 0 disables autosaving</para>
|
||||
<para><replaceable>n</replaceable> > 0 enables autosaving with an interval of
|
||||
<replaceable>n</replaceable> seconds (if already running it just sets a
|
||||
new interval)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>autosave </command><option>check</option></term>
|
||||
<listitem>
|
||||
<para>Reports if autosave is enabled or disabled.</para>
|
||||
<para>Return messages are:</para>
|
||||
<para><literal>AUTOSAVE_STATE = DISABLED</literal></para>
|
||||
<para><literal>AUTOSAVE_STATE = ENABLED</literal></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>autosave example</title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
autosave check
|
||||
AUTOSAVE_STATE = DISABLED
|
||||
|
||||
autosave 10
|
||||
OK
|
||||
|
||||
autosave check
|
||||
AUTOSAVE_STATE = ENABLED
|
||||
</literal>
|
||||
</literallayout>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Description</title>
|
||||
<para>Data will be saved in the "designated" next data slot in a file. It's tricky because a
|
||||
sequence of datasets can be saved in a single data file (this is in fact the normal case
|
||||
across the instruments). I say "designated" because when you save a sequence of data
|
||||
acquistions in a file <command>autosave</command> cannot tell if the last entry in the
|
||||
file was "autosaved" or deliberately saved. The next slot is designated by making a call
|
||||
to <command>save</command> eg <command>save 3</command> will cause
|
||||
<command>autosave</command> to save data at the next index (ie. 4). This will be made
|
||||
clearer later with examples.</para>
|
||||
<para/>
|
||||
<para>Data will be autosaved under the following conditions:</para>
|
||||
<para>
|
||||
<command>autosave</command> is enabled, of course :)</para>
|
||||
<para><command>newfile</command> has been called to create a new file.</para>
|
||||
<para>The histogram memory is acquiring data.</para>
|
||||
<para>After autosave has been enabled it will start saving data at point zero in the data
|
||||
file, in other words it is equivalent to calling <command>save 0</command> at regular
|
||||
intervals. If a call is made to <command>save</command> eg <command>save 0</command>
|
||||
then autosaving will start saving data in the next slot, ie it saves data in index 1.</para>
|
||||
<para/>
|
||||
<para> Autosaving is suspended under the following conditions:</para>
|
||||
<para>The histogram memory has been paused</para>
|
||||
<para>It resumes after a <command>histogram start</command></para>
|
||||
<para>The histogram memory has been stopped</para>
|
||||
<para>It resumes after a <command>histogram start</command></para>
|
||||
<para><command>newfile clear</command> has been called (this forces you to call
|
||||
<command>newfile</command> again before a new file can be saved).</para>
|
||||
<para>It resumes saving data in a new file at index 0 after a call like <command>newfile
|
||||
HISTOGRAM_XY</command> or <command>newfile scratch</command></para>
|
||||
<para>When a <command>runscan</command> terminates.</para>
|
||||
<para>It resumes saving in a new file starting from index 0 when a new
|
||||
<command>runscan</command> is called.</para>
|
||||
<example>
|
||||
<title>A typical autosave run</title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
autosave 1
|
||||
OK
|
||||
newfile HISTOGRAM_XY
|
||||
OK
|
||||
histmem mode time
|
||||
histmem preset 5
|
||||
histmem start block
|
||||
histmem started
|
||||
autosave 0
|
||||
QKK0000035.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000035.nx.hdf updated
|
||||
histmem paused
|
||||
save 0
|
||||
QKK0000035.nx.hdf updated
|
||||
OK
|
||||
newfile HISTOGRAM_XY
|
||||
OK
|
||||
histmem start block
|
||||
histmem started
|
||||
autosave 0
|
||||
QKK0000036.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000036.nx.hdf updated
|
||||
histmem paused
|
||||
save 0
|
||||
QKK0000036.nx.hdf updated
|
||||
OK
|
||||
</literal>
|
||||
</literallayout>
|
||||
<para>You should notice that there are a couple of <command>autosave</command> commands
|
||||
before the histogram memory pauses to allow a deliberate call to
|
||||
<command>save</command> and that you must call <command>newfile</command> to
|
||||
autosave data in a new file otherwise you will overwrite data from the previous
|
||||
acquisition (NOTE: this is not a problem with <command>autosave</command>, this is
|
||||
what happens already if you're not careful).</para>
|
||||
</example>
|
||||
<example>
|
||||
<title>autosave example simulates saving a sequence of acquisitions in a single data
|
||||
file</title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
autosave 10
|
||||
OK
|
||||
newfile HISTOGRAM_XY
|
||||
OK
|
||||
histmem start
|
||||
histmem started
|
||||
autosave 0
|
||||
QKK0000025.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000025.nx.hdf updated
|
||||
histmem pause
|
||||
histmem paused
|
||||
save 0
|
||||
QKK0000025.nx.hdf updated
|
||||
OK
|
||||
histmem start
|
||||
histmem started
|
||||
autosave 1
|
||||
QKK0000025.nx.hdf updated
|
||||
autosave 1
|
||||
QKK0000025.nx.hdf updated
|
||||
histmem pause
|
||||
histmem paused
|
||||
save 1
|
||||
QKK0000025.nx.hdf updated
|
||||
OK
|
||||
autosave 0
|
||||
OK
|
||||
</literal>
|
||||
</literallayout>
|
||||
<para>Note how <command>autosave</command> increments after the <command>save
|
||||
0</command>. You should also be aware that autosaving is suspended when the
|
||||
histogram memory is paused or stopped, it resumes when the histogram is
|
||||
restarted.</para>
|
||||
</example>
|
||||
<example>
|
||||
<title>autosave example using <command>runscan</command></title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
autosave 2
|
||||
OK
|
||||
runscan dummy_motor 7.8 -1.5 2 time 10
|
||||
Scan start: 7.800000 , Scan step: -9.300000, Number of points: 2
|
||||
Datatype: HISTOGRAM_XYT
|
||||
histmem started
|
||||
autosave 0
|
||||
QKK0000027.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000027.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000027.nx.hdf updated
|
||||
histmem paused
|
||||
NP dummy_mot Counts Time
|
||||
0 7.800 45775 10.00
|
||||
Monitor 1 2746
|
||||
Monitor 2 3217
|
||||
Monitor 3 9863
|
||||
QKK0000027.nx.hdf updated
|
||||
histmem started
|
||||
autosave 1
|
||||
QKK0000027.nx.hdf updated
|
||||
autosave 1
|
||||
QKK0000027.nx.hdf updated
|
||||
autosave 1
|
||||
QKK0000027.nx.hdf updated
|
||||
histmem paused
|
||||
NP dummy_mot Counts Time
|
||||
1 -1.500 45981 10.00
|
||||
Monitor 1 229
|
||||
Monitor 2 909
|
||||
Monitor 3 5385
|
||||
QKK0000027.nx.hdf updated
|
||||
histmem stopped
|
||||
OK
|
||||
autosave check
|
||||
AUTOSAVE_STATE = ENABLED
|
||||
autosave 0
|
||||
OK
|
||||
autosave check
|
||||
AUTOSAVE_STATE = DISABLED
|
||||
</literal>
|
||||
</literallayout>
|
||||
<para>autosaving is suspended at the end of <command>runscan</command> because the
|
||||
histogram memory has stopped running, but autosaving is still enabled as can be seen
|
||||
from the call to <command>autosave check</command>. However there is no risk that
|
||||
data will be overwritten if the histogram is restarted because the runscan command
|
||||
makes a call to <command>newfile clear</command> when it terminates.</para>
|
||||
</example>
|
||||
<example>
|
||||
<title> autosave example using two <command>runscan</command> commands</title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
autosave 1
|
||||
OK
|
||||
runscan dummy_motor 7.8 -1.5 2 time 5
|
||||
Scan start: 7.800000 , Scan step: -9.300000, Number of points: 2
|
||||
Datatype: HISTOGRAM_XYT
|
||||
histmem started
|
||||
autosave 0
|
||||
QKK0000031.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000031.nx.hdf updated
|
||||
histmem paused
|
||||
NP dummy_mot Counts Time
|
||||
0 7.800 22846 5.00
|
||||
Monitor 1 276
|
||||
Monitor 2 1152
|
||||
Monitor 3 2643
|
||||
QKK0000031.nx.hdf updated
|
||||
histmem started
|
||||
autosave 1
|
||||
QKK0000031.nx.hdf updated
|
||||
autosave 1
|
||||
QKK0000031.nx.hdf updated
|
||||
histmem paused
|
||||
NP dummy_mot Counts Time
|
||||
1 -1.500 22898 5.00
|
||||
Monitor 1 91
|
||||
Monitor 2 79
|
||||
Monitor 3 5071
|
||||
QKK0000031.nx.hdf updated
|
||||
histmem stopped
|
||||
OK
|
||||
</literal>
|
||||
</literallayout>
|
||||
</example>
|
||||
<example>
|
||||
<title>...autosave example continued</title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
runscan dummy_motor 7.8 -1.5 2 time 5
|
||||
Scan start: 7.800000 , Scan step: -9.300000, Number of points: 2
|
||||
Datatype: HISTOGRAM_XYT
|
||||
histmem started
|
||||
autosave 0
|
||||
QKK0000032.nx.hdf updated
|
||||
autosave 0
|
||||
QKK0000032.nx.hdf updated
|
||||
histmem paused
|
||||
NP dummy_mot Counts Time
|
||||
0 7.800 23043 5.00
|
||||
Monitor 1 8630
|
||||
Monitor 2 6962
|
||||
Monitor 3 4012
|
||||
QKK0000032.nx.hdf updated
|
||||
histmem started
|
||||
autosave 1
|
||||
QKK0000032.nx.hdf updated
|
||||
autosave 1
|
||||
QKK0000032.nx.hdf updated
|
||||
histmem paused
|
||||
NP dummy_mot Counts Time
|
||||
1 -1.500 22887 5.00
|
||||
Monitor 1 2449
|
||||
Monitor 2 7798
|
||||
Monitor 3 9172
|
||||
QKK0000032.nx.hdf updated
|
||||
histmem stopped
|
||||
OK
|
||||
</literal>
|
||||
</literallayout>
|
||||
<para>You should notice that after the first <command>runscan</command> data is
|
||||
autosaved to file 31 and after the second runscan it is autosaved to file 32.</para>
|
||||
</example>
|
||||
<example>
|
||||
<title>example shows what happens if you enable <command>autosave</command> after a
|
||||
couple of datasets have been acquired and saved</title>
|
||||
<literallayout>
|
||||
<literal>
|
||||
newfile HISTOGRAM_XY
|
||||
OK
|
||||
histmem start
|
||||
histmem started
|
||||
save 0
|
||||
QKK0000038.nx.hdf updated
|
||||
OK
|
||||
save 1
|
||||
QKK0000038.nx.hdf updated
|
||||
OK
|
||||
autosave 5 <---- AUTOSAVE enabled here.
|
||||
OK
|
||||
autosave 2
|
||||
QKK0000038.nx.hdf updated
|
||||
autosave 2
|
||||
QKK0000038.nx.hdf updated
|
||||
save 2
|
||||
QKK0000038.nx.hdf updated
|
||||
OK
|
||||
autosave 3
|
||||
QKK0000038.nx.hdf updated
|
||||
histmem stop
|
||||
histmem stopped
|
||||
save 3
|
||||
QKK0000038.nx.hdf updated
|
||||
OK
|
||||
</literal>
|
||||
</literallayout>
|
||||
<para> You shold notice that autosaving properly commences saving data at index 2 after
|
||||
it has been enabled instead of autosaving over index 0 or 1. It's a bit contrived
|
||||
but it attempts to show the sort of thing that should happen if you are saving
|
||||
multiple periods from a histogram memory.</para>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Known Issues</title>
|
||||
<para>Under exceptional conditions your data file may end up with one more entry than you
|
||||
intended. In other words if you fail to disable autosaving after a deliberate
|
||||
<command>save</command> and <command>newfile</command> has not been called before
|
||||
the histogram memory starts acquiring data again, then another entry will be saved
|
||||
beyond your last save. No data will be lost but you may get more than you expected.
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
203
site_ansto/manual/dbSICSch28_LF_amplifier.xml
Normal file
@@ -0,0 +1,203 @@
|
||||
<?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>Low Frequency Amplifier. LF AG1010</title><author>
|
||||
<personname>Jing Chen</personname>
|
||||
</author>
|
||||
<date>2008-08-29 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Configuration</title>
|
||||
<para>The device LF AG1010 is connected to a Moxa 5430 server. SICS client communicates with
|
||||
the Moxa 54530 server who sends and receives data packets to/from the LF AG1010 through
|
||||
a RS232 serial interface. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>Settings of the Moxa 5430 are</term>
|
||||
<listitem>
|
||||
<para>Bits Per Second – 19200</para>
|
||||
<para>Data Bits – 8</para>
|
||||
<para>Parity – NONE </para>
|
||||
<para>Stop Bit – 1</para>
|
||||
<para>Flow Controls – NONE</para>
|
||||
<para>Port Number – 4001</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>Commands for getting and setting values on the LF AG1010. Sending a command without a
|
||||
value will return the current value. </para>
|
||||
<para>Note that all power values are in deciwatts (dW). 1dW = 0.1Watt. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>lf_limits </command>
|
||||
<option>FPL</option>
|
||||
<replaceable>power</replaceable></term>
|
||||
<listitem>
|
||||
<para>Set forward power limit to <replaceable>power</replaceable> dW.</para>
|
||||
<para><command>lf_limits FPL 50</command> sets the forward power limit to 50dW</para>
|
||||
<para><command>lf_limits FPL </command>returns the forward power limit</para>
|
||||
<para>Units: dW</para>
|
||||
<para>Range: 0 to 6000</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_limits </command><option>RPL
|
||||
</option><replaceable>power</replaceable></term>
|
||||
<listitem>
|
||||
<para>Set reverse power limit to <replaceable>power</replaceable> dW</para>
|
||||
<para><command>lf_limits RPL 50</command> sets the reverse power limit to 50dW</para>
|
||||
<para><command>lf_limits RPL </command>returns the reverse power limit</para>
|
||||
<para>Units: dW</para>
|
||||
<para>Range: 0 to 1600</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_pagc </command><replaceable>power</replaceable></term>
|
||||
<listitem>
|
||||
<para>Set power level for AGC mode to <replaceable>power</replaceable> dW</para>
|
||||
<para><command>lf_pagc 50 </command>sets the AGC mode power level to 50dW</para>
|
||||
<para><command>lf_pagc </command>returns the AGC mode power level</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_pmgc </command><replaceable>power</replaceable></term>
|
||||
<listitem>
|
||||
<para>Set power level for MGC mode to <replaceable>power</replaceable> %</para>
|
||||
<para>MGC scale in % is for reference only. 0% - 0W, 100% full output. Not
|
||||
linear! This mode is for continues and pulsed operation.</para>
|
||||
<para><command>lf_pmgc 50 </command>sets the MGC mode power level to 50%</para>
|
||||
<para><command>lf_pmgc </command>returns the MGC mode power level</para>
|
||||
<para>Units: %</para>
|
||||
<para>Range: 0 to 100</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_freq </command><replaceable>freq</replaceable></term>
|
||||
<listitem>
|
||||
<para>Set frequency to <replaceable>freq</replaceable> Hz</para>
|
||||
<para>Range: 20000 to 2000000 (20kHz to 2MHz)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_burst mode</command><replaceable>mode </replaceable><command>time
|
||||
</command><replaceable>time </replaceable><command>top
|
||||
</command><replaceable>top</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Set burst mode to <replaceable>mode</replaceable></para>
|
||||
<para>BURST is possible in MGC Mode only!</para>
|
||||
<para>Allowed <replaceable>mode</replaceable></para>
|
||||
<para><option>0</option> Burst mode OFF</para>
|
||||
<para><option>1</option> Internal burst mode ON </para>
|
||||
<para><option>2</option> Change burst parameters without changing burst ON/OFF</para>
|
||||
<para><option>3</option> Enable external burst mode</para>
|
||||
<para>Set repetition period of burst cycle to <replaceable>time</replaceable></para>
|
||||
<para>Units: ms</para>
|
||||
<para>Range: 1 to 50</para>
|
||||
<para>Set time of power in burst cycle to <replaceable>top</replaceable></para>
|
||||
<para>Units: μs</para>
|
||||
<para>Range: 1 to 500</para>
|
||||
<para><command>lf_burst mode 1 rtime 20 top 5</command></para>
|
||||
<para>Set burst mode to Internal Mode</para>
|
||||
<para>Set repetition period of burst cycle to 20 ms</para>
|
||||
<para>Set time of power in burst cycle to 5 μs</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_sweep mode </command>
|
||||
<replaceable>mode </replaceable><command>start </command><replaceable>start
|
||||
</replaceable>
|
||||
<command>step </command><replaceable>step </replaceable><command>np
|
||||
</command><replaceable>np</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the sweep parameters <replaceable>start</replaceable> Hz, with step
|
||||
size of <replaceable>step</replaceable> Hz and with number of points
|
||||
<replaceable>np</replaceable>
|
||||
</para>
|
||||
<para>Allowed <command>mode</command></para>
|
||||
<para><option>0</option> Sweep mode OFF</para>
|
||||
<para><option>1</option> Sweep mode ON</para>
|
||||
<para><option>2</option> Change sweep parameters without changing sweep mode
|
||||
ON/OFF</para>
|
||||
<para>Allowed <command>step </command></para>
|
||||
<para>increments of 1000Hz</para>
|
||||
<para><command>lf_sweep mode 1 start 20000 step 1000 np 200</command></para>
|
||||
<para>Set sweep mode on, start frequency = 20kHz, step frequency = 1kHz, number
|
||||
of points = 200</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_sweep_run</command>
|
||||
<replaceable>start step np</replaceable>
|
||||
<option>mode</option></term>
|
||||
<listitem>
|
||||
<para>This command triggers a frequency sweep starting at
|
||||
<replaceable>start</replaceable> Hz, with step of
|
||||
<replaceable>step</replaceable> Hz and with number of steps =
|
||||
<replaceable>np</replaceable> in full sweep cycle under optional
|
||||
<option>mode</option></para>
|
||||
<para>If the mode is 0 (OFF) and mode is not provide, the command will set the
|
||||
mode the <option>mode</option> to 2 before the sweeping and reset to 0 (OFF)
|
||||
after the sweeping.</para>
|
||||
<para>Allowed <option>mode</option></para>
|
||||
<para><option>0</option> Sweep mode OFF</para>
|
||||
<para><option>1</option> Sweep mode ON</para>
|
||||
<para><option>2</option> Change sweep parameters without changing sweep mode
|
||||
ON/OFF</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>lf_meas </command></term>
|
||||
<listitem>
|
||||
<para>Returns forward power, reverse power and temperature?</para>
|
||||
<para>
|
||||
<replaceable>start</replaceable> Hz </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>N/A </command></term>
|
||||
<listitem>
|
||||
<para>There are no parameters to set on this device.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Description</title>
|
||||
<para>The AG 1010 produces up to 1,000 Watts of power over a frequency range from lower than
|
||||
20 kHz to higher than 1.2 MHz. It operates over the entire frequency range without band
|
||||
switching or other adjustments. Extended range to over 2 MHz is possible with reduced
|
||||
output power. Gain is rated at 60 dB with a typical gain flatness of ±1.5 dB.</para>
|
||||
<para> The Front Panel offers a LCD display of Forward, Reflected and Load Power readings,
|
||||
RF Status, MGC/AGC setups and operating frequency in Generator Mode.</para>
|
||||
<para> Power meters are calibrated into a 50 Ohm Load and are accurate when unit operates
|
||||
into matched load. Outside of matched condition, the model AG 1010’s power measurement
|
||||
system provides an accurate reading of VSWR.</para>
|
||||
<para> When used as amplifier, the AG 1010 is compatible with most signal and function
|
||||
generators, computer synthesizer cards and accurately reproduces all waveforms within
|
||||
its output and bandwidth limits.</para>
|
||||
<para>The Forced-air cooling system and the internal power supply are designed to permit
|
||||
operation over a wide range of temperature and global AC line conditions. The AG 1010 is
|
||||
built to withstand a +5 dBm (1.2Vp-p) Input signal. The unit amplifies the inputs of AM,
|
||||
FM, SSB, pulse and other complex modulations. </para>
|
||||
<para>OUTPUT PROTECTION AG 1010 is protected by its internal control system for 1,000 Watts
|
||||
of total Forward Power and 160 Watts of Reflected Power. This will protect the amplifier
|
||||
output stage from accidental overdrive at the input and an extreme mismatch at the
|
||||
Output.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Known Issues</title>
|
||||
<para>No know issues.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
782
site_ansto/manual/dbSICSch29_motor_control_py.xml
Normal file
@@ -0,0 +1,782 @@
|
||||
<?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>
|
||||
756
site_ansto/manual/dbSICSch29_motor_control_py_simple.xml
Normal file
@@ -0,0 +1,756 @@
|
||||
<?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 are generally not used during an experiment. These are used to optimise
|
||||
and protect the instrument and hence are used by the instrument scientist or computing
|
||||
& electronics staff. </para>
|
||||
<para>These values can be get and set using </para>
|
||||
<para><command>sics.getValue("</command><replaceable>hdb_path</replaceable><command>")</command>
|
||||
and </para>
|
||||
<para><command>sics.set("</command><replaceable>hdb_path</replaceable><command>",</command><replaceable>value</replaceable><command>)</command></para>
|
||||
<para>You cannot use the motor short name. </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 that are persistent between restarts of SICS are marked as persists,
|
||||
otherwise a restart of SICS will revert to the value in the configuration file. </para>
|
||||
<para>Parameters to be added: </para>
|
||||
<para>Blockage_Thresh, Blockage_Ratio, Blockage_Fail, Backlash_offset</para>
|
||||
<para>Protocol, absEncoder, absEncHome, cntsPerX</para>
|
||||
<para>Creep_Offset, Creep_Precision, stepsPerX</para>
|
||||
<para>maxSpeed, maxAccel, maxDecel, </para>
|
||||
<para>motOffDelay, Debug, Settle. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>absenc</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Not implemented. Does not have an 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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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 an 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>
|
||||
843
site_ansto/manual/dbSICSch2_motor_control.xml
Normal file
@@ -0,0 +1,843 @@
|
||||
<?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 </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>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>run </command>
|
||||
<replaceable>mot1 pos1 mot2 pos2 ...</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>runs <replaceable>mot1</replaceable> to <replaceable>pos1</replaceable>,
|
||||
<replaceable>mot2</replaceable> to <replaceable>pos2</replaceable>,
|
||||
<replaceable>...</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>success</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>waits and blocks the command connection until all pending operations have
|
||||
finished (or an interrupt occured).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>drive </command>
|
||||
<replaceable>mot1 pos1 mot2 pos2 ...</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. Can be called with one to n pairs of object new value
|
||||
pairs. 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>setpos </command>
|
||||
<replaceable>mot newPosition</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the current position value of <replaceable>mot</replaceable> to
|
||||
<replaceable>newPosition</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>setpos </command>
|
||||
<replaceable>mot oldPosition newPosition</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the position value of <replaceable>oldPosition</replaceable> to
|
||||
<replaceable>newPosition</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable> OR <replaceable>mot</replaceable>
|
||||
<command>position</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints 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>prints the current position of the motor. No corrections are applied.
|
||||
Should read the same as the controller box</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>list</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the configuration parameters for a motor, eg counts and steps per
|
||||
mm/degree etc.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>slist</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the Galil address, port number, and axis label for a motor.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>data</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the number of steps and counts per mm or degrees, and steps per
|
||||
count</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>send</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>sends a Galil command directly to the controller, this only works if you
|
||||
login as manager. e.g. </para>
|
||||
<para><command>m1 send MG _XQ </command></para>
|
||||
<para><command>m1 send RUNF = 0 </command></para>
|
||||
<para><command>m1 send TPE </command></para>
|
||||
<para>NOTE: You can use the following shortcut for TP and TD so you don’t need
|
||||
to know the axis name. m1 send TP` m1 send TD` </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>reset</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>resets the motor parameters to default values. This is software zero to
|
||||
0.0 and software limits are reset to hardware limits</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>interest</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>initiates automatic printing of any position change of the motor. This
|
||||
command is mainly interesting for implementors of status display
|
||||
clients.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>uninterest</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>disables interest</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>homerun </command>
|
||||
<option>1 or 0</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><command>homerun</command> with no arguments reports the current status, a
|
||||
value of "1" means that the motors have been homed.</para>
|
||||
<para><command>homerun </command><replaceable>1</replaceable> will run the
|
||||
homing routine. Used on motors with relative encoders e.g. slit motors.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>list </command>
|
||||
<replaceable>mot</replaceable>
|
||||
<option>type</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Returns the motor's type.</para>
|
||||
<warning>
|
||||
<para>Appears to be broken. </para>
|
||||
<para>Configurable virtual motors do not have a list subcommand.</para>
|
||||
</warning>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>absenc</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get the absolute encoder reading. (Only implemented by motors that have
|
||||
absolute encoders.)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>accel</command>
|
||||
<replaceable>val</replaceable>
|
||||
</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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>accesscode</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>blockage_check_interval</command>
|
||||
<replaceable>val</replaceable>
|
||||
</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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>decel</command>
|
||||
<replaceable>val</replaceable>
|
||||
</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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>failafter</command>
|
||||
<replaceable>val</replaceable>
|
||||
</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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>fixed</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>ignorefault</command>
|
||||
<replaceable>val</replaceable>
|
||||
<emphasis role="b">(persists)</emphasis>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Position faults will be ignored if this is greater than zero</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>interruptmode</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>maxretry</command>
|
||||
<replaceable>val</replaceable>
|
||||
</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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>movecount</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>precision</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>sign</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>softlowerlim</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>softupperlim</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>softzero</command>
|
||||
<replaceable>val</replaceable>
|
||||
<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>
|
||||
<replaceable>mot</replaceable>
|
||||
<command>speed</command>
|
||||
<replaceable>val</replaceable>
|
||||
</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>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>
|
||||
<sect1>
|
||||
<title>Instrument specific drive commands</title>
|
||||
<para>Many objects in SICS are drivable . This means they can run to a new value. Obvious
|
||||
examples are motors.</para>
|
||||
<para>Sometimes you might want to do something special with a motor, like run it in an
|
||||
oscillation mode, such as an oscillating collimator or attenuator. The commands in this
|
||||
section relate to these instrument specific cases. These commands are generally
|
||||
non-blocking mode.</para>
|
||||
<para>These commands do not apply to all instruments</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>radcol start </command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Applicable to Pelican</para>
|
||||
<para>Runs the <command>rco </command> motor for n cycles.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
163
site_ansto/manual/dbSICSch30_He3.xml
Normal file
@@ -0,0 +1,163 @@
|
||||
<?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>3He</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-08-29 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Introduction</title>
|
||||
<para>The system of He3 project consists of a polarizer and analyser which are controlled by
|
||||
Labview servers. The two Labview servers run on one machine and communicate with a
|
||||
corresponding SICS driver over TCP/IP. The polarizer and analyser share a single NI I/O
|
||||
board and a HMP2030 power supply. </para>
|
||||
<para>TCP port for polariser – 55011</para>
|
||||
<para>TCP port for analyser – 55012 </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Configuration</title>
|
||||
<para><emphasis role="bold">TBD</emphasis>: How to get this running in SICS</para>
|
||||
<para>e.g.</para>
|
||||
<para>
|
||||
<orderedlist>
|
||||
<listitem xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<para><literal>cd /usr/local/nbi/sics/taipan/</literal></para>
|
||||
</listitem>
|
||||
<listitem xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<para><literal>> vim taipan_setup.txt</literal></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
<para>0 = off, 1 = on</para>
|
||||
<para>Save the file and restart SICS.</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>PolTrigger </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Turn the magic box polariser on and off. </para>
|
||||
<para>Allowed <replaceable>val</replaceable>
|
||||
</para>
|
||||
<para><option>0</option> polariser off </para>
|
||||
<para><option>1</option> polariser on </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>AnaTrigger </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Turn the magic box analyser on and off. </para>
|
||||
<para>Allowed <replaceable>val</replaceable>
|
||||
</para>
|
||||
<para><option>0</option> analyser off </para>
|
||||
<para><option>1</option> analyser on </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>PolRecord</command></term>
|
||||
<listitem>
|
||||
<para>This command will manually trigger a logging event of the polariser
|
||||
parameters:</para>
|
||||
<para>amplitude</para>
|
||||
<para>frequency </para>
|
||||
<para>state</para>
|
||||
<para>The data is appended to a dedicated log file. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>AnaRecord </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>This command will manually trigger a logging event of the analyser
|
||||
parameters:</para>
|
||||
<para>amplitude</para>
|
||||
<para>frequency </para>
|
||||
<para>state</para>
|
||||
<para>The data is appended to a dedicated log file. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hmpVolt </command><replaceable>chID val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Units: V (volt)</para>
|
||||
<para>set or get the voltage at channel <replaceable>chID</replaceable>. (???
|
||||
which channel does the 3He system use. ). </para>
|
||||
<para>If <replaceable>val</replaceable> is not provided, returns the the voltage
|
||||
and current setpoints and measurements of channel
|
||||
<replaceable>chID</replaceable>. Otherwise it first sets the voltage of
|
||||
channel <replaceable>chID</replaceable> to <replaceable>val</replaceable>
|
||||
and then as a verification it displays the voltage and current setpoints and
|
||||
measurements</para>
|
||||
<para>Allowed <replaceable>chID</replaceable> ???</para>
|
||||
<para>What is a reasonable voltage ??? </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hmpCurr </command><replaceable>chID val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Units: A (ampere)</para>
|
||||
<para>set or get the current at channel <replaceable>chID</replaceable>. (???
|
||||
which channel does the 3He system use. ). </para>
|
||||
<para>If <replaceable>val</replaceable> is not provided, returns the the voltage
|
||||
and current setpoints and measurements of channel
|
||||
<replaceable>chID</replaceable>. Otherwise it first sets the current of
|
||||
channel <replaceable>chID</replaceable> to <replaceable>val</replaceable>
|
||||
and then as a verification it displays the voltage and current setpoints and
|
||||
measurements</para>
|
||||
<para>Allowed <replaceable>chID</replaceable> ???</para>
|
||||
<para>What is a reasonable current ??? </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hmpMeas </command><replaceable>chID </replaceable></term>
|
||||
<listitem>
|
||||
<para>Units: V (volt) A (ampere)</para>
|
||||
<para>get the current and voltage at channel <replaceable>chID</replaceable>. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hmpSet </command><replaceable>chID current voltage</replaceable></term>
|
||||
<listitem>
|
||||
<para>Units: A (ampere) V (volt) </para>
|
||||
<para>set the current and voltage at channel <replaceable>chID</replaceable>. (???
|
||||
which channel does the 3He system use. ). </para>
|
||||
<para>As a verification it displays
|
||||
the voltage and current setpoints and measurements</para>
|
||||
<para>Allowed <replaceable>chID</replaceable> ???</para>
|
||||
<para>What is a reasonable current ??? </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hmpOutput </command><replaceable>chID state</replaceable></term>
|
||||
<listitem>
|
||||
<para>get or set the output state at channel <replaceable>chID</replaceable>.</para>
|
||||
<para>If <replaceable>state</replaceable> is not provided, returns the output
|
||||
state of channel <replaceable>chID</replaceable>. Otherwise it sets the
|
||||
output state of channel <replaceable>chID</replaceable> to
|
||||
<replaceable>state</replaceable>. </para>
|
||||
<para>Allowed <replaceable>state</replaceable></para>
|
||||
<para>on off</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Parameters</title>
|
||||
<para></para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Description</title>
|
||||
<para>Explanation of what a command is doing when it is more than just setting a target
|
||||
value. e.g. changing magnetic field in a superconducting magnet. </para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Known Issues</title>
|
||||
<para>Alerts the user to known operational problems</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Troubleshooting</title>
|
||||
<para>What to do if things go wrong</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
957
site_ansto/manual/dbSICSch31_UserGuideTaipan.xml
Normal file
@@ -0,0 +1,957 @@
|
||||
<?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>Taipan User Guide - deprecated to db5SICSUserGuideTaipan.xml</title><author>
|
||||
<personname>Kirrily Rule</personname>
|
||||
</author>
|
||||
<date>2013-04-09 16:47</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Quick start guide</title>
|
||||
<para>To start running Gumtree, double click on the icon on the desktop. Two windows will
|
||||
automatically open and you will be logged in as “Manager”. (Why manager, why not
|
||||
user???)</para>
|
||||
<para>This quick start guide assume SICS is configured for your experiment, and that it is
|
||||
running. If it is not, go to the section <xref linkend="status"/></para>
|
||||
<sect2>
|
||||
<title>To edit and run a batch file</title>
|
||||
<figure>
|
||||
<title>Script Perspective </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm" fileref="taipanGumtree.jpg"
|
||||
/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Open one of the previous batch files by double clicking on a .tcl file in the
|
||||
Project Explorer window. This will appear in the Tree View panel above. You can edit
|
||||
this and save it with a new file name (File -> Save as). </para>
|
||||
<para>To run this file, drag it into the Buffer Queue. You can either press Play, or
|
||||
Validate to check the file. </para>
|
||||
<para>All commands listed with <emphasis>>
|
||||
</emphasis> should be typed into the SICS command line in Gumtree, or in the black
|
||||
sicsclient window opened via PuTTy (Taipan ICS profile). Either of these will drive
|
||||
the instrument. Only those commands executed from Gumtree will be printed into the
|
||||
Log file. </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title> Live visualisation of data</title>
|
||||
<figure>
|
||||
<title>Analysis Perspective </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm"
|
||||
fileref="taipanGumtree1.jpg"/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>In the Scripting control window, choose </para>
|
||||
<para><command>Load Script -> analysis -> live data</command> to show a live plot as the
|
||||
counts are taken. </para>
|
||||
<para>In this window, you can tick (or untick) autofit (for a Gaussian fit), and
|
||||
normalise (which normalises to time) You can also change which detector you wish to
|
||||
see the counts in:</para>
|
||||
<para>bm1_counts = monitor </para>
|
||||
<para>bm2_counts = detector </para>
|
||||
<para>You can also control the fitting range in this window </para>
|
||||
<para>You can add past data sets to the Plot 2 window (beneath the liveplot window).
|
||||
Highlight the plots you wish to add, be sure you have the correct detector choice
|
||||
and x-axis parameter selected, then click on the button “Import Data Files to
|
||||
Plot2”. These can also be removed for the plot. There is currently no fitting
|
||||
procedure for Plot2. </para>
|
||||
<note>
|
||||
<para>At any time, to interrupt SICS you can click on the red button, or type
|
||||
>>INT1712 3</para>
|
||||
</note>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1 xml:id="status">
|
||||
<title>SICS status and login</title>
|
||||
<para>Before you can control the instrument, there are 2 programs that need to be running,
|
||||
SICS and Gumtree. SICS should already be configured and running by the local contact.
|
||||
This procedure allows you to check this.</para>
|
||||
<sect2>
|
||||
<title>Login to the SICS computer from a PuTTy terminal</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>On the Microsoft Windows computer in the instrument cabin, find the putty
|
||||
program. <figure>
|
||||
<title>PuTTy icon on the Microsoft Windows desktop </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="left" width="30mm"
|
||||
fileref="putty.jpg"/></imageobject>
|
||||
</mediaobject>
|
||||
</figure></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Choose the ICS computer from the list of Saved Sessions</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Load and open</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Use your NBI username and password, supplied by the Bragg Institute User
|
||||
Office</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>You will now have a command prompt to a Linux operating system</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Check SICS status</title>
|
||||
<para>Normally SICS will be running. You can check if SICS is running by using the PuTTy
|
||||
window and at the Linux operating system command prompt type</para>
|
||||
<para><command>> runsics status</command>
|
||||
</para>
|
||||
<para>If the status shows that SICS is not running, or if there is a change in the SICS
|
||||
configuration files e.g. a piece of sample environment has been added, you should
|
||||
contact your local contact. </para>
|
||||
<para>If the local contact has confirmed it is OK to restart SICS, then in the PuTTy
|
||||
window type </para>
|
||||
<para><command>> runsics stop</command>
|
||||
</para>
|
||||
<para><command>> runsics start</command>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Login to SICS using the putty session</title>
|
||||
<para>In the previous section, you logged into the ICS (instrument control server)
|
||||
computer using putty. At the Linux operating system command prompt, you will run a
|
||||
program that will give you a sics command prompt. </para>
|
||||
<para>For most cases, you won't have to do this. A SICS command prompt is available in
|
||||
Gumtree. </para>
|
||||
<para>At the Linux operating system command prompt type </para>
|
||||
<para><command>> sicsclient</command></para>
|
||||
<para>You should see <computeroutput>OK</computeroutput> on the screen.</para>
|
||||
<para>You now have a SICS command prompt. It may look strange since the cursor will be
|
||||
on a blank line. You will not have access to the Linux operating system command
|
||||
prompt until you log off.</para>
|
||||
<para>Next step is to login to sics by typing</para>
|
||||
<para><command>> user password</command> where user is literally the word "user" and
|
||||
the password will be supplied by the local contact</para>
|
||||
<para>You can replace user with spy. The spy login provides read-only access to SICS.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Login to SICS from Gumtree</title>
|
||||
<figure>
|
||||
<title>Gumtree connected to SICS </title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm"
|
||||
fileref="taipanGumtree2.jpg"/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>Normally, Gumtree will be connected to SICS, as in the figure above. </para>
|
||||
<para>In Gumtree you reconnect to SICS if you restart SICS. This is done by clicking on
|
||||
the little man at the bottom of the Gumtree screen and log in to SICS. He will be
|
||||
standing still, and you will see the word Disconnected when not connected. He will
|
||||
be running when connected as in the figure. You will then need to start a new Sics
|
||||
terminal in Gumtree. From the left screen, in the project explorer window, Right
|
||||
click on SICS and choose the option to start a new “SICS telnet terminal”. </para>
|
||||
<note>
|
||||
<para>Reconnection won't work properly if SICS has changed configuration e.g. you've
|
||||
added a piece of sample environment. In this case, when you restart SICS you
|
||||
should also restart Gumtree </para>
|
||||
<para/>
|
||||
</note>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Preparing the spectrometer</title>
|
||||
<sect2>
|
||||
<title>Aligning the spectrometer</title>
|
||||
<warning>
|
||||
<title>12T magnet</title>
|
||||
<para> When using the 12T magnet on TAIPAN, you must work in fixed Ki mode, as the
|
||||
magnet is too heavy to move M2. Consider the energy transfer range required to
|
||||
determine the appropriate Ei for these experiments. </para>
|
||||
</warning>
|
||||
<para>After discussing your instrument preferences with your local contact, they will
|
||||
align the spectrometer in the following way:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Drive the spectrometer to the required incident energy (for elastic mode)
|
||||
= e.g. 14.87meV</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Drive the analyser arm to the straight-through position (s2=0, a1=0, a2=0,
|
||||
atrans=19)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Visually check the straight-through arm and change any motors
|
||||
accordingly</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Place the Ni sample on the sample stage, and Borated Al sheets over the
|
||||
analyser collimator. (the detector saturates at ~35,000 counts/sec)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check M1 alignment with a rocking scan</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check S2=0 alignment with a rocking scan</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check A2=0 alignment with a rocking scan</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Remove the Al attenuator and insert collimators if they need
|
||||
changing</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Perform the Ni powder calibration, using 5 peaks</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>From the least squares fitting of these peaks, update the new M1 offset,
|
||||
M2 offset and S2 offset.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>With the spectrometer at S2=-50, and atrans=0 (to view the Vanadium
|
||||
incoherent peak from the Ni sample can), perform an A1 scan and an A1/A2
|
||||
scan around the elastic position.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Perform an En scan (where Ei will move if Ef is fixed). Here the FWHM of
|
||||
the peak will give you the resolution of your instrument.</para>
|
||||
<para/>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<warning>
|
||||
<title/>
|
||||
<para>When driving Ei or Ef in this stage of the setup, the software calculates a
|
||||
constant-Q instrument position based on the current UB matrix (usually from the
|
||||
previous experiment). This will often drive S1, S2, sgu and sgl to unexpected
|
||||
positions. To constrain these so that they don’t move unexpectedly, fix the
|
||||
motors so they don't move. </para>
|
||||
<para>Motors can be fixed (1) or unfixed (-1) and their status checked by typing the
|
||||
motor name </para>
|
||||
<para><command>> S1 fixed 1 (fixes S1) </command></para>
|
||||
<para><command>> S1 fixed -1 (unfixes S1)</command></para>
|
||||
<para>Alternatively you can drive vei which drives only the M1 and M2 motors – this
|
||||
cannot be used in a scan command. </para>
|
||||
<para><command>> drive vei 14.87 </command></para>
|
||||
<para><command>> tasub update </command></para>
|
||||
<para><command>> ei </command></para>
|
||||
<para/>
|
||||
</warning>
|
||||
<warning>
|
||||
<title/>
|
||||
<para>You will often need to “home” the slits if they have been unplugged or removed
|
||||
during the setup. The pa_left and pa_right slits can vary between -27 (open) and
|
||||
0 (closed), while the pa_top and pa_bottom slits can vary between -200 (open)
|
||||
and 0 (closed). The same limits apply for the ps_slits. </para>
|
||||
<para><command>> pa_left homerun 1 </command> (this will do all of the slits)
|
||||
(??? really)</para>
|
||||
</warning>
|
||||
<para/>
|
||||
<para>Confirm the following setups for your experiment. This can be done by typing
|
||||
everything except the red values below: </para>
|
||||
<para><command>> tasub ss -1 </command> (Scattering sense = M+1, S-1, A+1) </para>
|
||||
<para><command>> tasub ana ss 1</command> (Scattering sense = M+1, S-1, A+1) </para>
|
||||
<para><command>> tasub outofplane 0</command> (Confines the scattering sense to be in
|
||||
the plane) </para>
|
||||
<para><command>> tasub const ki / kf / elastic</command> (Defines whether Ei or Ef
|
||||
are fixed, or if both are fixed) </para>
|
||||
<para/>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Aligning your sample</title>
|
||||
<para> At the beginning of an experiment load the “Experimental setup” script (in the
|
||||
scripts window, right screen) to list the most important configuration identifiers
|
||||
for the experiment. These should appear in the header lines in your data files. For
|
||||
instance, these include: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Proposal number and title</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>User’s name, and research team present</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Local contact’s name</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Sample information including number of samples and sample environment
|
||||
requirements</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Particular instrument setup features (scattering sense, collimation,
|
||||
filters, slits etc)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Next the UB matrix needs to be set. To do this, you need to input the cell
|
||||
parameters and at least 2 reflections which will define your scattering plane. These
|
||||
can be calculated for your system using the file
|
||||
“/home/taipan/calculatedDspaceTAIPAN.xls” or something similar, such as the ICSD
|
||||
website. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>> tasub listub</command></term>
|
||||
<listitem>
|
||||
<para>shows the current UB matrix, cell parameters and reference
|
||||
peaks</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub cell a b c alpha beta gamma</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para> input new lattice parameters</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub addref qh qk ql</command></term>
|
||||
<listitem>
|
||||
<para> adds a new reflection to the list when Taipan is at the
|
||||
reflection</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub addref qh qk ql a3 a4 sgu sgl ei ef</command></term>
|
||||
<listitem>
|
||||
<para> adds a new reflection from a calculation</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub addauxref qh qk ql</command></term>
|
||||
<listitem>
|
||||
<para> adds a new reflection where S2 is calculated from the lattice
|
||||
parameters only. This will also calculate the relative S1
|
||||
positions</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub del num</command></term>
|
||||
<listitem>
|
||||
<para> deletes one of the previously stored reflections</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub listref</command></term>
|
||||
<listitem>
|
||||
<para> lists the reflections that have been input</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub makeub 1 2</command></term>
|
||||
<listitem>
|
||||
<para> calculates new UB matrix from reflections 1 and 2</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> tasub calcang qh qk ql ei ef</command></term>
|
||||
<listitem>
|
||||
<para> calculates reflection from UB matrix – be careful when changing
|
||||
lattice parameters, as this command won’t use them! Output: M2 S1 S2 sgu
|
||||
sgl A2</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>Sample alignment</title>
|
||||
<para> For Ei = Ef = 14.87 meV</para>
|
||||
<para><command>> tasub cell 5.011 5.85 10.353 90 92.4 90</command>
|
||||
</para>
|
||||
<para><command>> tasub calcang 1 0 0 14.87 14.87 (calculated S2 = 27.1)
|
||||
</command></para>
|
||||
<para><command>> tasub calcang 1 1 0 14.87 14.87 (calculated S2 = 35.9)
|
||||
</command></para>
|
||||
<para><command>> tasub calcang 0 2 0 14.87 14.87 (calculated S2 = 47.3)
|
||||
</command></para>
|
||||
<para>Drive the instrument to the calculated S2 value of a particular peak. The
|
||||
other motor positions are not correctly set at this point. This will also give
|
||||
you a relative s1 position between the peaks.</para>
|
||||
<para>Scan S1 until you find the peak. </para>
|
||||
<para><command>> bmonscan clear</command></para>
|
||||
<para><command>> bmonscan add S1 -10 0.2 </command> (motor name, starting point,
|
||||
step size)</para>
|
||||
<para><command>> bmonscan run 60 timer 5 </command> (scans 60 points, for a time
|
||||
of 5 seconds per point)</para>
|
||||
<para>OR</para>
|
||||
<para><command>> runscan s1 -10 0 101 time 5 </command> (motor, start, stop, #
|
||||
pts, time (the mode in secs))</para>
|
||||
<para>(this does not work for multiple motors yet)</para>
|
||||
<para> (This step should hopefully be replaced by the differential scan, or the
|
||||
rate-meter) </para>
|
||||
<para>Once the peak position (S1) has been optimised, scan sgu and sgl </para>
|
||||
<para><command>> runscan sgl -10 10 21 time 1 </command></para>
|
||||
<para><command>> runscan sgu -10 10 21 time 1 </command></para>
|
||||
<para>Once the peak has been optimised with SGU and SGL (and you are sitting at the
|
||||
peak position!!) you can set this as one of your reference peaks, where the
|
||||
current motor values define the peak position. </para>
|
||||
<para><command>> tasub addref 1 0 0 </command></para>
|
||||
<para>Calculate the values of S1 and S2 for the next peak – use the </para>
|
||||
<para><command>> tasub calcang qh qk ql ei ef </command></para>
|
||||
<para>command to see the relative values of S1 and S2 as calculated from the lattice
|
||||
parameters!</para>
|
||||
<para>
|
||||
</para>
|
||||
<para>Repeat for at least one other peak, preferably one orthogonal to the first. </para>
|
||||
<para><command>> tasub addref 0 0 1 </command></para>
|
||||
<para><command>> tasub listref </command> (to see the observed peaks in your list
|
||||
(e.g. number 4 and 5)) </para>
|
||||
<para><command>> tasub makeub 4 5 </command>(this used peaks 4 and 5 to calculate
|
||||
the UB matrix) </para>
|
||||
<para><command>> tasub update </command></para>
|
||||
<para><command>> tasub listub </command></para>
|
||||
<para>Once this has been set, then you should be able to drive your spectrometer to
|
||||
any accessible qh, qk, ql and en.</para>
|
||||
<warning>
|
||||
<title>
|
||||
</title>
|
||||
<para>At the end of each change, be sure to type <command>> tasub
|
||||
update</command></para>
|
||||
</warning>
|
||||
</example>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Reducing background with a slit scan</title>
|
||||
<para>Once your sample has been aligned, add the PG filter to the instrument. You could
|
||||
test the effectiveness of the filter by scanning a peak that will display higher
|
||||
order scattering – e.g. (½ 0 0) which does not exist except from higher order
|
||||
scattering from the (1 0 0 ). Sometimes you might want to add an additional filter.
|
||||
Finally you can scan your slits to reduce the background scattering. </para>
|
||||
<para><command>> runscan pa_left -15 -2 27 time 1 </command>(scans 27 points, for a
|
||||
time of 1 seconds per point)</para>
|
||||
<para> After this, consider if you need to add more shielding to the detector drum or
|
||||
any other part of the instrument (e.g. manual slits on analyser arm, additional PG
|
||||
filters).</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Setting the (new) lattice parameters</title>
|
||||
<para>When the sample temperature has stabilized at the required temperature, the low
|
||||
temperature lattice parameters can be checked. For example, a tetragonal system in
|
||||
the ab-scattering plane can be optimized as follows: </para>
|
||||
<para><command>> drive qh 5 qk 0 ql 0 en 0 </command></para>
|
||||
<para><command>> runscan qh 4.985 5.015 31 time 5 </command></para>
|
||||
<para>The centre of this scan should be close to 5, but could be shifted. This will be
|
||||
the fit value from the scan. Then you can <emphasis role="underline">change the
|
||||
<emphasis role="bold">a</emphasis> lattice parameter</emphasis> accordingly
|
||||
in tasub </para>
|
||||
<para>
|
||||
a<subscript>new</subscript>=a<subscript>old</subscript>(peak<subscript>calculated</subscript>/peak<subscript>centre
|
||||
from scan</subscript>) replace with jpg of equation??? MathML doesn't transform
|
||||
to pdf using oxygen xslt. </para>
|
||||
<para><command>> tasub cell a b c alpha beta gamma </command></para>
|
||||
<para>The next peak can be aligned in the same way </para>
|
||||
<para><command>> drive qh 0 qk 3 ql 0 en 0 </command></para>
|
||||
<para><command>> runscan qk 2.985 3.015 31 time 5 </command></para>
|
||||
<para>Find the centre of this scan then you can <emphasis role="underline">change the
|
||||
<emphasis role="bold">b</emphasis> lattice parameter</emphasis> accordingly
|
||||
in tasub. Also, while sitting on the peak, perform the </para>
|
||||
<para><command>> tasub addref 0 3 0 </command></para>
|
||||
<para>If your sample is cubic (and remains cubic at low temperatures) and you are in the
|
||||
HK0 scattering plane, then the lattice parameters are best set with a peak that
|
||||
involved both H and K – for instance the 110 peak.</para>
|
||||
<para>Make sure after you have changed your lattice parameters, and both peaks have been
|
||||
added to the reference list that you remake your ub matrix! </para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Running an experiment</title>
|
||||
<sect2>
|
||||
<title> Creating and running batch files</title>
|
||||
<para>Batch files are stored in /usr/local/nbi/sics/taipan/batch and are just text files
|
||||
with the extension .tcl. You can edit these in a text editor, or the editing panel
|
||||
of the left window. Your file, filename.tcl can be run by dragging and dropping into
|
||||
the Buffer Queue and then run by pressing the “Play” button. </para>
|
||||
<para>You can also queue additional files to run by dragging and dropping them into
|
||||
Batch Queue window. These will then be run sequentially. Files can be removed and
|
||||
edited or replaced as desired from the Batch Queue window. Once the file has been
|
||||
read into the buffer, it can no longer be edited. For this reason it is recommended
|
||||
that multiple short files are created. These can be run multiple times if necessary.
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Validation of scans</title>
|
||||
<para>To check your script, you can validate it using the Validation tab in the Buffer
|
||||
Queue. Drag your file into the Validate window and click on Validate. Information
|
||||
about your file will scroll through the log screen. Use this to see if any errors or
|
||||
motor limits have been reached. </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Example experiment script</title>
|
||||
<para>
|
||||
<literallayout>
|
||||
# This is a comment and will not be executed
|
||||
drive qh 2.5 qk 0 ql 3.5 en 32
|
||||
bmonscan clear
|
||||
bmonscan add qh 2.5 0.1
|
||||
bmonscan run 31 monitor 1000000
|
||||
|
||||
# This is another comment with important information
|
||||
drive qh -2.5 qk 0 ql 3.5 en 32
|
||||
bmonscan clear
|
||||
bmonscan add s2 -55 -0.1
|
||||
bmonscan run 31 monitor 1000000
|
||||
clientput [m2 absenc] # (prints out the m2 absolute encoder value)
|
||||
</literallayout>
|
||||
</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Motor errors</title>
|
||||
<warning>
|
||||
<title/>
|
||||
<para>If you ever see the following error message:</para>
|
||||
<para><command>> ERROR: THREAD ZERO NOT RUNNING ON CONTROLLER on m1</command></para>
|
||||
<para> Type the following (this is case sensitive)</para>
|
||||
<para><command>> m1 send RS </command></para>
|
||||
<para> If you ever see the following error message:</para>
|
||||
<para><command>> ERROR: MOTOR CONTROLLER RUN ERROR: -102 on m2 </command></para>
|
||||
<para>Type the following (this is case sensitive)</para>
|
||||
<para><command>> m2 send MG RUNF</command> and if this is a number not 0 or 1,
|
||||
then:</para>
|
||||
<para><command>> m2 send RUNF=0</command></para>
|
||||
</warning>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Creating and accessing log files</title>
|
||||
<para>There are new log files written for each experiment. These are located in:
|
||||
<computeroutput>J:\data\current\reports\exp#\LogFile.txt</computeroutput> on the
|
||||
Microsoft Windows DAV computer. These will be updated as the experiment progresses
|
||||
and should include both commands from the command line window and the batch file. </para>
|
||||
<para>Use a program such as WinSCP to transfer files to your computer. The files will be
|
||||
in
|
||||
<computeroutput>/experiments/taipan/data/current/reports/exp#/LogFile.txt</computeroutput>.
|
||||
These files are archived to a proposal directory at the end of each cycle e.g.
|
||||
<computeroutput>/experiments/taipan/data/proposal/proposal#/reports/exp#/LogFile.txt</computeroutput>
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Sample environment control</title>
|
||||
<sect2>
|
||||
<title>Cryo-furnace with Lakeshore 340 controller</title>
|
||||
<para>The typical closed cycle cryo-furnace used on Taipan is cryo-furnace #1 (CF1).
|
||||
This uses a Lakeshore 340 controller. SICS is capable of reading and driving the
|
||||
temperature on this device. The Moxa box must be installed, and connected to the
|
||||
Lakeshore hardware. In the future, the Lakeshores will have a dedicated Moxa box. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> tc1_driveable2</command></term>
|
||||
<listitem>
|
||||
<para>shows the sample temperature from channel A </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> run tc1_driveable 200 </command></term>
|
||||
<listitem>
|
||||
<para>drives the regulation temperature (B) to 200K </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> wait 600 </command></term>
|
||||
<listitem>
|
||||
<para>shows wait in seconds </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>> drive tc1_driveable 200 </command></term>
|
||||
<listitem>
|
||||
<para>drives the regulation temperature (B) to 200K and waits for it to be
|
||||
within 1K of this value before continuing to the next command </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>>sct_ls340_tc1 send "RANGE?" </command></term>
|
||||
<listitem>
|
||||
<para>this will query the heater power range – 0 = off, 5 = 100W </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>>sct_ls340_tc1 send "RANGE 1" </command></term>
|
||||
<listitem>
|
||||
<para>this will set the heater power range. Set to a value between 0-5
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>The fine control of the temperature parameters, such as tolerance, heater power
|
||||
range, etc, can be adjusted by clicking on the SIC Server tree view. Alternatively
|
||||
you can use certain commands listed below in a batch file: </para>
|
||||
<para>Check the heater power range of the closed cycle. To heat the sample relatively
|
||||
quickly you need to have the heater range to 5. To reach base temperature (10K or
|
||||
less), the heater range should be set to 4 or lower. </para>
|
||||
<figure>
|
||||
<title>Setting temperature</title>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata align="center" width="160mm"
|
||||
fileref="taipanGumtree3.jpg"/></imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para> These detailed commands can be used (also in batch files) to control the
|
||||
temperature parameters:</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hlist –val /sics/tc1/sensor </command></term>
|
||||
<listitem>
|
||||
<para>shows set points and sensors etc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hget /sics/tc1/sensor/setpoint1</command></term>
|
||||
<listitem>
|
||||
<para>to show the temperature</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hset /sics/tc1/sensor/setpoint1 200</command></term>
|
||||
<listitem>
|
||||
<para>to set the temperature to 200K – there is no blockage of the drive
|
||||
functions when this command is used</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> > hset /sample/tc9/Loop1/setpoint 200</command></term>
|
||||
<listitem>
|
||||
<para>to set the temperature of the 12T magnet to 200K</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hget /sample/tc9/Loop3/sensor</command></term>
|
||||
<listitem>
|
||||
<para>to read the temperature of the 12T magnet</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hset /sics/tc1/heater/heaterRange 5</command></term>
|
||||
<listitem>
|
||||
<para>for 100W power, or 4 for 10W power</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> hset /sics/tc1/control/tolerance 1 5</command></term>
|
||||
<listitem>
|
||||
<para>to set the tolerance of 5K to reach desired temperature</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para> Sics and gumtree can also control the high voltage rig which is also set up on
|
||||
CF1. The following commands will be useful</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> pulseron</command></term>
|
||||
<listitem>
|
||||
<para>turn on HV</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> pulseroff</command></term>
|
||||
<listitem>
|
||||
<para>turn off HV</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> getvolt</command></term>
|
||||
<listitem>
|
||||
<para/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>> setvolt 100</command></term>
|
||||
<listitem>
|
||||
<para>sets the voltage to 100V</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>12T magnet control. Important procedures before ramping the field. </title>
|
||||
<warning>
|
||||
<title>Protect the slits</title>
|
||||
<para>Once you have set your slits, turn the motion control <emphasis role="bold"
|
||||
>OFF</emphasis> (on the same box as the shutter control) and <emphasis
|
||||
role="bold">unplug</emphasis> the 4 cables. Turn the motion control ON
|
||||
again. The slits are now in a safe mode for driving the field.</para>
|
||||
</warning>
|
||||
<warning>
|
||||
<title>Stop magnet quenching</title>
|
||||
<para>To perform field ramps safely (without risk of quenching), you should put the
|
||||
beam stop down. To do this, turn the motion control OFF (on the same box as the
|
||||
shutter control), ramp the field into persistent mode and then turn the motion
|
||||
control ON again. Once you have reached your new field, drive to a new Q-E
|
||||
position to ensure that all the motors still behave correctly after the motion
|
||||
OFF. If not, you might have to reset particular motors: </para>
|
||||
<para><command>> m1 send RS</command> (this will reset the m1 motor controller)</para>
|
||||
<para>To keep the beam stop down</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para> Turn off motion control</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Close valve located at the base of the beam stop</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Turn on motion control</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</warning>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>12T magnet control. Driving s1</title>
|
||||
<para>There are two parameters you will need for driving the <command>s1</command> via
|
||||
the sample stick. <command>vs1</command> drives the motor from the command line,
|
||||
while <command>dummy_s1</command> is in the UB matrix and scan parameters. So use
|
||||
these in the following way: </para>
|
||||
<para><command>> drive vs1 30</command> (in the command line – this drives the motor
|
||||
to a value) </para>
|
||||
<para><command>> runscan dummy_s1 25 35 101 time 1</command>
|
||||
</para>
|
||||
<para><command>> runscan qh</command>
|
||||
</para>
|
||||
<para>When running a powder sample in the magnet, fix <command>dummy_s1</command>
|
||||
</para>
|
||||
<para><command>> dummy_s1 fix 1</command> (> dummy_s1 fix 0 to unfix)</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Sample environment configuration (Local contact only)</title>
|
||||
<para>On ics1-taipan, you'll be editing SICS configuration files so that SICS will load the
|
||||
driver for a device. The editor is <command>vim</command>. This process will be done
|
||||
through a graphical interface in the future. </para>
|
||||
<variablelist>
|
||||
<title><command>vim</command> commands</title>
|
||||
<varlistentry>
|
||||
<term><command>:colorscheme ron </command></term>
|
||||
<listitem>
|
||||
<para>Change the color scheme. This make editing easier</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>/tasub</command></term>
|
||||
<listitem>
|
||||
<para> This searches for the string “tasub” </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>i</term>
|
||||
<listitem>
|
||||
<para>insert mode. Add text.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>r</term>
|
||||
<listitem>
|
||||
<para>replace. Replace a character.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>x</term>
|
||||
<listitem>
|
||||
<para> delete</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>ESC key</term>
|
||||
<listitem>
|
||||
<para> escape out of the current mode</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<sect2>
|
||||
<title>Lakeshore 340 configuration</title>
|
||||
<para>When using the Lakeshore 340, various things need to be changed in the
|
||||
configuration files. This should only be done by the local contact.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim extraconfig.tcl</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Remove both the # in the following four lines </para>
|
||||
<para>#catch </para>
|
||||
<para>#add_sct_… </para>
|
||||
<para># hsetprop </para>
|
||||
<para>#}msg </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>High voltage configuration</title>
|
||||
<para>When using the High voltage setup, various things need to be changed in the
|
||||
configuration files. This should only be done by the local contact.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim extraconfig.tcl</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Remove both the # in the four lines </para>
|
||||
<para># Make AsyncP… </para>
|
||||
<para># Make AsyncP… </para>
|
||||
<para># pulser delay </para>
|
||||
<para># pulser timeout </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure that the IP on the function generator is set to the following:
|
||||
137.157.203.149 </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Get an electrician such as Dan Bartlett to confirm the setup is safe!
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>12T magnet configuration</title>
|
||||
<para>When using the 12T magnet, various things need to be changed in the configuration
|
||||
files. This should only be done by the local contact. </para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Turn on the magnet laptop – check that the Ethernet cable and grey cable
|
||||
are connected. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click on “SICS oxford instruments” to bring up the front panel. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click on ITC503 Front Panel </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>open a Putty terminal</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/server </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> sudo vim taipan_configuration.tcl </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>On line 59, remove the # from # fileeval ../aerotech.tcl </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>On line 61 is s1 in the TASUB command. Change this to vs1. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
<para>If you made a mistake, quit without changing by typing
|
||||
<command>:q!</command> and start again.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> cd config/motors/ </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> sudo vim motor_configuration.tcl </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>/magnet</command>
|
||||
</para>
|
||||
<para>Search for the string “magnet” </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>The following {0} should change to {1} for the magnet: </para>
|
||||
<para>If {0}{</para>
|
||||
<para> # Convert magnet angle to s1 angle </para>
|
||||
<para> VarMake vs1speed float user </para>
|
||||
<para> vs1speed 1 </para>
|
||||
<para> … </para>
|
||||
<para> } } </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim extraconfig.tcl</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>#--------------- </para>
|
||||
<para># 12T magnet </para>
|
||||
<para>#--------------- </para>
|
||||
<para>Remove the # in the following lines (choose which temp controller method
|
||||
you require – running with the Mercury, or as Legacy mode) </para>
|
||||
<para>#add_oxford_magnet "magnetic" 137.157.203.153 </para>
|
||||
<para>#add_oxford_mercury "tc9" 137.157.203.151 7020 2.0 "\r" </para>
|
||||
<para>#add_itc500 tc1 137.157.203.151 7020 2.0 "@8" This is for running in
|
||||
Legacy Mode (to look like ITC500) </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title><superscript>3</superscript>He configuration</title>
|
||||
<para>When using the <superscript>3</superscript>He setup, various things need to be
|
||||
changed in the configuration files. This should only be done by the local contact.</para>
|
||||
<para>When using the <superscript>3</superscript>He setup, you need to switch to the
|
||||
appropriate speeds and accelerations for the elongated instrument. To do this, in
|
||||
the PuTTy window, go to </para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>> cd /usr/local/nbi/sics/taipan/</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>> vim taipan_setup.txt</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Change the 0 to 1 to turn on this file </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Save and quit by typing <command>:wq</command>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics stop</command></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><command>> runsics start</command></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Known Issues</title>
|
||||
<para>Alerts the user to known operational problems</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Troubleshooting</title>
|
||||
<para>What to do if things go wrong</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
306
site_ansto/manual/dbSICSch32_platypus_disk_chopper.xml
Normal file
@@ -0,0 +1,306 @@
|
||||
<?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>Astrium Disk 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. It was inherited from the velocity selector
|
||||
documentation, with alterations based on an email from Ferdi to Andy on 11th May 2011. </para>
|
||||
<para>The Astrium Disk Chopper is a SICS script context object???. There should be 2 parts,
|
||||
the script context object, which has the name
|
||||
<command>/instrument/disk_chopper</command> and the 2 driveable interfaces to the
|
||||
object, which have the names <command>chopper_speed</command> and
|
||||
<command>chopper_phase</command>. Hence you can <command>drive</command> and
|
||||
<command>run</command>
|
||||
<command>chopper_speed</command> and <command>chopper_phase</command>. To get other
|
||||
parameters use <command>hget</command> or <command>/instrument/disk_chopper/</command>.
|
||||
<command>hset</command> doesn't work for these nodes. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>run chopper_speed</command>
|
||||
<replaceable> rpm</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Not implemented</para>
|
||||
<para>Units: RPM</para>
|
||||
<para>Runs the disk chopper to <replaceable>rpm</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>drive chopper_phase</command>
|
||||
<replaceable> phase_angle</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Not implemented</para>
|
||||
<para>Units: Angstroms</para>
|
||||
<para>Is the same as <command>run</command> but it blocks the client that
|
||||
requested the <command>drive</command> from issuing commands until the task
|
||||
has finished.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/disk_chopper/ch1/state </command></term>
|
||||
<listitem>
|
||||
<para>Get the state of chopper 1 <command>ch1</command>. The normal operating
|
||||
state under SICS control is <computeroutput>CONTROL</computeroutput>.
|
||||
Check???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hlist /instrument/disk_chopper</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Lists all the <command>disk_chopper</command> nodes</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset
|
||||
/instrument/disk_chopper/</command><replaceable>chopper</replaceable>/<replaceable>node</replaceable>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Not implemented</para>
|
||||
<para>Set <replaceable>val</replaceable> on a <replaceable>node</replaceable> of
|
||||
<replaceable>chopper</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/node</replaceable></term>
|
||||
<listitem>
|
||||
<para>Get the value of a <replaceable>chopper/node</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>The disk chopper is under the
|
||||
<computeroutput>/instrument/disk_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">ASTRIUM chopper
|
||||
manual</uri> in the NBI content management system.</para>
|
||||
<para>There are 2 levels in the tree. </para>
|
||||
<para><command>/instrument/disk_chopper/</command> This level contains the frequently used
|
||||
speed and phase values for each chopper, and the overall error state.</para>
|
||||
<para><command>/instrument/disk_chopper/</command><replaceable>chopper/</replaceable> e.g.
|
||||
/instrument/disk_chopper/ch1. The lower level contains all the chopper specific
|
||||
parameters</para>
|
||||
<variablelist>
|
||||
<title>Chopper general commands</title>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/disk_chopper/device_error</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>to do ???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget /instrument/disk_chopper/geometry</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>to do ???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/<replaceable>ch1speed</replaceable></command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units: RPM</para>
|
||||
<para>Actual speed ???</para>
|
||||
<para>Allowable values:</para>
|
||||
<para><option>ch1speed</option></para>
|
||||
<para><option>ch2speed</option></para>
|
||||
<para><option>ch3speed</option></para>
|
||||
<para><option>ch4speed</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/<replaceable>ch1phase</replaceable></command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units: degrees</para>
|
||||
<para>Phase referenced to ???</para>
|
||||
<para>Allowable values:</para>
|
||||
<para><option>ch1phase</option></para>
|
||||
<para><option>ch2phase</option></para>
|
||||
<para><option>ch3phase</option></para>
|
||||
<para><option>ch4phase</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hlist
|
||||
/instrument/disk_chopper/<replaceable>ch1</replaceable>/</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Specific chopper nodes</para>
|
||||
<para>Allowable values:</para>
|
||||
<para><option>ch1</option></para>
|
||||
<para><option>ch2</option></para>
|
||||
<para><option>ch3</option></para>
|
||||
<para><option>ch4</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<variablelist>
|
||||
<title>Chopper specific commands</title>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>state</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>CHECK this section ???. Inherited from velocity selector documentation</para>
|
||||
<para>Privilege = User</para>
|
||||
<para>Get the state.</para>
|
||||
<para><option>IDLING</option> Is not being controlled. Should be at zero rpm.???
|
||||
Check</para>
|
||||
<para><option>RESET</option> A reset has been issued by the disk chopper client
|
||||
program </para>
|
||||
<para><option>CONTROL</option> Control has been requested by SICS or the disk
|
||||
chopper client program</para>
|
||||
<para><option>BRAKING</option> The disk chopper has the brake applied due to an
|
||||
<command>hset setstate brake</command> request, the
|
||||
<guibutton>Brake</guibutton> button applied on the disk chopper client
|
||||
program, or due to a fault condition</para>
|
||||
<para><option>POWERLOSS MEASUREMENT</option>
|
||||
<guibutton>Powerloss measurement </guibutton>button applied on the disk
|
||||
chopper client program </para>
|
||||
<para><option>EMERGENCY STOP</option>
|
||||
<guibutton>Emergency stop</guibutton> button applied on the disk chopper
|
||||
client program </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>aspeed</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = rpm</para>
|
||||
<para>Get the actual speed</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>aphase</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = degrees</para>
|
||||
<para>Get the actual phase</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>aveto</command></term>
|
||||
<listitem>
|
||||
<para>Get the veto state</para>
|
||||
<para>Returned values:</para>
|
||||
<para><option>nok</option> not OK</para>
|
||||
<para><option>ok</option> OK</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>dir</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the cooling water inlet temperature</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>flowr</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = litres/min</para>
|
||||
<para>Get the cooling water flow rate</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>rspeed</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = rpm</para>
|
||||
<para>Get the requested speed</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>rphase</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = degrees</para>
|
||||
<para>Get the requested phase</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>mtemp</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the ???? temperature </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>wtemp</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = Celsius</para>
|
||||
<para>Get the cooling water outlet temperature </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>mvacu</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = 10<superscript>-3</superscript>bar</para>
|
||||
<para>Get the vacuum</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>monit</command></term>
|
||||
<listitem>
|
||||
<para>????</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>mvibr</command></term>
|
||||
<listitem>
|
||||
<para>Units = mm/s ???</para>
|
||||
<para>Get the vibration</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>date</command></term>
|
||||
<listitem>
|
||||
<para>???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/disk_chopper/</command><replaceable>chopper/</replaceable><command>time</command></term>
|
||||
<listitem>
|
||||
<para>???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
69
site_ansto/manual/dbSICSch33_UserGuideQuokka.xml
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?oxygen RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" type="xml"?>
|
||||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||
<info><title>User Guide for Small Angle Scattering. Quokka Edition</title><subtitle>ANSTO
|
||||
version 0.2. May 2013</subtitle>
|
||||
<date/>
|
||||
<author><personname>Kirrily Rule</personname></author><author><personname>Nick
|
||||
Hauser</personname></author>
|
||||
<cover>
|
||||
<para>This is a cover </para>
|
||||
<para>This guide is not intended to replace your local contact, but to jog your memory
|
||||
if you are operating independently. Anything strange, call your local
|
||||
contact…</para>
|
||||
</cover>
|
||||
<bibliosource>Manually maintained from this source ie. can't Xinclude a book into a book.
|
||||
</bibliosource>
|
||||
</info>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5quickstart_quokka.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5sics_login.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<part>
|
||||
<title>EXPERIMENT</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5alignment_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="db5experiment_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="db5environment_control_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
<part>
|
||||
<title>CONFIGURATION AND TROUBLESHOOTING</title>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
href="db5environment_config_taipan.xml">
|
||||
<xi:fallback>
|
||||
<para>
|
||||
<emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
|
||||
</para>
|
||||
</xi:fallback>
|
||||
</xi:include>
|
||||
</part>
|
||||
</book>
|
||||
573
site_ansto/manual/dbSICSch34_fermi_chopper.xml
Normal file
@@ -0,0 +1,573 @@
|
||||
<?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. It was inherited from the velocity selector
|
||||
documentation, with alterations based on an email from Ferdi to Andy on 11th May 2011. </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>
|
||||
<para>To get other parameters use <command>hget</command> or
|
||||
<command>/instrument/fermi_chopper/</command>. <command>hset</command> doesn't work
|
||||
for these nodes. </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></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>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>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.
|
||||
/instrument/fermi_chopper/mch. Contains all the chopper specific parameters</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>device_error</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>CHECK this section ???. Inherited from velocity selector documentation</para>
|
||||
<para>Description???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>rotation_speed</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = rpm</para>
|
||||
<para>Get the actual speed</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>phase_veto_count</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>phase_nonveto_count</command></term>
|
||||
<listitem>
|
||||
<para>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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>phase_acc</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = µs</para>
|
||||
<para>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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>phase_rep</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = µs</para>
|
||||
<para>PHASE REPEATABILITY is the standard deviation of phase.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>phase_ok</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = %</para>
|
||||
<para>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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>vetowin100ns</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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>vetowin50ns</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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>mode</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the MOTOR CONTROL MODE (0=RPM, 1=PHASE)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>speed_setpt</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Units = RPM</para>
|
||||
<para>This command sets 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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>ref_delay</command></term>
|
||||
<listitem>
|
||||
<para>Units = ms</para>
|
||||
<para>Sets the phasing time delay and saves it in non-volatile memory</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>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>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>sync_srce</command></term>
|
||||
<listitem>
|
||||
<para>Sets the sync source (0=external, 1=internal)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>motdir</command></term>
|
||||
<listitem>
|
||||
<para>Sets the motor direction (0=CW, 1=CCW)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hset hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>idle_toggle</command></term>
|
||||
<listitem>
|
||||
<para>???</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para><command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status</command>
|
||||
e.g. /instrument/fermi_chopper/mch/system_status. Contains the system status, which are
|
||||
chopper specific. <command>hget</command> only. </para>
|
||||
<para>These are read-only binary, allowed values 0 or 1.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/avc_on</command></term>
|
||||
<listitem>
|
||||
<para>gets the ??? 1=true, 0=false</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/motdir</command></term>
|
||||
<listitem>
|
||||
<para>gets the motor direction (0=CW, 1=CCW)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/lev_complete</command></term>
|
||||
<listitem>
|
||||
<para>1=Rotor is Levitated</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/up_to_speed</command></term>
|
||||
<listitem>
|
||||
<para>1=Speed is within 1% of the OPERATING SPEED parameter</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>system_status/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>
|
||||
<para>
|
||||
<command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status</command>
|
||||
e.g. /instrument/fermi_chopper/mch/intlck_status. Contains the interlock status. Check
|
||||
here if a chopper won't do as it is commanded. To run a chopper, all these status must
|
||||
be 0. <command>hget</command> only. </para>
|
||||
<para>These are read-only binary, allowed values 0 or 1.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/test_mode</command></term>
|
||||
<listitem>
|
||||
<para>1=Test mode active (rotation prevented).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/dsp_summ_shtdwn</command></term>
|
||||
<listitem>
|
||||
<para>1= DSP Summary Shutdown. Levitation controller request a motor
|
||||
shutdown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/cooling_loss</command></term>
|
||||
<listitem>
|
||||
<para>1 = Cooling Loss Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/spd_sensor_loss</command></term>
|
||||
<listitem>
|
||||
<para>1 = Speed Sensor Loss Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/ref_sig_loss</command></term>
|
||||
<listitem>
|
||||
<para>1 = Reference Signal Loss</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/over_temp</command></term>
|
||||
<listitem>
|
||||
<para>1= Motor Over Temperature Shutdown or RTD Over Temperature
|
||||
Shutdown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/vac_fail</command></term>
|
||||
<listitem>
|
||||
<para>1 = Vacuum Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/overspeed_or_breakfail</command></term>
|
||||
<listitem>
|
||||
<para>1 = Over Speed Trip Shutdown or Motor Brake Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/cc_wd_fail</command></term>
|
||||
<listitem>
|
||||
<para>1 = Customer Card Watch Dog Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/ext_fault</command></term>
|
||||
<listitem>
|
||||
<para>1 = External Fault Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/ups_fail</command></term>
|
||||
<listitem>
|
||||
<para>1= UPS Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/emerg_stop</command></term>
|
||||
<listitem>
|
||||
<para>1 = Emergency Stop Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/pos_alarm</command></term>
|
||||
<listitem>
|
||||
<para>1 = Position Shutdown on one of the bearing axis</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/osc_fail</command></term>
|
||||
<listitem>
|
||||
<para>1 = Oscillator Fail Shutdown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>intlck_status/dsp_wd_fail</command></term>
|
||||
<listitem>
|
||||
<para>1 = DSP Watch Dog Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para><command>/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/</command>
|
||||
e.g. /instrument/fermi_chopper/mch/control. Contains the settable parameters that
|
||||
control the chopper. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/device_error</command></term>
|
||||
<listitem>
|
||||
<para>??? is this the overall error state</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_vetowin100</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>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_vetowin50</command></term>
|
||||
<listitem>
|
||||
<para>1= DSP Summary Shutdown. Levitation controller request a motor
|
||||
shutdown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_mode</command></term>
|
||||
<listitem>
|
||||
<para>1 = Cooling Loss Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_rotspeed</command></term>
|
||||
<listitem>
|
||||
<para>1 = Speed Sensor Loss Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_prop_gain</command></term>
|
||||
<listitem>
|
||||
<para>1 = Reference Signal Loss</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_int_gain</command></term>
|
||||
<listitem>
|
||||
<para>1= Motor Over Temperature Shutdown or RTD Over Temperature
|
||||
Shutdown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_phase_gain</command></term>
|
||||
<listitem>
|
||||
<para>1 = Vacuum Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_ref_delay</command></term>
|
||||
<listitem>
|
||||
<para>1 = Over Speed Trip Shutdown or Motor Brake Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_ref_period</command></term>
|
||||
<listitem>
|
||||
<para>1 = Customer Card Watch Dog Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_sync_source</command></term>
|
||||
<listitem>
|
||||
<para>1 = External Fault Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/set_motor_dir</command></term>
|
||||
<listitem>
|
||||
<para>1= UPS Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/start</command></term>
|
||||
<listitem>
|
||||
<para>1 = Emergency Stop Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/stop</command></term>
|
||||
<listitem>
|
||||
<para>1 = Position Shutdown on one of the bearing axis</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/idle_toggle</command></term>
|
||||
<listitem>
|
||||
<para>1 = Oscillator Fail Shutdown.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hget
|
||||
/instrument/fermi_chopper/</command><replaceable>chopper/</replaceable><command>control/reset</command></term>
|
||||
<listitem>
|
||||
<para>1 = DSP Watch Dog Fail Shutdown</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
572
site_ansto/manual/dbSICSch34_fermi_chopper_shortnames.xml
Normal file
@@ -0,0 +1,572 @@
|
||||
<?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>
|
||||
303
site_ansto/manual/dbSICSch3_histogram_control.xml
Normal file
@@ -0,0 +1,303 @@
|
||||
<?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>Histogram Control</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-09-17 12:24</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title><command>histmem</command> command</title>
|
||||
<para>You can start and stop acquisitions and do limited configuration the histogram server
|
||||
with the histmem command. </para>
|
||||
<para>Note that histmem does not save data. You have to explicitly use the save command. </para>
|
||||
<para>The histogram memory server is a component that is separate from SICS. SICS currently
|
||||
exposes only a subset of the histogram server interface. In the future, Gumtree will
|
||||
provide an editor for the histogram server configuration files. </para>
|
||||
<para>For a simple experiment in beam monitor mode, where you want to histogram data until
|
||||
one million counts are counted in the beam monitor, from the command line you would</para>
|
||||
<para>
|
||||
<programlisting>
|
||||
...
|
||||
histmem mode MONITOR_1
|
||||
histmem preset 1000000
|
||||
histmem start
|
||||
"wait until the histogram is finished"
|
||||
save
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>For subsequent acquisitions where you want to do fast starts of the histogram server
|
||||
because you don't need to change configuration</para>
|
||||
<para>
|
||||
<programlisting>
|
||||
histmem pause
|
||||
do something in SICS like change the sample or temperature
|
||||
histmem start
|
||||
"wait until the histogram is finished"
|
||||
save
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>You must call the histmem command with one of the following subcommands</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>start</command>
|
||||
<option>block</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>will start an acquisition in the current mode</para>
|
||||
<para>The option <option>block</option> prevents subsequent commands from being
|
||||
processed until the histmem is finished. Used in scripts, when using the
|
||||
<command>count</command> or <command>time</command> modes</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>stop</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>will stop the histogram memory if it is running in
|
||||
<command>unlimited</command> mode that has been started without the
|
||||
<option>block</option> option.</para>
|
||||
<para>NOTE: If you are running in 'unlimited & block' mode, count or time
|
||||
modes, you must send an INT1712 1 to abort the acquistion or hit the
|
||||
Interrupt button in Gumtree. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>veto </command>
|
||||
<option>enable/disable</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><option>disable</option> will stop the histogram memory from counting and
|
||||
not clear memory. It will have no effect on configuration. Use this command
|
||||
if you need to pause a measurement without clearing the memory. </para>
|
||||
<para><option>enable</option> will resume counting without clearing the memory.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>pause</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>if MULTIPLE_DATASETS=ENABLE mode (default - but check)</para>
|
||||
<para>use pause instead of stop for a 'fast' start. Use this if you don't have
|
||||
to change the histogram memory configuration. Clears histograms and
|
||||
counters, but doesn't reinitialisation the histogram server. </para>
|
||||
<para>if MULTIPLE_DATASETS=DISABLE mode</para>
|
||||
<para>use pause instead of veto. Does not clear histograms and counters, does
|
||||
not reinitialise the histogram server. Data is accumulated. </para>
|
||||
<para>Note that the MULTIPLE_DATASETS mode is set in the SICS hmm configuration
|
||||
files and/or on the histogram memory server. SICS does not report this
|
||||
value. To view this value, you must look at the config tab on the histogram
|
||||
server web client. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>mode </command>
|
||||
<replaceable>mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>mode </replaceable>one of:</para>
|
||||
<para><command>MONITOR_n</command> (where n=1,2,3 ...). If you set the mode to
|
||||
MONITOR_1 then the server will stop when MONITOR_1 reaches the
|
||||
<command>preset</command> counts</para>
|
||||
<para>
|
||||
<command>time</command> will stop at the <command>preset</command> time
|
||||
after <command>start</command></para>
|
||||
<para>
|
||||
<command>unlimited</command> will stop when it receives a <command>histmem
|
||||
stop</command> or INT1712 1</para>
|
||||
<para>
|
||||
<command>count</command> will stop when the total histogram counts reaches
|
||||
<command>preset</command> counts</para>
|
||||
<para>
|
||||
<command>frame</command> will stop when the <command>preset</command> number
|
||||
of TOF (time of flight) frames. e.g. when there's no TOF, there is an
|
||||
internal frame frequency which by default is 50Hz. So if you have a
|
||||
<command>preset</command> of 1000 frames you will get a 20 second
|
||||
acquisition</para>
|
||||
<para>
|
||||
<command>period</command> will stop when it reaches
|
||||
<command>preset</command> number of periods. A histogram period contains
|
||||
some number of frames averaged together - this is controlled by the BAT
|
||||
(base address table) and its attributes. The mapping can be fairly complex
|
||||
(e.g. time-averaged, time-history and stroboscopic acquisition) so there's
|
||||
not always a simple relationship between number-of-periods acquired and the
|
||||
DAQ time, but it can be worked out from the BAT setup</para>
|
||||
<para><command>count_roi</command></para>
|
||||
<para>Not supported. Will stop when the total histogram counts reaches
|
||||
<command>preset</command> counts in a region of interest defined in the
|
||||
histogram server configuration. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem preset </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the acquisition will terminate after the <replaceable>val</replaceable>
|
||||
period. This is seconds if the mode is time, and counts if the mode is
|
||||
count or MONITOR_n.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem freq </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><replaceable>val </replaceable> is the frame frequency (Hz) for time
|
||||
resolved data. If you set a frequency of zero then this will default to
|
||||
50Hz.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem fsrce</command>
|
||||
<replaceable>frame_source</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allow values of <replaceable>frame_source</replaceable> are:</para>
|
||||
<para><option>EXTERNAL </option>(default) </para>
|
||||
<para><option>INTERNAL </option>
|
||||
</para>
|
||||
<para>You can set this to <option>INTERNAL</option> if you don't have an
|
||||
external frame signal</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>status</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><warning>
|
||||
<para>This doesn't report anything</para>
|
||||
</warning> Started, Stopped, or Paused</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem </command>
|
||||
<command>loadconf</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>this uploads configuration tables (e.g. OAT for setting bins) to the
|
||||
histogram memory</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>OAT_TABLE</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>with no arguments will print out <application>SICS</application>'s copy of
|
||||
the OAT_TABLE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>OAT_TABLE</command>
|
||||
<option>-set X {</option>
|
||||
<replaceable>bb0 bb1</replaceable>
|
||||
<option>} Y {</option><replaceable>bb0 bb1</replaceable>
|
||||
<option>} T </option>{<replaceable>bb0 bb1</replaceable>
|
||||
<option>}</option></term>
|
||||
<listitem>
|
||||
<para>will generate a table starting at bin boundary
|
||||
<replaceable>bb0</replaceable> with a spacing of (bb1-bb0) extrapolated to
|
||||
the maximum bin boundary. The numbers of channels are calculated
|
||||
automatically.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>OAT_TABLE</command>
|
||||
<option>-set X {</option>
|
||||
<replaceable>bb0 bb1</replaceable>
|
||||
<option>} Y {</option><replaceable>bb0 bb1</replaceable>
|
||||
<option>} T </option>{<replaceable>bb0 bb1</replaceable>
|
||||
<option>} NTC </option><replaceable>val1 </replaceable>
|
||||
<option>NXC </option><replaceable>val2 </replaceable>
|
||||
<option>NYC </option><replaceable>val3 </replaceable></term>
|
||||
<listitem>
|
||||
<para>this version sets the number of channels explicitly</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para><application>SICS</application> cannot read the current OAT_TABLE from the histogram
|
||||
server, the only way to make sure that <application>SICS</application> is in sync with
|
||||
the histogram memory is to use the <application>SICS</application>
|
||||
<command>OAT_TABLE</command>
|
||||
<option>-set </option> command to change your table and then to upload it to the
|
||||
histogram server with the <command>histmem loadconf </command>command</para>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Histogram memory object</title>
|
||||
<para>In most cases, the <command>histmem</command> command will be sufficient to configure
|
||||
and control an experiment. </para>
|
||||
<para>This section describes a richer level of configuration and control, using the SICS
|
||||
histogram memory object. The histogram memory object in SICS is used to set the
|
||||
configuration of the histogram memory server (described in detail in a later chapter),
|
||||
and to get the current histogram memory server configuration and data. Note that it is
|
||||
possible to for the histogram memory's configuration to be set independently from SICS
|
||||
e.g. through the histogram memory's web interface. Therefore, care must taken to ensure
|
||||
synchronisation between the SICS histogram memory object and the histogram memory
|
||||
server. </para>
|
||||
<para>SICS has seven histogram-memory objects as follows:</para>
|
||||
<para><command>hmm</command>
|
||||
</para>
|
||||
<para><command>hmm_xy</command>
|
||||
</para>
|
||||
<para><command>hmm_xt</command>
|
||||
</para>
|
||||
<para><command>hmm_yt</command>
|
||||
</para>
|
||||
<para><command>hmm_x</command>
|
||||
</para>
|
||||
<para><command>hmm_y</command>
|
||||
</para>
|
||||
<para><command>hmm_t</command>
|
||||
</para>
|
||||
<para>which you can use to fetch xyt, xy, xt, yt, x, y and t data. </para>
|
||||
<para>For simplicity, we will use <replaceable>hm</replaceable> to refer to any of the 7
|
||||
histogram memory objects. Make sure you use the one appropriate to your measurement. </para>
|
||||
<para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><replaceable>hm</replaceable><command> get 1</command></term>
|
||||
<listitem>
|
||||
<para>gets the current histogram memory data ie. 'live' data</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>hm</replaceable><command> zipget 1</command></term>
|
||||
<listitem>
|
||||
<para>gets the current histogram memory data in binary zip form</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>hm</replaceable><command> configure rank</command></term>
|
||||
<listitem>
|
||||
<para>gets the rank of the current histogram memory </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>hm</replaceable><command> configure
|
||||
dim</command><replaceable>n</replaceable></term>
|
||||
<listitem>
|
||||
<para>gets the current histogram memory data in binary zip form</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
308
site_ansto/manual/dbSICSch4_simple_scan.xml
Normal file
@@ -0,0 +1,308 @@
|
||||
<?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>Simple Scans</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-09-17 12:52</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title><command>runscan </command>command</title>
|
||||
<para>You can run a histogram memory scan with the <command>runscan</command> command. With
|
||||
this command you can acquire data with the histogram memory server while scanning
|
||||
against a "drivable" device, eg motors, temperature controllers. By default this saves
|
||||
time resolved, ie HISTOGRAM_XYT data at each scan point.</para>
|
||||
<para>Multi-dimensional scans, where you would like to scan say temperature and a motor,
|
||||
have to be done in a batch file, or by using a tcl <command>for</command> loop, which
|
||||
may contain a runscan. See Chapter5. Batch Manager </para>
|
||||
<note>
|
||||
<para> The data acquired at each scan point is saved before going to the next
|
||||
point.</para>
|
||||
</note>
|
||||
<para><command>runscan </command>
|
||||
<replaceable>scanvar start stop numpoints mode preset [force datatype
|
||||
savetype]</replaceable>
|
||||
</para>
|
||||
<para>Arguments must be in the order described</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>scanvar</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>a drivable device, ie a motor or temperature controller etc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>start</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the start position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>stop</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the stop position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>numpoints</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the number of scan points (the start and stop positions will be included
|
||||
in the scan)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>mode </replaceable>one of:</para>
|
||||
<para>
|
||||
<command>time</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>unlimited</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>period</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>count</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>frame</command>
|
||||
</para>
|
||||
<para><command>MONITOR_n</command> (where n=1,2,3 ...)</para>
|
||||
<para>If you set the mode to MONITOR_1 then the histogram server will stop when
|
||||
MONITOR_1 reaches the preset number of counts which has been set with the
|
||||
following <replaceable>preset</replaceable> parameter</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>preset</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the acquisition duration at each scan point, this is in second if the mode
|
||||
is time, or counts if the mode is count or MONITOR_n</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>
|
||||
<command>runscan </command>
|
||||
<option>options</option>
|
||||
</title>
|
||||
<para>These parameters must be supplied as a name-value pair, e.g.
|
||||
<command>datatype</command>
|
||||
<option>HISTOGRAM_Y</option>
|
||||
</para>
|
||||
<para>They can be given in any order.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>force </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Force a scan</para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>true</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>false</option> (default) </para>
|
||||
<para> If you really want to, you can force a scan when the instrument isn't
|
||||
ready. This can be useful for getting a background reference. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>datatype </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Select the histogram memory <command>datatype</command> to save in your
|
||||
data file. </para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_T</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_X</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_XT</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_Y</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_YT</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_XY</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_XYT</option> (default)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>savetype </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>save</option> (default) </para>
|
||||
<para>
|
||||
<option>nosave</option>
|
||||
</para>
|
||||
<para> By default your data will be saved in a file with a three letter
|
||||
instrument prefix and a run number. If you use <command>savetype </command>
|
||||
<option>nosave</option> then the data will be written to a scratch file
|
||||
called scratch.nx.hdf</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title><command>runscan </command>example</title>
|
||||
<para>
|
||||
<command>runscan </command>
|
||||
<option>sphi 0 2 4 time 5</option>
|
||||
</para>
|
||||
</example>
|
||||
<para>This will run a four point scan with the sphi motor starting at 0 and stopping at 2.
|
||||
The data will be acquired over five seconds at each point, with the default datatype
|
||||
HISTOGRAM_XYT, and saved in a file with a three letter instrument prefix and run number.</para>
|
||||
<example>
|
||||
<title><command>runscan </command>example</title>
|
||||
<para><command>runscan </command><option>mom 69.000 75 2 </option><command>MONITOR_2
|
||||
</command>3000 <command>savetype </command><option>nosave </option><command>datatype
|
||||
</command><option>HISTOGRAM_Y </option>
|
||||
<command>force </command><option>true</option></para>
|
||||
<para>This example sets all <command>runscan </command>parameters</para>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><command>bmonscan </command>command</title>
|
||||
<para>You can run a beam monitor scan with the <command>bmonscan</command> command. With
|
||||
this command you can acquire data with a counter in the histogram memory server while
|
||||
scanning against a "drivable" device, eg motors. The main detector is not required.
|
||||
Generally this would be used to align an instrument, e.g. alignment of a monochromator
|
||||
or sample crystal.</para>
|
||||
<para>Additional information can be found in the chapters "Counters", "User Defined Scans"
|
||||
and "Batch Manager". </para>
|
||||
<para><command>bmonscan</command> will create a data file of type BEAM_MONITOR. </para>
|
||||
<para>Multi-dimensional scans have to be done in a batch file, or by using a tcl
|
||||
<command>for</command> loop, which may contain a runscan. See the chapter "Batch
|
||||
Manager".</para>
|
||||
<para>Unlike runscan, bmonscan is a standard SICS scan object. This means you can configure,
|
||||
interrogate and control bmonscan using the commands in the chapter "User Defined Scans".
|
||||
This section has only a summary of the most used commands, which allows you to do a one
|
||||
variable scan. </para>
|
||||
<note>
|
||||
<para> The data acquired at each scan point is saved before going to the next
|
||||
point.</para>
|
||||
</note>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan run</command>
|
||||
<replaceable>NP mode preset </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Executes a scan. </para>
|
||||
<para><replaceable>NP</replaceable> is the number of scan points</para>
|
||||
<para><replaceable>mode</replaceable> is the counter mode, either
|
||||
<option>timer</option> or <option>monitor</option></para>
|
||||
<para><replaceable>preset</replaceable> is the preset value for the counter</para>
|
||||
<para>Scan data is written to an output file.</para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/NP</replaceable></para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/mode</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/preset</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan clear</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears the list of scan variables. Must be called before each scan that
|
||||
has different parameters. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan add</command>
|
||||
<replaceable>variable start increment </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Adds the variable specified by the argument
|
||||
<replaceable>variable</replaceable> to the list of variables scanned in the
|
||||
next scan. The arguments <replaceable>start</replaceable> and
|
||||
<replaceable>increment</replaceable> define the starting point and the
|
||||
step width for the scan on this variable. </para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_variable</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_start</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_increment</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan getvarpar</command>
|
||||
<replaceable>i</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the name, start and step of the scan variable number
|
||||
<replaceable>i</replaceable>
|
||||
</para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_variable</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan setchannel</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the beam monitor to collect data from, where
|
||||
<replaceable>n</replaceable> is an integer ID for the beam monitor to use.
|
||||
setchannel uses zero-based counting, so 0 is bm1 etc.</para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/channel</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>bmonscan example</title>
|
||||
<para><command>bmonscan clear</command> clears the list of scan variables</para>
|
||||
<para><command>bmonscan add </command><replaceable>stth 0 0.1</replaceable> adds the
|
||||
motor stth to the scan, with a starting value of 0 degrees and an increment value
|
||||
0.1 degrees</para>
|
||||
<para><command>bmonscan getvarpar </command><replaceable>0</replaceable> lets you check
|
||||
the variable you are scanning, its start and step value. In this case it returns
|
||||
<returnvalue>bmonscan.stth = 0.000000 = 0.100000</returnvalue></para>
|
||||
<para><command>bmonscan setchannel </command><replaceable>0</replaceable> selects the
|
||||
first beam monitor, aka bm1. You'll need to check physically where this beam monitor
|
||||
is on the instrument you're driving</para>
|
||||
<para><command>bmonscan run </command><replaceable>10 monitor 10000</replaceable> runs
|
||||
the scan with 10 scan points, in counter mode with a preset of 10000 counts. </para>
|
||||
</example>
|
||||
</sect1>
|
||||
</chapter>
|
||||
313
site_ansto/manual/dbSICSch4_simple_scan_py.xml
Normal file
@@ -0,0 +1,313 @@
|
||||
<?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>Simple Scans in Python</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-09-17 12:52</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title><command>runscan </command>command</title>
|
||||
<para>You can run a scan with the <command>runscan</command> command. With this command you
|
||||
can acquire data with the histogram memory server while scanning against a "drivable"
|
||||
device, eg motors, temperature controllers. By default this saves time resolved, ie
|
||||
HISTOGRAM_XYT data at each scan point.</para>
|
||||
<para>Multi-dimensional scans, where you would like to scan say temperature and a motor,
|
||||
have to be done in a batch file, or by using a python <command>for</command> loop, which
|
||||
may contain a runhmscan. See Chapter5. Batch Manager </para>
|
||||
<para><command>from gumpy.commons import sics</command></para>
|
||||
<note>
|
||||
<para> The data acquired at each scan point is saved before going to the next
|
||||
point.</para>
|
||||
</note>
|
||||
<para><command>sics.runscan(</command>
|
||||
<replaceable>"scanvar", start, stop, numpoints, "mode", preset, channel) </replaceable>
|
||||
</para>
|
||||
<para>Arguments must be in the order described</para>
|
||||
<para><emphasis role="bold">Note</emphasis> that <replaceable>force datatype
|
||||
savetype</replaceable> are optional in tcl, have an hdb_path, but are not included in
|
||||
the <command>runscan</command> signature, but should be.</para>
|
||||
<para><emphasis role="bold">Note</emphasis> that instruments may not have an hmscan hdb_path
|
||||
e.g. Quokka. </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>scanvar</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>a drivable device, ie a motor or temperature controller etc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>start</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the start position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>stop</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the stop position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>numpoints</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the number of scan points (the start and stop positions will be included
|
||||
in the scan)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>mode </replaceable>one of:</para>
|
||||
<para>
|
||||
<command>time</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>unlimited</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>period</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>count</command>
|
||||
</para>
|
||||
<para>
|
||||
<command>frame</command>
|
||||
</para>
|
||||
<para><command>MONITOR_n</command> (where n=1,2,3 ...)</para>
|
||||
<para>If you set the mode to MONITOR_1 then the histogram server will stop when
|
||||
MONITOR_1 reaches the preset number of counts which has been set with the
|
||||
following <replaceable>preset</replaceable> parameter</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>preset</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the acquisition duration at each scan point, this is in second if the mode
|
||||
is time, or counts if the mode is count or MONITOR_n</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>
|
||||
<command>runscan </command>
|
||||
<option>options</option>
|
||||
</title>
|
||||
<para>These parameters must be supplied as a name-value pair, e.g.
|
||||
<command>datatype</command>
|
||||
<option>HISTOGRAM_Y</option>
|
||||
</para>
|
||||
<para>They can be given in any order.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>force </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Force a scan</para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>true</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>false</option> (default) </para>
|
||||
<para> If you really want to, you can force a scan when the instrument isn't
|
||||
ready. This can be useful for getting a background reference. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>datatype </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Select the histogram memory <command>datatype</command> to save in your
|
||||
data file. </para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_T</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_X</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_XT</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_Y</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_YT</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_XY</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>HISTOGRAM_XYT</option> (default)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>savetype </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>save</option> (default) </para>
|
||||
<para>
|
||||
<option>nosave</option>
|
||||
</para>
|
||||
<para> By default your data will be saved in a file with a three letter
|
||||
instrument prefix and a run number. If you use <command>savetype </command>
|
||||
<option>nosave</option> then the data will be written to a scratch file
|
||||
called scratch.nx.hdf</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title><command>runscan </command>example</title>
|
||||
<para>
|
||||
<command>runscan </command>
|
||||
<option>sphi 0 2 4 time 5</option>
|
||||
</para>
|
||||
</example>
|
||||
<para>This will run a four point scan with the sphi motor starting at 0 and stopping at 2.
|
||||
The data will be acquired over five seconds at each point, with the default datatype
|
||||
HISTOGRAM_XYT, and saved in a file with a three letter instrument prefix and run number.</para>
|
||||
<example>
|
||||
<title><command>runscan </command>example</title>
|
||||
<para><command>runscan </command><option>mom 69.000 75 2 </option><command>MONITOR_2
|
||||
</command>3000 <command>savetype </command><option>nosave </option><command>datatype
|
||||
</command><option>HISTOGRAM_Y </option>
|
||||
<command>force </command><option>true</option></para>
|
||||
<para>This example sets all <command>runscan </command>parameters</para>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><command>bmonscan </command>command</title>
|
||||
<para>You can run a beam monitor scan with the <command>bmonscan</command> command. With
|
||||
this command you can acquire data with a counter in the histogram memory server while
|
||||
scanning against a "drivable" device, eg motors. The main detector is not required.
|
||||
Generally this would be used to align an instrument, e.g. alignment of a monochromator
|
||||
or sample crystal.</para>
|
||||
<para>Additional information can be found in the chapters "Counters", "User Defined Scans"
|
||||
and "Batch Manager". </para>
|
||||
<para><command>bmonscan</command> will create a data file of type BEAM_MONITOR. </para>
|
||||
<para>Multi-dimensional scans have to be done in a batch file, or by using a tcl
|
||||
<command>for</command> loop, which may contain a runscan. See the chapter "Batch
|
||||
Manager".</para>
|
||||
<para>Unlike runscan, bmonscan is a standard SICS scan object. This means you can configure,
|
||||
interrogate and control bmonscan using the commands in the chapter "User Defined Scans".
|
||||
This section has only a summary of the most used commands, which allows you to do a one
|
||||
variable scan. </para>
|
||||
<note>
|
||||
<para> The data acquired at each scan point is saved before going to the next
|
||||
point.</para>
|
||||
</note>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan run</command>
|
||||
<replaceable>NP mode preset </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Executes a scan. </para>
|
||||
<para><replaceable>NP</replaceable> is the number of scan points</para>
|
||||
<para><replaceable>mode</replaceable> is the counter mode, either
|
||||
<option>timer</option> or <option>monitor</option></para>
|
||||
<para><replaceable>preset</replaceable> is the preset value for the counter</para>
|
||||
<para>Scan data is written to an output file.</para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/NP</replaceable></para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/mode</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/preset</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan clear</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears the list of scan variables. Must be called before each scan that
|
||||
has different parameters. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan add</command>
|
||||
<replaceable>variable start increment </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Adds the variable specified by the argument
|
||||
<replaceable>variable</replaceable> to the list of variables scanned in the
|
||||
next scan. The arguments <replaceable>start</replaceable> and
|
||||
<replaceable>increment</replaceable> define the starting point and the
|
||||
step width for the scan on this variable. </para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_variable</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_start</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_increment</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan getvarpar</command>
|
||||
<replaceable>i</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the name, start and step of the scan variable number
|
||||
<replaceable>i</replaceable>
|
||||
</para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_variable</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan setchannel</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the beam monitor to collect data from, where
|
||||
<replaceable>n</replaceable> is an integer ID for the beam monitor to use.
|
||||
setchannel uses zero-based counting, so 0 is bm1 etc.</para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/channel</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>bmonscan example</title>
|
||||
<para><command>bmonscan clear</command> clears the list of scan variables</para>
|
||||
<para><command>bmonscan add </command><replaceable>stth 0 0.1</replaceable> adds the
|
||||
motor stth to the scan, with a starting value of 0 degrees and an increment value
|
||||
0.1 degrees</para>
|
||||
<para><command>bmonscan getvarpar </command><replaceable>0</replaceable> lets you check
|
||||
the variable you are scanning, its start and step value. In this case it returns
|
||||
<returnvalue>bmonscan.stth = 0.000000 = 0.100000</returnvalue></para>
|
||||
<para><command>bmonscan setchannel </command><replaceable>0</replaceable> selects the
|
||||
first beam monitor, aka bm1. You'll need to check physically where this beam monitor
|
||||
is on the instrument you're driving</para>
|
||||
<para><command>bmonscan run </command><replaceable>10 monitor 10000</replaceable> runs
|
||||
the scan with 10 scan points, in counter mode with a preset of 10000 counts. </para>
|
||||
</example>
|
||||
</sect1>
|
||||
</chapter>
|
||||
303
site_ansto/manual/dbSICSch4_simple_scan_taipan_only.xml
Normal file
@@ -0,0 +1,303 @@
|
||||
<?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>Simple Scans for Taipan</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2008-09-17 12:52</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title><command>runscan </command>command</title>
|
||||
<para>You can run a scan with the <command>runscan</command> command. This
|
||||
<command>runscan</command> is unique to Taipan. Do not use the options below on any
|
||||
other instrument. With this command you can acquire data with the beam monitor server
|
||||
while scanning against a "drivable" device, eg motors, temperature controllers. This
|
||||
saves count data at each scan point.</para>
|
||||
<para>Multi-dimensional scans, where you would like to scan say temperature and a motor,
|
||||
have to be done in a batch file, or by using a tcl <command>for</command> loop, which
|
||||
may contain a runscan. See Chapter5. Batch Manager </para>
|
||||
<note>
|
||||
<para> The data acquired at each scan point is saved before going to the next
|
||||
point.</para>
|
||||
</note>
|
||||
<para><command>runscan </command>
|
||||
<replaceable>scanvar start stop numpoints mode preset [force savetype]</replaceable>
|
||||
</para>
|
||||
<para>Arguments must be in the order described</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>scanvar</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>a drivable device, ie a motor or temperature controller etc</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>start</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the start position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>stop</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the stop position for the scan variable</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>numpoints</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the number of scan points (the start and stop positions will be included
|
||||
in the scan)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>mode </replaceable>one of:</para>
|
||||
<para>
|
||||
<command>time</command>
|
||||
</para>
|
||||
<para><command>monitor</command>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>preset</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>the acquisition duration at each scan point, this is in seconds if the
|
||||
mode is time, or counts if the mode is monitor</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>
|
||||
<command>runscan </command>
|
||||
<option>options</option>
|
||||
</title>
|
||||
<para>These parameters must be supplied as a name-value pair, e.g.
|
||||
<command>savetype</command>
|
||||
<option>nosave</option>
|
||||
</para>
|
||||
<para>They can be given in any order.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>force </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Force a scan</para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>true</option>
|
||||
</para>
|
||||
<para>
|
||||
<option>false</option> (default) </para>
|
||||
<para> If you really want to, you can force a scan when the instrument isn't
|
||||
ready. This can be useful for getting a background reference. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>savetype </command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Allowed <replaceable>val</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>save</option> (default) </para>
|
||||
<para>
|
||||
<option>nosave</option>
|
||||
</para>
|
||||
<para> By default your data will be saved in a file with a three letter
|
||||
instrument prefix and a run number. If you use <command>savetype </command>
|
||||
<option>nosave</option> then the data will be written to a scratch file
|
||||
called scratch.nx.hdf</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title><command>runscan </command>example</title>
|
||||
<para>
|
||||
<command>runscan </command>
|
||||
<option>s2 0 2 4 time 5</option>
|
||||
</para>
|
||||
</example>
|
||||
<para>This will run a four point scan with the s2 motor starting at 0 and stopping at 2.
|
||||
The data will be acquired over five seconds at each point and saved in a file with a
|
||||
three letter instrument prefix and run number.</para>
|
||||
<example>
|
||||
<title><command>runscan </command>example</title>
|
||||
<para><command>runscan </command><option>s2 69.000 75 2 </option><command>monitor
|
||||
</command>3000 <command>savetype </command><option>nosave </option>
|
||||
<command>force </command><option>true</option></para>
|
||||
<para>This example sets all <command>runscan </command>parameters</para>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><command>bmonscan </command>command</title>
|
||||
<para>You can run a beam monitor scan with the <command>bmonscan</command> command. With
|
||||
this command you can acquire data with a counter in the histogram memory server while
|
||||
scanning against a "drivable" device, eg motors. The main detector is not required.
|
||||
Generally this would be used to align an instrument, e.g. alignment of a monochromator
|
||||
or sample crystal.</para>
|
||||
<para>Additional information can be found in the chapters "Counters", "User Defined Scans"
|
||||
and "Batch Manager". </para>
|
||||
<para><command>bmonscan</command> will create a data file of type BEAM_MONITOR. </para>
|
||||
<para>Multi-dimensional scans have to be done in a batch file, or by using a tcl
|
||||
<command>for</command> loop, which may contain a runscan. See the chapter "Batch
|
||||
Manager".</para>
|
||||
<para>Unlike runscan, bmonscan is a standard SICS scan object. This means you can configure,
|
||||
interrogate and control bmonscan using the commands in the chapter "User Defined Scans".
|
||||
This section has only a summary of the most used commands, which allows you to do a one
|
||||
variable scan. </para>
|
||||
<note>
|
||||
<para> The data acquired at each scan point is saved before going to the next
|
||||
point.</para>
|
||||
</note>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan run</command>
|
||||
<replaceable>NP mode preset </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Executes a scan. </para>
|
||||
<para><replaceable>NP</replaceable> is the number of scan points</para>
|
||||
<para><replaceable>mode</replaceable> is the counter mode, either
|
||||
<option>timer</option> or <option>monitor</option></para>
|
||||
<para><replaceable>preset</replaceable> is the preset value for the counter</para>
|
||||
<para>Scan data is written to an output file.</para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/NP</replaceable></para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/mode</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/preset</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan clear</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears the list of scan variables. Must be called before each scan that
|
||||
has different parameters. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan add</command>
|
||||
<replaceable>variable start increment </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Adds the variable specified by the argument
|
||||
<replaceable>variable</replaceable> to the list of variables scanned in the
|
||||
next scan. The arguments <replaceable>start</replaceable> and
|
||||
<replaceable>increment</replaceable> define the starting point and the
|
||||
step width for the scan on this variable. </para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_variable</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_start</replaceable></para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_increment</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan getvarpar</command>
|
||||
<replaceable>i</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the name, start and step of the scan variable number
|
||||
<replaceable>i</replaceable>
|
||||
</para>
|
||||
<para>tree interface
|
||||
<replaceable>/commands/scan/bmonscan/scan_variable</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan setchannel</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the beam monitor to collect data from, where
|
||||
<replaceable>n</replaceable> is an integer ID for the beam monitor to use.
|
||||
setchannel uses zero-based counting, so 0 is bm1 etc.</para>
|
||||
<para>tree interface <replaceable>/commands/scan/bmonscan/channel</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<example>
|
||||
<title>bmonscan example</title>
|
||||
<para><command>bmonscan clear</command> clears the list of scan variables</para>
|
||||
<para><command>bmonscan add </command><replaceable>stth 0 0.1</replaceable> adds the
|
||||
motor stth to the scan, with a starting value of 0 degrees and an increment value
|
||||
0.1 degrees</para>
|
||||
<para><command>bmonscan getvarpar </command><replaceable>0</replaceable> lets you check
|
||||
the variable you are scanning, its start and step value. In this case it returns
|
||||
<returnvalue>bmonscan.stth = 0.000000 = 0.100000</returnvalue></para>
|
||||
<para><command>bmonscan setchannel </command><replaceable>0</replaceable> selects the
|
||||
first beam monitor, aka bm1. You'll need to check physically where this beam monitor
|
||||
is on the instrument you're driving</para>
|
||||
<para><command>bmonscan run </command><replaceable>10 monitor 10000</replaceable> runs
|
||||
the scan with 10 scan points, in counter mode with a preset of 10000 counts. </para>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><command>diffskan </command>command</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>diffskan</command>
|
||||
<replaceable>milliseconds scanobj motor start stop speed</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Runs the counters continuously while the motor drives from start to end.</para>
|
||||
<para><replaceable>milliseconds</replaceable> is the counter sampling interval</para>
|
||||
<para><replaceable>scanobj</replaceable> is the scan object. You should be able
|
||||
to use any scan object but I've only tried it with iscan (you need iscan for
|
||||
meshscan)</para>
|
||||
<para><replaceable>motor</replaceable> is the name of the motor to be scanned</para>
|
||||
<para><replaceable>start</replaceable> the start position for the scan variable</para>
|
||||
<para><replaceable>stop</replaceable> the stop position for the scan variable</para>
|
||||
<para><replaceable>speed </replaceable> is the speed of the scan variable in its
|
||||
positional units per second, e.g. degrees per second</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title><command>mesh </command>command</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>mesh</command>
|
||||
<replaceable>mot start [fname]</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The mesh command is currently hardwired to drive "mot" from "start" in steps of 1 unit to start +15 and then call diffskan on s1.
|
||||
So the code needs to be edited for different ranges etc</para>
|
||||
<para>The meshscan code was just cobbled together when Bob Aldus couldn't find a reflection so we needed to come up with something quickly.
|
||||
It is an mix of ad-hoc tcl and python code and would need to be parameterised to be generally useful.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
259
site_ansto/manual/dbSICSch5_batch.xml
Normal file
@@ -0,0 +1,259 @@
|
||||
<?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>Batching Tasks</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2006-08-17 16:31</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Usage</title>
|
||||
<para>The SICS batch manager reads commands from a Tcl script and executes them, you can use
|
||||
Tcl loops and logical constructs in the batch file, see the <uri
|
||||
xlink:href="dbSICSch8.xml#batch">Tcl command</uri> reference. The batch manager
|
||||
command is <command>exe</command>. Refer to the command reference section below for
|
||||
syntax and usage.</para>
|
||||
<para>Following is an example of an advanced batch file which runs some twotheta scans and
|
||||
omega scans several times each. The batch execution has been made dynamically
|
||||
configurable by using two tcl arrays, "scan()" and "batch()", to hold parameters for the
|
||||
scan commands and the loops. This means that the user can change the number of points
|
||||
per scan or the number of iterations in the loops from the command line before executing
|
||||
the batchfile. The 'if' statements at the start of the file initialise the arrays if
|
||||
they don't already exist. </para>
|
||||
<example>
|
||||
<title>Batch file example</title>
|
||||
<programlisting># This is an example of a dynamically configurable batch file.
|
||||
# Set default values for the batch and scan parameters.
|
||||
if { [info exists scan(np)] == 0 } { set scan(np) 5 }
|
||||
if { [info exists scan(mode)] == 0 } { set scan(mode) timer }
|
||||
if { [info exists scan(preset)] == 0 } { set scan(preset) 1.0 }
|
||||
if { [info exists batch(repeatnum)] == 0 } { set batch(repeatnum) 3 }
|
||||
clientput "Starting batch of twotheta scans"
|
||||
MyScan add twotheta 50 0.01
|
||||
for {set i 0} {$i < $batch(repeatnum)} {incr i} {
|
||||
clientput "twotheta scan: $i"
|
||||
MyScan run $scan(np) $scan(mode) $scan(preset)
|
||||
}
|
||||
|
||||
MyScan clear
|
||||
clientput "Starting batch of omega scans"
|
||||
MyScan add omega 50 0.01
|
||||
for {set i 0} {$i < $batch(repeatnum)} {incr i} {
|
||||
clientput "omega scan: $i"
|
||||
MyScan run $scan(np) $scan(mode) $scan(preset)
|
||||
}
|
||||
</programlisting>
|
||||
</example>
|
||||
<para>Assuming that the file is called batch.tcl, the user could execute it as follows</para>
|
||||
<programlisting>
|
||||
set scan(np) 100
|
||||
exe batch.tcl
|
||||
</programlisting>
|
||||
<warning>
|
||||
<title>Warning about the <command>run </command> command</title>
|
||||
<para>The <command>run</command> command does not wait for a move to complete before it
|
||||
returns, this means that the batch manager will execute any following commands
|
||||
straight away. If you want move an axis and then perform some action after the move
|
||||
is completed you should use the <command>drive</command> command instead of
|
||||
<command>run</command>. The following batch file will print the message after
|
||||
the move is complete.</para>
|
||||
<programlisting>
|
||||
drive omega 5
|
||||
clientput "omega is has reached five degrees"
|
||||
</programlisting>
|
||||
</warning>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>
|
||||
<uri xreflabel="batch"/>The batch buffer manager handles the execution of batch files.
|
||||
It can execute batch files directly. Additionally, batch files can be added into a queue
|
||||
for later processing. The batch buffer manager supports the following commands described
|
||||
below. The command for controlling the batch manager is called <command>exe</command>
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe append </command>
|
||||
<replaceable>'tcl commands' </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><note>
|
||||
<para>don't know the syntax. nha</para>
|
||||
</note>Append some tcl commands. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe </command>
|
||||
<replaceable>buffername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>directly load the buffer stored in the file
|
||||
<replaceable>buffername</replaceable> and execute it. The file is searched
|
||||
in the batch buffer search path. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe batchpath </command>
|
||||
<replaceable>newpath</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument, this command lists the directories which are searched
|
||||
for batch files. </para>
|
||||
<para><replaceable>newpath</replaceable> sets a new search path. It is possible
|
||||
to specify multiple directories by separating them with colons. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe clear</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears the queue of batch buffers. For safety, use in conjuction with
|
||||
<command>exe clearupload</command> </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe clearupload</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears partially uploaded batch buffers. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe enqueue </command>
|
||||
<replaceable>buffername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Appends <replaceable>buffername</replaceable> to the queue of batch
|
||||
buffers to execute. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe forcesave </command>
|
||||
<replaceable>filename</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Will overwrite an existing batch file without warning. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the name of the currently executing batch buffer </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info stack</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the stack of nested batch files (i.e. batch files calling each
|
||||
other). </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info range </command>
|
||||
<replaceable>name</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument prints the range of code currently being executed.</para>
|
||||
<para><replaceable>name</replaceable> prints the range of code executing in
|
||||
named buffer within the stack of nested buffers. The reply looks like: </para>
|
||||
<para>
|
||||
<computeroutput>number of start character = number of end character = line
|
||||
number</computeroutput>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info text </command>
|
||||
<replaceable>name</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument prints the code text currently being executed. </para>
|
||||
<para><replaceable>name </replaceable> prints the range of code text executing
|
||||
in the named buffer within the stack of nested buffers. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe interest </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Switches on automatic notification about starting batch files, executing a
|
||||
new bit of code or for finishing a batch file. This is most useful for SICS
|
||||
clients watching the progress of the experiment.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe print </command>
|
||||
<replaceable>buffername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the content of the batch buffer
|
||||
<replaceable>buffername</replaceable> to the screen. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe queue</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the content of the batch buffer queue. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe run </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Starts executing the batch buffers in the queue. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe save </command>
|
||||
<replaceable>filename</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Save the commands to a batch file. Returns an error if you try to
|
||||
overwrite an existing batch file</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe syspath </command>
|
||||
<replaceable>newpath</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument, this command lists the system directories which are
|
||||
searched for batch files. </para>
|
||||
<para><replaceable>newpath</replaceable> sets a new system search path. It is
|
||||
possible to specify multiple directories by separating them with colons.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe upload </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prepare the batch manager to upload a new set of commands from the
|
||||
client</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
283
site_ansto/manual/dbSICSch6_counters.xml
Normal file
@@ -0,0 +1,283 @@
|
||||
<?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>Counters</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2006-08-16 16:24</date>
|
||||
<releaseinfo>Beam monitors have not been documented completely in either the PSI source code
|
||||
or on the Bragg Institute Plone CMS. Therefore, this document is a standalone document,
|
||||
not edited from another source. </releaseinfo>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Beam monitors</title>
|
||||
<para>When you are doing an experiment with the main detector, you don't address beam
|
||||
monitors directly. You would normally select and configure the beam monitor to control
|
||||
your experiment using the <command>histmem</command> command.</para>
|
||||
<para>However, you may want to use a scan command with a beam monitor and without the main
|
||||
detector. This can be done with <command>bmonscan</command> which is a SICS scan object.
|
||||
For more detail on bmonscan, see the chapter "Simple Scans". </para>
|
||||
<para>Instruments often have more than one beam monitor. SICS has a multicounter interface
|
||||
named <command>bm</command>, which is a list of all the beam monitors on the instrument,
|
||||
usually 2 or 3 beam monitors with names bm1, bm2 and bm3. You must select which beam
|
||||
monitor will control your experiment. When you run the experiment using bm, all the beam
|
||||
monitors on the instrument will count, and with most instrument configurations, the
|
||||
values will be saved to the data file - you should check this is the case if you need
|
||||
these values. </para>
|
||||
<sect2>
|
||||
<title>Selecting a beam monitor for bm</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bmonscan setchannel</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the active beam monitor. </para>
|
||||
<para><replaceable>n</replaceable> = 0 is bm1, <replaceable>n</replaceable>
|
||||
=1 is bm2 etc. </para>
|
||||
<para>This is the preferred command when doing a
|
||||
<command>bmonscan</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>bm setchannel</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the active beam monitor. </para>
|
||||
<para><replaceable>n</replaceable> = 0 is bm1, <replaceable>n</replaceable>
|
||||
=1 is bm2 etc. </para>
|
||||
<para>This is the alternate command when using
|
||||
<command>bmonscan</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>histmem mode</command>
|
||||
<replaceable>MONITOR_n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets the active beam monitor. </para>
|
||||
<para><replaceable>n</replaceable> = 1 is bm1, <replaceable>n</replaceable>
|
||||
=2 is bm2 etc.</para>
|
||||
<para>Use this command when using <command>histmem</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para><command>runscan</command> also has an argument to select the beam monitor. </para>
|
||||
<para>Do not use these interchangably e.g. do not use <command>bm setchannel</command>
|
||||
<replaceable>n</replaceable> to set <command>histmem mode</command>
|
||||
<replaceable>MONITOR_n</replaceable>. It will not work. </para>
|
||||
<para>Since there are four commands for selecting beam monitor, you have to be careful
|
||||
to use the right one. Be explicit with your selection of beam monitor when using
|
||||
these commands. Don't assume. </para>
|
||||
<para>If you are using <command>histmem</command> to control the detector, set the beam
|
||||
monitor using <command>histmem mode</command>. </para>
|
||||
<para>If you are using <command>bmonscan</command> set the beam monitor using
|
||||
<command>bm setchannel</command> or <command>bmonscan setchannel</command></para>
|
||||
<para>If you are using <command>runscan</command> set the beam monitor with the
|
||||
<replaceable>mode</replaceable> setting in the runscan arguments.</para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Setting modes for the beam monitors</title>
|
||||
<para>The mode for a beam monitor, either <option>Timer</option> or
|
||||
<option>Monitor</option> can be set using <command>bm mode</command>, where bm can
|
||||
be bm, bm1, bm2 etc. The mode of the mulitcounter <command>bm</command> may be
|
||||
different from the mode of the selected beam monitor e.g. <command>bm1
|
||||
mode</command>. </para>
|
||||
<para>Even if you select bm1 using <command>bm setchannel 0</command> or
|
||||
<command>bmonscan setchannel 0</command>, changing the mode of bm1 e.g.
|
||||
<command>bm1 mode monitor</command> will not change <command>bm mode</command>.</para>
|
||||
<para><command>bm mode</command> is set by the most recent <command>bmonscan
|
||||
run</command>. </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Active beam monitor commands (bm)</title>
|
||||
<para>The active beam monitor <command>bm</command> has the following commands. These
|
||||
commands are get only</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>bm_preset</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>scalar value at which an acquisition will be stopped. Used in
|
||||
conjunction with <replaceable>mode</replaceable></para>
|
||||
<para>get only</para>
|
||||
<para>tree interface <command>/monitor/preset</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>bm_mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>mode to stop acquisitions, either <option>Timer</option> or
|
||||
<option>Counter</option></para>
|
||||
<para>get only</para>
|
||||
<para>Return values:</para>
|
||||
<para><option>Timer</option> will stop acquisition <command>preset</command>
|
||||
seconds after the acquisition is started</para>
|
||||
<para><option>Monitor</option> will stop acquisition
|
||||
<command>preset</command> counts after the acquisition is started</para>
|
||||
<para>tree interface <command>/monitor/mode</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>tree interface only</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>gets the scalar value for the instantaneous time of the beam monitor
|
||||
selected to control the experiment. </para>
|
||||
<para>get only</para>
|
||||
<para>Units: seconds</para>
|
||||
<para>tree interface <command>/monitor/time</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>tree interface only</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>gets the scalar value for the instantaneous counts of the beam monitor
|
||||
selected to control the experiment. </para>
|
||||
<para>get only</para>
|
||||
<para>Units: counts</para>
|
||||
<para>tree interface <command>/monitor/data</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para><command>bm</command> is available in the tree interface under the /monitor node,
|
||||
and attributes can be set and get using the <command>hget</command> and
|
||||
<command>hset</command> commands. </para>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Specific beam monitor commands (bm1)</title>
|
||||
<para>Each beam monitors are accessible as SICS objects, and in the tree interface under
|
||||
the /monitor node. They can be addressed by name, or using the hget commands when
|
||||
using the tree interface. There are generally either 1, 2 or 3 monitor per
|
||||
instrument, and the commands are of the form</para>
|
||||
<para><command>bm1_...</command></para>
|
||||
<para>where 1 can be 1, 2 or 3</para>
|
||||
<para>For simplicity, all the command descriptions below will use <command>bm1</command></para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>bm1_counts</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>returns the instanteous value of the number of counts</para>
|
||||
<para>Units: counts</para>
|
||||
<para>tree interface <replaceable>/monitor/bm1_counts</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>bm1_event_rate</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>returns the instanteous value of the count rate</para>
|
||||
<para>Units: counts per second</para>
|
||||
<para>tree interface
|
||||
<replaceable>/monitor/bm1_event_rate</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>bm1_time</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>return the instantaneous time on this beam monitor. Each beam monitor
|
||||
can have a unique time value. </para>
|
||||
<para>Units: seconds</para>
|
||||
<para>tree interface <replaceable>/monitor/bm1_time</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>bm1_status</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Return values:</para>
|
||||
<para><option>RUNNING</option> Beam monitor is enabled</para>
|
||||
<para><option>DISABLED</option> Beam monitor is disabled</para>
|
||||
<para>tree interface <replaceable>/monitor/bm1_status</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Commands used on both active (bm) and specific (bm1) beam monitors</title>
|
||||
<para>Use the commands on either <command>bm</command> or <command>bm1</command></para>
|
||||
<para>Please replace <replaceable>bm1</replaceable> with the beam monitor you want to
|
||||
control. </para>
|
||||
<para><emphasis>A setting on <command>bm</command> will not change the setting on the
|
||||
selected beam monitor e.g. <command>bm1</command></emphasis></para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><replaceable>bm1 preset value</replaceable></term>
|
||||
<listitem>
|
||||
<para>get or set a preset <replaceable>value</replaceable> for
|
||||
<replaceable>bm1</replaceable>. This is the value at which the
|
||||
acquisition will be stopped. Used in conjunction with
|
||||
<replaceable>mode</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>bm1 mode value</replaceable></term>
|
||||
<listitem>
|
||||
<para>get or set the mode to stop acquisitions, either
|
||||
<option>timer</option> or <option>monitor</option></para>
|
||||
<para><replaceable>value</replaceable> must be one of these options</para>
|
||||
<para><option>timer</option> will stop acquisition <command>preset</command>
|
||||
seconds after the acquisition is started</para>
|
||||
<para><option>monitor</option> will stop acquisition
|
||||
<command>preset</command> counts after the acquisition is started</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>bm1 status</replaceable></term>
|
||||
<listitem>
|
||||
<para>returns the monitor status. e.g. </para>
|
||||
<para><returnvalue>bm1.CountStatus = 10000 0 Beam: 0 E6</returnvalue></para>
|
||||
<para>= preset, current control value, current counts. </para>
|
||||
<para>The current counts may be high by 10 times. To be tested and fixed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><replaceable>bm1 count value</replaceable></term>
|
||||
<listitem>
|
||||
<para>Sets the preset to <replaceable>value</replaceable> and runs the
|
||||
counter to the preset.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>Use <command>hget</command> with the tree interface e.g. <command>hget
|
||||
/monitor/bm1_counts</command>. </para>
|
||||
<para><command>hget /monitor/bm1_counts</command> will return the same value as
|
||||
<command>bm1_counts</command></para>
|
||||
<para>These attributes are get only e.g. <command>hget /monitor/bm1_counts</command></para>
|
||||
<para>The next section refers to <command>histmem</command> which is most commonly used.
|
||||
The second section will refer to bm, and how it interacts with
|
||||
<command>histmem</command></para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Configuring counters</title>
|
||||
<para>Counters must be configured into the SICS server with the MakeCounter command, they
|
||||
cannot be added dynamically to a running server. The MakeCounter command has the
|
||||
following syntax </para>
|
||||
<para>
|
||||
<command>MakeCounter</command>
|
||||
<replaceable>name</replaceable>
|
||||
<replaceable>type</replaceable>
|
||||
<replaceable>[parameters]</replaceable>
|
||||
</para>
|
||||
<para>The list of parameters depends on the type of counter that is being created.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
504
site_ansto/manual/dbSICSch7_user_defn_scan.xml
Normal file
@@ -0,0 +1,504 @@
|
||||
<?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>User Defined Scans</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2006-08-16 15:25</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Creating a Scan Command</title>
|
||||
<para>A scan command must first be initialised with <command>MakeScanCommand</command>
|
||||
command in the SICS configuration file before it can be used.
|
||||
<command>MakeScanCommand</command> initialises the SICS internal <command>scan</command>
|
||||
command.</para>
|
||||
<para>
|
||||
<command>MakeScanCommand</command>
|
||||
<replaceable>name countername headfile recoverfil</replaceable>
|
||||
</para>
|
||||
<para>Arguments must be in the order described</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>name</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The scan will be accessible as <replaceable>name</replaceable> in the
|
||||
system. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>countername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The name of a valid counter object to use for counting</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>headfile</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The full pathname of a header description file. This file describes the
|
||||
contents of the header of the data file. The format of this file is
|
||||
described below</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<replaceable>recoverfil</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para> The full pathname of a file to store recover data. The internal scan
|
||||
command writes the state of the scan to a file after each scan point. This
|
||||
allows for restarting of aborted scans. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Using a Scan Command</title>
|
||||
<para> The scan command (named here <command>MyScan</command>, but may have another name)
|
||||
understands the following commands: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan run</command>
|
||||
<replaceable>NP mode preset </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Executes a scan. </para>
|
||||
<para><replaceable>NP</replaceable> is the number of scan points</para>
|
||||
<para><replaceable>mode</replaceable> is the counter mode, either
|
||||
<option>timer</option> or <option>monitor</option></para>
|
||||
<para><replaceable>preset</replaceable> is the preset value for the counter</para>
|
||||
<para>Scan data is written to an output file. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan add</command>
|
||||
<replaceable>name start step </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Adds the variable specified by the argument
|
||||
<replaceable>name</replaceable> to the list of variables scanned in the next
|
||||
scan. The arguments <replaceable>start</replaceable> and
|
||||
<replaceable>step</replaceable> define the starting point and the step width
|
||||
for the scan on this variable. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan appendvarpos</command>
|
||||
<replaceable>i pos</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Append <replaceable>pos</replaceable> to the array of positions for scan
|
||||
variable <replaceable>i</replaceable>. To be used from user defined scan
|
||||
functions. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan callback</command>
|
||||
<replaceable>status</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Triggers callbacks configured on the scan object. </para>
|
||||
<para>Allow <replaceable>status</replaceable> one of:</para>
|
||||
<para>
|
||||
<option>scanstart </option>
|
||||
</para>
|
||||
<para>
|
||||
<option>scanpoint </option>
|
||||
</para>
|
||||
<para>
|
||||
<option>scanend </option>
|
||||
</para>
|
||||
<para>May be used by user functions implementing own scan loops. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan clear</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears the list of scan variables. Must be called before each scan that
|
||||
has different parameters. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan configure </command>
|
||||
<replaceable>mode</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Configures the scan <replaceable>mode</replaceable></para>
|
||||
<para>Allowed <replaceable>mode </replaceable>one of: </para>
|
||||
<para><option>standard</option> (default). Writing ASCII files</para>
|
||||
<para><option>script</option> Scan functions are overriden by the user. </para>
|
||||
<para><option>soft</option> The scan stores and saves software zero point
|
||||
corrected motor positions. The standard is to save the hardware positions as
|
||||
read from the motor controller.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan continue</command>
|
||||
<replaceable>NP mode preset </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Continues an interrupted scan. </para>
|
||||
<para>Used by the recovery feature. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan function list </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Lists the available configurable function names. The calling style of
|
||||
these functions is described in the next section about stdscan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan function</command>
|
||||
<replaceable>functionname</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Returns the currently configured function for
|
||||
<replaceable>functionname</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan function</command>
|
||||
<replaceable>functionname newfunctionname</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sets a new function to be called for the function
|
||||
<replaceable>functionname</replaceable> in the scan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan getcounts</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Retrieves the counts collected during the scan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan getfile</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Returns the name of the current data file</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan getmonitor</command>
|
||||
<replaceable>i</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the monitor values collected during the scan for monitor
|
||||
<replaceable>i</replaceable></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan gettime</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the counting times for the scan points in the current scan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan getvardata</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Retrieves the values of a scan variable during the scan (the x axis).
|
||||
<replaceable>n</replaceable> is the ID of the scan variable to retrieve
|
||||
data for. ID is 0 for the first scan variable added, 1 for the second etc.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan getvarpar</command>
|
||||
<replaceable>i</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the name, start and step of the scan variable number
|
||||
<replaceable>i</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan interest</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>A SICS client can be automatically notified about scan progress. This is
|
||||
switched on with this command. Three types of messages are sent: </para>
|
||||
<para>a string <computeroutput>NewScan</computeroutput> on start of the scan</para>
|
||||
<para>a string <computeroutput>ScanEnd</computeroutput> after the scan has
|
||||
finished </para>
|
||||
<para>a string <computeroutput>scan.Counts = {109292 8377 ...}
|
||||
</computeroutput>with the scan values after each finished scan point.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan uuinterest</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>As for <command>interest</command> but the array of counts is transferred
|
||||
in UU encoded format. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan dyninterest</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>As for <command>interest</command> but scan points are printed one by one
|
||||
as a list containing: </para>
|
||||
<para><replaceable>point number first_scan_var_pos counts</replaceable>. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan uninterest</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para> Uninterest switches automatic notification about scan progress off.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan integrate</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para> Calculates the integrated intensity of the peak and the variance of the
|
||||
intensity for the last scan. </para>
|
||||
<para>Returns either an error when insufficient scan data is available, or a
|
||||
pair of numbers. Peak integration is performed along the method described by
|
||||
Grant and Gabe in J. Appl. Cryst. (1978), 11, 114-120. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan log</command>
|
||||
<replaceable>var</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Adds <replaceable>var</replaceable> to list of variables logged during the
|
||||
scan. Can be slave motors such as <option>stt, om, chi, phi </option>during
|
||||
four circle work. These variables are not driven, just logged.
|
||||
<replaceable>var</replaceable> is the SICS variable to log. Only
|
||||
drivable parameters may be logged in such a way. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan noscanvar</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the number of scan variables </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan np</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the number of points in the current scan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan setchannel</command>
|
||||
<replaceable>n</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Sometimes it is required to scan not the counter but a monitor. This
|
||||
command sets the channel to collect data from. <replaceable>n</replaceable>
|
||||
is an integer ID for the channel to use. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan simscan</command>
|
||||
<replaceable>pos FWHM height </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<warning>
|
||||
<para>BROKEN</para>
|
||||
</warning>
|
||||
<para>This is a debugging command. It simulates scan data with a hundred points
|
||||
between an x axis ranging from 10 to 20. A gaussian peak is produced from
|
||||
the arguments given: </para>
|
||||
<para><replaceable>pos</replaceable> the position of the peak maximum</para>
|
||||
<para><replaceable>FWHM</replaceable> is the full width at half maxxximum for
|
||||
the peak </para>
|
||||
<para><replaceable>height</replaceable> is its height</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan silent</command>
|
||||
<replaceable>NP mode preset </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Executes a scan. </para>
|
||||
<para>Does not produce an output file</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>MyScan storecounts</command> counts time mon1 mon2 ... </term>
|
||||
<listitem>
|
||||
<warning>
|
||||
<para>Don't understand the syntax nha. </para>
|
||||
</warning>
|
||||
<para>This stores an entry of count values into the scan data structure. To be
|
||||
used from user defined scan functions. The scan pointer is incremented by
|
||||
one. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan storecounter</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Store the counts and monitors in the counter object configured for the
|
||||
scan into the scan data structure. Increments the scan pointer by one.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan recover</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Recovers an aborted scan. </para>
|
||||
<para>The scan object writes a file with all data necessary to continue the scan
|
||||
after each scan point. If for some reason a scan has been aborted due to
|
||||
user intervention or a system failure, this scheme allows to continue the
|
||||
scan when everything is alright again. This works only if the scan has been
|
||||
started with <command>run</command>, not with
|
||||
<command>silent</command></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>MyScan window</command>
|
||||
<replaceable>newval</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Peak Integration uses a window in order to determine if it is still in the
|
||||
peak or in background. This command allows to request the size of this
|
||||
window (without argument) or set it with <replaceable>newval</replaceable>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>User Definable Scan Functions</title>
|
||||
<para>The last commands in the last section allow overloading functions that implement
|
||||
various operations during the scan with user defined functions. This section is the
|
||||
reference for user defined functions. The following operations during a scan can be
|
||||
configured: </para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>count MyScan </command>
|
||||
<replaceable>userobjectname point mode preset</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Called at each scan point to perform the counting operation </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>collect MyScan </command>
|
||||
<replaceable>userobjectname point </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Called for each scan point. This function stores the scan data into the
|
||||
scan data structure. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>drive MyScan </command>
|
||||
<replaceable>userobjectname point</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><command>drive</command> to the next scan point </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>finish MyScan </command>
|
||||
<replaceable>userobjectname</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Called after the scan finishes and may be used to dump a data file or
|
||||
perform other clean up operations after a scan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>prepare MyScan </command>
|
||||
<replaceable>userobjectname</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Does operations before a scan starts. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>userdata </term>
|
||||
<listitem>
|
||||
<para>This is the name of a user defined object which may be used to store user
|
||||
data for the scan. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>writeheader MyScan </command>
|
||||
<replaceable>userobjectname</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Write the header of the data file </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>writepoint MyScan </command>
|
||||
<replaceable>userobjectname point </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Called for each scan point. Prints information about the scan point to the
|
||||
data file and to the user. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
<command>MyScan</command> is the name of the scan object invoking the function. This can
|
||||
be used for querying the scan object. <replaceable>userobjectname</replaceable> is the
|
||||
name of a entity as specified as userdata in the configuration. point is the number of
|
||||
the current scan point.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
193
site_ansto/manual/dbSICSch8_batch_manager.xml
Normal file
@@ -0,0 +1,193 @@
|
||||
<?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>Batch Manager</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2006-08-17 15:46</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Commands</title>
|
||||
<para>
|
||||
<uri xreflabel="batch"/>The batch buffer manager handles the execution of batch files.
|
||||
It can execute batch files directly. Additionally, batch files can be added into a queue
|
||||
for later processing. The batch buffer manager supports the following commands described
|
||||
below. The command for controlling the batch manager is called <command>exe</command>
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe </command>
|
||||
<replaceable>buffername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>directly load the buffer stored in the file
|
||||
<replaceable>buffername</replaceable> and execute it. The file is searched
|
||||
in the batch buffer search path. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe batchpath </command>
|
||||
<replaceable>newpath</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument, this command lists the directories which are searched
|
||||
for batch files. </para>
|
||||
<para><replaceable>newpath</replaceable> sets a new search path. It is possible
|
||||
to specify multiple directories by separating them with colons. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe syspath </command>
|
||||
<replaceable>newpath</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument, this command lists the system directories which are
|
||||
searched for batch files. </para>
|
||||
<para><replaceable>newpath</replaceable> sets a new system search path. It is
|
||||
possible to specify multiple directories by separating them with colons.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the name of the currently executing batch buffer </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info stack</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>prints the stack of nested batch files (i.e. batch files calling each
|
||||
other). </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info range </command>
|
||||
<replaceable>name</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument prints the range of code currently being executed.</para>
|
||||
<para><replaceable>name</replaceable> prints the range of code executing in
|
||||
named buffer within the stack of nested buffers. The reply looks like: </para>
|
||||
<para>
|
||||
<computeroutput>number of start character = number of end character = line
|
||||
number</computeroutput>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe info text </command>
|
||||
<replaceable>name</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Without an argument prints the code text currently being executed. </para>
|
||||
<para><replaceable>name </replaceable> prints the range of code text executing
|
||||
in the named buffer within the stack of nested buffers. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe enqueue </command>
|
||||
<replaceable>buffername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Appends <replaceable>buffername</replaceable> to the queue of batch
|
||||
buffers to execute. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe clear</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Clears the queue of batch buffers </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe queue</command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the content of the batch buffer queue. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe run </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Starts executing the batch buffers in the queue. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe print </command>
|
||||
<replaceable>buffername</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prints the content of the batch buffer
|
||||
<replaceable>buffername</replaceable> to the screen. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe interest </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Switches on automatic notification about starting batch files, executing a
|
||||
new bit of code or for finishing a batch file. This is most useful for SICS
|
||||
clients watching the progress of the experiment.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe upload </command>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Prepare the batch manager to upload a new set of commands from the
|
||||
client</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe append </command>
|
||||
<replaceable>'tcl commands' </replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para><note>
|
||||
<para>don't know the syntax. nha</para>
|
||||
</note>Append some tcl commands. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe save </command>
|
||||
<replaceable>filename</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Save the commands to a batch file. Returns an error if you try to
|
||||
overwrite an existing batch file</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command>exe forcesave </command>
|
||||
<replaceable>filename</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Will overwrite an existing batch file without warning. </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
319
site_ansto/manual/dbSICSch9_motor_configuration.xml
Normal file
@@ -0,0 +1,319 @@
|
||||
<?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 Configuration</title><author>
|
||||
<personname>Ferdi Franceschini</personname>
|
||||
</author>
|
||||
<date>2007-02-12 14:24</date>
|
||||
</info>
|
||||
<sect1>
|
||||
<title>Configuration example</title>
|
||||
<para>Motors are configured by following this pattern</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Setup the host and port of the controller</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make the motor queue</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set the home value for the absolute encoder</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set the motor configuration parameters</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<example>
|
||||
<title>Motor configuration example</title>
|
||||
<para>from
|
||||
<computeroutput>ics1-echidna.nbi.ansto.gov.au:/usr/local/sics/server/config/motors/motor_configuration.tcl</computeroutput></para>
|
||||
<programlisting># Setup addresses of Galil DMC2280 controllers.
|
||||
set dmc2280_controller1(host) mc1-$animal
|
||||
set dmc2280_controller1(port) pmc1-$animal
|
||||
...
|
||||
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) \
|
||||
$dmc2280_controller1(port)
|
||||
...
|
||||
#Measured absolute encoder reading at home position
|
||||
set mphi_Home 7781389
|
||||
...
|
||||
# Monochromator phi, Tilt 1, upper
|
||||
Motor mphi $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
absEnc 1\
|
||||
absEncHome $mphi_Home\
|
||||
axis A\
|
||||
cntsPerX -8192\
|
||||
hardlowerlim -2\
|
||||
hardupperlim 2\
|
||||
maxSpeed 1\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX -25000\
|
||||
units degrees]
|
||||
|
||||
setHomeandRange -motor mphi -home 0 -lowrange 2 -uprange 2
|
||||
mphi speed 1
|
||||
mphi movecount $move_count
|
||||
mphi precision 0.05
|
||||
mphi part crystal
|
||||
mphi long_name phi
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Configuration checklist</title>
|
||||
<para>Always use a positive number for the motor steps conversion multiplier.If the encoder
|
||||
counts decrease when the motor steps increase then the encoder counts conversion
|
||||
multiplier must be negative.</para>
|
||||
<sect2>
|
||||
<title>For each axis with an absolute encoder</title>
|
||||
<orderedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>How many motor steps are there per degree or mm?</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>How many encoder counts are there per degree or mm?</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Move the motor a positive number of steps.If the encoder counts has
|
||||
increased then set the <emphasis role="b">stepsPerX</emphasis> positive
|
||||
otherwise negative.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>If encoder counts decrease when motor steps increase then set the sign of
|
||||
<emphasis role="b">cntsPerX</emphasis> to the opposite sign of <emphasis
|
||||
role="b">stepsPerX</emphasis>, otherwise the sign should be the
|
||||
same.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>What is the encoder reading at the home position?</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>For each axis without an absolute encoder</title>
|
||||
<orderedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>How many motor steps are there per degree or mm?</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Move the motor a positive number of steps.If the axis moved in the
|
||||
positive direction according to the coordinate conventions then set the
|
||||
<emphasis role="b">stepsPerX</emphasis> positive otherwise
|
||||
negative.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set axis home position.<orderedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Make sure the axis HOME routine has been run. The axis should
|
||||
be at the lower limit and the motor defined position should be
|
||||
zero, ie TDx returns zero.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Drive the axis to the home position and set <emphasis role="b"
|
||||
>motorHome</emphasis> to TDx</para>
|
||||
</listitem>
|
||||
</orderedlist></para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>For all axes</title>
|
||||
<orderedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Check that maxSpeed, maxAccel, and maxDecel are sane. NOTE: The initial
|
||||
speed, accel and decel will be set to the maximum values.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>If an axis should not be powered down after each move then set
|
||||
noPowerSave=1.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Slits</title>
|
||||
<para>The zero position for the slits is defined when the slits are closed but not
|
||||
overlapping. Since the slit motors don't have absolute encoders we need to define a
|
||||
zero reference for counting motor steps, we will call this reference the motorHome.
|
||||
The motorHome is set when the slits are fully open, there is a home subroutine
|
||||
(called #HOME) on the DMC2280 controller which can be called to set this position
|
||||
for you.</para>
|
||||
<para>The homing code on the controller fully opens the slits and then sets the position
|
||||
as zero.</para>
|
||||
<orderedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Run #HOME command on controller, ie XQ #HOME,1Useu</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Check that the command has completed with MG _XQ1, a value of -1 means the
|
||||
command has finished otherwise it displays the current line number.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>After the #HOME command has completed check that the defined motor
|
||||
positions has been set to zero by executing TDEFGH</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>run gap to zero, set lowerlims to -ve val if there is a gap, then run gap
|
||||
to -ve witdh.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Read position for each slit and set it as the "motorHome" parameter in the
|
||||
sics configuration file.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Testing</title>
|
||||
<orderedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Check communications to all four controllers.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Try to run motor past limits.Does SICS reject the command?</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Run motors to limits.Does it move in the right direction?Does it stop
|
||||
where expected?</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Run motor to home position.Does it stop where expected?</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set limits</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set home</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set softzero</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set sign (direction of motion)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set speed</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set acceleration</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Set deceleration</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
<sect1>
|
||||
<title>Configuration reference</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><command>absEnc </command><replaceable>integer</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>Set to 1 if the axis has an absolute encoder</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>absEncHome </command><replaceable>integer</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The calibrated "home" position in encoder counts</para>
|
||||
<para>Required if <command>absEnc</command> = 1</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>axis </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>The DMC2280 motor controller can control up to eight axes</para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of: </para>
|
||||
<para><option>A B C D E F G H</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>cntsPerX </command><replaceable>integer</replaceable>
|
||||
</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><command>hardlowerlim </command><replaceable>integer</replaceable></term>
|
||||
<listitem>
|
||||
<para>Hardware lower limit for motor</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>hardupperlim </command><replaceable>integer</replaceable></term>
|
||||
<listitem>
|
||||
<para>Hardware upper limit for motor</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>maxAccel </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Maximum allowed acceleration in <command>units</command> per
|
||||
second<superscript>2</superscript></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>maxDecel </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Maximum allowed deceleration in <command>units</command> per
|
||||
second<superscript>2</superscript></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>maxSpeed </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Speed in <command>units</command> per second</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>motorHome </command><replaceable>integer</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>The calibrated "home" position in motor steps. You only need to set this
|
||||
if the axis does not have an absolute encoder</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>motOffDelay </command><replaceable>integer</replaceable></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><command>noPowerSave</command>
|
||||
<replaceable>val</replaceable>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>By default a motor will switch off after a move. If you set this to 1 the
|
||||
motor will stay on.</para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of: </para>
|
||||
<para><option>0</option> (default)</para>
|
||||
<para><option>1</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>stepsPerX </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>Number of motor steps per <command>unit</command> of movement along/about
|
||||
the axis of motion</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><command>units </command><replaceable>val</replaceable></term>
|
||||
<listitem>
|
||||
<para>The units of motion for the axis, eg <option>degrees</option> for phi or
|
||||
two-theta, <option>mm</option> for translation</para>
|
||||
<para>Allowed <replaceable>val</replaceable> one of: </para>
|
||||
<para><option>degrees </option></para>
|
||||
<para><option>mm</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</chapter>
|
||||
BIN
site_ansto/manual/newsics.gif
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
site_ansto/manual/putty.JPG
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
site_ansto/manual/taipanGumtree.jpg
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
site_ansto/manual/taipanGumtree1.jpg
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
site_ansto/manual/taipanGumtree2.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
site_ansto/manual/taipanGumtree3.jpg
Normal file
|
After Width: | Height: | Size: 320 KiB |
BIN
site_ansto/manual/troubleshoot1.jpeg
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
site_ansto/manual/troubleshoot2.jpeg
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
site_ansto/manual/troubleshoot3.jpeg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
site_ansto/manual/troubleshoot4.jpeg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
site_ansto/manual/troubleshoot5.jpeg
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
site_ansto/manual/troubleshoot6.jpeg
Normal file
|
After Width: | Height: | Size: 25 KiB |