PSI sics-cvs-psi_pre-ansto

This commit is contained in:
2003-06-13 00:00:00 +00:00
committed by Douglas Clowes
parent 2e3ddfb6c6
commit 3ffd0d8af4
1099 changed files with 318432 additions and 0 deletions

33
doc/user/Makefile Normal file
View File

@ -0,0 +1,33 @@
#--------------------------------------------------------------------------
# Make sics documentation
#
# Mark Koennecke, Juli 1998
#------------------------------------------------------------------------
all: topsi dmc sans focus poldi
topsi:
html2tex topman
latex topman
latex topman
dvips -o topman.ps topman.dvi
dmc:
html2tex dmcman
latex dmcman
latex dmcman
dvips -o dmcman.ps dmcman.dvi
sans:
html2tex sansman
latex sansman
latex sansman
dvips -o sansman.ps sansman.dvi
focus:
html2tex foman
latex foman
latex foman
dvips -o foman.ps foman.dvi
poldi:
html2tex poldiman
latex poldiman
latex poldiman
dvips -o poldiman.ps poldiman.dvi

9
doc/user/README Normal file
View File

@ -0,0 +1,9 @@
SICS-User
This directory contains the User documentation for SICS.
User documentation is all Tcl-code which can be processed
by Tcl to Latex or html-code. Latex is for printing, html
is the format of choice for online documentation.

26
doc/user/amomisc.htm Normal file
View File

@ -0,0 +1,26 @@
<HTML>
<HEAD>
<TITLE>Miscellaneous AMOR Command</TITLE>
</HEAD>
<BODY>
<H1>Miscellaneous AMOR Commands</H1>
<P>
<h2><a name="shutter">Shutter Control</a></h2>
<p>
Even the shutter can be controlled from within SICS. This is safe because
the shutter will not open if the door to the instrument is open. In Local
Beam Control (LBC) speak this status is named "Enclosure is broken". Be
careful anyway because some idiots may climb the fence..... The following
SICS commands control the shutter:
<dl>
<DT>shutter
<DD>The command shutter without arguments returns the status of the shutter.
This can be one of open, closed, Enclosure is broken.
<DT>shutter open
<DD>opens the shutter when possible.
<DT>shutter close
<DD>closes the shutter.
</dl>
</p>
</BODY>
</HTML>

112
doc/user/amomot.htm Normal file
View File

@ -0,0 +1,112 @@
<HTML>
<HEAD>
<TITLE>AMOR Motors</TITLE>
</HEAD>
<BODY>
<H1>AMOR Motors</H1>
<hr size ="7" WIDTH="75%">
<p align="center">
<STRONG>!!!!!!! WARNING !!!!!!</STRONG>
</p>
<p>
The left and right slit motors of diaphragms 1 - 5 are NOT independent
motors, but are handled through a single driver. Which motor is driven
is selected MANUALLY through a little turn switch close to the motor
controller in the orange 19" rack besides the instrument.
</p>
<p align="center">
<STRONG>!!!!!!! WARNING END !!!!!!</STRONG>
</p>
<hr size ="7" WIDTH="75%">
<P>
<h2>Physical Motors</h2>
<DL>
<DT>D1L
<DD>Diaphragm 1 left slit.
<DT>D1R
<DD>Diaphragm 1 right slit.
<DT>D1T
<DD>Diaphragm 1 top slit.
<DT>D1B
<DD>Diaphragm 1 bottom slit.
<DT>MOZ
<dd>Polarizer omega table up and down
<DT>MOM
<DD>Polarizer omega.
<DT>MTY
<DD>Polarizer y movement.
<DT>MTZ
<DD>Whole polarizer up and down
<DT>D2L
<DD>Diaphragm 2 left slit.
<DT>D2R
<DD>Diaphragm 2 right slit.
<DT>D2T
<DD>Diaphragm 2 top slit.
<DT>D2B
<DD>Diaphragm 2 bottom slit.
<DT>D3L
<DD>Diaphragm 3 left slit.
<DT>D3R
<DD>Diaphragm 3 right slit.
<DT>D3T
<DD>Diaphragm 3 top slit.
<DT>D3B
<DD>Diaphragm 3 bottom slit.
<DT>STZ
<DD>sample height
<DT>SOM
<DD>sample omega
<DT>SCH
<DD>sample chi
<DT>SOZ
<DD>sample table height
<DT>STB
<DD>magnet height
<DT>D4L
<DD>Diaphragm 4 left slit.
<DT>D4R
<DD>Diaphragm 4 right slit.
<DT>D4T
<DD>Diaphragm 4 top slit.
<DT>D4B
<DD>Diaphragm 4 bottom slit.
<DT>AOZ
<DD>Analyzer table height
<DT>AOM
<DD>Analyzer omega
<DT>ATZ
<DD>Analyzer omega height
<DT>D5L
<DD>Diaphragm 5 left slit.
<DT>D5R
<DD>Diaphragm 5 right slit.
<DT>D5T
<DD>Diaphragm 5 top slit.
<DT>D5B
<DD>Diaphragm 5 bottom slit.
<DT>COZ
<DD>Counter table height
<DT>C3Z
<DD>second single counetr height.
<DT>COM
<DD>Counter omega
<DT>COX
<DD>Counter x.
</DL>
</P>
</BODY>
</HTML>

72
doc/user/amor2t.htm Normal file
View File

@ -0,0 +1,72 @@
<HTML>
<HEAD>
<TITLE>AMOR 2 Theta</TITLE>
</HEAD>
<BODY>
<H1>AMOR 2 Theta </H1>
<P>
The movement off the two theta is quite complex at the reflectometer
AMOR. The angle of the detector itself is expressed by translations
along the optical bench and in height. Then the angle of the detector
needs to be adjusted as well. Moreover some diaphragms along the way
from the sample to the detector need adjustment as well. In polarizing
mode the analyzer position must be corrected as well. In order to do
this a virtual motor has been created which takes care of this
movement. As such this object has no real user interface except the
usual printing of the position when the name of the virtual motor is
typed. However, in order to do his work this virtual motor needs a lot
of parameters. These are described below. It is assumed that the
virtual motors name is s2t. There is another virtual motor called
aom2t which is the analyzer two theta angle.
</P>
<p>
Parameters needed by the AMOR virtual two theta motor
<dL>
<dt>detectord
<dd>distance of the detector from the sample.
<dt>d4d
<DD>distance of diaphragm 4 from the sample.
<dt>d5d
<DD>distance of diaphragm 5 from the sample.
<dt>sampleh
<DD>An additive factor describing the height of the sample, i.e. the
height of the table itself.
<dt>detectorh
<DD>The base height of the detector.
<dt>d4h
<DD>The base height of diaphragm 4.
<dt>d5h
<DD>The base height of diaphragm 5.
<DT>interrupt
<DD> The interrupt to issue if this motor fails to operate.
<DT>anah
<DD>Height of the analyzer.
<DT>anad
<DD>distance analyser - sample.
<dt>anaflag
<dd>Flag if analyzer movement should be calculated or not. -1 if not,
positive if yes.
<dt>c2h
<dd>height constant for single detector 2.
<dt>aomconst
<dd>constant part of analyzer omega angle.
</dl>
The values of parameters can be inquired by typing:
<pre>
s2t parname
</pre>
and set by:
<pre>
s2t parname newval
</pre>
For example:
<pre>
s2t detectord
155.
s2t detectord 300.
</pre>
</p>
</BODY>
</HTML>

110
doc/user/amorcli.htm Normal file
View File

@ -0,0 +1,110 @@
<HTML>
<HEAD>
<TITLE>The AMOR Client</TITLE>
</HEAD>
<BODY>
<H1>The AMOR Client</H1>
<P>
The AMOR Client is the dedicated SICS client program for the
reflectometer AMOR. It is a Java application which runs on all
computers for which a Java runtime better then jdk 1.1.6 is available.
</P>
<h2>Starting the AMOR Client</h2>
<p>
There are various ways to start the AMOR client. On the unix systems,
simply type <em>amor &</em> at the command prompt. For PC's and
proper Macintosh systems (proper means MacOS &gt 10) it is recommended
to install Java WebStart and start the application from:
http://lns00.psi.ch/sics/wstart. The AMOR client can be exited through
the File/Exit menu option.
</p>
<h2>Connecting to a SICS Server</h2>
<p>
Before anything useful can be done with the AMOR client, it has to be
connected to a SICS server. This can be done through the Connect menu
in the application. Normally choose AMOR in this menu and everything
will be fine. The option Custom Connect is used if the SICS server had
to be relocated to another computer (because of a hardware problem)
and the connection parameters: computer and port number have to be
given explicitly.
</p>
<h2>Using the AMOR Client</h2>
<p>After starting the AMOR client you see a menu, a row of buttons
beneath the menu and a central display area, showing AMOR's fantastic
logo. Now, the AMOR client has six different views of the
instrument. These views can be selected through the button row below
the menubar. The views are:
<dl>
<dt>AMOR logo
<DD>The fantastic AMOR logo. IMHO, AMOR got the nicest logo.
<dt>AMOR Schema
<dd>A drawing of AMORS components annotated with motor names.
<dt>Command
<dd>The main interaction window for typing commands to the
instrument. I/O with the server is displayed in the large central text
area. Commands can be typed into the text field at the bottom. Then
there is a yellow line displaying the progress of the current counting
operation. To the left of the command entry field is a little red
button labelled <em>Interrupt</em>. This button aborts any current
operation. There is a menu point corresponding to this window. This
allows to select the following functions:
<dl>
<dt>User Rights
<dd>A dialog for gaining privileges in SICS. You need to specify a
username and a password.
<dt>Open Logfile
<dd>Open a log file on the local machine running the client.
<dt>Close Logfile
<dd>Close a local logfile.
</dl>
<dt>Histogram
<dd>This window displays a histogram of the current data
available. What can be seen here depends on AMOR's mode of operation:
In single detector mode, the current scan data is displayed. In TOF
mode, the counts summed over a rectangular region of the detector
(defined in the Area Detector view) is displayed against
time-of-flight. Yoy may <em>zoom in</em> on selected regions of the
histogram by dragging a rectangle from top to bottom. You can <em>zoom
out</em> through the opposite movement. Further histogram commands
hide under the Histogram menu entry. Here you can:
<dl>
<dt>Reset
<dd>Reset the plot boundaries to show everything.
<dt>Print
<dd>print the current plot into a postscript file.
<dt>Logarithmic
<dd>Toggle the logarithmic flag which, when set, causes the counts to
be displayed on a logarithmic basis.
</dl>
<dt>Area Detector
<dd>This display only makes sence in TOF-mode, with a PSD. It shows
the data in the histogram memory projected along the time axis. In the
text area below the picture, the current x, y position and the current
value at the cursor position are displayed. Double clicking on the
display opens a dialog which allows to set things like: <em>scale,
colour mapping, logarithmic mapping and the mapping range</em>.
Dragging a rectangle in this display will pop up a dialog asking you
for a name. The rectangle selected then becomes a <em>named
region</em> which will then be summed and plotted in the Histogram
display. Named regions can be removed through the Update Control/Clear
TOF Regions menu entry.
<dt>Parameter
<dd>Shows selected instrument parameters in textual form.
</dl>
</p>
<h3>Updating the Display</h3>
<p>
In single detector mode scan data will be automatically updated. In
TOF mode, updates to either the histogram display or the area detector
display have to obtained either:
<ul>
<li>Manually by hitting the green Update button at the bottom of the
screen.
<li>or automatically at certain time intervalls configured through the
Update Control/Update Intervall and enabled by toggling the Update
Control/Automatic Update flag.
</ul>
</p>
</BODY>
</HTML>

73
doc/user/amorman Normal file
View File

@ -0,0 +1,73 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
AMOR--Reference Manual \\
\end{huge}
\today \\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\clearpage
\tableofcontents
\clearpage
\chapter{Introduction}
%html amor.htm 2
\section{Interaction with SICS}
%html sicsinvoc.htm 3
%html amorcli.htm 3
\chapter{General User Commands}
%html drive.htm 1
%html amomot.htm 2
%html amor2t.htm 3
%html logging.htm 2
%html logbook.htm 3
%html commandlog.htm 3
%html batch.htm 2
%html macro.htm 3
%html buffer.htm 3
%html token.htm 2
%html amomisc.htm 2
\chapter{AMOR in Single Counter Mode}
%html amorsingle.htm 2
%html topscan.htm 2
\chapter{AMOR in Time--Of--Flight Mode}
%html amortof.htm 2
%html count.htm 2
%html amorstore.htm 2
\chapter{Advanced Topics}
%html samenv.htm 2
%html histogram.htm 2
%html motor.htm 2
%html counter.htm 2
%html ctrl.htm 2
%html system.htm 2
%html config.htm 2
%html trouble.htm 2
\end{document}

21
doc/user/amorsingle.htm Normal file
View File

@ -0,0 +1,21 @@
<HTML>
<HEAD>
<TITLE>AMOR in Single Counter Mode</TITLE>
</HEAD>
<BODY>
<H1>AMOR in Single Counter Mode</H1>
<P>
In this mode the chopper is off. The first task is to adjust
diaphragms and monochromators in such a way that the neutron beam hits the
sample and afterwards finds its way into the detector. Then scans can
be peformed with the normal scan commands. Most often scans will be
performed varying two theta. Now, two theta is varied through
a complicated, coordinated movement of angles and distances at
AMOR. For this to work properly a lot of parameters have to be
entered manualy. See, the documentation for <a href="amor2t.htm">a2t</a>
for details. Scan results are stored in NeXus files. Do not forget to
set those SICS variables which need to be written to the data file as
described in the <a href="amorstore.htm">data storage</a> section.
</P>
</BODY>
</HTML>

56
doc/user/amorstore.htm Normal file
View File

@ -0,0 +1,56 @@
<HTML>
<HEAD>
<TITLE>AMOR Data Storage</TITLE>
</HEAD>
<BODY>
<H1>AMOR Data Storage</H1>
<P>
Data files at AMOR are stored in NeXus format, based on HDF-5. This is
a portable binary format. For more information see the <a
href="http://lns00.psi.ch/NeXus/"> NeXus WWW-pages</a>. Data storage
happens normally without user intervention during scans or after a
count command has finished. A couple of things are noteworthy,
however:
<ul>
<li>Data Storage in TOF-mode may take several minutes due to the
amount of data to transfer. In this time the SICS server will be quite
unresponsive.
<li>Data file writing can be interrupted. This is a unique feature at
AMOR. As a consequence, a data file is NOT automaticaly created when
a measurement has been interrupted.
<li>Data file writing can be forced by typing: <em>storeamor</em>.
<li>Data files can be found in directories: /home/AMOR/data/YYYY on
the instrument computer or (after a litlle delay) at
/data/lnslib/data/AMOR/YYYY . The YYYY is a placeholder for the year
of data collection.
<li>The last data file written can be overwritten with command:
<em>killfile</em>. Managers privilege is required for this command.
</ul>
</P>
<p>
In order to have complete information in the data files a couple of
SICS variables have to be set manually. A SICS variable's value can be
interrogated by typing the name of the variable, and set by typing the
name of the variable followed by the new value. The following
variables are relevant:
<dl>
<dt>chopperrotation
<dd>Chopper Rotation speed.
<dt>user
<dd>User name
<dt>email
<dd>User e-mail address.
<dt>fax
<dd>User fax number
<dt>phone
<dd>User phone number
<dt>adress
<dd>User address.
<dt>sample
<dd>Sample name.
<dt>title
<dd>Measurement title
</dl>
</p>
</BODY>
</HTML>

80
doc/user/amortof.htm Normal file
View File

@ -0,0 +1,80 @@
<HTML>
<HEAD>
<TITLE>AMOR in TOF Mode</TITLE>
</HEAD>
<BODY>
<H1>AMOR in Time Of Flight Mode</H1>
<P>
AMOR can be operated in time of flight mode with a large position
sensitive detector. Measuring in this mode involves:
<ul>
<li>Aligning the instrument.
<li>Configuring the histogram memory.
<li>Configuring the chopper.
<li>count for some time.
</ul>
</P>
<h2><a name="conf">Configuring the Histogram Memory</a></h2>
<p>
In order to use the histogram memory, it has to be configured. Two
things have to be taken care of:
<ul>
<li>Configuring the resolution.
<li>Configuring the time binning.
</ul>
See also the general <a href="histogram.htm"> histogram memory</a>
section.
</p>
<p>
The resolution of the PSD in pixels can be tailored to the experiment
at hand. To this purpose the command psdconfigure is available:
<dl>
<dt>psdconfigure hm <var>xsize ysize</var>
<DD>xsize and ysize are the resolution of the detector in x
direction (beam width) and y direction (two theta).
</dl>
Usually this should already have been set up for you.
</p>
<p>
Configuring the time binning is a two step process:
<ul>
<li>Generate the time binning in SICS with the command:
<dl>
<dt>hm genbin <var>start step nBins</var>
<DD>This generates an equidistant time binning starting at time start,
with stepwidth step and nBins time bins.
</dl>
<li>Configure the histogram memory to use the new time binning with:
<ul>
<li>hm init
</ul>
</ul>
Please note, that non equidistant time binnings are possible as
well. See the main <a href="histogram.htm">histogram memory</a>
documentation for details.
</p>
<h2><a name="chop">Configuring the Chopper</a></h2>
<p>
The most important thing about the chopper, its rotation speed, can
not be controlled from the instrument control system. It has to be
adjusted <strong>MANUALLY</strong> at the chopper control PC at the
hall floor. There are two other parameters, however, which are needed
by the detector electronics in order to process the chopper
synchronisation signal properly. The commands are:
<dl>
<dt>aw
<dd>Read the current value of the acceptance window.
<dt>aw <var>val</var>
<DD>Set the acceptance window to val.
<dt>td
<dd>Read the current value of the time to delay to start.
<dt>td <var>val</var>
<dd>Set the time delay to start to val.
</dl>
</p>
</BODY>
</HTML>

72
doc/user/basic.htm Normal file
View File

@ -0,0 +1,72 @@
<html>
<head>
<title> Basic SICS concepts </title>
</head>
<body>
<h2>Basic SICS concepts</h2>
<hr size=4 width="66%">
<h3>General structure</h3>
<p>
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 the server
messages and display them in a readable format. This aproach 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.</p>
<h3>SICS Command Syntax </h3>
<p>
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:<pre>
A1 list
</pre>
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
compatability reasons some commands have a form which resembles a function call such as:<pre>
drive a1 26.54
</pre>
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.
</p>
<h3>Authorisation</h3>
<p>
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:<ul>
<li> <b> Spy </b> may look at everything, request any value, but may not actually change anything. No damage potential here.
<li> <b> User </b> is privileged to perform a certain amount of operations necessary to run the instrument.
<li> <b> Manager </b> has the permission to mess with almost everything. A very dangerous person.
<li> <b> Internal </b> 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.
</ul>
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.</p>
<h3>SICS variables</h3>
<p>
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 <i> objectname </i> will return the value, the command <i> objectname newvalue </i> will change the variable. But only if the authorisation codes match. </p>
<p>
<h3>The SICS Command Line Client</h3>
The most common client for controlling SICS is the <b>SICS command line
client</b>.
This application can be started by typing the command:
<pre>
sics &
</pre>
at the Unix prompt. Before this program is ready to collaborate with you you
have to connect it to an instrument using the options in the connect
pulldown menu. The screen is roughly divided in three areas: The top area
shows all input to and output from the server. The middle area shows the
command history. At the lower end is a text entry field which allows you to type
commands to be sent to the SICS server. For more information about this client consult
the online help of this application.
</p>
</body>
</html>

19
doc/user/batch.htm Normal file
View File

@ -0,0 +1,19 @@
<HTML>
<HEAD>
<TITLE>Batch Processing in SICS</TITLE>
</HEAD>
<BODY>
<H1>Batch Processing in SICS</H1>
<P>
Users rarely wish to stay close to the instrument all the time but appreciate
if the control computer runs the experiment for them while they
sleep. SICS supports two different ways of doing this:
<ul>
<li>SICS has a built in <a href="macro.htm">macro programming</a> facility based on the
popular scripting language Tcl. The most primitive usage of this
facility is processing batch files.
<li>Second there is the <a href="buffer.htm">LNS R&#252;nbuffer</a> system.
</ul>
</P>
</BODY>
</HTML>

53
doc/user/buffer.htm Normal file
View File

@ -0,0 +1,53 @@
<html>
<head>
<title> RuenBuffer Commands </title>
</head>
<body>
<h2>R&#252;nbuffer Commands</h2>
<p>
LNS scientists have got used to using R&#252;nbuffers for instrument
control. A R&#252;nbuffer is an array of SICS commands which
typically represent a measurement. This R&#252;nbuffer can be edited
at run time. This is very similar to a macro. In contrast to a macro
only SICS commands are allowed in R&#252;nbuffers. When done with
editing the R&#252;nbuffer it can be entered in a R&#252;nlist. This
is a stack of R&#252;nbuffers which get executed one by one. While
this is happening it is possible (from another client) to modify the
R&#252;nlist and edit and add additional R&#252;nbuffers on top of
the stack. This allows for almost infinite measurement and gives more
control than a static batch file. In order to cater for this scheme
three commands have been defined:</p>
<p>
The <b> Buf </b> object is responsible for creating and deleting R&#252;nbuffers. The syntax is:<ul>
<li> <b> Buf new <i>name</i> </b> creates a new empty R&#252;nbuffer with the name name. name will be installed as a SICS object afterwards.
<li> <b> Buf copy <i>name1 name2</i> </b> copies R&#252;nbuffer name1 to buffer name2.
<li> <b> Buf del <i>name</i> </b> deletes the R&#252;nbuffer name.
</ul>
</p>
<p>
After creation, the R&#252;nbuffer is accessible by his name. It
then understands the commands:<ul>
<li> <b> <i>NAME</i> append <i>what shall we do with a drunken sailor</i> </b> will add all text after append as a new line at the end of the R&#252;nbuffer.
<li> <b> <i>NAME</i> print </b> will list the contents of the R&#252;nbuffer.
<li> <b> <i>NAME</i> del <i>iLine</i> </b> will delete line number iLine from the R&#252;nbuffer.
<li> <b> <i>NAME</i> ins <i>iLine BimBamBim</i> </b> inserts a new line <b> after </b> line iLine into the R&#252;nbuffer. The line will consist of everything given after the iLine.
<li> <b> <i>NAME</i> subst pattern <i>newval</i> </b> replaces all occurences of pattern in the R&#252;nbuffer by the text specified as newval. Currently this feature allows only exact match but may be expanded to Unix style regexp or shell like globbing.
<li> <b> <i>NAME</i> save <i>filename</i> </b> saves the contents of the R&#252;nbuffer into file filename.
<li> <b> <i>NAME</i> load <i>filename</i> </b> loads the R&#252;nbuffer with the data in file filename.
<li> <b> <i>NAME</i> run </b> executes the R&#252;nbuffer.
</ul>
</p>
<p>
The R&#252;nlist is accessible as object <b> stack </b>. Only one R&#252;nlist per server is permitted. The syntax:<ul>
<li> <b> stack add <i>NAME</i> </b> adds R&#252;nbuffer name to the top of the stack.
<li> <b> stack list </b> lists the current R&#252;nlist.
<li> <b> stack del <i>iLine</i> </b> deletes the R&#252;nbuffer iLine from the R&#252;nlist.
<li> <b> stack ins <i>iLine NAME</i> </b> inserts R&#252;nbuffer name after R&#252;nbuffer number iLine into the R&#252;nlist.
<li> <b> stack run </b> executes the R&#252;nlist and returns when all R&#252;nbuffers are done.
<li> <b> stack batch </b> executes the R&#252;nlist but does not return when done but waits for further R&#252;nbuffers to be added to the list. This feature allows a sort of background process in the server.
</ul>
</p>
</body>
</html>

68
doc/user/chopper.htm Normal file
View File

@ -0,0 +1,68 @@
<HTML>
<HEAD>
<TITLE>Chopper Control</TITLE>
</HEAD>
<BODY>
<H1>Chopper Control</H1>
<P>
FOCUS is equipped with a Dornier Chopper system running two choppers:
a disk chopper and a fermi chopper. In most situations the diskchopper is
in slave mode. This means his speed is a predefined ratio of the
speed of the fermichopper. Furthermore, there is a phase difference between
the two choppers in order to allow for the fligh time of neutrons
between choppers.
</P>
<p>
The program handling RS-232 requests at the chopper control computer
is rather slow. This would slow the SICS server to unacceptable
levels, if any request would be handled through the RS-232 interface. In order
to cope with the problem, the SICS server buffers chopper
information. This information is updated any minute if not set otherwise.
</p>
<p>
The chopper system control is divided into several distinct objects: There
is the actual chopper controller which mainly serves for answering
status requests. Then there are a couple of virtual motors which
represent the four modifiable parameters of the chopper control
system. These can be driven through the normal <a
href="drive.htm">drive</a> command. The commands understood by the
chopper controller object are:
<dl>
<DT>choco list
<DD>prints a listing of all known chopper parameters.
<DT>choco name
<DD>print only the value of parameter name. Possible values for name
can be extratcted from the list printed with choco list.
<DT>chosta
<DD>This command procedure prints a status listing of the chopper
system in a nicely formatted stefan-happy form.
</dl>
The following virtual motor variables exist for the chopper system.
<dL>
<DT>fermispeed
<DD>fermi chopper speed
<DT>diskspeed
<DD>disk chopper speed. Note, that driving this parameter while the
chopper system is in synchronous mode will throw an error condition.
<DT>phase
<DD> The phase difference between the two choppers.
<DT>ratio
<DD>The ratio of fermi to disk chopper speeds.
<DT>updateintervall
<DD>The update intervall for the buffering of chopper data. Units are
seconds. Setting to low values here will compromise the responsiveness
of the SICS server.
</DL>
Each of the variables kindly prints its current value when given as a
command. Modifying values happens through the normal drive
command. For instance the command:
<pre>
drive fermispeed 10000
</pre>
will drive the fermi chopper to 10000 RPM eventually and if no problem occurs.
Please check your input carefully for all chopper commands.
Dornier has provided no way to stop an erraneous command in its software. So, if you intend to run the chopper to 1000 RPM and mistyped it as 10000 then
you'll wait for 20 minutes until the chopper is at speed!
</p>
</BODY>
</HTML>

67
doc/user/cliinst.htm Normal file
View File

@ -0,0 +1,67 @@
<HTML>
<HEAD>
<TITLE>Installing SICS Java Clients on PC's</TITLE>
</HEAD>
<BODY>
<H1>Installing SICS Java Clients on PC's</H1>
<P>
Some of the newer SICS clients are written in Java. Java is a platform
independent system. This means the SICS client applications can be run as
native PC applications as well. Both at home and at SINQ. In order to do this three
things are required:
<ul>
<li>A Java Runtime system.
<li>The SICS application.
<li>The above two need to be married.
</ul>
</P>
<h2>Installing SICS Java Clients on IBM compatible PC's</h2>
<p>
A prerequisite for the installation of the software is either the Windows 95
or Windows NT operating system. Pure DOS or Windows 3.* systems won't do.
</p>
<p>
Installing the java runtime on your computer is easy: On the laboratory
Windows NT server, lns00, there exists a share called lnslib. Below lnslib
there is a directory called java. In this directory there is a executable
file called jdk115-win32. Simply double clicking that one will invoke an
installer which installs java on your PC's harddisk.
Answer questions as required and soon you will be done.
</p>
<p>
In the same directory: lns00//lnslib/java, the SICS client application files
can be found as well. Currently available are:
<ul>
<li>sicsclient.jar or zip for the SICS Command Line Client
<li>powderstatus.jar or zip for the powder diffractometer status display (DMC and
HRPT).
<li>sansstatus.jar or zip for the SANS status display.
</ul>
Copy those files wherever you like on your harddisk. But remember where you
put them. You may even consider to use the ones stored at lns00.
</p>
<p>
Now the java run time and the SICS application need to be married. This is
done via batch files. Template batch files to be configured by you are
stored at lns00//lnslib/java. Currently available are:
<ul>
<li>sics.bat for the Sics Command Line Client
<li>powderstatus.bat for the Powder Diffractometer Status Display
<li>sansstatus.bat for the SANS Status Display
</ul>
Copy the required batch files to a place somewhere on your path. Copying
alone does not do the job, the batch files need to be configured. Edit the
batch file with notepad. Make the variable jheim point to the directory
where you installed the java run time kit. Set the variable sheim to the
directory to which you copied the SICS application jar file.
</p>
<p>
Then you should be done. You may start the application by invoking the batch
file from the command line. You may also create a shortcut on your desktop
to the batch file using standard windows procedures. If you start the
application from the desktop you also get a DOS window each time. If you
dislike this go into Properties/shortcut of the shortcut on the desktop and
configure the textfield labelled Run to Minimized.
</p>
</BODY>
</HTML>

46
doc/user/commandlog.htm Normal file
View File

@ -0,0 +1,46 @@
<HTML>
<HEAD>
<TITLE>The Commandlog</TITLE>
</HEAD>
<BODY>
<H1>The Commandlog</H1>
<P>
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,
commandlog, which allows to control this log file.
<DL>
<DT>commandlog new <i>filename</i>
<DD>starts a new commandlog writing to filename. 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.
<DT>commandlog
<DD>displays the status of the commandlog.
<DT>commandlog close
<DD>closes the commandlog file.
<DT>commandlog auto
<DD>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.
<DT>commandlog tail <i>[n]</i>
<DD>prints the last n 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.
</DL>
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.
</P>
</BODY>
</HTML>

46
doc/user/config.htm Normal file
View File

@ -0,0 +1,46 @@
<html>
<head>
<title> Configuration Commands </title>
</head>
<body>
<h2>Configuration Commands</h2>
<p>
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:</p>
<p>
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 <b> GetLog </b> command. It needs to be stressed that this log receives messages from <b> all </b> active clients. GetLog understands the following messages:<ul>
<li> <b> GetLog All </b> achieves that all output to the server logfile is also written to the client which issued this command.
<li> <b> GetLog Kill </b> stops all logging output to the client.
<li> <b> GetLog OutCode </b> request that only certain events will be logged to the client issuing this command. Enables only the level specified. Multiple calls are possible.
</ul>
Possible values for OutCode in the last option are:<ul>
<li> <b> Internal </b> internal errors such as memory errors etc.
<li> <b> Command </b> all commands issued from any client to the server.
<li> <b> HWError </b> 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.
<li> <b> InError </b> All input errors found on any clients input.
<li> <b> Error </b> All error messages generated by all clients.
<li> <b> Status </b> some commands send status messages to the client invoking the command in order to monitor the state of a scan.
<li> <b> Value </b> Some commands return requested values to a user. These messages have an output code of Value.
</ul>
</p>
<p>
The <b> config </b> 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.</p>
<p>
<ul>
<li>The command <b> config OutCode val </b> 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. Possible values Values for val are Internal,Command, HWError,InError,Status, Error, Value. This list is hierarchical. For example specifying InError for val lets the client receive all messages tagged InError, Status, Error and Value, but not HWError, Command and Internal messages.
<li>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 <b> config Rights Username Password </b>. If a matching entry can be found in the servers password database new rights will be set.
<li>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 <b> config
File name </b> makes all output to the client to be written to the file
specified by name 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.
<li><b> config close num</b> closes the log file denoted by num again.
<li><b>config list</b> lists the currently active values for outcode and user
rights.
</ul>
<p>
</body>
</html>

20
doc/user/count.htm Normal file
View File

@ -0,0 +1,20 @@
<html>
<head>
<title>Counting Commands</title>
</head>
<body>
<h1>Counting Commands</h1>
<dl>
<DT>count <i>[mode preset]</i>
<DD> Does a count operation in mode with a given preset.
<i>Mode</i> can be <i>timer</i> or <i>monitor</i>.
The parameters mode and preset are optional. If they
are not given the count will be started with the
current setting in the histogram memory object.
<DT> repeat num mode preset.
<DD> Calls count num times. num is a required parameter. The other two are
optional and are handled as described above for count.
</dl>
Both commands make sure, that measured data is written to files.
</body>
</html>

65
doc/user/counter.htm Normal file
View File

@ -0,0 +1,65 @@
<html>
<head>
<title> SICS counter handling </title>
</head>
<body>
<h1>SICS counter handling</h1>
<hr size=4 width="66%">
<p>
A counter in SICS is a controller which operates single neutron
counting tubes and monitors.
A counter can operate in one out of two modes: counting until a timer has
passed,
for example: count for 20 seconds. Counting in this context means that the noutrons coming in during these 20 seconds are summed together. This mode is called timer mode. In the other
mode, counting is continued until a specified neutron monitor has
reached a certain
preset value. This mode is called Monitor mode. The preset values in Monitor
mode are usually very large. Therefore the counter has an exponent data variable.
Values given as preset are effectively 10 to the power of this exponent. For
instance if the preset is 25 and the exponent is 6, then counting will be
continued until the monitor has reached 25 million. Note, that this scheme with
the exponent is only in operation in Monitor mode.
Again, in SICS the counter is an object which understands a set of
commands:
<ul>
<li> <b> countername setpreset <i>val</i> </b> sets the counting preset to val.
<li> <b> countername getpreset </b> prints the current preset value.
<li> <b> countername preset <i>val</i></b> With a parameter sets the preset, without inquires the preset value. This is a duplicate of getpreset and setpreset which has been provided for consistency with other commands.
<li> <b> countername setexponent <i>val</i> </b> sets the exponent for the counting
preset in monitor mode to val.
<li> <b> countername getexponent </b> prints the current exponent used
in monitor mode.
<li> <b> countername setmode <i>val</i> </b> sets the counting mode to val. Possible values are Timer for timer mode operation and Monitor for waiting for a monitor to reach a certain value.
<li> <b> countername getmode </b> prints the current mode.
<li> <b> countername <i>mode val</i></b> With a parameter sets the mode,
without inquires the mode value. This is a duplicate of getmode and
setmode which has been provided for consistency with other
commands. Possible values for val are either monitor or timer.
<li> <b> countername setexponent <i>val</i> </b> sets the exponent for the counting
preset in monitor mode to val.
<li> <b> countername getcounts </b> prints the counts gathered in the last run.
<li> <b> countername getmonitor <i>n</i> </b> prints the counts gathered in the monitor number n in the last run.
<li> <b> countername count <i>preset</i> </b> starts counting in the current mode and the given preset.
<li> <b> countername status </b> prints a message containing the preset and
the current monitor or time value. Can be used to monitor the progress of
the counting operation.
<li> <b> countername gettime </b> Retrieves the actual time the counter
counted for. This excludes time where there was no beam or counting was
paused.
<li><b>countername getthreshold <i>m</i></b> retrieves the value of the threshold set for the monitor number m.
<li><b>countername setthreshold <i>m val</i></b> sets the threshold for monitor m to val. WARNING: this also makes monitor m the active monitor for evaluating the threshold. Though the EL7373 counterbox does not allow to select the
monitor to use as control monitor in monitor mode, it allows to choose
the monitor used for pausing the count when the count rate is below the
threshold (Who on earth designed this?)
<li><b>countername send <i>arg1 arg2 arg3 ...</i></b> sends everything behind
send to the counter controller and returns the reply of the counter
box. The command set to use after send is the command set documented
for the counter box elsewhere. Through this feature it is possible to
diretclly configure certain variables of the counter controller from
within SICS.
</ul>
</p>
</body>
</html>

44
doc/user/ctrl.htm Normal file
View File

@ -0,0 +1,44 @@
<HTML>
<HEAD>
<TITLE>Serial Port Direct Access</TITLE>
</HEAD>
<BODY>
<H1>Serial Port Direct Access</H1>
<P>
At SINQ serial devices are connected to a UNIX/LINUX computer. On this machine runs a serial port server which allows to read and write data through TCP/IP sockets to a serial port connected to the machine. This document describes a simple interface for communicating with such serial devices.
</p>
<H2>Invocation</H2>
<P>
The interface to a serial device connected to a UNIX/LINUX computer is initialised with the following command given at the Tcl prompt:<BR>
<EM>Controller name computer port channel</EM><BR>
This command opens a connection to the serial port on the UNIX/LINUX machine and installs a new command in order to interact with it. The parameters:
<UL>
<LI><b>name</b> is the name of the new command to generate for the connection in Tcl.
<LI> <b>computer</b> is the computer name of the UNIX/LINUX machine.
<LI> port: is the TCP/IP port number at which the UNIX/LINUX machine
serial port server is is listening. Usually this is 4000.
<LI>channel: is the number of the RS-232 port to connect to.
</UL>
<p>
<H2>Usage</H2>
<P>
Once the connection has been initialised name is available as a new command
in Tcl. Let us assume, MC as the name for the purpose of this description.
MC then can be used as follows:<BR>
<EM>MC -tmo value</EM><BR>
Configures the timeout for the connection to value.
Value is in microseconds.<BR>
<EM>MC arg1 arg2 ..... argn</EM><BR>
Everything after MC is written to the serial port. The reply received from
the port is returned.
</p>
<P>
All these commands can return errors. Mostly these refer to the wrong device
being specified on initialisation. The others are network problems.
</P>
</BODY>
</HTML>

2606
doc/user/diftrics.htm Normal file

File diff suppressed because it is too large Load Diff

71
doc/user/dmc.htm Normal file
View File

@ -0,0 +1,71 @@
<html>
<head>
<title> DMC and HRPT Reference Manual </title>
</head>
<body>
<h1><center>DMC and HRPT Reference Manual</center></h1>
<hr size=4 width="66%">
</p>
<p>
This is the user documentation for the powder diffractometers DMC and HRPT
at the spallation source SINQ situated at the Paul Scherrer Institut,
Switzerland. Both powder diffractometers have a monochromator which directs
a monochromatic beam on the sample. The diffracted intensity is collected
in a multidetector.</p>
<p>
From this page you can go to:
<UL>
<LI> <a href=sicsinvoc.htm>Program Invocation</a>
<LI> A short <a href = dmco.htm>command list</a>
<LI> The description of <a href = general.htm> general</a> SICS command,
common to all instruments.
<LI> Commands for handling <a href = dmchw.htm>hardware devices </a>.
<LI> A list of <a href=dmcdev.htm>DMC</a> specific commands and a list
of hardware installed at DMC.
<li> A list of <a href=hrptdev.htm>HRPT</a> specific motors.
<LI> Commands for handling <a href=samenv.htm>sample</a> environment
devices.
<LI>Some <a href = trouble.htm>troubleshooting</a> hints.
</UL>
</p>
<hr size=4 width="66%">
<p>
Instrument Descriptions:
<ul>
<li><a href="http://www1.psi.ch/www_sinq_hn/SINQ/instr/DMC.html">DMC</a>
<li><a href="http://www1.psi.ch/www_sinq_hn/SINQ/instr/HRPT.html">HRPT</a>
</ul>
</p>
<hr size=4 width="66%">
<p>
Local Contacts:
<ul>
<li>DMC: <a href="http://www1.psi.ch/www_lns_hn/lns/adr/LNS_lkeller.html">
Lukas Keller</a>.
<li>HRPT: <a href="http://www1.psi.ch/www_lns_hn/lns/adr/LNS_pfischer.html">
Peter Fischer</a>. HRPT is finally operational.
</ul>
</p>
<hr size=4 width="66%">
<p>
Download Manual
<ul>
<li><a href="dmcman.ps">Postscript Format</a>, 246KB.
</ul>
</p>
<hr size=4 width="66%">
<p>
<ul>
<li><a href="http://lns00.psi.ch/">LNS Computing home page</a>.
<li> <a href="http://www1.psi.ch/www_lns_hn/welcome.html">
Laboratory for Neutron Scattering</a> home page.
<li> <a href="http://www1.psi.ch/www_lns_hn/welcome_sinq.html">SINQ</a> home page.
</ul>
</p>
<hr size=4 width="66%">
<p>
Last updated: 11-feb-2000, <a href="mailto:Mark.Koennecke@psi.ch">Mark K&ouml;nnecke</a>
</p>
</body>
</html>

98
doc/user/dmcdev.htm Normal file
View File

@ -0,0 +1,98 @@
<html>
<head>
<title> DMC and HRPT specific commands and devices</title>
</head>
<body>
<h1>DMC and HRPT specific commands and devices</h1>
<hr size=4 width="66%">
<H2>DMC and HRPT specific commands</H2>
<P>
<DL>
<DT>StoreData
<DD>Does what it says. Writes the current state of the instrument
including counts to a NeXus data file.
<DT>count mode preset
<DD> Does a count operation in mode with a preset of preset.
The parameters are optional. If they are not
given the count will be started with the current setting in the histogram
memory object. After the count, StoreData will be automatically called.
<DT> Repeat num mode preset.
<DD> Calls count num times. num is a required parameter. The other two are
optional and are handled as described above for count.
<DT> scan motor start step n mode preset
<DD> This command allows for scanning a motor against monitors 0 and 1. This
command may only be used by managers. Its only purpose is to facilitate
the adjustment of the instrument. In order to obtain a copy of the scan
results, a user must take great care to enable command logging. The
parameters are: a motor to be scanned, a start value for the scan, a
step width for the scan, the number of scan points, optionally a count
mode and a preset value for counting. Both these parameters have meanings
as described above for the count command.
</DL>
</p>
<H2>DMC motor list</H2>
<P>
<DL>
<DT>OmegaM, A1
<DD>Omega monochromator.
<DT>TwoThetaM, A2
<DD> Two Theta monochromator
<DT>MonoX
<DD>X-translation table of the monochromator.
<DT>MonoY
<DD>Y-translation table for the monochromator.
<DT>CurveM
<DD>Monochromator curvature.
<DT>MonoPhi
<DD>Phi angle of the monochromator.
<DT>MonoChi
<DD>Chi angle for the monochromator.
<DT>Table, A3
<DD>Sample rotation.
<DT>TwoThetaD, A4
<DD>Two Theta detector.
</DL>
</p>
<h2>Other DMC and HRPT devices</h2>
<p>
<DL>
<DT>banana
<DD>Histogram memory.
<DT>counter
<DD> EL737 counter box.
</DL>
</p>
<h2>DMC and HRPT Variables</h2>
<p>
<DL>
<DT>Instrument
<DD>Instrument name.
<DT>Title
<DD>Experiment title.
<DT>comment1, comment2, comment3
<DD> comment lines to be stored with the data.
<DT>Collimation
<DD>Text line describing collimators in use.
<DT>User
<DD> User name.
<DT>Adress
<DD>User adress
<DT>phone
<DD> User phone number.
<DT>fax
<DD> User fax number
<DT>email
<DD>User email adress.
<DT>Sample
<DD> Sample name
<DT>sample_mur
<DD> Absorption coefficient of sample.
</DL>
</p>
</body>
</html>

24
doc/user/dmchw.htm Normal file
View File

@ -0,0 +1,24 @@
<html>
<head>
<title> DMC-Devices </title>
</head>
<body>
<h1>DMC Hardware Devices</h1>
<hr size=4 width="66%">
<p>DMC controls a couple of :
<UL>
<LI><a href= motor.htm>motors</a>.
<LI> a <a href = histogram.htm>histogram memory</a>.
<LI> a
<a href = counter.htm>counter box</a> for
reading monitors.
<LI> and various
<a href = samenv.htm>environment.htm</a> control devices.
</UL>
Each of these
devices understands commands. The syntax understood by each of these devices
will be discussed.
<p>
</p>
</body>
</html>

99
doc/user/dmcinvoc.htm Normal file
View File

@ -0,0 +1,99 @@
<html>
<head>
<title> Invocation </title>
</head>
<body>
<h1>Program Invocation</h1>
<p>
SICS is a client server system. This means there must be a server running
somewhere as a prerequsite for SICS operation. This server program lives on
the instrument computer. To check for its existence you need to log on to
that computer and execute the command: <b> CheckSICS</b>. If this test fails
to find the server, it can be started by typing <b>DMCServer</b> at that
computer. Please note, that this has to happen as Instrument user (
for example DMC) on the instrument computer.
</p>
<p>
The SICS clients are the programs a user interacts with. Their main purpose
is to forward commands to the server and to display the answers. A client
also implements the status display. Various clients exist for different
platforms.
</p>
<h2> DMC program Invocation on Digital Unix</h2>
<p>
On LNS DigitalUnix systems the command <b>dmccom </b> will start a command
line client. Even this is an X11 application. If it fails to start, make
use the DISPLAY variable is properly set. If not type: <BR>
setenv DISPLAY YourComputer.psi.ch:0.0 <BR> replacing the YourComputer bit with
the name of your machine. Once started up, dmccom shows a menubar, a
large list window at the top, a smaller one below, followed by an edit field
and a row of buttons at the very bottom. At the left lower corner that is a
red field which should say: Disconnected. This is a status display. In order
to make DMCCOM usable a connection to the server needs to be established.
This can be done by clicking at the DMC entry in the Connect menu. Please
allow some time for the establishment of the connection. Once this is done,
the status display at the bottom will change to the current status of the
server. Now commands can be typed into the edit field at the bottom. The
response of the server will be displayed in the top listbox. The lower
listbox will hold a history of commands typed. Commands in this list can be
reinvoked by double clicking them. By clicking on them with the right button
they can be copied into the edit field for editing.
</p>
<p>
A status display for DMC can be started by typing <b>dmcstat</b>.
</p>
<! This file will be included for all invocation sections to doc>
<h2>Accessing SICS through Telnet</h2>
<p>
SICS is able to communicate with standard TCP/IP telnet clients. Suitable
telnet clients are available on allmost all computer platforms free of
charge as part of the network software. In order to access SICS with telnet
you need to know the following five bits of information:
<ul>
<li>The name of the computer where the SICS server is running.
<li>The port number at which the SICS server lsitens for telnet connections.
<li>The login word.
<li>A valid username.
<li>A valid password for your user name.
</ul>
This information will be supplied to you by your instrument scientist if she
finds you and your cause honorable enough.
</p>
<p>
Loging in to SICS through telnet requires the following steps:
<ul>
<li>Invoke your telnet client and try to contact machine name at the port
number given. For example on a Unix or VMS this looks like:
<pre>
telnet machine.psi.ch 7654
</pre>
Of course this may differ if you use a telnet client on a different
platform.
<li> If things go well, you'll be connected to the SICS server then, though
he does not tell you about it. However, SICS will not allow you to type
commands yet. You have to login with the magic three words: <b>loginword
username password</b>. Only if you get this right, the SICS server will
print a welcome message and you may type commands to the server.
</ul>
You can logoff from the SICS server by typing <b>logoff</b>.
</p>
<h2>DMC Simulation Invocation</h2>
<p>
There exists a simulation version of the DMC instrument control program.
This is the same program as the actual control program. However, all drivers
have been replaced by simulation drivers. This means, this program does not
interact with the hardware. It can be used for training and in order to
test command files. The simulation server can be invoked with the
command <b>DMCSIM</b>. A simulation client with the command <b>dmcsim</b>.
There is no status display simulator as this could only display random
numbers.
</p>
</body>
</html>

70
doc/user/dmcman Normal file
View File

@ -0,0 +1,70 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
DMC and HRPT Reference Manual \\
\end{huge}
Version \today\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\leftline{\large{Introduction}}
Both DMC and HRPT are neutron powder diffractometers with a similar
way of operation. Both instruments illuminate the sample with a
monochromated neutron beam. The neutron beam gets diffracted at the
sample and the difracted neutrons are collected in large
banana shaped position sensitive detectors positioned around the
sample. DMC has a counter array with 400 detectors, HRPT one with 1600
detectors. The operation is simple: After adjustment of the wavelength
and the two--theta position of the detector the diffracted intensity
is collected for hours. HRPT can be installed at one out of two
two--theta positions in relation to the monochromator. HRPT's
monochromator may be exchanged through a monochrmoator lift
assembly. Consequently HRPT has only a fixed set of wavelength
available. DMC can be moved around the monochromator freely within the
geometrical limits of the beamline. Thus DMC's wavelength may be
adjusted to any value within its wavelength range.
%html sicsinvoc.htm 1
%html general.htm 1
%html basic.htm 1
%html system.htm 1
%html config.htm 1
%html macro.htm 1
%html buffer.htm 1
%html drive.htm 1
%html logbook.htm 2
%html commandlog.htm 2
%html optimise.htm 1
%html token.htm 1
%html dmchw.htm 1
%html motor.htm 2
%html histogram.htm 2
%html counter.htm 2
%html samenv.htm 1
%html dmcdev.htm 1
%html hrptdev.htm 1
%html trouble.htm 1
%html dmco.htm 1
\end{document}

171
doc/user/dmco.htm Normal file
View File

@ -0,0 +1,171 @@
<html>
<head>
<title> DMC and HRPT Command Summary </title>
</head>
<body>
<h1>DMC and HRPT Command Summary</h1>
<hr size=4 width="66%">
<p>
<h2>Most Used Commands</h2>
<DL>
<DT><a href=drive.htm>drive</a> a4 value
<DD>Drives the detector to a new 2 Theta value. Be careful and watch out for
rubbish trying to block the detectore pass through the experiment hall.
<DT>drive lambda value.
<DD>Drives the wavelength to a new value. The whole instrument is going to
move. Add 10 extra levels of care to the above when doing this.
<DT> <a href=dmcdev.htm>count</a> mode preset
<DD> Counts in mode with a preset value of preset. Stores data automatically.
<DT> Repeat num mode preset
<DD> Calls count num times.
<DT><a href=macro.htm>FileEval</a> filename
<DD> Runs a batch file with the specified filename.
</DL>
</p>
<hr size=4 width="66%">
<h2>Driving</h2>
<p>
<DL>
<DT><a href=drive.htm>drive</a> mot1 NewVal mot2 NewVal ....
<DD>Drives motors. Followed by pairs of motor names and new values.
<DT>run mot1 NewVal mot2 NewVal ....
<DD> Runs motors.
</DL>
Known motors are: OmegaA, A1, TwoThetaM, A2, MonoX, MonoY, MonoChi, MonoPhi,
CurveM, Table, A3, TwoThetaD, A4 at DMC, for HRPT see the <a
href="hrptdev.htm"> HRPT motor list</a>.
</p>
<h2> Counting </h2>
<p>
<DL>
<DT><a href=histogram.htm>banana</a> CountMode [NewVal]
<DD>Without a parameter displays the current counting mode. With parameter sets
the count mode. Possible values are Timer for waiting for time or Monitor for
waiting for a monitor.
<DT>banana preset [NewVal]
<DD> Without a parameter displays the current preset for either time or monitor.
With a parameter sets the preset.
<DT>banana count
<DD> Starts counting.
<DT><a href=dmcdev.htm>StoreData</a>
<DD> Writes the current state of DMC to a NeXus file.
<DT> <a href=dmcdev.htm>count</a> mode preset
<DD> Counts in mode with a preset of preset. Stores data automatically.
<DT> Repeat num mode preset
<DD> Calls count num times.
</DL>
</p>
<h2>R&#252;nbuffer</h2>
<p>
<DL>
<DT><a href =buffer.htm> Buf</a> new name
<DD>New buffer name
<DT>Buf copy name1 name2
<DD> copies buffers.
<DT>Buf del name
<DD> deletes buffer.
</DL>
Buffers created with Buf new name are installed as command name and understand:
<DL>
<DT>NAME append bla bla .......
<DD>Append text to buffer
<DT>NAME del iLine
<DD> Deletes line.
<DT> NAME ins iLine bla bla ....
<DD>Inserts text after line.
<DT>NAME print
<DD>prints contents of buffer to screen.
<DT>NAME save file
<DD> Saves buffer to file.
<DT>NAME read file
<DD> Read buffer contents from file.
<DT>NAME run
<DD>Executes contents of buffer.
</DL>
There can be a stack of R&#252;nbuffers.
<DL>
<DT>RuLi add buffer
<DD>Adds an buffer to the stack.
<DT>RuLi list
<DD> Lists the stack.
<DT>RuLi del line
<DD> Deletetes buffer from stack.
<DD>RuLi ins iLine name
<DD> Inserts name after iLine.
<DT> RuLi run
<DD> Executes Stack.
<DT> RuLi batch
<DD> Executes stack permanently. New buffers may be added.
</DL>
<h2> General commands </h2>
<p>
<DL>
<DT><a href=drive.htm>Success</a>
<DD> wait for the last operation to finish.
<DT><a href=system.htm>wait</a> time
<DD> wait for time to pass....
<DT><a href=system.htm>Dir</a>
<DD> lists all objects in the system.
<DT><a href=config.htm>config</a> Rights username password
<DD> changes authorisation to that of the user identified by username,
password.
<DT><a href=macro.htm>FileEval</a> filename
<DD> executes batch file filename.
</DL>
</p>
<h2> Log Files</h2>
<p>
<DL>
<DT><a href=logbook.htm>LogBook</a> file name
<DD> sets log file name
<DT> LogBook on
<DD> switches logging on
<DT>LogBook off
<DD> closes LogBook
<DT>LogBook
<DD> lists current logging status
</DL>
</p>
<h2> Variables</h2>
<p>
Each <a href=dmcdev.htm>variable</a>
can be inquired by just typing its name. It can be set by
typing the name followed by the new value. Currently available variables
are:
<UL>
<LI>Title
<LI>User
<LI>comment1
<LI>comment2
<LI>comment3
<LI>User
<LI>adress
<LI>phone
<LI>email
<LI>Sample
<LI>sample_mur
</UL>
</p>
</body>
</html>

16
doc/user/drive.htm Normal file
View File

@ -0,0 +1,16 @@
<html>
<head>
<title> Drive commands </title>
</head>
<body>
<h2>Drive commands</h2>
<p>
Many objects in SICS are <b> drivable </b>. 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. This class of objects can be operated by the <b> drive, run, Success </b> family of commands. These commands cater for blocking and non-blocking modes of operation.</p>
<p>
<b> run var newval var newval ... </b> can be called with one to n pairs of object new value pairs. This command will set the variables in motion and return to the command prompt without waiting for the requested operations to finish. This feature allows to operate other devices of the instrument while perhaps a slow device is still running into position.</p>
<p>
<b> Success </b> waits and blocks the command connection until all pending operations have finished (or an interrupt occured). </p>
<p>
<b> drive var newval var newval ... </b> 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 drive can be seen as a sequence of a run command as stated above immediatly followed by a Success command.</p>
</body>
</html>

61
doc/user/focus.htm Normal file
View File

@ -0,0 +1,61 @@
<HTML>
<HEAD>
<TITLE>FOCUS Reference Manual</TITLE>
</HEAD>
<BODY>
<!latex-off>
<H1>FOCUS Reference Manual</H1>
<!latex-on>
<P>
Welcome to the Time-Of-Flight spectrometer FOCUS at SINQ! This manual
describes how to operate FOCUS through the means of the instrument
control software system SICS. SICS means: Sinq Instrument Control
System. SICS is a client server system. This means there is a magic server
program running somewhere which does all the work. The user interacts
only with client applications which communicate with the server
through the network. Most instument hardware (motor controllers,
counter boxes etc.) is connected to the system through RS-232 serial
connections. These RS-232 ports are connected to a Macintosh-PC which
acts as a terminal server by means of a special program running on
it. The SICS server communicates with this terminal server and other
devices through the network.
</P>
<!latex-off>
<h1>General User Commands</h1>
<p>
<ul>
<li><a href="sicsinvoc.htm">Logging</a> in to SICS.
<li><a href="drive.htm">Driving</a> motors.
<li><a href="fomo.htm">List</a> of FOCUS motors.
<li>Controlling the <a href="chopper.htm">chopper system</a>.
<li><a href="count.htm">Counting</a>.
<li><a href="logging.htm">Logging</a> actions.
<li><a href="batch.htm">Batch</a> processing.
<li><a href="token.htm">Grabbing control</a>.
<li><a href="focussps.htm#SHUDDER">Controlling the shutter</a>.
<li><a href="focussps.htm#COLLI">Handling the collimator</a>.
<li><a href="focussps.htm#FBOX">Checking the detector box</a>.
</UL>
</p>
<h1>Advanced Topics</h1>
<p>
<UL>
<li>Handling <a href="samenv.htm">sample environment</a> devices in SICS.
<li>Configuring <a href="histogram.htm">histogram memory</a>
<li>Configuring <a href="fowrite.htm">data storage.</a>
<li><a href="motor.htm">Motor Parameters</a>.
<li>Dealing with the <a href="counter.htm">counter box</a>.
<li>Directly access a <a href="ctrl.htm">serial device.</a>
<li>SICS <a href="system.htm">system commands</a>.
<li>Doing a <a href="topscan.htm">scan</a>.
<li>Configuring a <a href="config.htm">client connection</a> manually.
<li><a href="trouble.htm">Trouble</a> shooting.
</UL>
</p>
<h1>Download Manual</h1>
<ul>
<li><a href="foman.ps">Postscript Format</a>,246KB
</ul>
<!latex-on>
</BODY>
</HTML>

58
doc/user/focussps.htm Normal file
View File

@ -0,0 +1,58 @@
<HTML>
<HEAD>
<TITLE>FOCUS SPS Commands</TITLE>
</HEAD>
<BODY>
<H1>FOCUS SPS Commands</H1>
<P>
The following commands are handled with the help of the Siemens SPS-system.
</P>
<h2><a name="SHUDDER">The Shutter</a></h2>
<p>
Even the shutter can be controlled from within SICS. This is safe because
the shutter will not open if the door to the instrument is open. In Local
Beam Control (LBC) speak this status is named "Enclosure is broken". Be
careful anyway because some idiots may climb the fence..... The following
SICS commands control the shutter:
<dl>
<DT>shutter
<DD>The command shutter without arguments returns the status of the shutter.
This can be one of open, closed, Enclosure is broken.
<DT>shutter open
<DD>opens the shutter when possible.
<DT>shutter close
<DD>closes the shutter.
</dl>
</p>
<h2><a name="COLLI">The Collimator</a></h2>
<p>
FOCUS is equiped with a rotating collimator. This can be either idle or
moving. This collimator can be controlled from SICS with the following
commands:
<dl>
<dt>colli
<dd>prints the current status of the collimator which can be either
idle or moving.
<dt>colli idle
<dd>switches the collimator to idle mode.
<dt>colli moving
<dd>swicthes the collimator into moving mode.
</dl>
</p>
<h2><a name="FBOX">Flight Box</a></h2>
<p>
The flight path in the detector box is normally filled with argon.
In order to detect a possible
leak an oxygen sensor is provided. The status of this sensor can be inquired
from within SICS with the command:
<dl>
<dt>fbox
<dd>prints the status of the flightbox. Which can be either OK or Problem.
</dl>
Obviously this cannot be controlled from the computer as any problem with
this requires massive mechanical intervention (searching the leak and
refilling argon).
</p>
</BODY>
</HTML>

61
doc/user/foman Normal file
View File

@ -0,0 +1,61 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
FOCUS--Reference Manual \\
\end{huge}
Version April, 1999\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\clearpage
\tableofcontents
\clearpage
\chapter{Introduction}
%html focus.htm 1
\chapter{User Commands}
%html sicsinvoc.htm 2
%html drive.htm 1
%html fomo.htm 2
%html chopper.htm 2
%html count.htm 2
%html logging.htm 2
%html logbook.htm 3
%html commandlog.htm 3
%html batch.htm 2
%html macro.htm 3
%html buffer.htm 3
%html token.htm 2
%html focussps.htm 2
\chapter{Advanced Topics}
%html samenv.htm 2
%html histogram.htm 2
%html fowrite.htm 2
%html motor.htm 2
%html counter.htm 2
%html ctrl.htm 2
%html system.htm 2
%html topscan.htm 2
%html config.htm 2
%html trouble.htm 2
\end{document}

57
doc/user/fomo.htm Normal file
View File

@ -0,0 +1,57 @@
<HTML>
<HEAD>
<TITLE>FOCUS motors</TITLE>
</HEAD>
<BODY>
<H1>FOCUS motors</H1>
<P>
<h2>Physical Motors</h2>
<DL>
<DT>MTT
<DD>Monochromator two theta. Only readable up to know. Must be moved manually
by pushing the detector around.
<DT>MSL
<DD>Monochromator shielding lift.
<DT>MTH
<DD>Monochromator theta.
<DT>MTX
<DD>Monochromator x-translation, vertical to monochromator surface.
<DT>MTY
<DD>Monochromator y-translation, parallel to monochromator surface.
<DT>MGO
<DD>Monochromator tilting.
<DT>M1CH
<DD>Monochromator 1 curvature horizontal.
<DT>M1CV
<DD>Monochromator 1 curvature vertical.
</DL>
</P>
<h2>Virtual motors</h2>
<p>
Virtual motors are instrument parameters which can be driven with the
drive and run commands, though they are not physical motors. Mostly
this encompasses coordinated movements of motors around several axis
or other lengthy and error prone hardware operations.
<dl>
<DT>lambda
<DD>wavelength
<DT>ei
<DD>incident energy in meV.
<DT>fermispeed
<DD>fermi chopper speed.
<DT>diskspeed
<DD>disk chopper speed. This works only when the chopper is NOT in
synchonized mode.
<DT>phase
<DD>chopper phase difference.
<DT>ratio
<DD>This is the ratio fermispeed/diskspeed. A value of two would mean that the diskchopper is running at half the speed of the fermichopper.
Please note that the phase is set to 0
automatically while running this command by the chopper controller
software from Dornier.
</dl>
</p>
</BODY>
</HTML>

41
doc/user/fowrite.htm Normal file
View File

@ -0,0 +1,41 @@
<HTML>
<HEAD>
<TITLE>FOCUS Data Storage</TITLE>
</HEAD>
<BODY>
<H1>FOCUS Data Storage</H1>
<P>
FOCUS writes data into portable binary NeXus files. The scheme implemented
involves opening a new file for any run and updating this file at
predefined intervalls during counting operations. All this is commonly
handled automatically by the <a href="count.htm">count</a>
command. However, data file writing can be initiated and configured
manually from the command line through the following commands:
<dl>
<DT>storefocus start
<DD>Write a new data file
<DT>storefocus update
<DD>Updates the current data file.
<DT>storefocus intervall
<DD>prints the current update intervall to use during counting. Units
is minutes.
<DT>storefocus intervall newval
<DD>Sets the update intervall to newval minutes.
<DT>killfile
<DD>This command will overwrite the last data file written and thus
effectively erase it. Therefore this command requires manager privilege.
</DL>
FOCUS has three detector banks which may not all be active at all
times. Thus a way is needed to tell SICS about the configuration of
the day. This is also done through ths storefocus command. There are
three parameters, <b>upper, middle and lower</b> which can be either on
(value greater 0) or off (value less then or equal to 0). The value
can be inquired with <b> storefocus par</b>. For example <b>storefocus
middle</b> prints the flag for the middle detector bank. With <b>
storefocus par val </b> a new value for the parameter is set. For
example <b>storefocus lower 1</B> switches the lower detector bank
on. These commands are usually used in the configuration file and
require manager privilege.
</P>
</BODY>
</HTML>

54
doc/user/general.htm Normal file
View File

@ -0,0 +1,54 @@
<html>
<head>
<title> General SICS commands </title>
</head>
<body>
<h1>General SICS commands</h1>
<hr size=4 width="66%">
<p>
This section describes general SICS concepts and SICS commands available to all instruments.</p>
<h2>Chapter Overview</h2>
<p>
<ul>
<li> This chapter starts with an overview of some <a href="basic.htm">basic</a> SICS concepts.
<li> Than there are <a href="system.htm">system</a> commands for closing the server, requesting status information etc.
<li> The <a href="token.htm">Token command</a>is for managing control access to
the SICS server.
<li> A few commands <a href="config.htm">change</a> user rights, set output files and the like.
<li> SICS has a built in <a href="macro.htm">macro</a> facility which is accessible through a few commands.
<li> Then there is the <a href="buffer.htm">famous</a> LNS-R&#252;nbuffer system.
<li> Motors and parameters need to be <a href="drive.htm">drive</a>n.
<li> SICS has a facility to <a href=optimise.htm>optimise</a> a peak with respect to several
parameters.
</ul>
</p>
<p>
SICS has various ways (to many!) to log the I/O from and to an
instrument control server. This has devolped over time and may need a
cleanup.
<ol>
<li>There exists a server log where all I/O and internal
messages is written to automatically. As this can get quite large the
files
for this
are cyclically reused. This is log aimed at debugging problems with
the SICS server.
<li> Logging of client output to a file can be performed with the <a
href=logbook.htm>LogBook</a> command. This is a wrapper around the
config file command. This is obsolete.
<li>Then there is a <a
href="commandlog.htm">commandlog </a> which writes all I/O coming from
clients with user or manager privilege. These log files are kept under
/home/INSTRUMENT/log for each day. With this log file all important
operations on an instrument can be reconstructed. This gets written
automatically without user intervention.
</ul>
</p>
</body>
</html>

166
doc/user/histogram.htm Normal file
View File

@ -0,0 +1,166 @@
<html>
<head>
<title> Histogram memory</title>
</head>
<body>
<h1>Histogram memory</h1>
<hr size=4 width="66%">
<p>
Histogram memories are used in order to control large area sensitive
detectors or single detectors with time binning information.
Basically each detector maps to a defined memory location. The
histogram memory wizard takes care of putting counts detected in the
detector into the proper bin in memory. Some instruments resolve energy
(neutron flight time) as
well, than there is for each detector a row of memory locations mapping to
the time bins. As usual in SICS the syntax is the name of the histogram
memory followed by qualifiers and parameters. As a placeholder for the
histogram memories name in your system, HM will be used in the following
text.
</p>
<p>
A word or two has to be lost about the SICS handling of preset values for
histogram memories.
Two modes of operation have to be distinguished: counting until a timer has passed,
for example: count for 20 seconds. This mode is called timer mode. In the other
mode, counting is continued until a control monitor has reached a certain
preset value. This mode is called Monitor mode. The preset values in Monitor
mode are usually very large. Therefore the counter has an exponent data variable.
Values given as preset are effectively 10 to the power of this exponent. For
instance if the preset is 25 and the exponent is 6, then counting will be
continued until the monitor has reached 25 million. Note, that this scheme with
the exponent is only in operation in Monitor mode.
</p>
<h2>Configuration</h2>
<p>
A HM has a plethora of configuration options coming with it which define
memory layout, modes of operation, handling of bin overflow and the like.
Additionally there are HM model specific parameters which are needed
internally in
order to communicate with the HM. In
most cases the HM will already have been configured at SICS server startup
time. However, there are occasion where these configuartion option need to
enquired or modified at run time. The command to enquire the current value
of a configuration option is: <b>HM configure option</b>, the command to set it is:
<b> HM configure option newvalue</b>. A list of common configuration options and their
meaning is given below:
<DL>
<DT> HistMode
<DD> HistMode describes the modes of operation of the histogram memory.
Possible values are:
<UL>
<LI>Transparent, Counter data will be written as is to memory. For debugging
purposes only.
<LI> Normal, neutrons detected at a given detector will be added to the
apropriate memory bin.
<LI> TOF, time of flight mode, neutrons found in a given detector will be
put added to a memory location determined by the detector and the time
stamp.
<LI> Stroboscopic mode. This mode serves to analyse changes in a sample due
to an varying external force, such as a magnetic field, mechanical stress
or the like. Neutrons will be stored in memory according to detector
position and phase of the external force.
</UL>
<DT> OverFlowMode
<DD> This parameter determines how bin overflow is handled. This happend
when more neutrons get detected for a particular memory location then are
allowed for the number type of the histogram memory bin. Possible values
are:
<UL>
<LI>Ignore. Overflow will be ignored, the memory location will wrap around
and start at 0 again.
<LI>Ceil. The memory location will be kept at the highest posssible value
for its number type.
<LI>Count. As Ceil, but a list of overflowed bins will be maintained.
</UL>
<DT> Rank
<DD> Rank defines the number of histograms in memory.
<DT> Length
<DD> gives the length of an individual histogram.
<DT> BinWidth
<DD> determines the size of a single bin in histogram memory in bytes.
<DT>dim0, dim1, dim2, ... dimn
<DD>define the logical dimensions of the histogram. Must be set if the
the sum command (see below) is to be used. This is a clutch necessary to
cope with the different notions of dimensions in the SINQ histogram memory
and physics.
</DL>
</p>
<p>
In addition to these common options there exist additional options for
the EMBL position sensitive detectors (PSD) installed at TRICS and
AMOR. These PSDs can be operated at different pixel resolutions. The
position of a neutron event on these detectors is encoded in a delay
time value which is digitized into a range between 0 to 4096. This
resolution exceeds the resolution available from instrument physics by
far. Useful resolutions are obtained by dividing this raw range by a
factor. In addition, the coordinates of the center of the detector
have to given as well (usually size/2).This is done through the
configuration options:
<dl>
<dt>xFac
<DD>x direction division factor
<dt>yFac
<dd>y direction division factor
<dt>xOff
<dd>Offset of the detector center in x.
<dt>yOff
<dd>Offset of the detector center in y.
</dl>
Do not forget to change the standard options dim0, dim1 and length as
well when changing the PSD resolution.
</p>
<p>
For time of flight mode the time binnings can be retrieved and modified with
the following commands. Note that these commands do not follow the configure
syntax given above. Please note, that the usage of the commands for
modifying time bins is restricted to instrument managers.
<DL>
<DT>HM timebin
<DD> Prints the currently active time binning array.
<DT>HM genbin <i>start step n</i>
<DD>Generates a new equally spaced time binning array. Number n time bins
will be generated starting from start with a stepwidth of step (example: HM genbin 10 1 5).
<DT>HM setbin <i>inum value</i>
<DD>Sometimes unequally spaced time binnings are needed. These can be
configured with this command. The time bin iNum is set to the value value.
<DT>HM clearbin
<DD>Deletes the currently active time binning information.
</DL>
</p>
<h2>Histogram Memory Commands</h2>
<p>
Besides the configuration commands the HM understands the following
commands:
<DL>
<DT>HM preset <i>[newval]</i>
<DD> with a new value sets the preset time or monitor for counting. Without a
value prints the current value.
<DT>HM exponent <i>[newval]</i>
<DD> with a new value sets the exponent to use for the preset time
in Monitor mode. Without a
value prints the current value.
<DT>CountMode <i>[mode]</i>
<DD> with a new values for <i>mode</i> sets the count mode. Possible values are Timer for a fixed counting time and Monitor for a fixed monitor count which has to be reached before counting finishes. Without a value print the currently active value.
<DT>HM init
<DD> after giving configuration commands this needs to be called in order to
transfer the configuration from the host computer to the actual HM.
<DT>HM count
<DD> starts counting using the currently active values for CountMode and
preset. This command does not block, i.e. in order to inhibit further
commands from the console, you have to give Success afterwards.
<DT>HM initval <i>val</i>
<DD> initialises the whole histogram memory to the value val. Ususally 0 in
order to clear the HM.
<DT> HM get <i>i iStart iEnd</i>
<DD> retrieves the histogram number i. A value of -1 for i denotes retrieval
of the whole HM. iStart and iEnd are optional and
allow to retrieve a subset of a histogram between iStart and iEnd.
<DT>HM sum <i>d1min d1max d2min d2max .... dnmin dnmax</i>
<DD>calculates the sum of an area on the detector. For each dimension a
minimum and maximum boundary for summing must be given.
</DL>
</p>
</body>
</html>

60
doc/user/hkl.htm Normal file
View File

@ -0,0 +1,60 @@
<HTML>
<HEAD>
<TITLE>4 Circle Diffractometer Setting Calculation</TITLE>
</HEAD>
<BODY>
<H1>4 Circle Diffractometer Setting Calculation</H1>
<P>
An essential part of operating a 4 circle diffractometer is the calculation
of the setting angles for the diffractometer for a given reciprocal lattice
point from the UB matrix and the wavelength. SICS does this through the hkl
object. The hkl object can calculate the required settings both for normal 4
circle configuration and normal beam configuration. It is possible to
specify if low chi or high chi values are preferred. The wavelength can be
dealt with in two ways: it can be set manually. Or a variable controlling
the wavelength can be specified. The hkl object will then be updated
automatically with the newest value for the wavelength whenever the
wavelength changes.
</P>
<p>
The hkl object understands the following commands:
<DL>
<DT>hkl list
<DD>Prints a listing of all relevant settings calculation parameters.
<DT>hkl current
<DD>Prints the value of the last calculated reflection.
<DT>hkl lambda val
<DD>Manually sets the wavelength to val. No automatic updates of the
wavelength will be performed.
<DT>hkl lambdavar val
<DD>Sets the name of the variable controlling the wavelength. The wavelength
in the hkl object will be automatically updated whenever the wavelength is
modified by driving variable val. This is a user command because the TRICS
spectrometer has more then one monochromator.
<DT>hkl setub a11 a12 a13 a21 a22 a23 a31 a 32 a33
<DD>SetUB sets the UB matrix to the nine values given.
<DT>hkl nb val
<DD>Switches the mode for normal beam calculation. If val is 1 a normal beam
calculation is performed, else normal four circle calculations are done.
<DT>hkl quadrant val
<DD>Defines the chi quadrant to prefer. The parameter val can be 0 for low
chi and 1 for high chi.
<DT>hkl calc h1 h2 h3 psi hamil
<DD>Calculates and prints the setting angles for the reflection (h1,h2,h3).
Optionally a psi value and a hamilton position can be specified.
<DT>hkl run h1 h2 h3 psi hamil
<DD>Calculates the setting angles for the reflection (h1,h2,h3) and starts
the motors to run to that position. This command will return immediately and
will not wait for the diffractometer to arrive at the setting angles
requested.
Optionally a psi value and a hamilton position can be specified.
<DT>hkl drive h1 h2 h3 psi hamil
<DD>Calculates the setting angles for the reflection (h1,h2,h3) and starts
the motors to drive to that position. This command will wait for the
diffractometer to arrive at the setting angles requested.
Optionally a psi value and a hamilton position can be specified.
</DL>
</p>
</BODY>
</HTML>

34
doc/user/hklscan.htm Normal file
View File

@ -0,0 +1,34 @@
<HTML>
<HEAD>
<TITLE>Hklscan</TITLE>
</HEAD>
<BODY>
<H1>Hklscan</H1>
<P>
Hklscan is a command which allows to scan in reciprocal space expressed as
Miller indizes on a four circle diffractometer. Prerequisite for this is
the existence of a scan object and the hkl-object for doing crystallographic
calculations. Make sure the properties of the hkl object (UB, wavelength, NB)
have some reasonable relation to reality, otherwise the diffractometer may
travel to nowhere. Also it is a good idea to drive the diffractometer to the
end points of the intended scan in reciprocal space. hklscan will abort if
the requested scan violates diffractometer limits. The commands implemented
are quite simple:
<dl>
<dt>hklscan start fH fK fL
<dd> sets the start point for the HKL scan. Three values required, one for
each reciprocal axis.
<dt>hklscan step sH sK Sl
<dd> sets the step width in reciprocal space. Three values required, one for
each reciprocal axis.
<dt>hklscan run NP mode preset
<dd>executes the HKL scan. NP is the number of points to do, mode is the
counting mode and can be either timer or monitor and preset is the preset
value for the counter at each step.
</dl>
Data is written automatically into a slightly modified TOPSI data format
file. The status display with topsistatus or scanstatus might be slightly
erratic as it uses two theta as x-axis.
</P>
</BODY>
</HTML>

693
doc/user/illprog.htm Normal file
View File

@ -0,0 +1,693 @@
CHAPTER 7
THE INDEX AND RAFIN PROGRAMS
7.1 <index
The program indexes reflections on the basis of observed
2Theta, Omega, Chi, Phi angles when the cell constants and
wavelength are known.
It does not take into account systematic extinctions.
The process, when successful, has three steps.
First, it calculates, for each set of observations, all possible
HKL's for which <theta(calc) lies within <theta(obs) +/-
<delta <theta.
<delta <theta is given - see below -.
For <delta <theta = 0, the value defaults to 0.05.
Second, it finds for all combinations of two sets of observations,
the angle between the indexed HKL's for which <angle(calc) lies
within <angle<(obs) +/- <delta.
<delta given - see below -. Delta = 0 causes default to 0.2
Finally, it finds all sets of indexed HKL's that explain all angles
Page 7 - 2
INDEX AND RAFIN.
between the observed sets of Omega, Chi and Phi.
The user will normally be presented with several possible sets of
HKL's which fit within the limits given.
- they are already tested for right-handedness -
and he must now choose which set he likes the most.
If he wishes he may now specify which set of reflections he likes
and the program will then set up the input file for the program
<rafin, - see next section -.
The program ensures that the first two reflections are acceptable
to <rafin. The user must say whether he wants the <ub matrix
written directly into <lsd ( for instant use ) and which file he
wants his <rafin input to come from (usually <rafin.dat).
The program <rafin is then automatically started.
Input to <index can be done either from the terminal or from a file
<index.dat
The format is the same, an example is given here.
THIS IS A DUMMY EXAMPLE ( text )
5.82 16.15 4.09 90 103.2 90 .84 .15
(cell constants, lambda,
Page 7 - 3
INDEX AND RAFIN.
<delta)
16.18 9.01 34.71 14.74 0 (2Th, Om, Ch, Ph, <delta
<theta)
13.21 7.8 .71 -56.13 0.1 (2Th, Om, Ch, Ph, <delta
<theta)
etc. etc.
0 ( end list with 2Th = 0 )
The program will only suggest sets of indexed HKL's if all
reflections are explained. If not, the user must himself look
through the list of observed and calculated angles to find a
partial list.
7.2 rafin
This program determines orientation matrix (<ub) from two or more
sets of orientation angles for reflections, and refines
(optionally) wavelength; zeroes of 2Theta, Omega or Chi; a, b, c,
alpha, beta or gamma.
Page 7 - 4
INDEX AND RAFIN.
To call the program, type :--
><run <rafin
after having set up the input file :
The input data are on <rafin.<dat
(teletype input can be used, but is cumbersome)
Use <teco to make or correct the file.
An example of the input file ( comments in parentheses ) :--
0 1 (second no. 0/1 for <ub not transferred/transferred to
<lsd)
0 (always)
0 -4 -2 28.01 13.75 81.59 42.05 (H K L 2Theta Omega Chi Phi)
4 -6 7 50.84 25.37 34.04 18.41
-2 -6 0 41.55 20.53 66.93 59.99
4 0 4 19.74 9.94 -16.92 -5.40
1 -5 -3 35.59 17.70 82.32 1.40
6 0 0 18.47 9.26 -2.32 -46.95
0 .8405 (0/1 do not/do refine lambda; and lambda)
0 0.0 1 0.0 1 0.0 (0/1 for do not/do refine, 2Theta zero,
-0/1 for do not/do refine, Om zero,
-0/1 for do not/do refine, Chi zero.)
Page 7 - 5
INDEX AND RAFIN.
0 15.9158 0 7.1939 0 14.277 0 90 0 98.72 0 90
(ditto for <a, <b, <c, <alpha, <beta and
<gamma)
2 0 0 (H K L list for angles to be calculated)
0 2 0
0 0 2
0 0 0 (end of list)
-1 (end of input file)
Ensure that <lsd is not running if you wish to transfer the
matrix and wavelength directly into its parameter section,
otherwise it may not be successful.
<rafin will never modify the zeroes for you. This is for you to do
by <adding them to the values in <zer of <par. Remember that for a
well aligned diffractometer, they will never change by very much.
Note: the first two reflections should be far away enough in
reciprocal space to define a plane. They must be at least 45 deg
apart in Phi and only one may have Chi greater than 45 deg.
Note also that higher angle (Theta) reflections usually give a
better fit.
You cannot, obviously, refine lambda and your cell at the same
Page 7 - 6
INDEX AND RAFIN.
time.
7.3 <acknowledgements
The <index program was written by M.S.Lehmann,
and J.M.Savariault.
The <rafin program was implemented at the <ill by A.Filhol and
M.Thomas.
It was implemented on the <pdp 11 system by A.Barthelemy.
CHAPTER 8
THE HKLGEN AND GENLIS PROGRAMS
8.4 <HKLGEN
THIS PROGRAM IS USED TO GENERATE A LIST OF HKL's which can be used
for input to the measurement routines of <lsd.
Indices can be generated internally in <lsd, but it is generally
considered easier to create a list, and measure from this.
<hklgen will generate HKL's according to min and max specified
indices, and will write them into output file(s) if they are inside
the Theta limits.
If <chi and <phi limits are specified, the program will also look
to see if the <hkl is measurable inside these machine limits.
If not, it will see if the Friedel Pair is inside limits
If this is also outside limits, it will see if the reflection can
be measured for <hkl <psi=180
Page 8 - 2
<HKLGEN <AND <GENLIS
- <note this option means <chi = 90 -> 180 i.e. <up-side-down.
If measurement is not possible for any of these conditions, the
<hkl is declared <blind.
Comments like <fr.pr <hichi <blind indicate these on <tty output.
To run the program do :--
><run <hklgen
Input to the program is either from the terminal or from a file
<hklgen.dat, already created by the user.
8.4.1 input from the terminal.
The first question asked under this option is whether a file
<hklgen.dat should be created.
If subsequent runs are envisaged, this might be a good idea. In
this case <teco can be used to make small changes to the input and
the program can be quickly re-run.
<hklgen then asks for the following parameters :--
Page 8 - 3
<HKLGEN <AND <GENLIS
1. Title. Up to 80 characters to be displayed at the top of the
output.
2. Wavelength and the 9 'rules limiting possible reflections' -
see appendix C -- If you give wavelength = 0, the wavelength,
extinction rules, and orientation matrix will be taken from
<lsd's parameter files.
<chi and <phi software limits are also taken but an
opportunity is given to over-write them.
-- If the wavelength is given explictly, followed by up to 9
numbers for the extinction rules, the orientation matrix must
then be given line by line.
3. Theta limits. ( Note <not 2-Theta limits ).
<chi and <phi limits ( if required ) must also be given in
this line.
-- If zeroes are given, no limits will be included in the
calculations.
-- If nothing is given, LSD's limits will be used if data was
taken from the parameter files, or it will default to zeroes
if the data above was given by the user.
Page 8 - 4
<HKLGEN <AND <GENLIS
4. Three numbers indicating the relative speed of variation of
<h, <k and <l.
First number is the slowest changing index, third number is
the fastest changing index.
1/2/3 is used to represent <h/k/l.
e.g. 3 2 1 means L changes slowest, then K, with H changing
fastest.
5. Minimum and maximum indices in <hkl are now requested.
You must give <hmin <hmax <kmin <kmax <lmin <lmax.
Note however that before starting the calculations, <hklgen
calculates itself what is the maximum value for each index for
the specified Theta range and if this is inside these values,
they will be modified.
Therfore, if, for example 0 999 0 999 -999 999 is given,
<hklgen will calculate the maximum values and give HKL's for
positive H, positive K, positive and negative L.
6. Four numbers concerning various outputs from the program.
a) The first <npunch concerns the <hkl output file.
0 = no file for output
1 = file for output containing <hkl only in 3I4 format.
2 = file for <d15-ren ( not for <d8-d9 )
3 = file for output containing <hkl and setting angles.
Page 8 - 5
<HKLGEN <AND <GENLIS
b) The second <ipara concerns machine geometry.
0 = Bissecting geometry - (normal for <d8-d9 ).
1 = Normal beam geometry - ( rarely used on <d8-d9 )
3 = <d15 lifting counter mode ( used with <npunch = 2 )
c) The third number <nbites concerns <hkl output.
1 = write <hkl for each case in four separate files.
0 = write all HKL's in one single file FOR00x.<dat
( x specified below ).
d) The fourth number <nlist concerns terminal output.
0 = write each <hkl with angles and comment on terminal.
( can take time and consume paper ).
1 = suppress most of the output on <tty.
7. If in previous line FOR00x.<dat was specified for <hkl output,
X must be given.
This is the last line in the input but is not always
necessary.
The program then generates as specified, creating file(s) if
required. It gives a resume at the end and exits.
Page 8 - 6
<HKLGEN <AND <GENLIS
8.4.2 input from file hklgen.dat
Input is given in exactly the same order as above, so for a more
detailed description of each parameter see previous section.
Two possible examples are given below.
KNUDDERKRYSTAL LAVET AF AARKVARD, 120K (Text, 80
characters)
0.8405 0 0 0 0 0 0 0 0 0 (Wavelength and the 9
Extinction rules.
)
0.043361 -.04190 .5399 ( <ub given in three separate lines
-.046409 -.032053 .03721 - as wavelength is given explicitly
-.00256 -.12861 -.02687
0 36 -20 95 ( Theta limits and Chi limits -
- note - no limits on Phi. )
2 1 3 ( relative speeds of <hkl.
- K slowest - L fastest. )
-99 -1 0 5 -99 99 ( Hmin,Hmax,Kmin, etc.
- note all L's with all neg
Page 8 - 7
<HKLGEN <AND <GENLIS
H.
- K is only to 5. )
1 0 0 1 ( a) Output file of <hkl.
b) Bisecting geom - usual.
c) All HKL's in <for00x.dat.
d) Suppress most <tty output. )
3 ( <hkl file on <for003.dat )
Second example - probably more normal :--
<sample <b <shell 30-35 <deg ( Title )
0 ( Lambda <ub, Extinction rules,
- <phi and <chi limits taken from <lsd
)
30 35 ( Theta limits; note LSD's <chi
- and <phi limits are taken.
1 2 3 ( <h slowest - <l fastest )
-99 0 -99 99 0 99 ( all neg H - all K - all pos L )
1 0 1 0 ( output file of <hkl only.
Bisecting - usual.
Four files of <normal.hkl.
<frprs.hkl.
<hichi.hkl.
Page 8 - 8
<HKLGEN <AND <GENLIS
<blind.hkl.
List all on <tty. )
The program is found on <dk2: under <uic> [200,200].
<hklgen is a program which has evolved in the hands of :
A.Filhol, S.Mason. A.Barthelemy and J.Allibon.
8.5 genlis
the program generates a list of hkl from a list of reflections
produced by coll5n or hklgen. the indices can be permuted, and for
coll5n lists limits can be applied to theta and sigma(fsq)/fsq.
up to 50 different reflections can be excluded from the list.
to produce the list do
Page 8 - 9
<HKLGEN <AND <GENLIS
>run genlis
and answer questions.
input file is punch-file produced by coll5n or hklgen. if old data
is needed, mount the relevant disk on dk3:
for the exercise. the program will accept a series of input files,
if needed. output file name is chosen by the user.
the permutation of hkl is given by a combination of indices.
example:
h=-h-k
k=H
l=-l
in addition reflections can be rejected using expressions of the
kind k-h>n, where n is an integer. this rejection is done before
the permutation.
repeated tests of sigma limits without stopping the program will
produce a series of files with increasing extension numbers
(assuming coll5n data is input, and that all input is on a single
file).
Page 8 - 10
<HKLGEN <AND <GENLIS
the program is largely self-explanitary and should be obvious
when it is used (or after a few attempts). have faith.
genlis was written by m. s. lehmann.
APPENDIX C
RULES LIMITING POSSIBLE REFLECTIONS
17.0 HKL
0 : NO CONDITIONS
1 : H + K + L = 2n
2 : H, K, L all even or all odd
3 : -H + K + L = 3n
4 : H = K + L = 3n
5 : H + K = 2n
6 : K + L = 2n
7 : H + L = 2n
8 : H + K + L = 6n
9 : H, K, L all even
10 : H, K, L all odd
11 : If H - K = 3n, then L = 6n
Page C - 2
RULES LIMITING POSSIBLE REFLECTIONS
18.0 H K 0
0 : No conditions
1 : H = 2n
2 : K = 2n
3 : H + K = 2n
4 : H + K = 4n
19.0 0 K L
0 : No conditions
1 : K = 2n
2 : K + L = 2n
3 : K + L = 3n
4 : K + L = 4n
5 : L = 2n
20.0 H 0 L
0 : No conditions
Page C - 3
RULES LIMITING POSSIBLE REFLECTIONS
1 : L = 2n
2 : H = 2n
3 : L + H = 2n
4 : L + H = 4n
21.0 H H L
0 : No conditions
1 : L = 2n
2 : H = 2n
3 : 2H + L = 4n

693
doc/user/illprog.txt Normal file
View File

@ -0,0 +1,693 @@
CHAPTER 7
THE INDEX AND RAFIN PROGRAMS
7.1 <index
The program indexes reflections on the basis of observed
2Theta, Omega, Chi, Phi angles when the cell constants and
wavelength are known.
It does not take into account systematic extinctions.
The process, when successful, has three steps.
First, it calculates, for each set of observations, all possible
HKL's for which <theta(calc) lies within <theta(obs) +/-
<delta <theta.
<delta <theta is given - see below -.
For <delta <theta = 0, the value defaults to 0.05.
Second, it finds for all combinations of two sets of observations,
the angle between the indexed HKL's for which <angle(calc) lies
within <angle<(obs) +/- <delta.
<delta given - see below -. Delta = 0 causes default to 0.2
Finally, it finds all sets of indexed HKL's that explain all angles
Page 7 - 2
INDEX AND RAFIN.
between the observed sets of Omega, Chi and Phi.
The user will normally be presented with several possible sets of
HKL's which fit within the limits given.
- they are already tested for right-handedness -
and he must now choose which set he likes the most.
If he wishes he may now specify which set of reflections he likes
and the program will then set up the input file for the program
<rafin, - see next section -.
The program ensures that the first two reflections are acceptable
to <rafin. The user must say whether he wants the <ub matrix
written directly into <lsd ( for instant use ) and which file he
wants his <rafin input to come from (usually <rafin.dat).
The program <rafin is then automatically started.
Input to <index can be done either from the terminal or from a file
<index.dat
The format is the same, an example is given here.
THIS IS A DUMMY EXAMPLE ( text )
5.82 16.15 4.09 90 103.2 90 .84 .15
(cell constants, lambda,
Page 7 - 3
INDEX AND RAFIN.
<delta)
16.18 9.01 34.71 14.74 0 (2Th, Om, Ch, Ph, <delta
<theta)
13.21 7.8 .71 -56.13 0.1 (2Th, Om, Ch, Ph, <delta
<theta)
etc. etc.
0 ( end list with 2Th = 0 )
The program will only suggest sets of indexed HKL's if all
reflections are explained. If not, the user must himself look
through the list of observed and calculated angles to find a
partial list.
7.2 rafin
This program determines orientation matrix (<ub) from two or more
sets of orientation angles for reflections, and refines
(optionally) wavelength; zeroes of 2Theta, Omega or Chi; a, b, c,
alpha, beta or gamma.
Page 7 - 4
INDEX AND RAFIN.
To call the program, type :--
><run <rafin
after having set up the input file :
The input data are on <rafin.<dat
(teletype input can be used, but is cumbersome)
Use <teco to make or correct the file.
An example of the input file ( comments in parentheses ) :--
0 1 (second no. 0/1 for <ub not transferred/transferred to
<lsd)
0 (always)
0 -4 -2 28.01 13.75 81.59 42.05 (H K L 2Theta Omega Chi Phi)
4 -6 7 50.84 25.37 34.04 18.41
-2 -6 0 41.55 20.53 66.93 59.99
4 0 4 19.74 9.94 -16.92 -5.40
1 -5 -3 35.59 17.70 82.32 1.40
6 0 0 18.47 9.26 -2.32 -46.95
0 .8405 (0/1 do not/do refine lambda; and lambda)
0 0.0 1 0.0 1 0.0 (0/1 for do not/do refine, 2Theta zero,
-0/1 for do not/do refine, Om zero,
-0/1 for do not/do refine, Chi zero.)
Page 7 - 5
INDEX AND RAFIN.
0 15.9158 0 7.1939 0 14.277 0 90 0 98.72 0 90
(ditto for <a, <b, <c, <alpha, <beta and
<gamma)
2 0 0 (H K L list for angles to be calculated)
0 2 0
0 0 2
0 0 0 (end of list)
-1 (end of input file)
Ensure that <lsd is not running if you wish to transfer the
matrix and wavelength directly into its parameter section,
otherwise it may not be successful.
<rafin will never modify the zeroes for you. This is for you to do
by <adding them to the values in <zer of <par. Remember that for a
well aligned diffractometer, they will never change by very much.
Note: the first two reflections should be far away enough in
reciprocal space to define a plane. They must be at least 45 deg
apart in Phi and only one may have Chi greater than 45 deg.
Note also that higher angle (Theta) reflections usually give a
better fit.
You cannot, obviously, refine lambda and your cell at the same
Page 7 - 6
INDEX AND RAFIN.
time.
7.3 <acknowledgements
The <index program was written by M.S.Lehmann,
and J.M.Savariault.
The <rafin program was implemented at the <ill by A.Filhol and
M.Thomas.
It was implemented on the <pdp 11 system by A.Barthelemy.
CHAPTER 8
THE HKLGEN AND GENLIS PROGRAMS
8.4 <HKLGEN
THIS PROGRAM IS USED TO GENERATE A LIST OF HKL's which can be used
for input to the measurement routines of <lsd.
Indices can be generated internally in <lsd, but it is generally
considered easier to create a list, and measure from this.
<hklgen will generate HKL's according to min and max specified
indices, and will write them into output file(s) if they are inside
the Theta limits.
If <chi and <phi limits are specified, the program will also look
to see if the <hkl is measurable inside these machine limits.
If not, it will see if the Friedel Pair is inside limits
If this is also outside limits, it will see if the reflection can
be measured for <hkl <psi=180
Page 8 - 2
<HKLGEN <AND <GENLIS
- <note this option means <chi = 90 -> 180 i.e. <up-side-down.
If measurement is not possible for any of these conditions, the
<hkl is declared <blind.
Comments like <fr.pr <hichi <blind indicate these on <tty output.
To run the program do :--
><run <hklgen
Input to the program is either from the terminal or from a file
<hklgen.dat, already created by the user.
8.4.1 input from the terminal.
The first question asked under this option is whether a file
<hklgen.dat should be created.
If subsequent runs are envisaged, this might be a good idea. In
this case <teco can be used to make small changes to the input and
the program can be quickly re-run.
<hklgen then asks for the following parameters :--
Page 8 - 3
<HKLGEN <AND <GENLIS
1. Title. Up to 80 characters to be displayed at the top of the
output.
2. Wavelength and the 9 'rules limiting possible reflections' -
see appendix C -- If you give wavelength = 0, the wavelength,
extinction rules, and orientation matrix will be taken from
<lsd's parameter files.
<chi and <phi software limits are also taken but an
opportunity is given to over-write them.
-- If the wavelength is given explictly, followed by up to 9
numbers for the extinction rules, the orientation matrix must
then be given line by line.
3. Theta limits. ( Note <not 2-Theta limits ).
<chi and <phi limits ( if required ) must also be given in
this line.
-- If zeroes are given, no limits will be included in the
calculations.
-- If nothing is given, LSD's limits will be used if data was
taken from the parameter files, or it will default to zeroes
if the data above was given by the user.
Page 8 - 4
<HKLGEN <AND <GENLIS
4. Three numbers indicating the relative speed of variation of
<h, <k and <l.
First number is the slowest changing index, third number is
the fastest changing index.
1/2/3 is used to represent <h/k/l.
e.g. 3 2 1 means L changes slowest, then K, with H changing
fastest.
5. Minimum and maximum indices in <hkl are now requested.
You must give <hmin <hmax <kmin <kmax <lmin <lmax.
Note however that before starting the calculations, <hklgen
calculates itself what is the maximum value for each index for
the specified Theta range and if this is inside these values,
they will be modified.
Therfore, if, for example 0 999 0 999 -999 999 is given,
<hklgen will calculate the maximum values and give HKL's for
positive H, positive K, positive and negative L.
6. Four numbers concerning various outputs from the program.
a) The first <npunch concerns the <hkl output file.
0 = no file for output
1 = file for output containing <hkl only in 3I4 format.
2 = file for <d15-ren ( not for <d8-d9 )
3 = file for output containing <hkl and setting angles.
Page 8 - 5
<HKLGEN <AND <GENLIS
b) The second <ipara concerns machine geometry.
0 = Bissecting geometry - (normal for <d8-d9 ).
1 = Normal beam geometry - ( rarely used on <d8-d9 )
3 = <d15 lifting counter mode ( used with <npunch = 2 )
c) The third number <nbites concerns <hkl output.
1 = write <hkl for each case in four separate files.
0 = write all HKL's in one single file FOR00x.<dat
( x specified below ).
d) The fourth number <nlist concerns terminal output.
0 = write each <hkl with angles and comment on terminal.
( can take time and consume paper ).
1 = suppress most of the output on <tty.
7. If in previous line FOR00x.<dat was specified for <hkl output,
X must be given.
This is the last line in the input but is not always
necessary.
The program then generates as specified, creating file(s) if
required. It gives a resume at the end and exits.
Page 8 - 6
<HKLGEN <AND <GENLIS
8.4.2 input from file hklgen.dat
Input is given in exactly the same order as above, so for a more
detailed description of each parameter see previous section.
Two possible examples are given below.
KNUDDERKRYSTAL LAVET AF AARKVARD, 120K (Text, 80
characters)
0.8405 0 0 0 0 0 0 0 0 0 (Wavelength and the 9
Extinction rules.
)
0.043361 -.04190 .5399 ( <ub given in three separate lines
-.046409 -.032053 .03721 - as wavelength is given explicitly
-.00256 -.12861 -.02687
0 36 -20 95 ( Theta limits and Chi limits -
- note - no limits on Phi. )
2 1 3 ( relative speeds of <hkl.
- K slowest - L fastest. )
-99 -1 0 5 -99 99 ( Hmin,Hmax,Kmin, etc.
- note all L's with all neg
Page 8 - 7
<HKLGEN <AND <GENLIS
H.
- K is only to 5. )
1 0 0 1 ( a) Output file of <hkl.
b) Bisecting geom - usual.
c) All HKL's in <for00x.dat.
d) Suppress most <tty output. )
3 ( <hkl file on <for003.dat )
Second example - probably more normal :--
<sample <b <shell 30-35 <deg ( Title )
0 ( Lambda <ub, Extinction rules,
- <phi and <chi limits taken from <lsd
)
30 35 ( Theta limits; note LSD's <chi
- and <phi limits are taken.
1 2 3 ( <h slowest - <l fastest )
-99 0 -99 99 0 99 ( all neg H - all K - all pos L )
1 0 1 0 ( output file of <hkl only.
Bisecting - usual.
Four files of <normal.hkl.
<frprs.hkl.
<hichi.hkl.
Page 8 - 8
<HKLGEN <AND <GENLIS
<blind.hkl.
List all on <tty. )
The program is found on <dk2: under <uic> [200,200].
<hklgen is a program which has evolved in the hands of :
A.Filhol, S.Mason. A.Barthelemy and J.Allibon.
8.5 genlis
the program generates a list of hkl from a list of reflections
produced by coll5n or hklgen. the indices can be permuted, and for
coll5n lists limits can be applied to theta and sigma(fsq)/fsq.
up to 50 different reflections can be excluded from the list.
to produce the list do
Page 8 - 9
<HKLGEN <AND <GENLIS
>run genlis
and answer questions.
input file is punch-file produced by coll5n or hklgen. if old data
is needed, mount the relevant disk on dk3:
for the exercise. the program will accept a series of input files,
if needed. output file name is chosen by the user.
the permutation of hkl is given by a combination of indices.
example:
h=-h-k
k=H
l=-l
in addition reflections can be rejected using expressions of the
kind k-h>n, where n is an integer. this rejection is done before
the permutation.
repeated tests of sigma limits without stopping the program will
produce a series of files with increasing extension numbers
(assuming coll5n data is input, and that all input is on a single
file).
Page 8 - 10
<HKLGEN <AND <GENLIS
the program is largely self-explanitary and should be obvious
when it is used (or after a few attempts). have faith.
genlis was written by m. s. lehmann.
APPENDIX C
RULES LIMITING POSSIBLE REFLECTIONS
17.0 HKL
0 : NO CONDITIONS
1 : H + K + L = 2n
2 : H, K, L all even or all odd
3 : -H + K + L = 3n
4 : H = K + L = 3n
5 : H + K = 2n
6 : K + L = 2n
7 : H + L = 2n
8 : H + K + L = 6n
9 : H, K, L all even
10 : H, K, L all odd
11 : If H - K = 3n, then L = 6n
Page C - 2
RULES LIMITING POSSIBLE REFLECTIONS
18.0 H K 0
0 : No conditions
1 : H = 2n
2 : K = 2n
3 : H + K = 2n
4 : H + K = 4n
19.0 0 K L
0 : No conditions
1 : K = 2n
2 : K + L = 2n
3 : K + L = 3n
4 : K + L = 4n
5 : L = 2n
20.0 H 0 L
0 : No conditions
Page C - 3
RULES LIMITING POSSIBLE REFLECTIONS
1 : L = 2n
2 : H = 2n
3 : L + H = 2n
4 : L + H = 4n
21.0 H H L
0 : No conditions
1 : L = 2n
2 : H = 2n
3 : 2H + L = 4n

20
doc/user/index.html Normal file
View File

@ -0,0 +1,20 @@
<HTML>
<HEAD>
<TITLE>SICS Documentation Index</TITLE>
</HEAD>
<BODY>
<H1>SICS Documentation Index</H1>
<P>
SICS is a client server instrument control system used at SINQ, PSI. This
page contains links to the documentation for various instruments.
<ul>
<li>The powder diffractometers <a href="dmc.htm">DMC</a> and HRPT.
<li>The two circle spectrometer <a href="topsi.htm">TOPSI</a>
<li>The small angle machine <a href="sans.htm">SANS</a>
<li>The four circle diffractometer <a href="trics.htm">TRICS</a>.
<li>The time-of-flight diffractometer <a href="focus.htm">FOCUS</a>.
</ul>
</P>
</BODY>
</HTML>

28
doc/user/logbook.htm Normal file
View File

@ -0,0 +1,28 @@
<html>
<head>
<title> LogBook command </title>
</head>
<body>
<h1>LogBook command</h1>
<p>
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 LogBook
command. LogBook is actually a wrapper around the config file command.
LogBook understands the following syntax:
<DL>
<DT> LogBook
<DD> alone prints the name of the current logfile and the status of event
logging.
<DT> LogBook file <i>filename</i>
<DD>sets the filename to which output will be printed. Please note
that this new filename will only be in effect after restarting logging.
<DT> LogBook on
<DD> 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.
<DT> LogBook off
<DD> This command closes the logfile and ends logging.
</DL>
</p>
</body>
</html>

30
doc/user/logging.htm Normal file
View File

@ -0,0 +1,30 @@
<HTML>
<HEAD>
<TITLE>Logging your activity</TITLE>
</HEAD>
<BODY>
<H1>Logging your activity</H1>
<P>
SICS offers not less then three different ways of logging your
commands and the SICS server's responses:
<ul>
<li>The SICS command line client allows to open a log file on your
local computer and on your account. This can be achieved through the
File/Open Logfile menu entry. Select a file name and hit save. From
then on, any output in the SICS clients terminal area will be written
into the selected file. There is a gotcha: ouptut may not be immediately
visible in the file. This is due to buffering of I/O by the operating
system. If you want to flush, either open a new file or exit the
client. Flushing I/O at each line written is possible, but would have
a massive and unacceptable performance impact.
<li>You may create a similar per client log file on the computer running
the SICS server through the <a href="logbook.htm">logbook</a> command.
<li>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 <a href="commandlog.htm">
commandlog</a> command.
</ul>
</P>
</BODY>
</HTML>

40
doc/user/macro.htm Normal file
View File

@ -0,0 +1,40 @@
<html>
<head>
<title> Macro Commands </title>
</head>
<body>
<h2>Macro Commands</h2>
<p>
SICS has a built in macro facility. This macro facility is aimed at instrument managers and users alike. Instrument managers may provide customised measurement procedures in this language, users may write batch files in this language. The macro language is John Ousterhout's Tool Command Language (TCL). Tcl has control constructs, variables of its own, loop constructs, associative arrays and procedures. Tcl is well documented by several books and online tutorials, therefore no details on Tcl will be given here. All SICS commands are available in the macro language. Some potentially harmful Tcl commands have been deleted from the standard Tcl interpreter. These are: exec, source, puts, vwait, exit,gets and socket. A macro or batch file can be executed with the command:</p>
<p>
<b> fileeval <i>name</i> </b> tries to open the file name and executes the script in this file. </p>
Then there are some special commands which can be used within macro-sripts:
<p>
<b> ClientPut sometext1 ... </b> writes everything after ClientPut to
the client which started the script. This is needed as SICS supresses
the output from intermediate commands in scripts. Except error
messages and warnings. With clientput this scheme can be circumvented
and data be printed from within scripts.</p>
<p>
<b> SICSType object </b> allows to query the type of the object specified by object. Possible return values are<ul>
<li> <b> DRIV </b> if the object is a SICS drivable object such as a motor
<li> <b> COUNT </b> if the object is some form of a counter.
<li> <b> COM </b> if the object is a SICS command.
<li> <b> NUM </b> if the object is a number.
<li> <b> TEXT </b> if object is something meaningless to SICS.
</ul>
</p>
<p>
<b> SICSbounds <i>var newval</i> </b> checks if the new value newval lies within the limits for variable var(example: SICSbounds D1HL 10). Returns an error or OK depending on the result of the test.</p>
<p>
<b> SICSStatus <i>var</i> </b> SICS devices such as counters or motor may be
started and left running while the program is free to do something
else. This command inquires the status of such a running device. Return values are internal SICS integer codes. This command is only of use for SICS programmers.</p>
<p>
<b> SetStatus <i>newval</i> </b> sets the SICS status to one of: Eager, UserWait, Count, NoBeam, Driving, Running, Scanning, Batch Hatl or Dead. This command is only available in macros.</p>
<p>
<b> SetInt <i>newval, GetInt</i> </b> sets SICS interrupts from macro scripts. Not recommended! Possible return values or new values are: continue, abortop, abortscan, abortbatch, halt, free, end. This command is only permitted in macros. Should only be used by SICS programmers.</p>
</body>
</html>

123
doc/user/mesure.htm Normal file
View File

@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>Four Circle Diffractometer Measurements in Single Counter Mode</TITLE>
</HEAD>
<BODY>
<H1>Reflection List Processor</H1>
<P>
This section describes the means for doing a standard single counter four
circle diffractometer measurement with SICS. A prerequisite for that is a
file with a list of reflections to measure. This is a simple file with
three floating point values per line giving the HKL of the reflection to
measure. Do not forget to put standard reflections into that file any now
and then. Another prerequisite is, that the UB-matrix had been determined
beforehand and that SICS has the updated values. Also check the value of
lambda in the hkl-object.
</P>
<p>
The measurement procedure is rather simple: If a reflection is accessible
the diffractometer is positioned on that reflection. Then a scan is done for
the reflection and data written to file. The scans all run with a fixed scan
widths, counter preset and countmode. There is a choice of omega scan or
omega two theta scan. It is known that there are more sophisticated
measurement schemes for four circle diffraction, but as TRICS is only
temporarily operated with a single counter not much optimisation seemed
necessary.
</p>
<p>
Three files will be written starting from a root such as tricsnumberyear.
For instance trics05601998 means file number 560 in 1998. The file ending in
.log will contain the console log. This is extremely verbose. Another file
ending with .col will contain the reflection, diffractometer settings and
the measured profile. The third file, ending with .rfl will contain for each
refelction, the HKL, the diffractometer settings and the intensity and sigma
intensity as calculated by the SICS internal integration routine. It does
a Grant Gabe integration (see J.Appl. Cryst (1978), 11, 114-120).
</p>
<p>
For the purpose of the command description it is assumed, that this facility
is accessible as object mess within SICS.
Interaction with this object happens through the following commands:
<dl>
<DT>mess start
<DD>Creates a new set of files and writes some header info.
<DT>mess measure filename iSkip
<DD>Starts a measurement. Reads reflections from the file filename. iSkip is
an optional parameter which allows to skip iSkip lines in the file. This
is for recovery in cases of accidental or purposeful interruption
of the measurement.
<DT>mess genlist filename iSkip
<DD>Mesures reflection from filename. The file is expected to have been
created by hklgen and to include all the angle settings. The optional
parameter iSkip determines the number of lines to skip in the file. This
feature allows to continue measurement on not fully processed files.
<DT>mess reopen filename
<DD>Reopens an already existing file set for appending. Only the file root
without directory info or endings needs to be given.
<DT>mess close
<DD>Closes the current data file set.
<DT>mess file
<DD>Prints the current data file name.
</dl>
Then there are a few parameter commands. They follow the general scheme:
<dl>
<DT>mess parameter
<DD>Prints the current value of the parameter
<DT>mess parameter value
<DD>Sets the parameter to the new value.
</dl>
This object knows about the following parameters:
<dl>
<DT>countmode
<DD>The counting mode to use. Possible values are timer or monitor.
<DT>preset
<DD>The preset to use for counting
<DT>mode
<DD>The measurement mode. Posssible values are omega for omega scans and
omega2theta for omega two theta scans.
<DT>np
<DD>number of points to collect for each profile.
<DT>step
<DD>The step width in omega to use for scanning.
<DT>compact
<DD>Determines if the scan data output to the SICS is in normal
(compact = 0) or condensed (compact = 1) form. The default is 1.
</dl>
</p>
<p>
mess supports two geometries: the first is the usual bisecting geometry. The
second is the normal beam geometry where the detector is moved out of plane.
This si accounted for by two switches:
<dl>
<dt>mess bi
<dd>switches into bissectiong mode. This is the default.
<dt>mess nb
<dd>switches into normal beam mode.
</dl>
</p>
<p>
This object supports some file management functionality. It caters
for the problem that experiments may need to be continued. Thus reopening
files and continuation of reflection processing at a point way down the
reflection file is supported. Consequently the start of a new experiment
requires the following steps:
<ul>
<li>Create a new set of files with <b>mess start</b>.
<li>Configure the scans with the parameter commands.
<li>Start processing a reflection file with either the <b>mess genlist</b>
or <b>mess measure</b> commands.
</ul>
If you need to continue reflection file processing after an abort or after
solving a problem the following steps are required:
<ul>
<li>Determine the file number you were working at and the line number in the
reflection file where you wish to continue processing.
<li>Set the file root with the <b>mess reopen</b> command.
<li>Configure the scan parameters again.
<li>Restart the measurement with either <b> mess genlist</b> or <b> mess
measure</b> but specify the iSkip parameter according to the position in
the reflection file where processing should continue.
</ul>
</p>
</BODY>
</HTML>

54
doc/user/motor.htm Normal file
View File

@ -0,0 +1,54 @@
<html>
<head>
<title> SICS motor handling </title>
</head>
<body>
<h1>SICS motor handling</h1>
<hr size=4 width="66%">
<p>
In SICS each motor is an object with a name. Motors may take commands which basically come in the form
<p>
<i> motorname command </i>; example: D2HR list.
<p>
Most of these commands deal with the plethora of parameters which are associated with each motor. The syntax for manipulating variables is, again, simple.
<p>
<i> Motorname parametername </i>
<p>
will print the current value of the variable.
<p>
<i> Motorname parametername newval </i>
<p>
will set the parameter to the new value specified. A list of all parameters and their meanings is given below. The general principle behind this is that the actual (hardware) motor is kept as stupid as possible and all the intracacies of motor control are dealt with in software. Besides the parameter commands any motor understands these basic commands:<ul>
<li> <b> <i>Motorname list</i> </b> gives a listing of all motor parameters.
<li> <b> <i>Motorname</i> reset </b> resets the motor parameters to default values.
This is software zero to 0.0 and software limits are reset to hardware
limits.
<li> <b> <i>Motorname</i> position</b> prints the current position of the motor.
All zero point and sign corrections are applied.
<li> <b> <i>Motorname</i> hardposition</b> prints the current position of the motor.
No corrections are applied. Should read the same as the controller box.
<li><b> <i>Motorname</i> interest</b> initiates automatic printing of any position
change of the motor. This command is mainly interesting for implementors of
status display clients.
</ul>
Please note that the actual driving of the motor is done via the <a href="drive.htm">drive</a> command.</p>
<hr size=4 width="66%">
<h2>The motor parameters</h2>
<ul>
<li> <b> HardLowerLim </b> is the hardware lower limit. This is read from the motor controller and is identical to the limit switch welded to the instrument. Can usually not be changed.
<li> <b> HardUpperLim </b> is the hardware upper limit. This is read from the motor controller and is identical to the limit switch welded to the instrument. Can usually not be changed.
<li> <b> SoftLowerLim </b> is the software lower limit. This can be defined by the user in order to restrict instrument movement in special cases.
<li> <b> SoftUpperLim </b> is the software upper limit. This can be defined by the user in order to restrict instrument movement in special cases.
<li> <b> SoftZero </b> defines a software zero point for the motor. All further movements will be in respect to this zeropoint.
<li> <b> Fixed </b> can be greater then 0 for the motor being fixed and less then
or equal to zero for the motor being movable.
<li> <b> InterruptMode </b> defines the interrupt to issue when the motor fails. Some motors are so critical for the operation of the instrument that all operations are to be stopped when there is a problem. Other are less critical. This criticallity is expressed in terms of interrupts, denoted by integers in the range 0 - 4 translating into the interrupts: continue, AbortOperation, AbortScan, AbortBatch and Halt. This parameter can usually only be set by
managers.
<li> <b> Precision </b> denotes the precision to expect from the motor in positioning. Can usually only be set by managers.
<li> <b> AccessCode </b> specifies the level of user privilege necessary to operate the motor. Some motors are for adjustment only and can be harmful to move once the adjustment has been done. Others must be moved for the experiment. Values are 0 - 3 for internal, manager, user and spy. This parameter can only be changed by managers.
<li> <b> Sign </b> reverses the operating sense of the motor.
For cases where electricians and not physicists have defined the operating sense of the motor. Usually a parameter not to be changed by ordinary users.
</ul>
<p>
</body>
</html>

23
doc/user/nextrics.htm Normal file
View File

@ -0,0 +1,23 @@
<HTML>
<HEAD>
<TITLE>TRICS NeXus Fiel Wrting Object</TITLE>
</HEAD>
<BODY>
<H1>TRICS NeXus File Writing Object</H1>
<P>
TRICS writes its data files in the upcoming NeXus data format standard for
neutron scattering and X-ray diffraction. The user may interact with this
object through the following commands:
<DL>
<DT>nexus start
<DD>Starts a new NeXus file.
<DT>nexus reopen filename
<DD>Reopens a NeXus file which has already been written to.
<DT>nexus dumpframe
<DD>Writes a frame of data at the current settings to the NeXus file.
<DT>nexus file
<DD>Prints the filename of the data file currently in use.
</DL>
</P>
</BODY>
</HTML>

47
doc/user/nxpeek.htm Normal file
View File

@ -0,0 +1,47 @@
<HTML>
<HEAD>
<TITLE>NXPEEK</TITLE>
</HEAD>
<BODY>
<H1>NXPEEK: An Tcl-API to NeXus</H1>
<P>
NXPEEK is an interface for reading NeXus files from Tcl. NXPEEK was written by
by Nick Maliszewski at NIST. It works in the usual way of a widget command in
Tcl. One special command, <em>nxopen</em> is added to Tcl which opens a NeXus
file. The command returns a handle which in itself is again a Tcl command. The
Usage looks like this:
<DL>
<DT>set handle [nxopen filename]
<DD> opens the NeXus file, craetes a new handle and returns it.
<DT> $handle ls
<DD> lists the contents of the current vGroup.
<DT> $handle cd {name class}
<DD> changes into the vGroup name of class class. Works much like a change
directory on a file system.
<DT>$handle cat name
<DD> Returns the contents of the SDS name as a Tcl-list or a list of Tcl-lists.
<DT>$handle info name
<DD>Returns information about the SDS name. This includes rand, dimensions and
data type.
<DT>$handle attributes name
<DD> Returns the attributes of the SDS name. If no SDS name is specified a
list of global attributes is returned.
<DT>$handle create VG {name class}
<DD> creates a new vGroup with name name and class class at the current
level in the NeXus vGroup hierarchy.
<DT>$handle create SDS name datatype rank dims
<DD>This call creates an SDS. A name argument is required. The data type
must be one of the NexUs datatypes: DFNT_INT8, DFNT_UNIT8, DFNT_INT16,
DFNT_UINT16, DFNT_INT32, DFNT_UINT32, DFNT_FLOAT32 and DFNT_FLOAT64.
Rank is currently to 2 and below. The dimensions are given as a Tcl-list.
<DT>$handle attrib SDSname attribname attribvalue
<DD> Adds the attribute attribname with a value of attribvalue to the SDS
SDSname.
<DT>$handle write SDSname data offset
<DD> Writes data to the SDS SDSname. The data must be give as a Tcl list (
one dimensional case) or as a list of Tcl-lists (the two dimensional case).
Offset is a Tcl list which describes at which position the data shall be
written. Usually this is {0} or {0 0}.
</DL>
</BODY>
</HTML>

76
doc/user/optimise.htm Normal file
View File

@ -0,0 +1,76 @@
<HTML>
<HEAD>
<TITLE>The Peak Optimiser</TITLE>
</HEAD>
<BODY>
<H1>The Peak Optimiser</H1>
<P>
In instrument control the need may arise to optimise a peak with respect to
several variables. Optimising means finding the maximum of the peak with
respect to several variables.
This is useful during instrument calibration, for example.
Four circle diffractometers use this facility on a day to day basis
for finding and verifying the exact position of reflections. In order to
support both usages a more general module has been implemented. The
algorithm is like this:
<pre>
while errors gt precision and cycles lt maxcycles
for all variables
do a scan
Try find the maximum, two halfwidth points and the peak center.
if failure extend the scan.
if success shift the variable, remember last shift.
If shift lt precicison mark this variable as done
end for
end while
</pre>
Possible outcomes of this procedure are: success, the peak was lost or the
maximum number of cycles was reached. This routine requires that the
instrument is currently placed somewhere on the peak and not miles away.
</P>
<p>
The Peak Optimiser is implemented as an object with the name opti. It
understand the following commands:
<DL>
<DT>opti clear
<DD> clears the optimiser.
<DT>opti addvar name step nStep precision
<DD>This command adds a variable to optimise to the optimiser. The user has
to specify the name of the variable, the step width to use for scanning, the
number of steps needed to cover the full peak when scanning and the
precision which should be achieved when optimising the peak. The step width
and number of steps parameters should cover the whole peak. However, the
Optimiser will extend the scan is the specified range is not sufficient.
<DT>opti run
<DD>Starts the optimiser. It will then optimise the peak. This may take some
time.
</DL>
The behaviour of the optimiser can be configured by modifying some
parameters. The synatx is easy: <b>opti parameter</b> prints the value of the
parameter, <b>opti parameter newval</b> sets a new value for the parameter.
The following parameters are supported:
<DL>
<DT>maxcycles
<DD>The maximum number of cycles the optimiser will run when trying to
optimise a peak. The default is 7.
<DT>threshold
<DD>When a peak cannot be identified after a scan on a variable, the
optimiser will check if there is a peak at all. In order to do that it
searches for a count rate higher then the threshold parameter. If such a
rate cannot be found the optimiser will abort and complain that he lost the
peak.
<DT>channel
<DD>The counter channel to use for scanning. The default is to use the
counter. By modifying this parameter, the optimiser can optimise on a
monitor instead.
<DT>countmode
<DD>The counting mode to use when scanning. Possible values are <b>timer</b> or
<b>monitor</b>.
<DT>preset
<DD>The preset value to use for counting in the scan. Depending on the
status of the countmode parameter this is either a preset time or a preset
monitor.
</DL>
</p>
</BODY>
</HTML>

59
doc/user/poldi.htm Normal file
View File

@ -0,0 +1,59 @@
<HTML>
<HEAD>
<TITLE>POLDI Reference Manual</TITLE>
</HEAD>
<BODY>
<!latex-off>
<H1>POLDI Reference Manual</H1>
<!latex-on>
<p>
Welcome to the Strain Scaning diffractometer POLDI at SINQ! This manual
describes how to operate POLDI through the means of the instrument
control software system SICS. SICS means: Sinq Instrument Control
System. SICS is a client server system. This means there is a magic server
program running somewhere which does all the work. The user interacts
only with client applications which communicate with the server
through the network. Most instument hardware (motor controllers,
counter boxes etc.) is connected to the system through RS-232 serial
connections. These RS-232 ports are connected to a terminal server
(name: PSTS240) by means of a special program running on it. The SICS server
communicates with this terminal server and other devices through the network.
</p>
<!latex-off>
<h1>General User Commands</h1>
<p>
<ul>
<li><a href="sicsinvoc.htm">logging</a> in to SICS.
<li><a href="drive.htm">Driving</a> motors.
<li><a href="poldimo.htm">List</a> of POLDI motors.
<li>Controlling the <a href="chopper.htm">chopper system</a>.
<li><a href="count.htm">Counting</a>.
<li><a href="logging.htm">logging</a> actions.
<li><a href="logbook.htm">logbook</a>.
<li><a href="commandlog.htm">commandlog</a>.
<li><a href="batch.htm">Batch</a> processing.
<li><a href="token.htm">Grabbing control</a>.
</UL>
</p>
<h1>Advanced Topics</h1>
<p>
<UL>
<li>Handling <a href="samenv.htm">sample environment</a> devices in SICS.
<li>Configuring <a href="histogram.htm">histogram memory</a>
<li>Configuring <a href="poldiwrite.htm">data storage.</a>
<li><a href="motor.htm">Motor Parameters</a>.
<li>Dealing with the <a href="counter.htm">counter box</a>.
<li>Directly access a <a href="ctrl.htm">serial device.</a>
<li>SICS <a href="system.htm">system commands</a>.
<li>Doing a <a href="topscan.htm">scan</a>.
<li>Configuring a <a href="config.htm">client connection</a> manually.
<li><a href="trouble.htm">Trouble</a> shooting.
</UL>
</p>
<h1>Download Manual</h1>
<ul>
<li><a href="poldiman.ps">Postscript Format</a>,246KB
</ul>
<!latex-on>
</BODY>
</HTML>

46
doc/user/poldicho.htm Normal file
View File

@ -0,0 +1,46 @@
<HTML>
<HEAD>
<TITLE>Chopper Control</TITLE>
</HEAD>
<BODY>
<H1>Chopper Control</H1>
<P>
POLDI is equipped with a Dornier Disk Chopper. The SICS program handling
RS-232 requests at the chopper control computer
is rather slow. This would slow the SICS server to unacceptable
levels, if any request would be handled through the RS-232 interface. In order
to cope with the problem, the SICS server buffers chopper
information. This information is updated any minute if not set otherwise.
</p>
<p>
The chopper system control is divided into several distinct objects: There
is the actual chopper controller which mainly serves for answering
status requests. One virtual motor (chopperspeed) is available which
represent the modifiable parameter of the disk chopper. The parameter can
be driven through the normal <a
href="drive.htm">drive</a> command. The commands understood by the
chopper controller object are:
<dl>
<DT>choco list
<DD>prints a listing of all known chopper parameters. Parameters phase and ratio are not used.
<DT>choco <i>name</i>
<DD>print only the value of parameter name. Possible values for name
can be extracted from the list printed with choco list (example choco <i>speed</i>).
</dl>
The following virtual motor variable exists.
<dL>
<DT>chopperspeed
<DD>disk chopper speed
</DL>
The variable <i>chopperspeed</i> kindly prints its current value when given as a command. Modifying the value happens through the normal drive
command. For instance the command:
<pre>
drive chopperspeed 10000
</pre>
will drive the disk chopper to 10000 RPM eventually and if no problem occurs.
Please check your input carefully for all chopper commands.
Dornier has provided no way to stop an erraneous command in its software. So, if you intend to run the chopper to 1000 RPM and mistyped it as 10000 then
you'll wait for 20 minutes until the chopper is at speed!
</p>
</BODY>
</HTML>

61
doc/user/poldiman Normal file
View File

@ -0,0 +1,61 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
POLDI--Reference Manual \\
\end{huge}
Version June, 2002\\
Dr. Mark K\"onnecke, Uwe Filges \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\clearpage
\tableofcontents
\clearpage
\chapter{Introduction}
%html poldi.htm 1
\chapter{User Commands}
%html sicsinvoc.htm 2
%html drive.htm 1
%html poldimo.htm 2
%html poldicho.htm 2
%html count.htm 2
%html logging.htm 2
%html logbook.htm 3
%html commandlog.htm 3
%html batch.htm 2
%html macro.htm 3
%html buffer.htm 3
%html token.htm 2
\chapter{Advanced Topics}
%html samenv.htm 2
%html histogram.htm 2
%html poldiwrite.htm 2
%html motor.htm 2
%html counter.htm 2
%html ctrl.htm 2
%html system.htm 2
%html topscan.htm 2
%html poldiscan.htm 2
%html config.htm 2
%html trouble.htm 2
\end{document}

86
doc/user/poldimo.htm Normal file
View File

@ -0,0 +1,86 @@
<HTML>
<HEAD>
<TITLE>POLDI motors</TITLE>
</HEAD>
<BODY>
<H1>POLDI motors</H1>
<P>
<h2>Physical Motors</h2>
<DL>
<DT>D1HL
<DD>2-axis diaphragm - horizontal translation (left)
<DT>D1HR
<DD>2-axis diaphragm - horizontal translation (right)
<DT>D2HL
<DD>4-axis diaphragma - horizontal translation (left)
<DT>D2HR
<DD>4-axis diaphragma - horizontal translation (right)
<DT>D2VU
<DD>4-axis diaphragma - vertical translation (upper side)
<DT>D2VL
<DD>4-axis diaphragma - vertical translation (lower side)
<DT>SHU
<DD>sample table x-translation
<DT>SHL
<DD>sample table y-translation
<DT>SV
<DD>sample table z-translation
<DT>SA
<DD>sample table rotation
<DT>SGU
<DD>sample goniometer rotation (alpha)
<DT>SGL
<DD>sample goniometer rotation (beta)
<DT>RSU
<DD>sample table overlay for radioactive samples (x-translation)
<DT>RSL
<DD>sample table overlay for radioactive samples (y-translation)
<DT>RSA
<DD>sample table overlay for radioactive samples (rotation)
</DL>
</P>
<h2>Virtual motors</h2>
<p>
Virtual motors are instrument parameters which can be driven with the
drive and run commands, though they are not physical motors. Mostly
this encompasses coordinated movements of motors around several axis
or other lengthy and error prone hardware operations.
<dl>
<DT>flightpathlength
<DD>distance between chopper and detector [in mm]
<DT>chopper_sample
<DD>distance between chopper and sample [in mm]
<DT>chopper_dia
<DD>distance between chopper and 2-axis diaphragma [in mm]
<DT>dia1_dia2
<DD>distance between 2-axis diaphragma and 4-axis diaphragma [in mm]
<DT>dia2_sample
<DD>distance between 4-axis diaphragma and sample position [in mm]
<DT>detectordist
<DD>distance between sample position and detector [in mm]
<DT>chopperspeed
<DD>disk chopper speed
<DT>twotheta
<DD>scattering angle to the middle of the detector
<DT>x0_det
<DD>centre of the detector circle (x-coordinate)
<DT>y0_det
<DD>centre of the detector circle (y-coordinate)
<DT>nodet
<DD>number of detector cells (400 really cells exist)
<DT>det_size
<DD>size of a single detector cell [in mm]
<DT>det400
<DD>automatic configuration of the histogram memory to 400 detectors with
a cell size of 2.5 mm
<DT>det800
<DD>automatic configuration of the histogram memory to 800 detectors
(including 400 virtual detectors) with a cell size of 1.25 mm
</dl>
Note: The adjustments of det400 and det800 will be activated after giving a
HM init command!
</p>
</BODY>
</HTML>

32
doc/user/poldiscan.htm Normal file
View File

@ -0,0 +1,32 @@
<html>
<body>
<hr size=4 width="66%">
<h2>Special POLDI scan command</h2>
<p>
Additionally a special POLDI scan command was programmed which offers the
possibility to scan variables (motor) against detector count rate. For this
purpose the 400 detector cells are divided into 4 groups (5-100, 101-200,
201-300, 301-395) where the count rates (stored in the histogram memory)
are added.
</p>
<p>
The command syntax for the POLDI specific scanning is like this:
<BLOCKQUOTE>
scanhm <i>var start delta np preset</i>
</BLOCKQUOTE>
All parameters must be specified. The parameters and their meanings:
<UL>
<LI><b>var start delta</b> This is how the variables to scan are specified. For
each variable scanned the name of the variable, the start value and the step wide must be given.
<LI><b>np</b> is the number of points to scan.
<LI><b>preset</b> is the preset to use for the counter. As the counter mode,
the mode <i>timer</i> is predefined.
</UL>
</p>
<p>
The scan data are saved in ASC-format in the directory /home/POLDI/scan.
Additionally the typical NeXus-files are available for each step of the scan.
The NeXus files are saved in the directory /home/POLDI/data/2002.
</p>
</body>
</html>

30
doc/user/poldiwrite.htm Normal file
View File

@ -0,0 +1,30 @@
<HTML>
<HEAD>
<TITLE>POLDI Data Storage</TITLE>
</HEAD>
<BODY>
<H1>POLDI Data Storage</H1>
<P>
POLDI writes data into portable binary NeXus files. The scheme implemented
involves opening a new file for any run and updating this file at
predefined intervalls during counting operations. All this is commonly
handled automatically by the <a href="count.htm">count</a>
command. However, data file writing can be initiated and configured
manually from the command line through the following commands:
<dl>
<DT>storedata start
<DD>Write a new data file
<DT>storedata update
<DD>Updates the current data file.
<DT>storedata intervall
<DD>prints the current update intervall to use during counting. Units
is minutes. Default is 20 minutes.
<DT>storedata intervall <i>newval</i>
<DD>Sets the update intervall to newval minutes.
<DT>killfile
<DD>This command will overwrite the last data file written and thus
effectively erase it. Therefore this command requires manager privilege.
</DL>
</P>
</BODY>
</HTML>

46
doc/user/powdtcl.htm Normal file
View File

@ -0,0 +1,46 @@
<HTML>
<HEAD>
<TITLE>Powder</TITLE>
</HEAD>
<BODY>
<H1>Powder</H1>
<P>
SICS uses NeXus, based on HDF, as its raw dataformat. As first instrument
DMC is using this new data format. A common task at DMC is to sum and
concatenate measurements to a complete powder diagram. During this a detector
efficiency correction needs to be performed. Users may also request an absorption
correction to be performed. All this has been implemented as a set of
operations in Tcl. This allows for scripting user interfaces to this process.
</P>
<p>
This package installs one new command <EM>powder</EM> in Tcl. The principle
operation is that single diagrams are added into a list. Once this list is
complete the operator finish will do the necessary calculations.
powder understands the following operators:
<UL>
<LI><em>powder mur val</em>. Sets the absorption coefficient to val.
<LI><em>powder eff filename</em>. Sets the detector efficiency file to
use for efficiency correction. If none is specified no correction will be
performed.
<LI><em>powder add filename</em> Adds a powder diagram in ASCII format from
filename to the current list.
<LI><em>powder addnx filename</em>. Adds the powder diagram in NeXus format
to the current list.
<LI><em>powder sub filename</em> Adds a powder diagram in ASCII format from
filename to the current list. All counts are made neagtive in order to achieve
a subtraction.
<LI><em>powder subnx filename</em>. Adds the powder diagram in NeXus format
to the current list.All counts are made neagtive in order to achieve
a subtraction.
<LI><em>powder finish</em>. Initiates the actual calculation of the
concatenated powder diagram.
<LI><em>powder abs</em>. Performs absorption correction on the current
powder diagram. A value for mur must have been specified.
<LI><em>powder write filename</em>. Writes the result powder diagram to
an ASCII file in DMC format.
<LI><em>powder clear</em>. Deletes all internal buffers and lists prior to
a new calculation.
</UL>
</BODY>
</HTML>

31
doc/user/psish.htm Normal file
View File

@ -0,0 +1,31 @@
<HTML>
<HEAD>
<TITLE>The Psish</TITLE>
</HEAD>
<BODY>
<H1>The Psish</H1>
<P>
The Psish is just a special version of the standard tclsh coming with Tcl. Tcl
is John Ousterhouts Tool Command Language. It is portable scripting language
for rapid application development. One of the features of Tcl is, that it is easily
extendable with C-code. The Psish is one of these extensions which adds
interfaces to the SINQ hardware devices to Tcl. The prime purpose of this tool
is hardware testing and as a development aid. There exists also a TK shell,
pish with these extensions. Some of th extensions are written at LNS, some
are collected from the net. The following extensions are available:
<UL>
<LI>dldebug. Don Libbes Tcl debugger. Documented elewhere.
<LI>blt_graph. A X-Y-graph widget for X11 from the blt package.
<LI><A HREF="tchm.htm">SINQHM.</A> An interface to the SINQ histogram memory.
<LI><A HREF="ctrl.htm">Controller.</A> This allows to write and read data from
and to a serial device connected via the Macintosh terminal server
to the network.
<LI><A HREF="powdtcl.htm">powder</A>. A set of routines for performing initial
data correction and summing on DMC data files.
<LI><a href = nxpeek.htm>nxpeek</a>. An extension to view NeXus files by Nick from NIST.
</UL>
</p>
</BODY>
</HTML>

132
doc/user/saco.htm Normal file
View File

@ -0,0 +1,132 @@
<html>
<head>
<title> SANS Command summary </title>
</head>
<body>
<h1>SANS command summary</h1>
<hr size=4 width="66%">
<p>
<h2>Most Used Commands</h2>
<dl>
<DT> <a href=sanscom.htm>bs</a> X = xval Y = yval
<DD> drive beam stop to xval yval
<DT> bs out
<DD> drive beamstop to safe position.
<DT> bs back
<DD> drive beamstop back
<DT> <a href=sanscom.htm>dt</a> X = xval Y = yval psi = angle
<DD> drive detector to xval,yval, angle
<DT> <a href=dmcdev.htm>count</a> mode preset
<DD> Counts in mode with a preset value of preset. Stores data automatically.
<DT> Repeat num mode preset
<DD> Calls count num times.
<DT><a href=macro.htm>FileEval</a> filename
<DD> Runs a batch file with the specified filename.
</DL>
</p>
<hr size=4 width="66%">
<h2> General commands </h2>
<p>
<DL>
<DT><a href=drive.htm>Success</a>
<DD> wait for the last operation to finish.
<DT><a href=system.htm>wait</a> time
<DD> wait for time to pass....
<DT><a href=system.htm>Dir</a>
<DD> lists all objects in the system.
<DT><a href=config.htm>config</a> Rights username password
<DD> changes authorisation to that of the user identified by username,
password.
<DT><a href=macro.htm>FileEval</a> filename
<DD> executes batch file filename.
</DL>
</p>
<h2>Velocity Selector</h2>
<p>
<dl>
<DT>nvs list
<DD> lists tilt angle and speed of the velocity selector.
<DT>nvs rot
<DD>prints rotation speed of the velocity selector.
<DT>nvs rot val
<DD>sets rotation speed of the velocity selector.
<DT>nvs tilt
<DD>prints tilt angle of the velocity selector.
<DT>nvs tilt val
<DD>sets tilt angle of the velocity selector.
<DT>nvs tilt val rot val2
<DD>sets both tilt angle and rotation speed of the velocity selector.
<DT><a href="velolambda.htm"> lambda</a>
<DD>prints current wavelength.
<DT>drive lambda val
<DD>drives velocity selector to a new wavelength.
</dl>
</p>
<h2> BeamStop </h2>
<p>
<DL>
<DT> <a href=sanscom.htm>bs</a> X = xval Y = yval
<DD> drive beam stop to xval yval
<DT> bsout
<DD> drive beamstop to safe position.
<DT> bsin
<DD> drive beamstop back
<DT> bs pos name
<DD> assign current position to name
<DT> bs drop name
<DD> delete named position name
<DT>bschange par
<DD>With parameter change beam stop, without: inquire about current beam stop.
</DL>
</p>
<h2> detector </h2>
<p>
<DL>
<DT> <a href=sanscom.htm>dt</a> X = xval Y = yval psi = angle
<DD> drive detector to xval,yval, angle
<DT> dt back
<DD> drive detector back
<DT> dt pos name
<DD> assign current position to name
<DT> dt drop name
<DD> delete named position name
</DL>
</p>
<h2> LogBook</h2>
<p>
<DL>
<DT><a href=logbook.htm>LogBook</a> file name
<DD> sets log file name
<DT> LogBook on
<DD> switches logging on
<DT>LogBook off
<DD> closes LogBook
<DT>LogBook
<DD> lists current logging status
</DL>
</p>
<h2> Variables</h2>
<p>
Each <a href=sanscom.htm>variable</a>
can be inquired by just typing its name. It can be set by
typing the name followed by the new value. Currently available variables
are:
<UL>
<LI>Title
<LI>User
<LI>Comment1
<LI>Comment2
<LI>environment
</UL>
</p>
</body>
</html>

725
doc/user/samenv.htm Normal file
View File

@ -0,0 +1,725 @@
<html>
<head>
<title> Sample Environment Devices </title>
</head>
<body>
<h1> Sample Environment Devices</h1>
<!latex-off>
<p>
From here you can jump to:
<ul>
<li>A discussion of SICS environment control <a href="#concept">
concepts</a>.
<li>A section about environment control <a href="#error">error</a> handling.
<li>Commands for <a href="#general">monitoring and installing</a>
environment control devices.
<li>Commands understood by <a href="#all">ALL</a> environment control
devices.
<li><a href="#lsc">LakeShore Model 340</a> temperature controllers.
<li>Oxford Instruments <a href="#itc4">ITC-4</a> or ITC-503 temperature
controllers.
<li><a href="#dilu">Dilution</a> Cryostat.
<li>Haake <a href="#haake">waterbath </a> thermostat.
<li><a href="#ltc11">The CryoFurnace</a> with its Neocera LTC-11 temperature
controller.
<li><a href="#euro">Eurotherm Temperature Controller</a>.
<li><a href="#bruker">Bruker</a> Magnet Controller.
<li>The Risoe <a href="#a1931">A1931</a> Temperature Controller.
<li>The <a href="#el755">PSI-EL755</a> Magnet Controller.
<li>The <a href="#psidsp">PSI-DSP</a> Magnet Controller, also known as
SLS controller.
</ul>
</p>
<!latex-on>
<p>
<h2><a name="concept">SICS Concepts</a> for Sample Environment Devices</h2>
<p>
SICS can support any type of sample environment control device if there is a
driver for it. This includes temperature controllers, magnetic field controllers
etc. The SICS server is meant to be left running continously. Therefore there
exists a facility for dynamically configuring and deconfiguring environment
devices into the system. This is done via the <b>EVFactory</b> command.
It is expected that instrument scientists will provide command procedures or
specialised R&#252;nbuffers for configuring environment devices and setting
reasonable default parameters. </p>
<p>
In the SICS model
a sample environment device has in principle two modes of operation. The first
is the drive mode. The device is monitored in this mode when a new value for it
has been requested. The second mode is the monitor mode. This mode is entered
when the device has reached its target value. After that, the device must be
continously monitored throughout any measurement. This is done through the
environment monitor or <b>emon</b>. The emon understands a few commands of its
own.
</p>
<p>
Within SICS all sample environement devices share some common behaviour
concerning parameters and abilities. Thus any given environment device
accepts all of a set of general commands plus some additional commands
special to the device.
</p>
<p>
In the next section the EVFactory, emon and the general commands understood
by any sample environment device will be discussed. This reading is mandatory
for understanding SICS environment device handling. Then there will be another
section discussing the special devices known to the system.
</p>
<p>
<h2>SampleEnvironment Error Handling</h2>
A <a name="error"> sample</a> environment device may fail to stay at its preset value during a
measurement. This condition will usually be detected by the emon. The question
is how to deal with this problem. The requirements for this kind of error
handling are quite different. The SICS model therefore implements several
strategies for handling sample environment device failure handling.
The strategy to use is selected via a variable which can be set by the user for
any sample environment device separately. Additional error handling strategies
can be added with a modest amount of programming. The error handling strategies currently
implemented are:
<DL>
<DT>Lazy
<DD>Just print a warning and continue.
<DT>Pause
<DD>Pauses the measurement until the problem has been resolved.
<DT>Interrupt
<DD>Issues a SICS interrupt to the system.
<DT>Safe
<DD> Tries to run the environment device to a value considered safe by the
user.
</DL>
</p>
<h2><a name="general">General</a> Sample Environment Commands</h2>
<h3>EVFactory</h3>
<p>
EVFactory is responsible for configuring and deconfiguring sample environment
devices into SICS. The syntax is simple:
<DL>
<DT>EVFactory new name type par par ...
<DD>Creates a new sample environment device. It will be known to SICS by the
name specified as second parameter. The type parameter decides which driver to
use for this device. The type will be followed by additional parameters
which will be evaluated by the driver requested.
<DT>EVFactory del name
<DD>Deletes the environment device name from the system.
</DL>
</p>
<h3>emon</h3>
<p>
The environment monitor emon takes for the monitoring of an environment device
during measurements. It also initiates error handling when appropriate. The emon
understands a couple of commands.
<DL>
<DT>emon list
<DD>This command lists all environment devices currently registered in the
system.
<DT>emon register name
<DD> This is a specialist command which registers the environment device name
with the environment monitor. Usually this will automatically be taken care
of by EVFactory.
<DT>emon unregister name
<DD> This is a specialist command which unregisters the environment device name
with the environment monitor. Usually this will automatically be taken care
of by EVFactory Following this call the device will no longer be monitored and
out of tolerance errors on that device no longer be handled.
</DL>
</p>
<h3><a name="all">General</a>
Commands UnderStood by All Sample Environment Devices</h3>
<p>
Once the evfactory has been run successfully the controller is
installed as an object in SICS. It is accessible as an object then
under the name specified in the evfactory command. All environemnt
object understand the common commands given below.
Please note that each command discussed below MUST be prepended with the name
of the environment device as configured in EVFactory!
</p>
<p>
The general commands understood by any environment controller can be subdivided
further into parameter commands and real commands. The parameter commands just
print the name of the parameter if given without an extra parameter or
set if a parameter is specified. For example:
<BLOCKQUOTE>
Temperature Tolerance
</BLOCKQUOTE>
prints the value of the variable Tolerance for the environment controller
Temperature. This is in the same units as the controller operates,
i. e. for a temperature controller Kelvin.
<BLOCKQUOTE>
Temperature Tolerance 2.0
</BLOCKQUOTE>
sets the parameter Tolerance for Temperature to 2.0. Parameters known to ANY
envrironment controller are:
<DL>
<DT>Tolerance
<DD>Is the deviation from the preset value which can be tolerated before an
error is issued.
<DT> Access
<DD>Determines who may change parameters for this controller.
Possible values are:
<UL>
<LI>0 only internal
<LI> 1 only Managers
<LI> 2 Managers and Users.
<LI> 3 Everybody, including Spy.
</UL>
<DT>LowerLimit
<DD> The lower limit for the controller.
<DT>UpperLimit
<DD> The upper limit for the controller.
<DT>ErrHandler.
<DD> The error handler to use for this controller. Possible values:
<UL>
<LI>0 is Lazy.
<LI>1 for Pause.
<LI> 2 for Interrupt
<LI> 3 for Safe.
</UL> For an explanantion of these values see the section about <a
href="#error">error</a> handling
above.
<DT> Interrupt
<DD> The interrupt to issue when an error is detected and Interrupt error
handling is set. Valid values are:
<UL>
<LI> 0 for Continue.
<LI> 1 for abort operation.
<LI> 2 for abort scan.
<LI> 3 for abort batch processing.
<LI> 4 halt system.
<LI> 5 exit server.
</UL>
<DT>SafeValue
<DD> The value to drive the controller to when an error has been detected and
Safe error handling is set.
</DL>
</p>
<P>
Additionally the following commands are understood:
<DL>
<DT>send par par ...
<DD>Sends everything after send directly to the controller and return its
response. This is a general purpose command for manipulating controllers
and controller parameters directly. The protocoll for these commands is
documented in the documentation for each controller. Ordinary users should
not tamper with this. This facility is meant for setting up the device with
calibration tables etc.
<DT> list
<DD> lists all the parameters for this controller.
<DT> no command, only name.
<DD> When only the name of the device is typed it will return its
current value.
<DT> name val
<DD> will drive the device to the new value val. Please note that the same
can be achieved by using the drive command.
and <b>log frequency</b> (both below)
</DL>
<h3>Logging </h3>
The values of any sample environement device can be logged. There are two
features:
<ul>
<li>Logging to a file wih a configurable time intervall between log
file entries.
<li>Sums are kept internally which allow the calculation of the mean
value and the standard deviation at all times.
</ul>
The last system is automatically switched on after the first drive or
run command on the environment device completed.
This system is run through the following commands.
<DL>
<DT>name log clear
<DD> Resets all sums for the calculation of the mean value and the
standard deviation.
<DT>name log getmean
<DD>Calculates the mean value and the standard deviation for all logged
values and prints them.
<DT>name log frequency val
<DD> With a parameter sets, without a parameter requests the logging intervall
for the log file.
This parameter specifies the time intervall in seconds
between log records. The default is 300 seconds.
<DT>name log file filename
<DD> Starts logging of value data to the file filename.
Logging will happen any 5 minutes initially. The logging frequency
can be changed with the name log frequency command. Each entry in the file is
of the form date time value. The name of the file must be specified relative
to the SICS server.
<DT>name log flush
<DD>DigitalUnix buffers output heavily. With this command an update of
the file can be enforced.
<DT>name log status
<DD>Queries if logging to file is currently happening or not.
<DT>name log close
<DD> Stops logging data to the file.
</DL>
</P>
<h2>Special Environment Control Devices</h2>
<p>
This section lists the parameters needed for configuring a special environment
device into the system and special parameters and commands only understood by
that special device. All of the general commands listed above work as well!
</p>
<h3><a name="lsc">LakeShore</a> Model 340 Temperature Controller</h3>
<p>
This is <i>the</i> temperature controller for cryogenic applications and
should replace at least the Oxford & Neocera controllers at SINQ.<p>
The control is handled by a seperate server process TECS (TEmperature
Control Server) and is initialized by default. If there is already an other
device selected, it must be deleted and TECS must be reinstalled:
<BLOCKQUOTE>
EVFactory del temperature<br>
EVFactory new temperature tecs
</BLOCKQUOTE>
The sample environment device is selected automatically by a coding in the
plug of the sensor/heater cable(s). If this does not work (plugs without
coding or temporarely use of a wrong cable) you may select the device
with
<BLOCKQUOTE>
temperature device <i>device</i>
</BLOCKQUOTE>
You may want to verify the selected device with
<BLOCKQUOTE>
temperature device
</BLOCKQUOTE>
The actually known devices (April 2000) are:
<UL>
<LI>orange cryostats: <b>ill1</b> (50mm), <b>ill2</b> (70mm),
<b>ill3</b> (cryofurnace), <b>ill4</b> (FOCUS), <b>ill5</b> (100 mm)
<LI>closed cycles: <b>cti1</b>, <b>cti2</b>, <b>cti3</b>, <b>cti4</b>,
<b>cti5</b> (maxi), <b>cti6</b> (FOCUS), <b>apd</b> (TriCS), <b>ccr4k</b> (4K)
<LI>other: <b>hef4c</b> (He-flow cryostat 4circle), <b>sup4t</b> (4 T supraconducting magnet)
</UL>
<p>
<h3><a name="itc4">ITC-4</a> and ITC-503 Temperature Controllers</h3>
<p>
These temperature controller were fairly popular at SINQ. They are
manufactured by
Oxford Instruments. At the back of this controller is a RS-232
socket which must be connected to a Macintosh computer running the SINQ
terminal server program via a serial cable. Please make sure with a different
Macintosh or a PC that the serial line is OK and the ITC-4 responding before
plugging it in.
</p>
<h4>ITC-4 Initialisation</h4>
<p>
An ITC-4 can be configured into the system by:
<BLOCKQUOTE>
EVFactory new Temp ITC4 computer port channel
</BLOCKQUOTE>
This creates an ITC-4 controller object named Temp within the system. The
ITC-4 is expected to be connected to the serial port channel at the
Macintosh computer computer running the SINQ terminal server program
listening at port port. For example:
<BLOCKQUOTE>
EVFactory new Temp ITC4 lnsp22.psi.ch 4000 7
</BLOCKQUOTE>
connects Temp to the Macintosh named lnsp22, serial port 6
(7 above is no typo!), listening at port 4000.
</P>
<h4>ITC-4 Additional Parameters</h4>
<p>
The ITC-4 has a few more parameter commands:
<DL>
<DT>timeout
<DD>Is the timeout for the Macintosh terminal server program waiting for
responses from the ITC-4. Increase this parameter if error messages
containg ?TMO appear.
<DT> sensor
<DD> Sets the sensor number to be used for reading temperature.
<DT> control
<DD> Sets the control sensor for the ITC-4. This sensor will be used
internally for regulating the ITC-4.
<DT>divisor
<DD>The ITC4 does not understand floating point numbers, the ITC-503 does.
In order to make ITC4's read and write temperatures correctly floating point
values must be multiplied or divided with a magnitude of 10. This parameter
determines the appropriate value for the sensor. It is usually 10 for a sensor
with one value behind the comma or 100 for a sensor with two values after
the comma.
<DT>multiplicator
<DD>The same meaning as the divisor above, but for the control sensor.
</DL>
<h4>Installing an ITC4 step by step</h4>
<p>
<ol>
<li>Connect the ITC temperature controller to port 6 on the Macintosh
serial port extension box. Port 6 is specially configured for dealing with
the ideosyncracies of that device. No null modem is needed.
<li>Install the ITC4 into SICS with the command: <br>
evfactory new name Macintoshname 4000 7<br>
Thereby replace name with the name you want to address the ITC4 in SICS. A
good choice for a name is temperature, as such a value will be written to data files.
Please note, that SICS won't let you use that name if it already exists. For
instance if you already had a controller in there. Then the command:<br>
evfactory del name <br>
will help. Macintoshname is the name of the instrument Macintosh PC.
<li>Configure the upper and lowerlimits for your controller appropriatetly.
<li>Figure out which sensor you are going to use for reading temperatures.
Configure the sensor and the divisor parameter accordingly.
<li>Figure out, which sensor will be used for controlling the ITC4. Set the
parameters control and multiplicator accordingly. Can be the same as the
sensor.
<li>Think up an agreeable temperature tolerance for your measurement. This
tolerance value will be used 1) to figure out when the ITC4 has reached its
target position. 2) when the ITC4 will throw an error if the ITC4 fails to
keep within that tolerance. Set the tolerance parameter according to the
results of your thinking.
<li>Select one of the numerous error handling strategies the control
software is able to perform. Configure the device accordingly.
<li> Test your setting by trying to read the current temperature.
<li> If this goes well try to drive to a temperature not to far from the
current one.
</ol>
</p>
<h4>ITC-4 Trouble Shooting</h4>
<p>
If the ITC-4 <b>does not respond at all</b>, make sure the serial connection to
the Macintosh is working. Use standard RS-232 debugging procedures for doing
this. The not responding message may also come up as a failure to
connect
to the ITC-4 during startup.
</p>
<p> If error messages containing the string <b>?TMO</b> keep appearing
up followed
by signs that the command has not been understood, then increase the
timeout. The standard
timeout of 10 microseconds can be to short sometimes.
</p>
<p>
You keep on reading <b>wrong values</b> from the ITC4. Mostly off by a
factor 10. Then set the divisor correctly. Or you may need to choose a
decent sensor for that readout.
</p>
<p>
Error messages when <b>trying to drive the ITC4</b>. These are usually the
result of a badly set multiplicator parameter for the control sensor.
</p>
<p>
The ITC4 <b>never stops driving</b>. There are at least four possible
causes for this problem:
<ol>
<li>The multiplicator for the control sensor was wrong and the ITC4 has now
a set value which is different from your wishes. You should have got error
messages then as you tried to start the ITC4.
<li>The software is reading back incorrect temperature values
because the sensor and
divisor parameters are badly configured. Try to read the temperature and if
it does have nothing to do with reality, set the parameters accordingly.
<li>The tolerance parameter is configured so low, that the ITC4 never
manages to stay in that range. Can also be caused by inappropriate PID
parameters in the ITC4.
<li>
You are reading on one sensor (may be 3) and controlling on another one (may
be 2). Then it may happen that the ITC 4 happily thinks that he has reached
the temperature because its control sensor shows the value you entered as
set value. But read sensor 3 still thinks he is far off. The solution is to
drive to a set value which is low enough to make the read sensor think it is
within the tolerance. That is the temperature value you wanted after all.
</ol>
</p>
<h3><a name="haake">Haake</a> Waterbath Thermostat</h3>
<p>
This is sort of a bucket full of water equipped with a temperature
control system. The RS-232 interface of this device can only be operated at
4800 baud max. This is why it has to be connected to the serial printer port
of the Macintosh serial port server computer. This makes the channel number to
use for initialisation a 1 always. The driver for this device has been
realised in the Tcl extension language of the SICS server. A prerequisite
for the usage of this device is that the file hakle.tcl is sourced in the
SICS initialisation file and the command inihaakearray has been published.
Installing the
Haake into SICS requires two steps: first create an array with
initialisation parameters, second install the device with evfactory. A
command procedure is supplied for the first step. Thus the initialisation
sequence becomes:
<BLOCKQUOTE>
inihaakearray name-of-array macintosh-computer name port channel<br>
evfactory new temperature tcl name-of-array
</BLOCKQUOTE>An example for the SANS:
<BLOCKQUOTE>
inihaakearray eimer lnsp25.psi.ch 4000 1 <br>
evfactory new temperature tcl eimer
</BLOCKQUOTE>
Following this, the thermostat can be controlled with the other environment
control commands.
</p>
<p>
The Haake Thermostat understands a single special subcommand: <b>sensor</b>.
The thermostat may be equipped with an external sensor for controlling and
reading. The subcommand sensor allows to switch between the two. The exact
syntax is:
<BLOCKQUOTE>
temperature sensor val
</BLOCKQUOTE>
val can be either intern or extern.
</p>
<h3><a name="dilu">Dilution</a> Cryostat</h3>
<p>
This is a large ancient device for reaching very low temperatures. This
cryostat can be configured into SICS with the command:
<pre>
EVFactory new Temp dillu computer port channel table.file
</pre>
Temp is the name of the dilution controller command in SICS, dillu is the
keyword which selects the dilution driver, computer, port and channel are
the parameters of the Macintosh-PC running the serial port server program.
table.file is the fully qualified name of a file containing a translation
table for this cryostat. The readout from the dilution controller is a
resistance. This table allows to interpolate the temperature from the
resistance measurements and back. Example:
<pre>
evfactory new temperature dillu lnsp19.psi.ch 4000 1 dilu.tem
</pre>
installs a new dilution controller into SICS. This controller is connected
to port 1 at the Macintos-PC with the newtwork adress lnsp19.psi.ch. On this
macintosh-PC runs a serial port server program listening at TCP/IP port
4000. The name of the translation table file is dilu.tem.
</p>
<p>
The dilution controller has no special commands, but two caveats: As of
current (October 1998) setting temperatures does not work due to problems
with the electronics. Second the dilution controller MUST be connected to
port 1 as only this port supports the 4800 maximum baud rate this device
digests.
</p>
<h3><a name="bruker">Bruker</a> Magnet Controller B-EC-1</h3>
<p>
This is the Controller for the large magnet at SANS. The controller is a
box the size of a chest of drawers. This controller can be operated in one
out of two modes: in <b>field</b> mode the current for the magnet is controlled via
an external hall sensor at the magnet. In <b>current</b> mode, the output current
of the device is controlled. This magnet can be configured into SICS with a
command syntax like this:
<BLOCKQUOTE>
evfactory new name bruker Mac-PC Mac-port Mac-channel
</BLOCKQUOTE>
</p>
<p>
name is a placeholder for the name of the device within SICS. A good
suggestion (which will be used throughout the rest of the text) is magnet.
bruker is the keyword for selecting the bruker driver. Mac-PC is the name of
the Macintosh PC to which the controller has been connected, Mac-Port is the
port number at which the Macintosh-PC's serial port server listens.
Mac-channel is the RS-232 channel to which the controller has been
connected. For example (at SANS):
<pre>
evfactory new magnet bruker lnsp25.psi.ch 4000 9
</pre>
</p>
<p>
creates a new command magnet for a Bruker magnet Controller connected to
serial port 9 at lnsp25.
</p>
In addition to the standard environment controller commands this magnet
controller understands the following special commands:
<DL>
<DT>magnet polarity
<DD> Prints the current polarity setting of the controller. Possible
answers are plus, minus and busy. The latter indicates that the controller
is in the process of switching polarity after a command had been given to
switch it.
<DT>magnet polarity val
<DD>sets a new polarity for the controller. Possible values for val are
<b>minus</b> or <b>plus</b>. The meaning is self explaining.
<DT>magnet mode
<DD> Prints the current control mode of the controller. Possible
answers are <b>field</b> for control via hall sensor or <b>current</b> for
current control.
<DT>magnet mode val
<DD>sets a new control mode for the controller. Possible values for val are
<b>field</b> or <b>current</b>. The meaning is explained above.
<DT>magnet field
<DD>reads the magnets hall sensor independent of the control mode.
<DT>magnet current
<DD>reads the magnets output current independent of the control mode.
</DL>
<p>
<big>Warning:</big> There is a gotcha with this. If you type only magnet a
value will be returned. The meaning of this value is dependent on the
selected control mode. In current mode it is a current, in field mode it is
a magnetic field. This is so in order to support SICS control logic.
You can read values at all times explicitly using magnet current or
magnet field.
</p>
<h3><a name="ltc11">The CryoFurnace.</a></h3>
<p>
The CryoFurnace at PSI is equipped with a Neocera LTC-11 temperature
controller. This controller can control either an heater or an analag output
channel. Futhermore a choice of sensors can be selected for controlling the
device. The LTC-11 behaves like a normal SICS environment control device
plus a few additional commands. An LTC-11 can be configured into SICS with
the following command:
<BLOCKQUOTE>
evfactory new name ltc11 Mac-PC Mac-port Mac-channel
</BLOCKQUOTE>
</p>
<p>
name is a placeholder for the name of the device within SICS. A good
suggestion is temperature.
ltc11 is the keyword for selecting the LTC-11 driver. Mac-PC is the name of
the Macintosh PC to which the controller has been connected, Mac-Port is the
port number at which the Macintosh-PC's serial port server listens.
Mac-channel is the RS-232 channel to which the controller has been
connected. For example (at DMC):
<pre>
evfactory new temperature ltc11 lnsp18.psi.ch 4000 6
</pre>
</p>
<p>
creates a new command magnet for a LTC-11 temperature Controller connected to
serial port 6 at lnsp18.
</p>
<p>
The additional commands understood by the LTC-11 controller are:
<dl>
<dt>temperature sensor
<dd> queries the current sensor used for temperature readout.
<dt>temperature sensor val
<dd> selects the sensor val for temperature readout.
<dt>temperature controlanalog
<dd> queries the sensor used for controlling the analog channel.
<dt>temperature controlanalog val
<dd> selects the sensor val for controlling the analog channel.
<dt>temperature controlheat
<dd> queries the sensor used for controlling the heater channel.
<dt>temperature controlheat val
<dd> selects the sensor val for controlling the heater channel.
<dt>temperature mode
<DD>queries if the LTC-11 is in analog or heater control mode.
</dl>
</p>
<p>
Further notes: As the CryoFurnace is very slow and the display at the
controller becomes unusable when the temperature is read out to often, the
LTC-11 driver buffers the last temperature read for 5 seconds. Setting the
mode of the LTC-11 is possible by computer, but not yet fully understood and
therefore unusable.
</p>
<h3><a name="euro">The Eurotherm Temperature Controller</a></h3>
<p>
At SANS there is a Eurotherm temperature controller for the sample heater.
This and probably other Eurotherm controllers can be configured into SICS
with the following command. The eurotherm needs to be connected with a
nullmodem adapter.
<BLOCKQUOTE>
evfactory new name euro Mac-PC Mac-port Mac-channel
</BLOCKQUOTE>
</p>
<p>
name is a placeholder for the name of the device within SICS. A good
suggestion is temperature.
euro is the keyword for selecting the Eurotherm driver. Mac-PC is the name of
the Macintosh PC to which the controller has been connected, Mac-Port is the
port number at which the Macintosh-PC's serial port server listens.
Mac-channel is the RS-232 channel to which the controller has been
connected. <b>WARNING:</b> The eurotherm needs a RS-232 port with an unusual
configuration: 7bits, even parity, 1 stop bit. Currently only the SANS
Macintosh port 13 (the last in the upper serial port connection box) is
configured like this! Thus, an example for SANS and the name temperature
looks like:
<pre>
evfactory new temperature euro lnsp25.psi.ch 4000 13
</pre>
</p>
<p>
There are two further gotchas with this thing:
<ul>
<li>The eurotherm needs to operate in the EI-bisynch protocoll mode. This has
to be configured manually. For details see the manual coming with the machine.
<li>The weird protocoll spoken by the Eurotherm requires very special control
characters. Therefore the send functionality usually supported by a SICS
environment controller could not be implemented.
</ul>
</p>
<h3><a name="a1931">The Risoe A1931 Temperature Controller</a></h3>
<p>
This is a temperature controller of unknown origin (probably built at
Risoe) which is coming with the Risoe instruments. This temperature
controller is connected to the computer systems through a GPIB bus and
controller. A A1931 temperature controller is configured into SICS
through the command:
<BLOCKQUOTE>
evfactory new temperature-name a1931 gpib-controller-name gpibaddress
</BLOCKQUOTE>
This creates a new command temperature-name. gpib-controller-name is
the name of a GPIB controller within SICS. A GPIB controller is
configured into SICS with the command MakeGPIB as described in the
SICS managers documentation. gpibaddress is the address of the A1931 on the
GPIB bus.
</p>
<p>
A A1931 temperature device understands a couple of additional commands
on top of the standard set:
<dl>
<dt>temperature sensor <it> val</it>
<dd>The A1931 can switch control to various sensors. This command
allows to query the control sensor (command without parameter) or set
the control sensoe (command with parameter).
<dt>temperature file filename
<dd>The A1931 can be configured through files containing calibration
commands. Sich file can be loaded into the A1931 through the file
subcommand. The full path of filename must be given.
</dl>
</p>
<h3><a name="el755">The PSI-EL755 Magnet Controller</a></h3>
<p>
This is magnet controller developed by the electronics group at
PSI. It consists of a controller which interfaces to a couple of power
supplies. The magnets are then connected to the power supplies. The
magnetic field is not controlled directly but just the power output of
the power supply. Also the actual output of the power supply is NOT
read back but just the set value after ramping. This is a serious
limitation because the computer cannot recognize a faulty power supply
or magnet. The EL755 is connected to SICS with the command:
<BLOCKQUOTE>
evfactory new name el755 Mac-PC Mac-port Mac-channel index
</BLOCKQUOTE>
with Mac-PC, Mac-port and Mac-channel being the usual data items for
describing the location of the EL755-controller at the Macintosh
serial port server. index is special and is the number of the power
supply to which the magnet is connected. An example:
<pre>
evfactory new maggi el755 lnsa09.psi.ch 4000 5 3
</pre>
connects to power supply 3 at the EL755-controller connected to lnsa09
at channel 5. The magnet is then available in the system as maggi. No
special commands are supported for the EL755.
</p>
<H3><a name="psidsp">PSI-DSP Magnet Controller</a></h3>
<p>
The PSI-DSP magnet controller has been developed by the PSI
electronics group, most notably by Lukas Tanner, for the
SLS. However, these controllers are now being used at SINQ as
well. This controller has a binary command protocoll and thus the send
command does not work for it. In order to handle this protocoll SICS
has to bypass the usual SerPortServer mechanism for communicating with
serial devices
and to connect to the terminal server directly. This also implies one
gotcha: <b>
The PSI-DSP works only at specially configured terminal server
ports</b>.The terminal server
port to which the PSI-DSP is connected <b>MUST</b> be configured to:
115200 baud, 8 data bits, 1 stop bit, odd parity. In general a system
manager is required to do this. The PSI-DSP also requires a null-modem
connector between the box and the terminal server. Once these hurdles
have been mastered, the PSI-DSP can be configured into SICS with the
command:
<BLOCKQUOTE>
evfactory new name psi-dsp terminalservername port
</BLOCKQUOTE>
with name being the name of the magnet in SICS, terminalservername the
name of the terminal server, for example psts224 and port being the
address of the binary port on the terminal server. This is usually
the serial port number at the terminal server plus 3000. An example:
<BLOCKQUOTE>
evfactory new maggi psi-dsp psts224 3016
</BLOCKQUOTE>
configures a magnet named maggi which is connectd to port 16 at the
terminal server psts224. maggi can now be read and driven like any
other environment device.
</p>
</body>
</html>

64
doc/user/sans.htm Normal file
View File

@ -0,0 +1,64 @@
<html>
<head>
<title> SANS-User Manual </title>
</head>
<body>
<h1><center>SANS-User Manual</center></h1>
<hr size=4 width="66%">
</p>
<p>
This is the user manual for the small angle scattering instrument SANS
situated at the spallation source SINQ, PSI, Switzerland.</p>
<p>
This page links you to:
<ul>
<li>A <a href="sicsinvoc.htm">Program Invocation</a> page.
<li>A <a href=saco.htm> short command list </a> linking into more detailed \
command descriptions.
<li>A description of <a href="general.htm">general</a> SICS-commands.
<li><a href = sanscom.htm>SANS</a> specific
commands and variables.
<li>SANS special <a href="sansdev.htm">device</a> control commands.
<li> A listing of <a href="sanslist.htm">available devices</a>
at SANS.
<LI> Commands for handling <a href=samenv.htm>sample</a> environement
devices.
<LI>Some <a href = trouble.htm>troubleshooting</a> hints.
</UL>
</p>
<hr size=4 width="66%">
<p>
Instrument Description:
<ul>
<li><a href="http://www1.psi.ch/www_sinq_hn/SINQ/instr/SANS.html">SANS</a>
</ul>
</p>
<hr size=4 width="66%">
<p>
Local Contacts:
<ul>
<li><a href="mailto:Joachim.Kohlbrecher@psi.ch">Joachim Kohlbrecher</a>.
</ul>
</p>
<hr size=4 width="66%">
<p>
Download Manual
<ul>
<li><a href="sansman.ps">Postscript Format</a>, 246KB.
</ul>
</p>
<hr size=4 width="66%">
<p>
<ul>
<li><a href="http://lns00.psi.ch/">LNS Computing home page</a>.
<li> <a href="http://www1.psi.ch/www_lns_hn/welcome.html">
Laboratory for Neutron Scattering</a> home page.
<li> <a href="http://www1.psi.ch/www_lns_hn/welcome_sinq.html">SINQ</a> home page.
</ul>
</p>
<hr size=4 width="66%">
<p>
Last updated: 6-May-1999, <a href="mailto:Mark.Koennecke@psi.ch">Mark K&ouml;nnecke</a>
</p>
</body>
</html>

121
doc/user/sanscom.htm Normal file
View File

@ -0,0 +1,121 @@
<html>
<head>
<title> Special SANS Commandos </title>
</head>
<body>
<h1>Special SANS commandos</h1>
<hr size=4 width="66%">
<p>
This section describes some commands special to SANS. One feature of SANS
is that components are used as a whole rather than referring to single
motors. For SANS the beamstop, the detector and the sample table are managed
like this. Within a component each axis can be addressed specificaly by using
an axis = value pair. Axis defined for each component will be listed below.
Additionally these components support a common commands as well. These
mainly deal with named positions. A named position is a set of values which
can be driven to by just specifying its name. For instance: <b>BeamStop
PositionA</b> drives the BeamStop to the position defined as PositionA.
All component drive commands do not
block, i.e. you can type further commands. If it is needed to wait for a
component to arrive, use the <a href = drive.htm>Success</a> command right
after your command.
</p>
<h2> Commands supported by all components</h2>
<p>
In the following the name of the component will be represented by COP.
<DL>
<DT> COP
<DD> The name of the component alone will yield a listing of the current
position of the component. This is also a way how to find out which axis the
component supports.
<DT> COP back
<DD> drives the component back to the position before the last command.
Please note, that back does not operate on istself, i.e. two times COP back
will not do a trick.
<DT> COP pos name
<DD> This command promotes the current position of the component to a named
position name. Afterwards this position can be reached by typing: COP name.
<DT> COP defpos name mot val mot val ....
<DD> this command defines a named position named name. This must be followed
by a list of motor alias names to run and their values.
<DT> COP drop name
<DD> deletes the named position specified as second parameter.
<DT> COP axis = val axis = val ........
<DD> drives the component to the new position specified by 1-n sets of axis
name = value pairs. The axis refer to the internal axis of the component
which are listed below or can be seen in a listing as created by typing COP.
</DL>
</p>
<h2> Specific components</h2>
<p>
This section lists the components which follow the component syntax described
above. Furthermore the axis available for each component are listed. Each
component has two names: a long one and a short one given in parantheses.
<DL>
<DT>BeamStop (bs)
<DD> The beam stop in front of the detector. Supports tow axis:
<UL>
<LI>X, the horizontal movement.
<LI>Y, the vertical movement.
</UL>
The beam stop has additional command assoicated with it:
<ul>
<li>bsout, drives the beamstop out of the beam.
<li>bsin, drives the beam into position.
<li>bschange, inquires the current beam stop.
<li>bschange par, changes the beam stop to the specified number. Valid numbers are:
<ul>
<li>1, no beam stop.
<li>2, small beam stop.
<li>3, medium beam stop.
<li>4, large beam stop.
</ul>
<lI>bsfree, when changing the beam stop goes wrong the beam stop may be in
a locked state. This command releases this lock. Drive with great care then!
</ul>
<DT>detector (dt)
<DD> moves the detector around. The following axis are available:
<UL>
<LI>X, the movement along the tank.
<LI>Y, a movement sideways.
<LI>phi, the rotation of the detector.
</UL>
<DT> sample (sa)
<DD> the sample table. Support the axis:
<UL>
<LI>Omega, sample table rotation.
<LI>X, translation X
<LI>Y, translation Y.
>LI>Z, translation Z.
<LI>phi, cradle 1.
<LI>chi, cradle 2.
</UL>
</DL>
</p>
<h2>The Shutter </h2>
<p>
Even the shutter can be opnend from within SICS. Please note, that this will
only work if the LBC says it is OK, i.e. the enclosure is locked.
<ul>
<li>shutter, prints the shutter status.
<li>shutter open, opens the shutter.
<li>shutter close, closes the shutter.
</ul>
</p>
<h2> Usage examples </h2>
<p>
<DL>
<DT> bs X = 12. Y 200
<DD> moves the beam stop to 12 horizontal position, Y vertical position.
<DT> bsout
<DD> drives the beam stop to the previously defined position out.
<DT> bsback
<DD> drives the beam stop to the position before the preceeding command.
</DL>
</p>
</body>
</html>

21
doc/user/sansdev.htm Normal file
View File

@ -0,0 +1,21 @@
<html>
<head>
<title> SANS-Devices </title>
</head>
<body>
<h1>SANS-Devices</h1>
<hr size=4 width="66%">
<p>
SANS control a couple of <a href= motor.htm>motors</a>, a
<a href = histogram.htm>histogram memory</a>, a
<a href = counter.htm>counter box</a> for
reading monitors, a <a href = velocity.htm>velocity selector</a>, its
associated <a href="velolambda.htm">wavelength</a> variable and various
<a href=samenv.htm>environment.htm</a> control devices. Each of these
devices understands commands. The syntax understood by each of these devices
will be discussed, followed by a <a href = sanslist.htm>list</a>
of devices following this syntax.
<p>
</p>
</body>
</html>

56
doc/user/sanslist.htm Normal file
View File

@ -0,0 +1,56 @@
<html>
<head>
<title> List of SANS devices</title>
</head>
<body>
<h1>SANS Device list</h1>
<hr size=4 width="66%">
<h2> Motors </h2>
<p>
<DL>
<DT>BeamStopX
<DD> this motor controls the vertical movement of the beam stop.
<DT>BeamStopY
<DD> this motor controls the horizontal movement of the beam stop.
<DT>DetectorX
<DD> this motor controls the movement of the detector along the tank.
<DT>DetectorY
<DD> this motor moves the detector sideways.
<DT>DetectorRotation
<DD> rotates the detector.
</DL>
</p>
<h2>Counters </H2>
<p>
There is only one named counter. It controls the following monitors:
To be filled in by Joachim Kohlbrecher.
</p>
<h2>Variables</h2>
<p>
<DL>
<DT>Instrument
<DD> holds the name of the Instrument, in SANS case: "SANS at SINQ, PSI".
This cannot be changed by ordinary members of the public.
<DT>Title
<DD> the title of the instrument. This will be written to the output file.
Should be set by the user to something sensible.
<DT>User
<DD> the user of the instrument. This will be written to the output file.
Should be set by the user to something sensible.
<DT>Comment1
<DD> one line of comment to be written to the outputfile.
Should be set by the user to something sensible.
<DT>Comment2
<DD> another line of comment to be written to the outputfile.
Should be set by the user to something sensible.
<DT>environment
<DD> a line of text describing special environment conditions to be written
to the output file. This is for those cases where the sample environment is not
computer controlled and therefore not visible to the program. Users are
responsible for filling this in.
</DL>
</p>
</body>
</html>

63
doc/user/sansman Normal file
View File

@ -0,0 +1,63 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
SANS--Reference Manual \\
\end{huge}
Version 0.1, 10.6.1997\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\abstract{
This is the users manual for the small angle scattering spectrometer SANS
situated at SINQ, PSI, Switzerland. This instrument is operated through the
SINQ instrument control software SICS. This is a client server system, with
a server implementing the control operations and clients implementing the
user interface. This manual describes the commands understood by SANS.
Further information is available in the SICS's manager manual and the SICS
programmers reference.
}
\clearpage
%html sicsinvoc.htm 1
%html general.htm 1
%html basic.htm 1
%html system.htm 1
%html config.htm 1
%html macro.htm 1
%html buffer.htm 1
%html drive.htm 1
%html logbook.htm 3
%html commandlog.htm 3
%html optimise.htm 2
%html token.htm 1
%html sanscom.htm 1
%html sansdev.htm 1
%html motor.htm 1
%html counter.htm 1
%html histogram.htm 1
%html velocity.htm 1
%html velolambda.htm 1
%html samenv.htm 1
%html trouble.htm 1
%html sanslist.htm 1
%html saco.htm 1
\end{document}

BIN
doc/user/sharpend1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
doc/user/sharpend2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
doc/user/sharpend3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

107
doc/user/short.htm Normal file
View File

@ -0,0 +1,107 @@
<HTML>
<HEAD>
<TITLE>Short List of SICS Programs</TITLE>
</HEAD>
<BODY>
<H1>Short List of SICS Programs</H1>
<P>
<h1>Logging in to Unix Workstations</h1>
You are required to have a user name and a password in order to log on to one
of the instrument workstations. There are several possible cases:
<ul>
<li>You have a PSI network account in the LNS group: use your very own name
and password.
<li> You are a guest: use account lnsg with password Saphir. You will be
asked for your name, type it in and you will be automatically directed to
a directory of your own.
</ul>
</P>
<p>
<h1>Running the SICS Instrument Control System </h1>
SICS is a client server system. This means there is a server doing the hard
work and client programs with which you interact. Thus in order to run SICS
two programs are necessary.
<DL>
<DT>A SICS server
<DD> You need not worry about that one. The system will keep it alive. But
see below.
<DT>A SICS Client.
<DD> These are the programs you interact with. There are different ones for
different instruments. The next section shows how to start them.
</DL>
</p>
<p>
<b> All SICS Clients</b> are inactive after having been started up. In order
to be useful each client needs to be connected to a SICS instrument control
server. This is achieved through the menu entries in the Connect menu. For
usage instructions for the clients, consult the help menu of the client in
question.
</p>
<p>
<h2>General SICS Clients</h2>
This section describes SICS clients common to all instruments. There are
two of those:
</p>
<p>
The <b> SICS Command Line Client</b> allows to control the instrument. It
can be started by typing: <b> sics &</b>. SICS supports a hierarchical
system of user privileges. After connecting to a SICS server a client may
look at everything but cannot change anything or even run an experiment. In
order to do this, you need to authorize yourself at the SICS server. This
can be done with the User Parameters/Set Rights dialog. A valid
username/password combination is: lnsuser/98lns2. When starting a new
experiment do not forget to set experiment information with the User
Parameter/New Experiment menu. Otherwise we might find it impossible to
recover your files when you ask for them in 10 years time.
</p>
<p>
The second general pupose SICS client is the <b>variable watcher</b>. It plots the
value of any SICS variable over time. It can be started by typing:
<b>varwatch &</b> at the command prompt. This client must be connected and
configured through the Plot/Configure menu before becoming useful.
</p>
<p>
<h2>DMC Programs</h2>
The powder diffractometer DMC has two special programs:
</p>
<p>
A <b>status display</b>, which shows the current powder diagram together with some
auxiliary information. It can be started by typing <b>powderstatus &</b> at
the command prompt.
</p>
<p>
Another program is used for <b>summing and subtracting powder diffraction
diagrams</b> to a result diagram and to write the result in ASCII. This program
can be started by typing <b>powderplus &</b> at the command prompt.
</p>
<p>
<h2>TOPSI Programs</h2>
TOPSI has only a <b>status display</b>, which shows the current scan together with
some auxiliary information. It can be started by typing <b>topsistatus &</b> at
the command prompt.
</p>
<p>
<h2>SANS Programs</h2>
SANS has only a <b>status display</b>, which shows the current detector counts and
some auxiliary information. It can be started by typing <b>sansstatus &</b> at
the command prompt.
</p>
<p>
<h1>SICS Manager Commands</h1>
These commands install and start SICS services. They must be
executed from the instrument account on the instrument computer. When using
the shell script sicsinstall, you need to be in the home
directory of the instrument account. The commands are:
<DL>
<DT>startsics
<DD> starts all SICS servers properly. Usually this must only be used after
a reboot of the instrument computer.
<DT>sicsinstall exe
<DD>installs new SICS executable files into the appropriate directories.
<DT>sicsinstall instrument
<DD>installs all files necessary for running the instrument. instrument must
be one of: dmc, topsi or sans.
</DL>
</p>
</BODY>
</HTML>

134
doc/user/sicsinvoc.htm Normal file
View File

@ -0,0 +1,134 @@
<html>
<head>
<title> SICS Invocation </title>
</head>
<body>
<h1>SICS Invocation</h1>
<p>
SICS means SINQ Instrument Control System.
SICS is a client server system. This means there are at least two programs
necessary to run the experiment. The first
is the
SICServer which does the actual instrument control work. A user rarely needs
to bother about this server program as it is meant to run all the time.
See instructions below if things go wrong.
</p>
<p>
Then there are client programs which interact with the
instrument control server. These client programs implement the status
displays and a command line application which forwards commands to the
SICS server and displays its response. Graphical User Interfaces may
be added at a later time.
The user has only to deal with
these SICS client programs. SICS Clients and the SICServer communicate
with each other through the TCP/IP network.
</p>
<p>
Currently these SICS clients are available:
<uL>
<li> A command line control client for sending commands to the SICS
server and displaying its repsonses.
<li> A status display for the powder diffractometers DMC and HRPT.
<li> A status display for TOPSI.
<li> A status display for SANS.
<li> A status display for FOCUS.
<li> A AMOR control and status program.
<li> A triple axis control and status program.
<li> A SICS variable watcher. This application graphically logs the
change of a SICS variable over time. Useful for monitoring for
instance temperature controllers.
</ul>
</p>
<p>
<h2>Steps necessary for logging in to SICS</h2>
The following actions have to be taken in order to interact with the
SICS server through a client:
<uL>
<li>Start the client application.
<li>Connect the client to a SICS server.
<li>In case of command line clients: authorize yourself as
privileged SICS user.
</uL>
</p>
<h2>Starting SICS client applications </h2>
<p>
These programs can be started on a DigitalUnix system by issuing the
following commands at the command prompt:
<dl>
<DT>sics &
<DD> for the control client.
<DT>powderstatus &
<DD> for the DMC status display client.
<DT>topsistatus &
<DD>for the TOPSI status display.
<DT>sansstatus &
<DD> for the SANS status display.
<DT>focustatus
<DD> for the FOCUS status display.
<DT>amor &
<DD> for the AMOR status display and control application.
<DT>tas &
<DD> for the triple axis status display and control application.
<DT>varwatch &
<DD> for the variable watcher.
</dl>
On a PC you may find icons for starting the different programs on the
desktop.
Each of these clients has usage instructions online which can be displayed
through the help/about menu entry.
</p>
<h2>Connecting</h2>
<p>
After startup any SICS client is not connected to a SICS server and thus not
active. A connection is established through the connect menu of the client.
</p>
<h2>Authorization</h2>
<p>
SICS is a multi user instrument control system. In order to prevent
malicious manipulations of the instrument SICS supports a hierarchy of user
rights. In order to run an experiment you need at least user level privilege.
In order to achieve this privilege you have to invoke the User Parameter/Set
Rights dialog. There you have to enter the apropriate username and password
kindly provided by your instrument scientist.
</p>
<h2>Restarting the Server</h2>
<p>
The SICS server should be running all the time. It is only down if something
went wrong. You can check for the presence of the SICS server by loging in
to the instrument computer and typing <b>CheckSICS</b> at the command
prompt. The output will tell you what is happening. If you need to restart
the SICS server log in as the instrument user at the instrument computer and
invoke the appropriate command to start the server. These are:
<dl>
<DT>DMC
<DD>Computer = lnsa05,User = DMC
<DT>TOPSI
<DD>Computer = lnsa07,User = TOPSI
<DT>SANS
<DD>Computer = lnsa10,User = SANS
<DT>TRICS
<DD>Computer = lnsa18, User = TRICS
<DT>HRPT
<DD>Computer = lnsa11, User = HRPT
<DT>FOCUS
<DD>Computer = lnsa16, User = FOCUS
<DT>AMOR
<DD>Computer = lnsa14, User = AMOR
<DT>TASP
<DD>Computer = lnsa12, User = TASP
<DT>POLDI
<DD>Computer = poldi, User = POLDI
</dl>
For starting the SICS server type <b>startsics</b>. This is a shell script
which will starts all necessary server programs. This script works only on
the instrument computer and in the appropriate instrument account.
</p>
<p>
If all this does not help look under <a href="trouble.htm">trouble shooting
SICS</a>.
</p>
</body>
</html>

62
doc/user/sicsinvoc.txt Normal file
View File

@ -0,0 +1,62 @@
SICS Invocation
SICS is a client server system. This means there are two programs. The first
is a SICServer which does the actual instrument control work. A user rarely
needs to bother about this server program as it is meant to run all the
time. See instructions below if things go wrong. The user has only to deal
with the SICS client programs. These implement the user interface to SICS.
SICS Clients and the SICServer communicate with each other through TCP/IP
sockets.
Currently four SICS clients are available:
* A command line control client which allows to control the measurement.
* A status display for DMC.
* A status display for TOPSI.
* A status display for SANS.
These programs can be started on a DigitalUnix system by issuing the
following commands at the command prompt:
sics &
for the control client.
powderstatus &
for the DMC status display client.
topsistatus &
for the TOPSI status display.
sansstatus &
for the SANS status display.
On a PC you may find icons for starting the different prograsm on the
desktop. Each of these clients has usage instructions online which can be
displayed through the help/about menu entry.
Connecting and Logging in
After startup any SICS client is not connected to a SICS server and thus not
active. A connection is established through the connect menu of the client.
SICS is a multi user instrument control system. In order to prevent
malicious manipulations of the instrument SICS supports a hierarchy of user
rights. In order to run an experiment you need at least user level
privilege. In order to achieve this privilege you have to invoke the User
Parameter/Set Rights dialog. There you have to enter the apropriate username
and password kindly provided by your instrument scientist.
Restarting the Server
The SICS server should be running all the time. It is only down if something
went wrong. You can check for the presence of the SICS server by loging in
to the instrument computer and typing CheckSICS at the command prompt. The
output will tell you what is happening. If you need to restart the SICS
server log in as the instrument user at the instrument computer and invoke
the apropriate command to start the server. These are:
DMC
Computer = lnsa05,User = DMC, Command = DMCServer
TOPSI
Computer = lnsa03,User = TOPSI, Command = TOPSIServer
SANS
Computer = lnsa07,User = SANS, Command = SANSServer
If all this does not help look under trouble shooting SICS.

63
doc/user/sicsmad Normal file
View File

@ -0,0 +1,63 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
SICS--MAD--Reference Manual \\
\end{huge}
\today \\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\clearpage
\tableofcontents
\clearpage
\chapter{Introduction}
%html sicsmad.htm 1
\chapter{Running SICS}
%html sicsinvoc.htm 2
%html tascli.htm 2
\chapter{SICS User Commands}
%html logging.htm 2
%html logbook.htm 3
%html commandlog.htm 3
%html batch.htm 2
%html macro.htm 3
%html buffer.htm 3
%html token.htm 2
%html tasstore.htm 2
%html tasmad.html 1
%html madsim.htm 1
\chapter{Advanced Topics}
%html samenv.htm 2
%html motor.htm 2
%html counter.htm 2
%html ctrl.htm 2
%html system.htm 2
%html config.htm 2
%html trouble.htm 2
\end{document}

98
doc/user/sicsmad.htm Normal file
View File

@ -0,0 +1,98 @@
<HTML>
<HEAD>
<TITLE>SICS MAD Reference Manual</TITLE>
</HEAD>
<BODY>
<!latex-off>
<H1>SICS MAD Reference Manual</H1>
<!latex-on>
<P>
Welcome to SICS-MAD! SICS-MAD is the SINQ solution for running triple
axis spectrometers. The name consists of two parts: SICS is the SINQ
Instrument Control System. MAD is mad. It is a compatability layer on
top of SICS which emulates the command set and behaviour of the
venerable MAD software from the ILL.
</P>
<p>
SICS is a client server system. This means there is a magic server
program running on the instrument computer which does all the work.
The user interacts with SICS
only with client applications which communicate with the server
through the network. Most instrument hardware (motor controllers,
counter boxes etc.) is connected to the system through RS-232 serial
connections. These RS-232 ports are connected to a terminal server
which is accessed through another server program, the SerPortServer
program, which is also running on the instrument computer.
The SICS server communicates with the terminal server and other
devices through the network.
</p>
<p>
The MAD compatibility layer is implemented in the SICS server. Most
MAD commands were mapped to their SICS equivalents through procedures
written in SICS internal scripting language. Some crucial operations,
such as driving and scanning, were implemented in C, sometimes even
using F77 routines from the ILL MAD sources for performing the triple
axis calculations.
</p>
<p>
SICS clients are small programs which implement the user interface to
the SICS server. Clients connect to the SICS server through the TCP/IP
network and display the instrument status or allow to control the
instrument. Of interest to the triple axis spectrometer user are the
dedicated TAS client, named tas, the general SICS comand line client,
sics, and the variable watcher, varwatch, which allows to plot any
SICS variable as a function of time. All clients are java applications
and can be run from any computer for which a JDK1.1 compatible Java
runtime system is available.
</p>
<!latex-off>
<h1>Running SICS</h1>
<p>
<ul>
<li><a href="sicsinvoc.htm">Logging</a> in to SICS.
<li>The <a href="tascli.htm">Triple Axis Client</a> program.
</ul>
</p>
<h1>General SICS Commands</h1>
<p>
<ul>
<li><a href="logging.htm">Logging</a> actions.
<li><a href="batch.htm">Batch</a> processing.
<li><a href="token.htm">Grabbing control</a>.
<li>Triple axis <a href="tasstore.htm">data files</a>.
</UL>
</p>
<h1>MAD Compatibility Commands</h1>
<p>
<ul>
<li><a href="tasmad.html#Terminology">Terminology and Conventions</a>
<li><a href="tasmad.html#Syntax">Syntax </a>
<li><a href="tasmad.html#Commands">Commands</a>
<li><a href="tasmad.html#Special_commands">Special commands</a>
<li><a href="tasmad.html#Standard_hints">Standard hints</a>
<li><a href="tasmad.html#Measurement_Modes">Measurements Modes</a>
<li><a href="tasmad.html#Variables">Variables</a>
</ul>
</p>
<h1><a href="madsim.htm">Simulation Mode</a></h1>
<h1>Advanced Topics</h1>
<p>
<UL>
<li>Handling <a href="samenv.htm">sample environment</a> devices in SICS.
<li><a href="motor.htm">Motor Parameters</a>.
<li>Dealing with the <a href="counter.htm">counter box</a>.
<li>Directly access a <a href="ctrl.htm">serial device.</a>
<li>SICS <a href="system.htm">system commands</a>.
<li>Configuring a <a href="config.htm">client connection</a> manually.
<li><a href="trouble.htm">Trouble</a> shooting.
</UL>
</p>
<h1>Download Manual</h1>
<ul>
<li><a href="sicsmad.ps">Postscript Format</a>,246KB
</ul>
<!latex-on>
</BODY>
</HTML>

24
doc/user/sicsnews.txt Normal file
View File

@ -0,0 +1,24 @@
SICS News Ticker
This page contains information about the latest bug fixes, releases and
other miscellaneous information about SICS.
Juli 1998
Status OutOfMemory
Bug in status display clients fixed which caused OutOfMemory after some
time of automatic update.
topsistatus
TOPSI has got a java status client now as well. Can be invoked with
topsistatus. On the WWW also.
commandlog
On popular demand the SICS server can now write a log file which logs
all communication between clients with user or manager privilege and
the SICserver. This log is off by default. There is a new SICS command
commandlog which serves to configure this log.
8-fold counterboxes.
SICS now reads all eight monitors.
sicsinstall
There is now a shell script which automatizes updating and installing
SICS. For more information see the setup section of the SICS managers
guide.

49
doc/user/system.htm Normal file
View File

@ -0,0 +1,49 @@
<html>
<head>
<title> System Commands </title>
</head>
<body>
<h2>System Commands</h2>
<p>
<b> sics_exitus </b>. A single word commands which shuts the server down. Only managers may use this command.</p>
<p>
<b> wait <i>time</i> </b> waits time seconds before the next command is executed. This does not stop other clients from issuing commands.</p>
<p>
<b> resetserver </b> resets the server after an interrupt.</p>
<p>
<b> dir </b> a single word command which lists all objects available in the SICS system in its current configuration.</p>
<p>
<b> status </b> A single word command which makes SICS print its current
status. Possible return values can be:
Eager to execute commands, Scanning, Counting, Running, Halted. Note that if a command is executing which takes some time to complete
the server will return an ERROR: Busy message when further commands are issued.
</p>
<p>
<b>status interest</b> initiates automatic printing of any status change in the
server. This command is primarily of interest for status display client
implementors.
</p>
<p>
<b>backup <i>[file]</i></b> 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.
</p>
<p>
<b>backup motsave</b> 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.
</p>
<p>
<b>restore <i>[file]</i></b> 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.
</p>
</body>
</html>

93
doc/user/tascli.htm Normal file
View File

@ -0,0 +1,93 @@
<HTML>
<HEAD>
<TITLE>The TAS Client</TITLE>
</HEAD>
<BODY>
<H1>The TAS Client</H1>
<P>
The TAS client is the dedicated SICS client for the triple axis
spectrometers. It allows both to control the instrument and to view
its current status.
</P>
<h2>Step 1: Starting the TAS Client</h2>
<p>
On the LNS unix systems the TAS client can be started by typing:
<pre>
tas &
</pre>
at the unix command prompt. For PC's and proper Macintosh computers
(proper is MacOS > 10) the recommended way to start the TAS program is
to install Java Web Start and run it from the SICS Java Web Start
page. Further instructions and the applications can be found at:
http://lns00.psi.ch/sics/wstart .
</p>
<h2>Step 2: Connect to an Instrument</h2>
<p>
Due to the client server architecture, the client program alone is
only of very limited use. In order to become usefule, a connection to
a SICS server has to be established. The obvious way to do this is
through the menu selections in the Connect menu of the TAS
client. There are various entries for various triple axis
spectrometers and their simulation programs. With the Custom Connect
option the connection parameters, the computer running the SICS server
and the server port where the SICS server listens, can be entered
manually. This is only necessary when SICS had to be relocated due to a
hardware outage.
</p>
<h2>Step 3: Use The TAS Client</h2>
<p>
The TAS client consists of a menubar, a row of buttons beneath and a
central activity area. The central activity area can display three
different sub panels. These sub panels are selected through the
buttons underneath the menubar. The following sub panels are
available:
<ul>
<li>A Command Panel for entering commands.
<li>A Status panel displaying the current values of interesting
instrument parameters, most notably the positions of the 6 magic
triple axis motors.
<li>A Plot panel showing the data collected in the currently running
scan and some auxiliary information about the scan.
</ul>
At the very bottom of the screen is a yellow line displaying the
current status of a pending counting operation. Below that is a text
line displaying the current status of the instrument.
</p>
<h3>The Command Panel</h3>
<p>
The command panel consists mainly of a text area in which the
communication between the TAS client and the SICS server is logged. A
text entry field at the bottom serves to enter commands to the SICS
server. The little red button, labelled Interrupt, besides the text
entry field can be used to interrupt the currently running
measurement.
</p>
<p>
The Command Panel has a menu associated with it. Through this menu
logging to a file can be enabled. This log file is written locally on
the machine running the TAS client. Submenu entries are available for
opening and closing such log files. SICS has various levels of user
rights. When connecting to the SICS server you are logged in with
lowest possible privilege. In order to change your privilege, enter a
username and a password through the Command/User Rights dialog.
</p>
<h3>The Plot Panel</h3>
<p>
The Plot Panel displays the data collected in the current scan. This
display is automatically updated as soon as new data becomes available
through the progress of the scan. You may <em>zoom in</em> on details
in th plot by dragging a rectangle enclosing the interesting
region from top to bottom. You may <em>zoom out</em> by dragging a
rectangle from the bottom to the top.
</p>
<h2>Step 4: Closing the TAS Client</h2>
<p>
You can exit the TAS client through the File/Exit menu entry. You can
also disconnect from the current SICS server through the
Connect/Disconnect option and connect to another SICS server through
the menu choices provided.
</p>
</BODY>
</HTML>

1012
doc/user/tasmad.html Normal file

File diff suppressed because it is too large Load Diff

54
doc/user/tasstore.htm Normal file
View File

@ -0,0 +1,54 @@
<HTML>
<HEAD>
<TITLE>TAS Data Storage</TITLE>
</HEAD>
<BODY>
<H1>TAS Data Storage</H1>
<P>
Triple axis spectrometer data is stored in ASCII files. These ASCII
files are formatted in a format compatible to the ILL's triple axis
data file format. Data files can be found in directories:
<pre>
/home/INST/data/YYYY
</pre>
on the instrument computer or in
<pre>
/data/lnslib/data/INST/data/YYYY
</pre>
on any other LNS unix system. INST is a placeholder for the instrument
name in capitals, YYYY for the year of data collection. Data files are
named according to the SINQ naming convention:
<pre>
instRRRRRYYYY.dat
</pre>
with inst being the placeholder for the instrument name in lowercase,
RRRRR the run number as a five digit number and YYYY again the year of
data collection. Example: tasp003302002.dat is data collected in run
number 330 in 2002.
</p>
<p>
The last measured data file can be discarded by typing the command:
<pre>
<em>killfile</em>
</pre>
in SICS. SICS managers privilege is required for this command.
</p>
<p>
Automatically generated log files can be found in the /home/INST/log
directory for each day. They are named according to the scheme:
<pre>
autoYYYY-MM-DD@HH-MM-SS.log
</pre>
YYYY is again the year, MM the month, DD the day, HH the hour, MM the
minute and SS the second of file creation.
</p>
</BODY>
</HTML>

134
doc/user/tchm.htm Normal file
View File

@ -0,0 +1,134 @@
<HTML>
<HEAD>
<TITLE>The Tcl-interface to the SINQ histogram memory</TITLE>
</HEAD>
<BODY>
<H1>The Tcl-interface to The SINQ histogram memory</H1>
<P>
The entry point to the Tcl interface for the SINQ histogram memory is the
SINQHM command. The exact syntax is:<BR>
<EM>SINQHM name computer port </EM><BR>
This command creates a new command, name, which will be used in future to refer
to the histogram memory. The next parameters specify the computer name of the histogram memory (HM)
and the port number where it is listening (mostly 2400). This command initialises all
necesaary data structures and starts a connection to a SINQ HM master server. For the explanation of that,
please refer to documentation for the histogram memory.
</P>
<H2>Configuration commands</H2>
<P>
Now the HM is ready to be configured. The name created as above will for the purpose
of this explanation been assumed to be HMM, for histogram memory master. This
understands the following commands:
<DL>
<DT>HMM config mode modif n length binwidth
<DD> this configures the HM. The parameters are: mode as the measuring mode,
modif, another mode qualifier, n the number of histograms, length for the
length of the histograms and binwidth, the size of an individual bin. Currently only
1,2,4 are supported binwidths. The mode parameter can be:
<DL>
<DT>SQHM_TRANS
<DD> transparent mode, no binning takes place. Useful for debugging.
<DT>SQHM_HM_DIG
<DD>normal histogram mode with digitised read out.
<DT>SQHM_HM_PSD
<DD> a special for charge division read out for a PSD. Binning takes place.
<DT>SQHM_HM_TOF
<DD> time of flight mode.
</DL>
Possible values for the modif are:
<DL>
<DT>SQHM_DEBUG
<DD>starts a debugger in the histogram memory.
<DT>SQHM_UD
<DD>selction of histogram according to up/down bit from electronics???
<DT>SQHM_CNT_OR
<DD>counts out of range events, for debugging purposes.
<DT>SQHM_BO_IGN
<DD> ignores bin overflow.
<DT>SQHM_BO_SMAX
<DD> leaves overflowed bins at maximum count.
<DT>SQHM_BO_CNT
<DD>count bin overflows. They are left in a table.
<DT>SQHM_STROBO
<DD> stroboscopic mode. A signal from the front end electrics defines the
histogram where to bin too.
</DL>
<DT>HMM deconfig harsh
<DD> deconfigures the HM. harsh can be 0 or 1. If 1 all child processes will
be removed as well.
<DT> HMM debug level
<DD> controls the level of debugging information printed by the HM to its COM1
console port.
<DT> HMM exit
<DD> terminates the histogram memory software. DO NOT USE, a reboot is necessary
or a manual restart of the software.
<DT> HMM status
<DD> prints a status report for the HM.
<DT> HMM DAQ name
<DD> starts a data aquisition client with name name. This is needed in order
to invoke data aquisition and read the histogram memory. For more information
see the main histogram memory documentation. Name is a new command afterwards.
<DT> HMM delDAQ name
<DD> terminates the client name. Its associated command gets removed as well.
</DL>
</P>
<H2>Data aquisition commands</H2>
This section describes the commands understood by the command generated by
HMM DAQ name. These commands control data aquisition and read out. For the
purpose of this description, the name of the DAQ command will be assumed
to be HMS, for histogram memory slave. This understands the following commands:
<DL>
<DT>HMS read n start end array
<DD> This reads histogram n into the Tcl array array, which will
be created as necessary. A value of -1 for n means read
out of the whole histogram memory. Reading starts at bin start and end bins are read.
The resulting array will hold values from 0 - end (i.e. Array(0), array(1),..)
where the values read can be found.
<DT> HMS write n start end array
<DD> can be used to write data to the histogram memory. The meaning of the
parameters is the same as for read. Please take care to initialise the
value array properly.
<DT> HMS zero n start end
<DD> a special form of write, which fills the HM with 0.
<DT> HMS start
<DD> starts a data aquisition.
<DT> HMS stop
<DD> stops a data aquisition.
<DT> HMS inhibit
<DD> pauses a data aquistion.
<DT> HMS continue
<DD> continues an inhibited data aquisition session.
</DL>
</P>
<P>
So, this is fairly complex In order clarify the usage of this feature, an example
will be given. In this example a DMC type HM will be configured, data be collected
and read out. The DAQ slave will be deleted.
The data read out will be printed.
<PRE>
SINQHM HMM pfe31.psi.ch 2400
HMM deconfig 1
HMM config SQHM_HM_DIG SQHM_BO_SMAX 1 400 4
HMM DAQ HMS
HMS zero 1 0 400
HMS start
after 30000 # sleep 30 seconds
HMM status
HMS stop
HMS read 1 0 400 Result
HMM delDAQ HMS
for { set i 0} { $i < 400 } { incr i} {
puts stdout [format "Counts in bin %d: %d" $i $Result($i)]
}
</PRE>
</BODY>
</HTML>

36
doc/user/telnet.inc Normal file
View File

@ -0,0 +1,36 @@
<! This file will be included for all invocation sections to doc>
<h2>Accessing SICS through Telnet</h2>
<p>
SICS is able to communicate with standard TCP/IP telnet clients. Suitable
telnet clients are available on allmost all computer platforms free of
charge as part of the network software. In order to access SICS with telnet
you need to know the following five bits of information:
<ul>
<li>The name of the computer where the SICS server is running.
<li>The port number at which the SICS server lsitens for telnet connections.
<li>The login word.
<li>A valid username.
<li>A valid password for your user name.
</ul>
This information will be supplied to you by your instrument scientist if she
finds you and your cause honorable enough.
</p>
<p>
Loging in to SICS through telnet requires the following steps:
<ul>
<li>Invoke your telnet client and try to contact machine name at the port
number given. For example on a Unix or VMS this looks like:
<pre>
telnet machine.psi.ch 7654
</pre>
Of course this may differ if you use a telnet client on a different
platform.
<li> If things go well, you'll be connected to the SICS server then, though
he does not tell you about it. However, SICS will not allow you to type
commands yet. You have to login with the magic three words: <b>loginword
username password</b>. Only if you get this right, the SICS server will
print a welcome message and you may type commands to the server.
</ul>
You can logoff from the SICS server by typing <b>logoff</b>.
</p>

36
doc/user/token.htm Normal file
View File

@ -0,0 +1,36 @@
<HTML>
<HEAD>
<TITLE>The Token Command</TITLE>
</HEAD>
<BODY>
<H2>The Token Command</H2>
<P>
In SICS any client can issue commands to the SICS server. This
is a potential source of trouble with users possibly issuing conflicting
commands without knowing. In order to deal with this problem a
"token" mechanism has been developed. In this context the token is a
symbol for the control of an instrument. A connection can grab the
token and then has full control over the SICS server. Any other
connection will not be privileged to do anything useful, except
looking at things. A token can be released manully with a
special command or is automatically released when the connection
dies. Another command exists which allows a SICS manager to
force his way into the SICS server. The commands in more detail:
<DL>
<DT>token grab
<DD> Reserves control over the instrument to the client isssuing this
command. Any other client cannot control the instrument now. However, other
clients are still able to inspect variables.
<DT>token release
<DD> Releases the control token. Now any other client can control the
instrument again. Or grab the control token.
<DT>token force password
<DD>This command forces an existing grab on a token to be released. This
command requires manager privilege. Furthermore a special password must be
specified as third parameter in order to do this. This command does not grab
control though.
</Dl>
</P>
</BODY>
</HTML>

219
doc/user/topco.htm Normal file
View File

@ -0,0 +1,219 @@
<html>
<head>
<title> TOPSI Command Summary </title>
</head>
<body>
<h1>TOPSI Command Summary</h1>
<hr size=4 width="66%">
<p>
<h2>Most Used Commands</h2>
<DL>
<DT><a href=drive.htm>drive</a> mot1 NewVal mot2 NewVal ....
<DD>Drives motors. Followed by pairs of motor names and new values.
<DT>scan clear
<DD> Clears current scan parameters.
<DT>scan list
<DD> lists current scan parameters.
<DT> scan var name start step
<DD> Defines a variable (motor) to be scanned. The name of the variable, a
start value and a stpe width need to be given. More then one scan variable
can be specified.
<DT> scan np num
<DD> Sets the number of scan points.
<DT> scan preset val
<DD> Sets the Preset value for the scan. Without a parameter, inquires the
current value.
<DT> scan mode val
<DD> Sets the count mode for the scan. Without a parameter, inquires the
current value. Possible values are Timer or Monitor.
<DT> scan run
<DD> Executes the scan.
<DT>cscan var center delta np preset
<DD> does a scan center scan for variable var around center. delta is the
step width to use, np is the number of points to collect at each side, preset
is the preset to use.
<DT> sscan var1 start end var2 start end .... np preset
<DD> simplified scan command. Scans variables var1, var2 .. from the
respective start values to the end values. Using np points and a preset of
preset.
<DT><a href=macro.htm>FileEval</a> filename
<DD>Runs the batch file specified as argument filename.
</DL>
</p>
<hr size=4 width="66%">
<h2>Driving</h2>
<p>
<DL>
<DT><a href=drive.htm>drive</a> mot1 NewVal mot2 NewVal ....
<DD>Drives motors. Followed by pairs of motor names and new values.
<DT>run mot1 NewVal mot2 NewVal ....
<DD> Runs motors.
</DL>
Known motors are: OmegaA, A1, TwoThetaM, A2, MonoX, MonoY, MonoChi, MonoPhi,
CurveM, Table, A3, TwoThetaD, A4.
</p>
<h2> Counting </h2>
<p>
<DL>
<DT>counter SetMode mode
<DD> Sets the mode of the counter. Possible parameters for mode are Timer
and Preset.
<DT>counter GetMode
<DD> Prints the current counting mode of the counter.
<DT>counter SetPreset val
<DD> Sets a new preset for the counter
<DT>counter GetPreset
<DD> Prints the current value of preset.
<DT>counter SetExponent val
<DD> Sets a new expoenent for the preset in monitor mode.
<DT>counter GetExponent
<DD> Prints the current value of exponent.
<DT> counter Count preset
<DD> Starts counting with the preset value specified.
<DT>counter GetCounts
<DD> Inquires the last counts measured.
<DT> counter GetMonitor n
<DD> Gets the last value measured in monitor n.
</DL>
</p>
<h2> <a href= topscan.htm>Scan</a> </h2>
<p>
<DL>
<DT>scan clear
<DD> Clears current scan parameters.
<DT>scan list
<DD> lists current scan parameters.
<DT> scan var name start step
<DD> Defines a variable (motor) to be scanned. The name of the variable, a
start value and a stpe width need to be given. More then one scan variable
can be specified.
<DT> scan NP num
<DD> Sets the number of scan points.
<DT> scan Preset val
<DD> Sets the Preset value for the scan. Without a parameter, inquires the
current value.
<DT> scan Mode val
<DD> Sets the count mode for the scan. Without a parameter, inquires the
current value. Possible values are Timer or Monitor.
<DT> scan run
<DD> Executes the scan.
<DT>cscan var center delta np preset
<DD> does a scan center scan for variable var around center. delta is the
step width to use, np is the number of points to collect at each side, preset
is the preset to use.
<DT> sscan var1 start end var2 start end .... np preset
<DD> simplified scan command. Scans variables var1, var2 .. from the
respective start values to the end values. Using np points and a preset of
preset.
</DL>
</p>
<h2>R&#252;nbuffer</h2>
<p>
<DL>
<DT><a href =buffer.htm> Buf</a> new name
<DD>New buffer name
<DT>Buf copy name1 name2
<DD> copies buffers.
<DT>Buf del name
<DD> deletes buffer.
</DL>
Buffers created with Buf new name are installed as command name and understand:
<DL>
<DT>NAME append bla bla .......
<DD>Append text to buffer
<DT>NAME del iLine
<DD> Deletes line.
<DT> NAME ins iLine bla bla ....
<DD>Inserts text after line.
<DT>NAME print
<DD>prints contents of buffer to screen.
<DT>NAME save file
<DD> Saves buffer to file.
<DT>NAME read file
<DD> Read buffer contents from file.
<DT>NAME run
<DD>Executes contents of buffer.
</DL>
There can be a stack of R&#252;nbuffers.
<DL>
<DT>RuLi add buffer
<DD>Adds an buffer to the stack.
<DT>RuLi list
<DD> Lists the stack.
<DT>RuLi del line
<DD> Deletetes buffer from stack.
<DD>RuLi ins iLine name
<DD> Inserts name after iLine.
<DT> RuLi run
<DD> Executes Stack.
<DT> RuLi batch
<DD> Executes stack permanently. New buffers may be added.
</DL>
<h2> General commands </h2>
<p>
<DL>
<DT><a href=drive.htm>Success</a>
<DD> wait for the last operation to finish.
<DT><a href=system.htm>wait</a> time
<DD> wait for time to pass....
<DT><a href=system.htm>Dir</a>
<DD> lists all objects in the system.
<DT><a href=config.htm>config</a> Rights username password
<DD> changes authorisation to that of the user identified by username,
password.
<DT><a href=macro.htm>FileEval</a> filename
<DD> executes batch file filename.
</DL>
</p>
<h2> LogBook</h2>
<p>
<DL>
<DT><a href=logbook.htm>LogBook</a> file name
<DD> sets log file name
<DT> LogBook on
<DD> switches logging on
<DT>LogBook off
<DD> closes LogBook
<DT>LogBook
<DD> lists current logging status
</DL>
</p>
<h2> Variables</h2>
<p>
Each <a href=sanscom.htm>variable</a>
can be inquired by just typing its name. It can be set by
typing the name followed by the new value. Currently available variables
are:
<UL>
<LI>Title
<LI>User
<LI>comment1
<LI>comment2
<LI>comment3
<LI>User
<LI>adress
<LI>phone
<LI>email
<LI>sample
</UL>
</p>
</body>
</html>

803
doc/user/topdev.htm Normal file
View File

@ -0,0 +1,803 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> List of TOPSI devices</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (X11; I; OSF1 V4.0 alpha) [Netscape]">
</HEAD>
<BODY>
<H1>TOPSI Device list</H1>
<P>
<HR size=4 width="66%"></P>
<H2>Motors </H2>
<!--latex-off-->
<P>Here's an overview of <A HREF="http://www1.psi.ch/www_sinq_hn/SINQ/instr/Topsi.html">TOPSI</A>
with <A HREF="http://www1.psi.ch/www_sinq_hn/SINQ/instr/img/Topsi.GIF">all
its standard motors</A>.
<!--latex-on-->
Although there are many names and ways to address
a motor I recommend to use the systematic alias mnemonic. This 3-letter
mnemonic uses the first letter to distinguish between monochromator (M__),
sample (S__), diaphragms (D__), and motors used for scan modes of the u-shaped
multireflection table (U__). Nevertheless, you may use the other aliases
in the following list or TASMAD mnemonic, if this appears to be more natural
to you. The second and third letter are used to specify the function or
the part to be moved, e.g., a rotation of sample or monochromator for an
angle theta (_TH), the rotation of a secondary arm (_TT), both around vertical
axes, translations (_TX &amp; _TY) and tiltings of goniometers (_GX &amp;
_GY) along perpendicular directions, the blade of a diaphragm (_1L, _2R,
_3V, etc.).</P>
<H2>Mnemonic and Function of Motors</H2>
<!--latex See Tables \ref{t1}, \ref{t2}, \ref{t3}-->
<!--latex-off-->
<P>Use Netscape or compatible browser to display this table.</P>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3 WIDTH="100%" BGCOLOR="#FFDEAD" >
<TR ALIGN=CENTER VALIGN=TOP BGCOLOR="#008B8B">
<TD><B><FONT COLOR="#FFFF00">Standard alias mnemonic</FONT></B></TD>
<TD><B><FONT COLOR="#FFFF00">TASMAD mnemonic</FONT></B></TD>
<TD NOWRAP WIDTH="90"><B><FONT COLOR="#FFFF00">Motor-# (motor-# on controller
#)</FONT></B></TD>
<TD NOWRAP WIDTH="100"><B><FONT COLOR="#FFFF00">Location of motor &amp;
digitizer</FONT></B></TD>
<TD><B><FONT COLOR="#FFFF00">Function</FONT></B></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A1</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>1 (1, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>in mono drum</FONT></TD>
<TD NOWRAP WIDTH="250"><FONT SIZE=-1>rotation of monochromator crystal
around vertical axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTT</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A2</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>2 (2, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>back of mono drum</FONT></TD>
<TD><FONT SIZE=-1>rotation of platform around vertical monochromator axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MTL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>5 (5, 2)</FONT></P></CENTER>
</TD>
<TD NOWRAP WIDTH="100"><FONT SIZE=-1>on top of motor 1 in mono drum</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of monochromator crystal</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MTU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>6 (6, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>on top of motor 5 in mono drum</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of monochromator crystal perpendicular
to MTY</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MGX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MGL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>9 (9, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>uppermost in mono drum</FONT></TD>
<TD><FONT SIZE=-1>rotation of monochromator crystal around horizontal axis
to define horizontal scattering plane</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STH, TH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A3</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>3 (3, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>2nd lowermost on platform</FONT></TD>
<TD><FONT SIZE=-1>rotation of sample around vertical axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STT, TTH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A4</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>4 (4, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>lowermost on platform</FONT></TD>
<TD><FONT SIZE=-1>rotation of detector arm around vertical sample axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>STL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>7 (7, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>on top of motor 3 on platform</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of sample (thought to be perpendicular
to beam, but depends on STH value)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>STU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>8 (8, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>on top of motor 7 on platform</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of sample perpendicular to STY
(thought to be along the beam, but depends on STH value)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>SGY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>SGL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>11 (11, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>2nd uppermost on platform (uppermost when SGX is not
mounted)</FONT></TD>
<TD><FONT SIZE=-1>rotation around a horizontal axis to incline the sample
along STY direction</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>SGX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>SGU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>12 (12, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>uppermost on platform </FONT></TD>
<TD><FONT SIZE=-1>rotation of sample around an inclined axis (along STX
direction if STY=0)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D1R, S1R</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MCV</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>13 (1, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 1 (nearest to mono drum)</FONT></TD>
<TD><FONT SIZE=-1>movement of the right aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D1L, S1L</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>S3S</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>14 (2, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 1 (nearest to mono drum)</FONT></TD>
<TD><FONT SIZE=-1>movement of the left aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D1V, S1V</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ACH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>15 (3, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 1 (nearest to mono drum)</FONT></TD>
<TD><FONT SIZE=-1>vertical movement of either the upper or lower aperture
(depends on which one is connected)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D2R, S2R</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ATL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>17 (5, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 2 </FONT></TD>
<TD><FONT SIZE=-1>movement of the right aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D2L, S2L</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ATU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>18 (6, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 2 </FONT></TD>
<TD><FONT SIZE=-1>movement of the left aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D2V, S2V</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>AGL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>19 (7, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 2 </FONT></TD>
<TD><FONT SIZE=-1>vertical movement of either the upper or lower aperture
(depends on which one is connected)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D3R, S3R</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MCH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>21 (9, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 3 (nearest to detector)</FONT></TD>
<TD><FONT SIZE=-1>movement of the right aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D3L, S3L</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ACH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>22 (10, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 3 (nearest to detector)</FONT></TD>
<TD><FONT SIZE=-1>movement of the left aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D3V, S3V</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>CCH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>23 (11, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 3 (nearest to detector)</FONT></TD>
<TD><FONT SIZE=-1>vertical movement of either the upper or lower aperture
(depends on which one is connected)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>UTY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A5</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>16 (4, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>lowermost on multireflection table</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of multireflection yoke (perpendicular
to detector arm)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>UTZ</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A6</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>20 (8, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>uppermost on multireflection table</FONT></TD>
<TD><FONT SIZE=-1>vertical translation of multireflection yoke (perpendicular
to detector arm)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>UTT</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MGU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>24 (12, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>between support base and detector arm</FONT></TD>
<TD><FONT SIZE=-1>fine translation of detector arm</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>AUX</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1></FONT></TD>
<TD>
<CENTER><P><FONT SIZE=-1>10 (10, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>auxiliary</FONT></TD>
<TD><FONT SIZE=-1>for additional motors, for instance a vertical translation
stage on sample cradle</FONT></TD>
</TR>
</TABLE>
<!--latex-on-->
<!--latex
\begin{table}
\caption{TOPSI motors 1}
\label{t1}
\begin{tabular}{|p{2cm}|p{2cm}|p{2cm}|p{4cm}|p{4cm}|}
\hline
Standard alias mnemonic & TASMAD mnemonic & Motor \# (motor \# on
controller & Location of motor digitizer & Function\\
\hline
MTH & A1 & 1 (1, 2) & in mono drum & rotation of monochromator crystal
around vertical axis \\
\hline
MTT & A2 & 2 (2, 2) & back of mono drum & rotation of platform around vertical monochromator axis \\
\hline
MTY & MTL & 5 (5, 2) & on top of motor 1 in mono drum & horizontal translation of monochromator crystal \\
\hline
MTX & MTU & 6 (6, 2) & on top of motor 5 in mono drum & horizontal translation of monochromator crystal perpendicular
to MTY \\
\hline
MGX & MGL & 9 (9, 2) & uppermost in mono drum & rotation of monochromator crystal around horizontal axis
to define horizontal scattering plane \\
\hline
STH, TH & A3 & 3 (3, 2) & 2nd lowermost on platform & rotation of sample around vertical axis \\
\hline
STT, TTH & A4 & 4 (4, 2) & lowermost on platform & rotation of detector arm around vertical sample axis \\
\hline
STY & STL& 7 (7, 2)& on top of motor 3 on platform & horizontal translation of sample (thought to be perpendicular
to beam, but depends on STH value)
\\
\hline
STX
&
STU
&
8 (8, 2)
&
on top of motor 7 on platform &
horizontal translation of sample perpendicular to STY
(thought to be along the beam, but depends on STH value)
\\
\hline
\end{tabular}
\end{table}
-->
<!--latex
\begin{table}
\caption{TOPSI motors 2}
\label{t2}
\begin{tabular}{|p{2cm}|p{2cm}|p{2cm}|p{4cm}|p{4cm}|}
\hline
SGY
&
SGL
&
11 (11, 2)
&
2nd uppermost on platform (uppermost when SGX is not
mounted) &
rotation around a horizontal axis to incline the sample
along STY direction
\\
\hline
SGX
&
SGU
&
12 (12, 2)
&
uppermost on platform &
rotation of sample around an inclined axis (along STX
direction if STY=0)
\\
\hline
D1R, S1R
&
MCV
&
13 (1, 3)
&
diaphragm 1 (nearest to mono drum) &
movement of the right aperture (when looking from the
monochromator)
\\
\hline
D1L, S1L
&
S3S
&
14 (2, 3)
&
diaphragm 1 (nearest to mono drum) &
movement of the left aperture (when looking from the
monochromator)
\\
\hline
D1V, S1V
&
ACH
&
15 (3, 3)
&
diaphragm 1 (nearest to mono drum) &
vertical movement of either the upper or lower aperture
(depends on which one is connected)
\\
\hline
\end{tabular}
\end{table}
-->
<!--latex
\begin{table}
\caption{TOPSI motors 3}
\label{t3}
\begin{tabular}{|p{2cm}|p{2cm}|p{2cm}|p{4cm}|p{4cm}|}
\hline
D2R, S2R
&
ATL
&
17 (5, 3)
&
diaphragm 2 &
movement of the right aperture (when looking from the
monochromator)
\\
\hline
D2L, S2L
&
ATU
&
18 (6, 3)
&
diaphragm 2 &
movement of the left aperture (when looking from the
monochromator)
\\
\hline
Standard alias mnemonic & TASMAD mnemonic & Motor \# (motor \# on
controller & Location of motor digitizer & Function\\
\hline
\hline
D2V, S2V
&
AGL
&
19 (7, 3)
&
diaphragm 2 &
vertical movement of either the upper or lower aperture
(depends on which one is connected)
\\
\hline
D3R, S3R
&
MCH
&
21 (9, 3)
&
diaphragm 3 (nearest to detector) &
movement of the right aperture (when looking from the
monochromator)
\\
\hline
D3L, S3L
&
ACH
&
22 (10, 3)
&
diaphragm 3 (nearest to detector) &
movement of the left aperture (when looking from the
monochromator)
\\
\hline
D3V, S3V
&
CCH
&
23 (11, 3)
&
diaphragm 3 (nearest to detector) &
vertical movement of either the upper or lower aperture
(depends on which one is connected)
\\
\hline
UTY
&
A5
&
16 (4, 3)
&
lowermost on multireflection table &
horizontal translation of multireflection yoke (perpendicular
to detector arm)
\\
\hline
UTZ
&
A6
&
20 (8, 3)
&
uppermost on multireflection table &
vertical translation of multireflection yoke (perpendicular
to detector arm)
\\
\hline
UTT
&
MGU
&
24 (12, 3)
&
between support base and detector arm &
fine translation of detector arm
\\
\hline
AUX
&
&
10 (10, 2)
&
auxiliary &
for additional motors, for instance a vertical translation
stage on sample cradle
\\
\hline
\end{tabular}
\end{table}
-->
<H2>Counters </H2>
<P>There is only one named counter. </P>
<H2>Variables</H2>
<DL>
<DT>Instrument </DT>
<DD>holds the name of the Instrument, in SANS case: SANS at SINQ,
PSI. This cannot be changed by ordinary members of the public. </DD>
<DT>Title </DT>
<DD>the title of the experiment. This will be written to the output file.
Should be set by the user to something sensible. </DD>
<DT>User </DT>
<DD>the user of the instrument. This will be written to the output file.
Should be set by the user to something sensible. </DD>
<DT>Comment1 </DT>
<DD>one line of comment to be written to the outputfile. Should be set
by the user to something sensible. </DD>
<DT>Comment2 </DT>
<DD>another line of comment to be written to the outputfile. Should be
set by the user to something sensible. </DD>
<DT>environment </DT>
<DD>a line of text describing special environment conditions to be written
to the output file. This is for those cases where the sample environment
is not computer controlled and therefore not visible to the program. Users
are responsible for filling this in. </DD>
</DL>
<!--latex-off-->
<dl>
<DD>
<HR WIDTH="100%"></DD>
<P><A HREF="http://www1.psi.ch/www_sinq_hn/Welcome_SINQ.html"><IMG SRC="left.gif" LOWSRC="up.gif" NOSAVE HEIGHT=31 WIDTH=31></A><B><A HREF="http://www1.psi.ch/www_sinq_hn/Welcome_SINQ.html">
SINQ Home Page</A></B>&nbsp;<A HREF="file:/home/TOPSI/doc/topsi.htm"><IMG SRC="Topsi_s.GIF" LOWSRC="up.gif" NOSAVE HEIGHT=31 WIDTH=31></A><A HREF="file:/home/TOPSI/doc/topsi.htm">
<B>TOPSI User Manual Home Page</B></A></P>
<DD><I><A HREF="http://www1.psi.ch/www_lns_hn/lns/adr/LNS_Clemens.html">D.
Clemens</A> ,</I>&nbsp;<A NAME="bottom_of_page"></A><I>Last Modified :
4.5.1998</I></DD>
</dl>
<!--latex-on-->
</BODY>
</HTML>

567
doc/user/topdev_n.htm Normal file
View File

@ -0,0 +1,567 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> List of TOPSI devices</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (X11; I; OSF1 V4.0 alpha) [Netscape]">
</HEAD>
<BODY>
<H1>TOPSI Device list</H1>
<P>
<HR size=4 width="66%"></P>
<H2>Motors </H2>
<DL>
<DT>BeamStopX </DT>
<DD>this motor (actually it's a pneumatic drive) controls the vertical
movement of the instrument beam stop (shutter). It is a Li-6/Pb sandwich
absorber located between the monochromator in the center of the monochromator
shielding and the exit of that shielding. I never used this command and
maybe it doesn't work because there is no SPS control unit on TOPSI. </DD>
<DD>Anyway, there is the standard beam shutter control box at the right
of the entry door to the experimental area. Any ordinary user should open
and close the shutter using that box, only.</DD>
</DL>
<P>Here's an overview of <A HREF="http://www1.psi.ch/www_sinq_hn/SINQ/instr/Topsi.html">TOPSI</A>
with <A HREF="http://www1.psi.ch/www_sinq_hn/SINQ/instr/img/Topsi.GIF">all
its standard motors</A>. Although there are many names and ways to address
a motor I recommend to use the systematic alias mnemonic. This 3-letter
mnemonic uses the first letter to distinguish between monochromator (M__),
sample (S__), diaphragms (D__), and motors used for scan modes of the u-shaped
multireflection table (U__). Nevertheless, you may use the other aliases
in the following list or TASMAD mnemonic, if this appears to be more natural
to you. The second and third letter are used to specify the function or
the part to be moved, e.g., a rotation of sample or monochromator for an
angle theta (_TH), the rotation of a secondary arm (_TT), both around vertical
axes, translations (_TX &amp; _TY) and tiltings of goniometers (_GX &amp;
_GY) along perpendicular directions, the blade of a diaphragm (_1L, _2R,
_3V, etc.).</P>
<H2>Mnemonic and Function of Motors</H2>
<P>Use Netscape or compatible browser to display this table.</P>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3 WIDTH="100%" BGCOLOR="#FFDEAD" >
<TR ALIGN=CENTER VALIGN=TOP BGCOLOR="#008B8B">
<TD><B><FONT COLOR="#FFFF00">Standard alias mnemonic</FONT></B></TD>
<TD><B><FONT COLOR="#FFFF00">TASMAD mnemonic</FONT></B></TD>
<TD NOWRAP WIDTH="90"><B><FONT COLOR="#FFFF00">Motor-# (motor-# on controller
#)</FONT></B></TD>
<TD NOWRAP WIDTH="100"><B><FONT COLOR="#FFFF00">Location of motor &amp;
digitizer</FONT></B></TD>
<TD><B><FONT COLOR="#FFFF00">Function</FONT></B></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A1</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>1 (1, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>in mono drum</FONT></TD>
<TD NOWRAP WIDTH="250"><FONT SIZE=-1>rotation of monochromator crystal
around vertical axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTT</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A2</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>2 (2, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>back of mono drum</FONT></TD>
<TD><FONT SIZE=-1>rotation of platform around vertical monochromator axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MTL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>5 (5, 2)</FONT></P></CENTER>
</TD>
<TD NOWRAP WIDTH="100"><FONT SIZE=-1>on top of motor 1 in mono drum</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of monochromator crystal</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MTX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MTU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>6 (6, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>on top of motor 5 in mono drum</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of monochromator crystal perpendicular
to MTY</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>MGX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MGL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>9 (9, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>uppermost in mono drum</FONT></TD>
<TD><FONT SIZE=-1>rotation of monochromator crystal around horizontal axis
to define horizontal scattering plane</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STH, TH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A3</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>3 (3, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>2nd lowermost on platform</FONT></TD>
<TD><FONT SIZE=-1>rotation of sample around vertical axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STT, TTH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A4</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>4 (4, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>lowermost on platform</FONT></TD>
<TD><FONT SIZE=-1>rotation of detector arm around vertical sample axis</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>STL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>7 (7, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>on top of motor 3 on platform</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of sample (thought to be perpendicular
to beam, but depends on STH value)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>STX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>STU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>8 (8, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>on top of motor 7 on platform</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of sample perpendicular to STY
(thought to be along the beam, but depends on STH value)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>SGY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>SGL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>11 (11, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>2nd uppermost on platform (uppermost when SGX is not
mounted)</FONT></TD>
<TD><FONT SIZE=-1>rotation around a horizontal axis to incline the sample
along STY direction</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>SGX</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>SGU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>12 (12, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>uppermost on platform </FONT></TD>
<TD><FONT SIZE=-1>rotation of sample around an inclined axis (along STX
direction if STY=0)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D1R, S1R</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MCV</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>13 (1, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 1 (nearest to mono drum)</FONT></TD>
<TD><FONT SIZE=-1>movement of the right aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D1L, S1L</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>S3S</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>14 (2, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 1 (nearest to mono drum)</FONT></TD>
<TD><FONT SIZE=-1>movement of the left aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D1V, S1V</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ACH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>15 (3, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 1 (nearest to mono drum)</FONT></TD>
<TD><FONT SIZE=-1>vertical movement of either the upper or lower aperture
(depends on which one is connected)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D2R, S2R</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ATL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>17 (5, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 2 </FONT></TD>
<TD><FONT SIZE=-1>movement of the right aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D2L, S2L</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ATU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>18 (6, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 2 </FONT></TD>
<TD><FONT SIZE=-1>movement of the left aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D2V, S2V</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>AGL</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>19 (7, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 2 </FONT></TD>
<TD><FONT SIZE=-1>vertical movement of either the upper or lower aperture
(depends on which one is connected)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D3R, S3R</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MCH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>21 (9, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 3 (nearest to detector)</FONT></TD>
<TD><FONT SIZE=-1>movement of the right aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D3L, S3L</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>ACH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>22 (10, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 3 (nearest to detector)</FONT></TD>
<TD><FONT SIZE=-1>movement of the left aperture (when looking from the
monochromator)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>D3V, S3V</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>CCH</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>23 (11, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>diaphragm 3 (nearest to detector)</FONT></TD>
<TD><FONT SIZE=-1>vertical movement of either the upper or lower aperture
(depends on which one is connected)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>UTY</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A5</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>16 (4, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>lowermost on multireflection table</FONT></TD>
<TD><FONT SIZE=-1>horizontal translation of multireflection yoke (perpendicular
to detector arm)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>UTZ</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>A6</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>20 (8, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>uppermost on multireflection table</FONT></TD>
<TD><FONT SIZE=-1>vertical translation of multireflection yoke (perpendicular
to detector arm)</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>UTT</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>MGU</FONT></P></CENTER>
</TD>
<TD>
<CENTER><P><FONT SIZE=-1>24 (12, 3)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>between support base and detector arm</FONT></TD>
<TD><FONT SIZE=-1>fine translation of detector arm</FONT></TD>
</TR>
<TR VALIGN=TOP>
<TD>
<CENTER><P><FONT SIZE=-1>AUX</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1></FONT></TD>
<TD>
<CENTER><P><FONT SIZE=-1>10 (10, 2)</FONT></P></CENTER>
</TD>
<TD><FONT SIZE=-1>auxiliary</FONT></TD>
<TD><FONT SIZE=-1>for additional motors, for instance a vertical translation
stage on sample cradle</FONT></TD>
</TR>
</TABLE>
<H2>Counters </H2>
<P>There is only one named counter. </P>
<H2>Variables</H2>
<DL>
<DT>Instrument </DT>
<DD>holds the name of the Instrument, in SANS case: &quot;SANS at SINQ,
PSI&quot;. This cannot be changed by ordinary members of the public. </DD>
<DT>Title </DT>
<DD>the title of the instrument. This will be written to the output file.
Should be set by the user to something sensible. </DD>
<DT>User </DT>
<DD>the user of the instrument. This will be written to the output file.
Should be set by the user to something sensible. </DD>
<DT>Comment1 </DT>
<DD>one line of comment to be written to the outputfile. Should be set
by the user to something sensible. </DD>
<DT>Comment2 </DT>
<DD>another line of comment to be written to the outputfile. Should be
set by the user to something sensible. </DD>
<DT>environment </DT>
<DD>a line of text describing special environment conditions to be written
to the output file. This is for those cases where the sample environment
is not computer controlled and therefore not visible to the program. Users
are responsible for filling this in. </DD>
<DD>
<HR WIDTH="100%"></DD>
<P><A HREF="http://www1.psi.ch/www_sinq_hn/Welcome_SINQ.html"><IMG SRC="left.gif" LOWSRC="up.gif" NOSAVE HEIGHT=31 WIDTH=31></A><B><A HREF="http://www1.psi.ch/www_sinq_hn/Welcome_SINQ.html">
SINQ Home Page</A></B>&nbsp;<A HREF="file:/home/TOPSI/doc/topsi.htm"><IMG SRC="Topsi_s.GIF" LOWSRC="up.gif" NOSAVE HEIGHT=31 WIDTH=31></A><A HREF="file:/home/TOPSI/doc/topsi.htm">
<B>TOPSI User Manual Home Page</B></A></P>
<DD><I><A HREF="http://www1.psi.ch/www_lns_hn/lns/adr/LNS_Clemens.html">D.
Clemens</A> ,</I>&nbsp;<A NAME="bottom_of_page"></A><I>Last Modified :
4.5.1998</I></DD>
</DL>
</BODY>
</HTML>

22
doc/user/tophw.htm Normal file
View File

@ -0,0 +1,22 @@
<html>
<head>
<title> TOPSI-Devices </title>
</head>
<body>
<h1>TOPSI Hardware Devices</h1>
<hr size=4 width="66%">
<p>TOPSI controls a couple of :
<UL>
<LI><a href= motor.htm>motors</a>.
<li>A <a href = counter.htm>counter box</a> for
reading monitors and the single counter.
<LI>various
<a href = samenv.htm>environment.htm</a> control devices.
</UL>
Each of these
devices understands commands. The syntax understood by each of these devices
will be discussed.
<p>
</p>
</body>
</html>

87
doc/user/topinvoc.htm Normal file
View File

@ -0,0 +1,87 @@
<html>
<head>
<title> Invocation </title>
</head>
<body>
<h1>Program Invocation</h1>
<p>
SICS is a client server system. This means there must be a server running
somewhere as a prerequsite for SICS operation. This server program lives on
the instrument computer. To check for its existence you need to log on to
that computer and execute the command: <b> CheckSICS</b>. If this test fails
to find the server, it can be started by typing <b>TOPSIServer</b> at that
computer. Please note, that this has to happen as Instrument user (
for example TOPSI) on the instrument computer.
</p>
<p>
The SICS clients are the programs a user interacts with. Their main purpose
is to forward commands to the server and to display the answers. A client
also implements the status display. Various clients exist for different
platforms.
</p>
<! This file will be included for all invocation sections to doc>
<h2>Accessing SICS through Telnet</h2>
<p>
SICS is able to communicate with standard TCP/IP telnet clients. Suitable
telnet clients are available on allmost all computer platforms free of
charge as part of the network software. In order to access SICS with telnet
you need to know the following five bits of information:
<ul>
<li>The name of the computer where the SICS server is running.
<li>The port number at which the SICS server lsitens for telnet connections.
<li>The login word.
<li>A valid username.
<li>A valid password for your user name.
</ul>
This information will be supplied to you by your instrument scientist if she
finds you and your cause honorable enough.
</p>
<p>
Loging in to SICS through telnet requires the following steps:
<ul>
<li>Invoke your telnet client and try to contact machine name at the port
number given. For example on a Unix or VMS this looks like:
<pre>
telnet machine.psi.ch 7654
</pre>
Of course this may differ if you use a telnet client on a different
platform.
<li> If things go well, you'll be connected to the SICS server then, though
he does not tell you about it. However, SICS will not allow you to type
commands yet. You have to login with the magic three words: <b>loginword
username password</b>. Only if you get this right, the SICS server will
print a welcome message and you may type commands to the server.
</ul>
You can logoff from the SICS server by typing <b>logoff</b>.
</p>
<h2> TOPSI Client Program Invocation on Digital Unix</h2>
<p>
On LNS DigitalUnix systems the command <b>topcom </b> will start a command
line client. Even this is an X11 application. If it fails to start, make
use the DISPLAY variable is properly set. If not type: <BR>
setenv DISPLAY YourComputer.psi.ch:0.0 <BR> replacing the YourComputer bit with
the name of your machine. Once started up, dmccom shows a menubar, a
large list window at the top, a smaller one below, followed by an edit field
and a row of buttons at the very bottom. At the left lower corner that is a
red field which should say: Disconnected. This is a status display. In order
to make topcom usable a connection to the server needs to be established.
This can be done by clicking at the TOPSI entry in the Connect menu. Please
allow some time for the establishment of the connection. Once this is done,
the status display at the bottom will change to the current status of the
server. Now commands can be typed into the edit field at the bottom. The
response of the server will be displayed in the top listbox. The lower
listbox will hold a history of commands typed. Commands in this list can be
reinvoked by double clicking them. By clicking on them with the right button
they can be copied into the edit field for editing.
</p>
<p>
A status display for TOPSI can be started by typing <b>topstat</b>.
</p>
</body>
</html>

53
doc/user/topman Normal file
View File

@ -0,0 +1,53 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
TOPSI--Reference Manual \\
\end{huge}
Version 1.0, \today\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\tableofcontents
\clearpage
%html sicsinvoc.htm 1
%html general.htm 1
%html basic.htm 1
%html system.htm 1
%html config.htm 1
%html macro.htm 1
%html buffer.htm 1
%html drive.htm 1
%html logbook.htm 2
%html commandlog.htm 2
%html optimise.htm 2
%html token.htm 1
%html topscan.htm 1
%html tophw.htm 1
%html motor.htm 2
%html counter.htm 2
%html topdev.htm 1
%html samenv.htm 1
%html trouble.htm 1
%html topco.htm 1
\end{document}

111
doc/user/topscan.htm Normal file
View File

@ -0,0 +1,111 @@
<html>
<head>
<title>The Scan Command </title>
</head>
<body>
<h1>The Scan Command </h1>
<hr size=4 width="66%">
<p>
An important concept in neutron scattering instrument control is a
"scan". For a simple scan a range of instrument positions is divided
into equidistant steps. The instrument then proceeds to drive to each
of these points and collects data at each of them.
</p>
<p>
The general idea of the scan object is, that you configure the
scan by typing commands at the command line. Once, the configuration is
finished the requested scan is started. A data file will be written
automatically to the default location. The scan command can not only scan
over motors but also about some variables which relate to motors. For
instance lamda for the wavelength. Scan can scan over more then one variable.
The syntax of the scan command in some detail:
<DL>
<DT>scan clear
<DD> Clears current scan parameters.
<DT>scan list
<DD> lists current scan parameters.
<DT> scan var <i>name start step</i>
<DD> Defines a parameter (motor) to be scanned. The name of the parameter, a
start value and a step width need to be given. More then one scan variable
can be specified.
<DT> scan modvar <i>name start step</i>
<DD> Modifies the scan parameters for scan variable name to the new values
given.
<DT>scan getvars
<DD> Returns a list of currently active scan variables terminated with the
string -END-.
<DT> scan np <i>num</i>
<DD> Sets the number of scan points.
<DT> scan preset <i>[val]</i>
<DD> Sets the Preset value for the scan. Without a parameter, inquires the
current value.
<DT> scan mode <i>[val]</i>
<DD> Sets the count mode for the scan. Without a parameter, inquires the
current value. Possible values are <i>timer</i> or <i>monitor</i>.
<DT> scan run
<DD> Executes the scan.
<DT>scan cinterest
<DD> This call enables automatic printing of scan counts to your connection
when new values arise. This command is primariliy of interest for status display
clients.
<DT>scan pinterest
<DD> This function makes the scan command send a notification (the string
ScanVarChange) to you whenever the scan variables get modified. This command
is primarily of interest for status display clients.
</DL>
</p>
<h2>Center Scan </h2>
<p>
Center scan is a convenience command which starts a scan around a specified
center value. This mostly used for centering purposes. The syntax is like this:<BLOCKQUOTE>
<b>cscan</b> <i>var center delta np preset</i>
</BLOCKQUOTE>
All parameters must be specified. The parameters and their meanings:
<UL>
<LI><b>var</b> is the variable which is to be center scanned.
Only one can be specified.
<LI><b>center</b> is the value to use as center of the scan.
<LI><b>delta</b> is the step width to use for the scan.
<LI><b>np</b> is the number of points to scan in each direction.
<LI><b>preset</b> is the preset to use for the counter. As the counter mode,
the mode currently configured active in the scan object is used.
</UL>
<BLOCKQUOTE>
example: <b>cscan</b> <i>d2hr 0.5 0.01 10 10000</i>
</BLOCKQUOTE>
</p>
<h2>Simple Scan </h2>
<p>
Simple scan is a convenience command which starts a scan for one to several
variables with a simplified syntax. The syntax is like this:
<BLOCKQUOTE>
sscan <i>var1 start end var2 start end ... np preset</i>
</BLOCKQUOTE>
All parameters must be specified. The parameters and their meanings:
<UL>
<LI><b>var1 start end</b> This is how the variables to scan are specified. For
each variable scanned the name of the
variable, the start value and the end value of the scan must be
given. More then one triplet
can be given in order to allow for several scan variables.
<LI><b>np</b> is the number of points to scan.
<LI><b>preset</b> is the preset to use for the counter. As the counter mode,
the mode currently configured active in the scan object is used.
</UL>
</p>
<h2>Peak And Center</h2>
<p>
These two commands are related to the scan command insofar as they act upon
the results of the last scan still in memory. The command <b>peak</b> prints
the position, FWHM and maximum value of the peak in the last scan. The
command <b>center</b> drives the first scan variable to the peak center of the
last scan. Both peak and center use a rather simple but effective method for
locating peaks. The prerequisite is that the peak is approximatly
gaussian shaped. The
algorithm first locates the peak maximum. Then it goes to the left and
right of the maximum and tries to find the points of half maximum peak height.
The two points are interpolated from the data and the peak position
calculated as the middle point between the two halfheight points.
</p>
</body>
</html>

68
doc/user/topsi.htm Normal file
View File

@ -0,0 +1,68 @@
<html>
<head>
<title> TOPSI-User Manual </title>
</head>
<body>
<h1><center>TOPSI-User Manual</center></h1>
<hr size=4 width="66%">
</p>
<p>
This is the user manual for users of the TOPSI spectrometer situated at the
spallation source SINQ at the PSI, Switzerland. TOPSI is a combined two circle
diffractometer and reflectometer.
</p>
<p>
From this page you can go to:
<UL>
<LI> <a href=sicsinvoc.htm>Program Invocation</a>
<LI> A short <a href = topco.htm>command list</a>
<LI> The description of <a href = general.htm> general</a> SICS command,
common to all instruments.
<LI> Commands for handling <a href = tophw.htm>hardware devices </a>.
<LI> A list of <a href=topscan.htm>TOPSI</a> specific commands and a list
of <a href=topdev_n.htm>hardware</a> installed at TOPSI.
<LI> Commands for handling <a href=samenv.htm>sample</a> environement
devices.
<LI>Some <a href = trouble.htm>troubleshooting</a> hints.
</UL>
</UL>
</p>
<hr size=4 width="66%">
<p>
Instrument Description:
<ul>
<li><a href="http://www1.psi.ch/www_sinq_hn/SINQ/instr/TOPSI.html">TOPSI</a>
</ul>
</p>
<hr size=4 width="66%">
<p>
Local Contact:
<ul>
<li><a href="http://www1.psi.ch/www_lns_hn/lns/adr/LNS_clemens.html">
Daniel Clemens</a>.
</ul>
</p>
<p>
Download Manual
<ul>
<li><a href="topman.ps">Postscript Format</a>, 257KB.
</ul>
</p>
<hr size=4 width="66%">
<hr size=4 width="66%">
<p>
<ul>
<li><a href="http://lns00.psi.ch/">LNS Computing home page</a>.
<li> <a href="http://www1.psi.ch/www_lns_hn/welcome.html">
Laboratory for Neutron Scattering</a> home page.
<li> <a href="http://www1.psi.ch/www_lns_hn/welcome_sinq.html">SINQ</a> home page.
</ul>
</p>
<hr size=4 width="66%">
<p>
Last updated: 6-May-1999, <a href="mailto:Mark.Koennecke@psi.ch">Mark K&ouml;nnecke</a>
</p>
</body>
</html>

65
doc/user/trics.htm Normal file
View File

@ -0,0 +1,65 @@
<HTML>
<HEAD>
<TITLE>The Four Circle Diffractometer TRICS</TITLE>
</HEAD>
<BODY>
<H1>The Four Circle Diffractometer TRICS</H1>
<P>
<h2>Introduction</h2>
The four circle diffractometer TRICS is used for the study of dynamic
and magentic structures
by neutron diffraction at single crystals. TRICS can be operated in two
modes: 1.) with a single counter very much like a traditional four circle
diffractometer and 2.) with three position sensitive detectors operating
like a oscillation camera as used by protein crystallographers.
This manual describes the operation of TRICS
using the SICS software.
</P>
<p>
TRICS is situated at one of the beamlines for thermal neutrons at the
spallation source SINQ at PSI, Switzerland. The incident white neutron
beam first hits a
monochromator crystal. The selected wavelength is not variable. A
monochromator lift with two monochromators and the possiblity to select
different reflections peaks however make it
possible to select between a few different neutron wavelength. The sample is
held in a standard eulerian cradle with the usual angles omega, chi and phi.
Up to three position sensitive detectors are held on detector holders at
different angles in gamma and nu. Or a single detector is fixed to this setup.
The three position sensitive detectors may be moved up and down on a sphere
around the sample. This allows to access different lattice planes when the
eulerian cradle has been replaced by some cryostat or other sample
environment devices to heavy to be used in conjunction with an eulerian
cradle.
</p>
<p>
The control of a four circle diffractometer requires a tight integration
between measurement procedures and specialized data anlaysis software. For
the actual control of the instrument, its movements and the actual
measurement of reflections the SICS software is provided. Preliminary data
analysis and special four circle calculations are done with a set of F77
programs. These are mostly programs which originate from the ILL, France.
</p>
<p>
Given this setup the rest of this manual logically has to have three parts:
<ul>
<li> A <a href="tricsgen.htm">general part</a> describing the principal
operation of the SICS software.
<li> A chapter describing the operation of TRICS with a
<a href="tricsingle.htm"> single counter</a>.
<li>A chapter describing the operation of TRICS with
<a href="tricspsd.htm">position sensitive</a>
detectors.
</ul>
</p>
<!latex-off>
<p>
<hr size=4 width="66%">
Download Manual
<ul>
<li><a href="tricsman.ps">Postscript Format</a>, 249KB.
</ul>
</p>
<!latex-on>
</BODY>
</HTML>

32
doc/user/tricsgen.htm Normal file
View File

@ -0,0 +1,32 @@
<HTML>
<HEAD>
<TITLE>General Operation of the SICS instrument control software</TITLE>
</HEAD>
<BODY>
<H1>General Operation of the SICS instrument control software</H1>
<P>
This chapter contains information about:
<ul>
<li><a href="basic.htm">Basic SICS concepts</a>
<li><a href="drive.htm">Driving motors</a>
<li><a href="motor.htm">Configuring motor parameters</a>.
<li><a href="trimot.htm">TRICS motor list</a>.
<li><a href="counter.htm">Counting and monitors</a>.
<li><a href="samenv.htm">Sample Environment Device Control</a>.
<li>Log I/O to a <a href="logbook.htm">client logfile</a> at the server, all
command output to a <a href="commandlog.htm">commandlog</a> or to your local
machine using the open log file option in the File menu of the
SICS command line client.
<li>Doing batch processing using <a href="macro.htm">batch files</a> or the LNS
specific <a href="buffer.htm">R&#252;nbuffer</a> system.
<li><b>Interrupt</b> SICS by hitting the interrupt button near the bottom of
the SICS command line client.
<li>How to perform <a href="hkl.htm"> crystallographic computations</a> online.
<li>Some specialist commands for configuring certain aspects of your
<a href="config.htm">client connection</a> and for in depth interaction with
the <a href="system.htm"> SICS server</a>.
</ul>
</P>
</BODY>
</HTML>

104
doc/user/tricsingle.htm Normal file
View File

@ -0,0 +1,104 @@
<HTML>
<HEAD>
<TITLE>Running TRICS with a Single Counter</TITLE>
</HEAD>
<BODY>
<H1>Running TRICS with a Single Counter</H1>
<P>
In this mode TRICS simulates a conventionell four circle diffractometer much
like a x-ray diffractometer as commercially available. The tasks which have
to be solved are:
<ul>
<li>Locate Reflections
<li>Index reflections and refine a UB-matrix.
<li>Measure a couple of reflections.
<li>Furthermore there are some specialities.
</ul>
There are two ways to achieve all this:
The older way uses some built in SICS functionality plus some external
programs inherited from the ILL. This is called the ILL operation.
Then a complete
four circle package called DIFRAC from P. White and Eric Gabe was
integrated into SICS.
This is The Difrac way of operation.
</p>
<h2>DIFRAC</h2>
<p>
The DIFRAC commands are accessed by prepending the difrac commands
with <b>dif</b>. For example: "dif td" calls the difrac td
command. For more information on DIFRAC commands see the separate
<a href="diftrics.htm">DIFRAC manual</a>.
</p>
<h2>ILL operation</h2>
<h3>Locate Reflections</h3>
<p>
If you know x-ray single crystal diffractometers you'll expect sophisticated
reflection search procedures here. Nothing is available in this field in
SICS. It was deemed inapropriate for neutron research. The first reflections
must be found by hand. Something which may help in this is a quick scan
facility which allows to run a motor and print counts while the motor is
moving. This can be invoked by a command like this:
<pre>
susca var start end time
</pre>
The parameters are:
<ul>
<li>var: the motor or variable to scan.
<li>start: the start position from which to scan.
<li>end: the end position for this scan.
<li>time: The maximum counting time.
</ul>
Be aware that this is inprecise and liable to changes in the source current.
But it may help to locate the aproximate position of a peak.
</p>
<p>
Once a peak has been found, its position can be optimised and centered with the
<a href="optimise.htm">peak optimiser</a>.
</p>
<P>
The next thing to do is to store the reflection and find other ones. Once a
few reflections have been found, the need to be written to disk. This can be
accomplished with the object rliste which has the following subcommands:
<DL>
<DT>rliste clear
<DD> clears all entries from the list
<DT>rliste store
<DD>saves the current diffractometer position into the list
<DT>rliste write file
<DD>Writes the contents of the reflection list to the file specified.
</DL>
</p>
<h3>Indexing Reflections and Refining UB-Matrix</h3>
<p>
For these purposes the external programs <a href="illprog.txt">INDEX and
RAFIN </a> are provided. These programs are courtesy of the ILL, France.
</p>
<h3>Measuring Reflections</h3>
<p>
Before measuring reflections a list of reflections to measure must be
created. This is done with the external program
<a href="illprog.txt">HKLGEN</a>. Then reflections this reflection list can
be fed into SICS using the <a href="mesure.htm">mess </a> command. mess
creates two output files: a .col file containing the reflection profiles of
all the relfections and a .dat files which contains the
HKL,F,sig(F),TH,OM,CH,PH for each reflection. Intensity has then be
integrated within SICS. The .col files can be processed by the program
REFRED which allows to perform more advanced data reduction chores and has a
choice of integration methods for reflection data. Please note, that SICS
does not automatically measure standard reflections. It is your task to add
suitable standard reflections into the reflection list.
</p>
<h2>Special Commands</h2>
<p>
As of current this section only holds the <a href="hklscan.htm">hklscan
commmand</a> which allows to express a scan in Miller indizes. This is
in fact a scan in reciprocal space.
</p>
</BODY>
</HTML>

354
doc/user/tricsman Normal file
View File

@ -0,0 +1,354 @@
\documentclass[12pt,a4paper]{report}
%%\usepackage[dvips]{graphics}
%%\usepackage{epsf}
\setlength{\textheight}{24cm}
\setlength{\textwidth}{16cm}
\setlength{\headheight}{0cm}
\setlength{\headsep}{0cm}
\setlength{\topmargin}{0cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}
\setlength{\hoffset}{0cm}
\setlength{\marginparwidth}{0cm}
\begin{document}
%html -d hr " "
%html -s report
\begin{center}
\begin{huge}
TRICS--Reference Manual \\
\end{huge}
Version July, 2001\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\
CH--5232 Villigen--PSI\\
Switzerland\\
\end{center}
\clearpage
\clearpage
\tableofcontents
\clearpage
%html trics.htm 1
%html tricsgen.htm 1
%html basic.htm 1
%html drive.htm 1
%html motor.htm 2
%html trimot.htm 2
%html counter.htm 2
%html samenv.htm 2
%html logbook.htm 2
%html commandlog.htm 2
%html macro.htm 1
%html buffer.htm 1
%html hkl.htm 2
%html config.htm 1
%html system.htm 1
%html tricsingle.htm 1
%html optimise.htm 2
\section{External FORTRAN 77 Programs}
\subsection{INDEX}
The program indexes reflections on the basis of observed
2Theta, Omega, Chi, Phi angles when the cell constants and
wavelength are known.
It does not take into account systematic extinctions.
The process, when successful, has three steps.
First, it calculates, for each set of observations, all possible
HKL's for which theta(calc) lies within theta(obs) +/-
delta theta.
delta theta is given - see below -.
For delta theta = 0, the value defaults to 0.05.
Second, it finds for all combinations of two sets of observations,
the angle between the indexed HKL's for which angle(calc) lies
within angle (obs) +/- delta.
delta given - see below -. Delta = 0 causes default to 0.2
Finally, it finds all sets of indexed HKL's that explain all angles
between the observed sets of Omega, Chi and Phi.
The user will normally be presented with several possible sets of
HKL's which fit within the limits given.
- they are already tested for right-handedness -
and he must now choose which set he likes the most.
If he wishes he may now specify which set of reflections he likes
and the program will then set up the input file for the program
rafin, - see next section -.
The program ensures that the first two reflections are acceptable
to rafin. The user must say whether he wants the ub matrix
written directly into lsd ( for instant use ) and which file he
wants his rafin input to come from (usually rafin.dat).
The program rafin is then automatically started.
Input to index can be done either from the terminal or from a file
index.dat
The format is the same, an example is given here.
\begin{verbatim}
THIS IS A DUMMY EXAMPLE ( text )
5.82 16.15 4.09 90 103.2 90 .84 .15 (cell constants, lambda delta)
16.18 9.01 34.71 14.74 0 (2Th, Om, Ch, Ph, delta theta)
13.21 7.8 .71 -56.13 0.1 (2Th, Om, Ch, Ph, delta theta)
etc. etc.
0 ( end list with 2Th = 0 )
\end{verbatim}
The program will only suggest sets of indexed HKL's if all
reflections are explained. If not, the user must himself look
through the list of observed and calculated angles to find a
partial list.
\subsection{RAFIN}
This program determines orientation matrix ( ub) from two or more
sets of orientation angles for reflections, and refines
(optionally) wavelength; zeroes of 2Theta, Omega or Chi; a, b, c,
alpha, beta or gamma.
To call the program, type :--
rafin
after having set up the input file :
The input data are on rafin. dat
(teletype input can be used, but is cumbersome)
Use teco to make or correct the file.
An example of the input file ( comments in parentheses ) :--
\begin{verbatim}
0 1 (second no. 0/1 for ub not transferred/transferred to lsd)
0 (always)
0 -4 -2 28.01 13.75 81.59 42.05 (H K L 2Theta Omega Chi Phi)
4 -6 7 50.84 25.37 34.04 18.41
-2 -6 0 41.55 20.53 66.93 59.99
4 0 4 19.74 9.94 -16.92 -5.40
1 -5 -3 35.59 17.70 82.32 1.40
6 0 0 18.47 9.26 -2.32 -46.95
0 .8405 (0/1 do not/do refine lambda; and lambda)
0 0.0 1 0.0 1 0.0 (0/1 for do not/do refine, 2Theta zero,
-0/1 for do not/do refine, Om zero,
-0/1 for do not/do refine, Chi zero.
0 15.9158 0 7.1939 0 14.277 0 90 0 98.72 0 90 (ditto for a, b, c, alpha, beta and gamma)
2 0 0 (H K L list for angles to be calculated)
0 2 0
0 0 2
0 0 0 (end of list)
-1 (end of input file)
\end{verbatim}
Ensure that lsd is not running if you wish to transfer the
matrix and wavelength directly into its parameter section,
otherwise it may not be successful.
rafin will never modify the zeroes for you. This is for you to do
by adding them to the values in zer of par. Remember that for a
well aligned diffractometer, they will never change by very much.
Note: the first two reflections should be far away enough in
reciprocal space to define a plane. They must be at least 45 deg
apart in Phi and only one may have Chi greater than 45 deg.
Note also that higher angle (Theta) reflections usually give a
better fit.
You cannot, obviously, refine lambda and your cell at the same
time.
\subsubsection{Acknowledgements}
The index program was written by M.S.Lehmann,
and J.M.Savariault.
The rafin program was implemented at the ill by A.Filhol and
M.Thomas.
It was implemented on the pdp 11 system by A.Barthelemy.
\subsection{HKLGEN}
THIS PROGRAM IS USED TO GENERATE A LIST OF HKL's which can be used
for input to the measurement routines of lsd.
Indices can be generated internally in lsd, but it is generally
considered easier to create a list, and measure from this.
hklgen will generate HKL's according to min and max specified
indices, and will write them into output file(s) if they are inside
the Theta limits.
If chi and phi limits are specified, the program will also look
to see if the hkl is measurable inside these machine limits.
If not, it will see if the Friedel Pair is inside limits
If this is also outside limits, it will see if the reflection can
be measured for hkl psi=180
- note this option means chi = 90 -> 180 i.e. up-side-down.
If measurement is not possible for any of these conditions, the
hkl is declared blind.
Comments like fr.pr hichi blind indicate these on tty output.
To run the program do :--
hklgen
Input to the program is either from the terminal or from a file
hklgen.dat, already created by the user.
\subsubsection{Input from Terminal}
The first question asked under this option is whether a file
hklgen.dat should be created.
If subsequent runs are envisaged, this might be a good idea. In
this case teco can be used to make small changes to the input and
the program can be quickly re-run.
hklgen then asks for the following parameters :--
\begin{enumerate}
\item Title. Up to 80 characters to be displayed at the top of the
output.
\item Wavelength and the 9 'rules limiting possible reflections' -
see appendix C -- If you give wavelength = 0, the wavelength,
extinction rules, and orientation matrix will be taken from
lsd's parameter files.
chi and phi software limits are also taken but an
opportunity is given to over-write them.
-- If the wavelength is given explictly, followed by up to 9
numbers for the extinction rules, the orientation matrix must
then be given line by line.
\item Theta limits. ( Note not 2-Theta limits ).
chi and phi limits ( if required ) must also be given in
this line.
-- If zeroes are given, no limits will be included in the
calculations.
-- If nothing is given, LSD's limits will be used if data was
taken from the parameter files, or it will default to zeroes
if the data above was given by the user.
\item Three numbers indicating the relative speed of variation of
h, k and l.
First number is the slowest changing index, third number is
the fastest changing index.
1/2/3 is used to represent h/k/l.
e.g. 3 2 1 means L changes slowest, then K, with H changing
fastest.
\item Minimum and maximum indices in hkl are now requested.
You must give hmin hmax kmin kmax lmin lmax.
Note however that before starting the calculations, hklgen
calculates itself what is the maximum value for each index for
the specified Theta range and if this is inside these values,
they will be modified.
Therfore, if, for example 0 999 0 999 -999 999 is given,
hklgen will calculate the maximum values and give HKL's for
positive H, positive K, positive and negative L.
\item Four numbers concerning various outputs from the program.
a) The first npunch concerns the hkl output file.
0 = no file for output
1 = file for output containing hkl only in 3I4 format.
2 = file for d15-ren ( not for d8-d9 )
3 = file for output containing hkl and setting angles.
b) The second ipara concerns machine geometry.
0 = Bissecting geometry - (normal for d8-d9 ).
1 = Normal beam geometry - ( rarely used on d8-d9 )
3 = d15 lifting counter mode ( used with npunch = 2 )
c) The third number nbites concerns hkl output.
1 = write hkl for each case in four separate files.
0 = write all HKL's in one single file FOR00x. dat
( x specified below ).
d) The fourth number nlist concerns terminal output.
0 = write each hkl with angles and comment on terminal.
( can take time and consume paper ).
1 = suppress most of the output on tty.
\item If in previous line FOR00x. dat was specified for hkl output,
X must be given.
This is the last line in the input but is not always
necessary.
\end{enumerate}
The program then generates as specified, creating file(s) if
required. It gives a resume at the end and exits.
\subsubsection{Input from file hklgen.dat}
Input is given in exactly the same order as above, so for a more
detailed description of each parameter see previous section.
Two possible examples are given below.
\begin{verbatim}
KNUDDERKRYSTAL LAVET AF AARKVARD, 120K (Text, 80 characters)
0.8405 0 0 0 0 0 0 0 0 0 (Wavelength and the 9 Extinction rules. )
0.043361 -.04190 .5399 ( ub given in three separate lines
-.046409 -.032053 .03721 - as wavelength is given explicitly
-.00256 -.12861 -.02687
0 36 -20 95 ( Theta limits and Chi limits - note - no limits on Phi. )
2 1 3 ( relative speeds of hkl. - K slowest - L fastest. )
-99 -1 0 5 -99 99 ( Hmin,Hmax,Kmin, etc. - note all L's with all neg
1 0 0 1 ( a) Output file of hkl.
b) Bisecting geom - usual.
c) All HKL's in for00x.dat.
d) Suppress most tty output. )
3 ( hkl file on for003.dat )
\end{verbatim}
hklgen is a program which has evolved in the hands of :
A.Filhol, S.Mason. A.Barthelemy and J.Allibon.
\subsection{Encoding of Extinction Rules}
\begin{verbatim}
HKL
0 : NO CONDITIONS
1 : H + K + L = 2n
2 : H, K, L all even or all odd
3 : -H + K + L = 3n
4 : H = K + L = 3n
5 : H + K = 2n
6 : K + L = 2n
7 : H + L = 2n
8 : H + K + L = 6n
9 : H, K, L all even
10 : H, K, L all odd
11 : If H - K = 3n, then L = 6n
H K 0
0 : No conditions
1 : H = 2n
2 : K = 2n
3 : H + K = 2n
4 : H + K = 4n
0 K L
0 : No conditions
1 : K = 2n
2 : K + L = 2n
3 : K + L = 3n
4 : K + L = 4n
5 : L = 2n
H 0 L
0 : No conditions
1 : L = 2n
2 : H = 2n
3 : L + H = 2n
4 : L + H = 4n
H H L
0 : No conditions
1 : L = 2n
2 : H = 2n
3 : 2H + L = 4n
\end{verbatim}
%html mesure.htm 2
%html hklscan.htm 2
%html tricspsd.htm 1
%html histogram.htm 2
%html nextrics.htm 2
%html peaksearch.htm 2
%html trscan.htm 2
%html psddata.htm 1
%html xds.htm 2
%html auto.htm 2
%html autocloud.htm 3
\end{document}

18
doc/user/tricspsd.htm Normal file
View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<TITLE>TRICS with Position Sensitive Detectors</TITLE>
</HEAD>
<BODY>
<H1>TRICS with Position Sensitive Detectors</H1>
<P>
TRICS with a PSD requires the following special features.
<ul>
<li>Instructions for dealing wih <a href="histogram.htm">
histogram memory</a>.
<li><a href="nextrics.htm">NeXus</a> data handling for TRICS.
<li>A <a href="peaksearch.htm">peak search</a> command.
<li>A TRICS specific <a href="trscan.htm">count and scan</a> command.
</ul>
</p>
</BODY>
</HTML>

21
doc/user/trimot.htm Normal file
View File

@ -0,0 +1,21 @@
<HTML>
<HEAD>
<TITLE>TRICS Motors</TITLE>
</HEAD>
<BODY>
<H1>TRICS Motors</H1>
<P>
This chapter has still to be defined as there is a war waging in LNS about
names. Final names will be entered after the end of hostilities. More then
one name may be stated as SICS supports aliases. For now,
you have to do with:
<ul>
<li>OM = A3 = omega motion of the eulerian cradle.
<li>CH = chi circle of the eulerian cradle.
<li>PH = phi circle of the eulerian cradle
<LI>TH = A4 = two theta angle of the detector.
</ul>
</P>
</BODY>
</HTML>

209
doc/user/trouble.htm Normal file
View File

@ -0,0 +1,209 @@
<html>
<head>
<title>SICS Trouble Shooting</title>
</head>
<body>
<h1>SICS Trouble Shooting </h1>
<hr size=4 width="66%">
<p>
There is no such thing as bug free software. There are always bugs, nasty
behaviour etc. This document shall help to solve these problems. The usual
symptom will be that a client cannot connect to the server or the server is
not responding. Or error messages show up. This section helps to solve such
problems.
</p>
<h2>Looking at Log Files</h2>
<p>
The first thing to do, especially when confronted with confusing statements
from either users or instrument scientists, is to look at the SICS servers
log files. The last 1000 lines of the instrument log are accessible from
any SICS client or through the WWW interface. The SICS commands:
<dl>
<dt>commandlog tail
<dd> shows the last 20 lines of the log.
<dt>commandlog tail n
<dd>shows the last n lines of the log.
</dl>
will show you the information available. In order to see more, log in to the
instrument account. There the following unix commands might help:
<ul>
<li><b>sicstail</b> shows the last 20 lines of the current log file and its
name
<li><b>sicstail n</b> shows the last n lines of the current log file.
</ul>
In order to see some more, cd into the log directory of the instrument
account. In there are files with names like:
<pre>
auto2001-08-08@00-01-01.log
</pre>
This means the log file has been started at August, 8, 2001 at 00:01:01.
There is a new log file daily. Load appropriate files into the editor and
look what really happened.
</p>
<p>
The log files show you all commands given and all the responses of the system.
Additionally there are hourly time stamps in the file which allow to narrow
in when the problem started. Things to watch out for are:
<dl>
<dt>MOTOR ALARM
<dd>This message means that the motor failed to reach his position for a
couple of times. This is caused by either a concrete shielding element
blocking the movement of the instrument, badly adjusted motor parameters,
mechanical failures or the air cushions not operating properly.
<dt>EL734__BAD_EMERG_STOP
<dd>Somebody has pushed the emergency stop button. This must be released
before the instrument can move again. Moreover the motor controller will
not respond to further commands in this mode. Thus restarting SICS on this
error message will make SICS fail to initialize the motors affected!
<dt>EL***__BAD_PIPE, BAD_RECV, BAD_ILLG, BAD_TMO, BAD_SEND
<dd>Network communication problems. Can generaly be solved by restarting
SICS.
<dt>EL737__BAD_BSY
<dd>A counting operation was aborted while the beam was off. Unfortunately,
the counter box does not respond to commands in this state and ignores the
stop command sent to it during the abort operation. This can be resolved by
the command:
<pre>
counter stop
</pre>
when the beam is on again.
</dl>
</p>
<h2>Starting SICS</h2>
<p>
An essential prerequisite of SICS is that the server is up
and running. The system is configured to restart the SICServer whenever it
fails. Only after a reboot or when the keepalive processes were killed (see
below) the SICServer must be restarted. This is done for all instruments by
typing:
<pre>
startsics
</pre>
at the command prompt. startsics actually starts two programs: one is
the replicator application which is responsible for the automatic
copying of data files to the laboratory server. The other is the SICS
server. Both programs are started by means of a shell script called
<b>keepalive</b>. keepalive is basically an endless loop which calls
the program again and again and thus ensures that the program will
never stop running.
</p>
<p>
When the SICS server hangs, or you want to enforce an reinitialization of
everything the server process must be killed. This can be accomplished either manually or through a shell script.
</p>
<h2>Stopping SICS</h2>
<p>
All SICS processes can be stopped through the command:
<pre>
killsics
</pre>
given at the unix command line. You must be the instrument user
(for example DMC) on the instrument computer for this to work properly.
</p>
<h2>Restart Everything</h2>
<p>
If nothing seems to work any more, no connections can be obtained etc, then
the next guess is to restart everything. This is especially necessary if
mechanics or electronics people were closer to the instrument then 400 meters.
<OL>
<LI> Reboot the histogram memory. It has a tiny button labelled RST. That' s
the one. Can be operated with a hairpin, a ball point pen or the like.
<LI> Wait 5 minutes.
<LI> Restart the SICServer. Watch for any messages about things not being
connected or configured.
<LI> Restart and reconnect the client programs.
</OL>
If this fails (even after a second) time there may be a network problem which
can not be resolved by simple means.
</p>
<h2>Checking SICS Startup</h2>
<p>
Sometimes it happens that the SICServer hangs while starting up or hardware
components are not properly initialized. In such cases it is useful to
look at the SICS servers startup messages. In order to do so, both the
SICServer and its keepalive process must be killed first. On the instrument
acount issue the command:
<pre>
ps -A | grep SICS
</pre>
A message like this will be printed:
<pre>
23644 ?? I 0:00.00 ksh keepalive SICServer focus.tcl
23672 ?? R 59:24.05 SICServer focus.tcl
7119 ttyp6 S + 0:00.00 grep SICS
</pre>
Remember the numbers in the first columns (the PID's) and kill both
programs by issuing the command:
<pre>
kill -9 pid pid
</pre>
Example:
<pre>
kill -9 23644 23672
</pre>
Note, the numbers are those displayed with the ps -A command.
Then cd into the bin directory of the instrument account and issue
the unix command:
<pre>
SICServer inst.tcl | more
</pre>
Replace inst.tcl with the name of the appropriate instrument initialisation
file. This allows to page through SICS startup messages and will help to
identify the troublesome component. The proceed to check the component and
the connections to it.
</p>
<h2>Getting New SICS Software</h2>
<p>
Sometimes you might want to be sure that you have the latest SICS software.
This is how to get it:
<ol>
<li>Login to the instrument account.
<li>If you are no there type cd to get into the home directory.
<li>Type <b>killsics</b> at the unix prompt in order to stop the SICS server.
<li>Type <b>sicsinstall exe</b> at the unix prompt for copying new
SICS software from the general distribution area.
<li>Type <b> startsics</b> to restart the SICS software.
</ol>
</p>
<h2>Hot Fixes</h2>
<p>
When there is trouble with SICS you may be asked by one of the SICS
programmers to copy the most recent development reason of the SICS server
to your machine. This is done as follows:
<ol>
<li>Login to the instrument account.
<li>cd into the bin directory, for example: /home/DMC/bin.
<li>Type <b> killsics</b> at the unix prompt in order to stop the SICS server.
<li>Type <b>cp /data/koenneck/src/sics/SICServer .</b> at the unix prompt.
<li>Type <b> startsics</b> to restart the SICS software.
</ol>
<b>!!!!!! WARNING !!!!!!!. Do this only when advised to do so by a competent
SICS programmer. Otherwise you might be copying a SICS server in an
instable experimental state!</b>
</p>
<h2> HELP debugging!!!!</h2>
<p>
The SICS server hanging or crashing should not happen. In order to sort such
problems out it is very helpful if any available debugging information is
saved and presented to the programmers. Information available are the log
files as written continously by the SICS server and posssible core files
lying around. They have just this name: core. In order to save them create a
new directory (for example dump2077) and copy the stuff in there. This looks
like:
<pre>
/home/DMC> mkdir dump2077
/home/DMC> cp log/*.log dump2077
/home/DMC> cp core dump2077
</pre>
The <tt>/home/DMC> </tt> is just the command prompt. Please note, that core
files are only available after crashes of the server. These few commands
will help to analyse the cause of the problem and to eventually resolve it.
</p>
</body>
</html>

81
doc/user/velocity.htm Normal file
View File

@ -0,0 +1,81 @@
<html>
<head>
<title> The Velocity Selector </title>
</head>
<body>
<h1>The Velocity Selector </h1>
<p>
The velocity selector is a turbine rotating at high speed. This turbine
annihilates all neutrons which do not manage to travel through the
turbine in a time intervall defined by the rotation speed of the turbine.
Thus neutrons in a certain speed range (energy range) are selected. The
distribution of neutrons is also dependent of a tilt angle between the
rotation axis of the turbine and the neutron beam. A high speed device like
a velocity selector has to account for gyroscopic forces when moving the
device. In praxis this means that the selector must be stopped before the
tilt angle can be changed. Furthermore there are forbidden areas of rotation
speeds. In these areas the velocity selector is in destructive resonance with
itself or its bedding. The command set for a velocity selector is defined
below. The name of the velocity selctor object is assumed to be nvs.
</P>
<P>
<DL>
<DT>nvs rottolerance par
<DD>Sets or requests the tolerance the rotation speed may have before an
error is issued.
<DT>nvs list
<DD>Displays rotation speed and tilt angle of the velocity selctor.
<DT>nvs add min max
<DD>This command adds a forbiden region between min and max to the list
of forbidden regiosn of the velocity selector. These values are usually
configured in the configuration file.
<DT> nvs rot = newval tilt = newval
<DD> This command sets a new tilt angle and/or rotation speed for the
velocity selector. Either one or both of the keywords tilt or rot may be
given, followed by a number.
<DT> nvs interrupt val
<DD>Requests or sets an interrupt value. This interrupt will be issued when
an error on this velocity selector ocurred. With a parameter a new value
is set, without the current value is printed.
<DT> nvs userrights val
<DD>Requests or sets a userright value. This userright value defines
who may drive this velocity selector. With a parameter a new value
is set, without the current value is printed.
<DT> nvs tilttolerance val
<DD>Requests or sets a tilttolerance value. This parameter defines the
permissable tolerance for the tilt motor. With a parameter a new value
is set, without the current value is printed.
<DT>nvs rotinterest
<DD>Enables printing of status messages about the current state of the
selector when it is driven.
<DT> nvs loss
<DD> Starts a loss current measurement on the velocity selector and prints the
result.
<DT>nvs status
<DD>Prints a status summary of the velocity selector.
</DL>
</p>
The commands described so far cover the actual handling of the velocity
selector. During a measurement users might want to use further functions
such as:
<ul>
<li> Monitor the rotation speed of the velocity selector.
<li> Log the rotation speeds of the velocity selector.
<li> Initiate error handling when the velocity selector fails to stay within
a predefined tolerance of rotation speeds.
</ul>
Now, these are tasks usually connected with sample environment devices. Now,
the SICS programmers have been lazy. Moreover they wanted to avoid
duplicating code
(and bugs). Consequently, they tricked the velocity selector to be a
sample environment device as well. This means besides the actual velocity
selector object (in this case called nvs) there exists another object for
monitoring the velocity selector. The name of this device is the name of the
velocity selector object with the string watch appended. For example if the
velocity selector has the SICS name nvs, the monitor object will be
nvswatch. The commands understood by the watch object are fully decribed in
the section about <a href="samenv.htm#all">sample environment devices</a>.
Please note, that all driving commands for the watch object have been
disabled. Driving can only be achieved through the velocity selector object.
</body>
</html>

26
doc/user/velolambda.htm Normal file
View File

@ -0,0 +1,26 @@
<HTML>
<HEAD>
<TITLE>Wavelength adjustment for a Velocity Selector</TITLE>
</HEAD>
<BODY>
<H1>Wavelength adjustment for a Velocity Selector</H1>
<P>
The wavelength selected by a neutron velocity selector depends on the tilt
angle of the selector and its rotation speed. This is what the velocity
selector wavelength command is for. It is usually installed into the system
as lambda. This variable can be driven using the normal <a href="drive.htm">
drive and run </a> commands. Additionally this command understands a few sub
commands. For the following discussion is assumed that the name of the
command is lambda.
<dl>
<DT>lambda
<DD>The name of the variable alone prints the current wavelength in nm.
<DT>lambda rot val
<DD>calculates the rotation speed for the wavelength given by val.
<DT>lambda wl val
<DD>calculates the wavlength for the rotation speed given as parameter val.
</dl>
</P>
</BODY>
</HTML>

36
doc/user/xytable.htm Normal file
View File

@ -0,0 +1,36 @@
<HTML>
<HEAD>
<TITLE>XYTable</TITLE>
</HEAD>
<BODY>
<H1>XYTable</H1>
<P>
XYTable is a class which maintains a list of X-Y values. These can be plotted
in the VarWatch SICS client by configuring it with a special command. Before
you may use an XYTable object it had to be installed into the system by
you friendly SICS administrator. For this documentation it is assumed that
this has happened and a XYTable object is available in the system under
the name <b>ixi</b>. How to configure a XYTable object can be learnt from
the SICS managers documentation.
</P>
<p>
Interaction with the XYTable object happens through the following commands:
<dL>
<dt>ixi clear
<dd>clears all entries in the x-y table.
<dt>ixi list
<dd>lists the entries in the x-y table on the screen.
<dt>ixi write filename
<dd>writes the x-y list to the disk file filename. This file resides on the
machine running the SICS server.
<dt>ixi uuget
<dd>sends the x-y list in an uuencoded format. This is the command to give
to the VarWatch SICS client in order to make it display the x-y list.
<dt>ixi add x y
<dd>creates a new x-y list entry with the values x and y.
<dd>
</dl>
</p>
</BODY>
</HTML>