Updated user documentation. MK

This commit is contained in:
cvs
2000-02-11 15:21:07 +00:00
parent b98f7db7f6
commit af97d16309
26 changed files with 1506 additions and 394 deletions

View File

@ -18,7 +18,7 @@
\begin{huge}
SICS--Managers--Manual \\
\end{huge}
Version 1.0, October,1997\\
Version: \today\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\

View File

@ -7,10 +7,22 @@
<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 who will execute the command. The clients second task is to listen to the the server messages and display them in a readable format. This aoproach 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>
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 or counters, 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>
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
@ -27,7 +39,10 @@ convention.
<h3>Authorisation</h3>
<p>
A client server system is potentially open to unauthorised hackers which might mess up the instrument and your valuable measurements. A known problem in instrument control is that less knowledgeable user accidentally change instrument adjustments which should better 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>
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.
@ -49,8 +64,8 @@ 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 to type
commands to the SICS server. For more information about this client consult
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>

View File

@ -5,7 +5,18 @@
<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;nbuffer 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>
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 name </b> creates a new empty R&#252;nbuffer with the name name. name will be installed as a SICS object afterwards.
@ -14,7 +25,8 @@
</ul>
</p>
<p>
After creation, the R&#252;nbuffer is accessible by his name. It than understands the commands:<ul>
After creation, the R&#252;nbuffer is accessible by his name. It
then understands the commands:<ul>
<li> <b> NAME append what shall we do with a drunken sailor </b> will add all text after append as a new line at the end of the R&#252;nbuffer.
<li> <b> NAME print </b> will list the contents of the R&#252;nbuffer.
<li> <b> NAME del iLine </b> will delete line number iLine from the R&#252;nbuffer.
@ -37,3 +49,5 @@
</p>
</body>
</html>

View File

@ -5,7 +5,7 @@
<body>
<h2>Configuration Commands</h2>
<p>
SICS allows to change 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>
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.
@ -23,7 +23,7 @@
</ul>
</p>
<p>
<b> config </b> allows to configure 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>
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.

View File

@ -6,13 +6,14 @@
<h1>SICS counter handling</h1>
<hr size=4 width="66%">
<p>
This section deals with the SICS interface to single counters.
Where the SICS counter concept may include several monitors per
counter. A counter is, again, a named object which takes commands.
A word or two has to be lost about the SICS handling of preset values for counters.
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
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
@ -20,7 +21,9 @@ 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.
The commands understood are:<ul>
Again, in SICS the counter is an object which understands a set of
commands:
<ul>
<li> <b> countername SetPreset val </b> sets the counting preset to val.
<li> <b> countername GetPreset </b> prints the current preset value.
<li> <b> countername preset val</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.
@ -53,6 +56,12 @@ paused.
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 arg1 arg2 arg3 ...</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>

View File

@ -1,9 +1,9 @@
<html>
<head>
<title> DMC-User Manual </title>
<title> DMC and HRPT Reference Manual </title>
</head>
<body>
<h1><center>DMC-User Manual</center></h1>
<h1><center>DMC and HRPT Reference Manual</center></h1>
<hr size=4 width="66%">
</p>
<p>
@ -22,7 +22,8 @@ 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> Commands for handling <a href=samenv.htm>sample</a> environement
<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>
@ -43,7 +44,7 @@ Local Contacts:
<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 not yet operational!
Peter Fischer</a>. HRPT is finally operational.
</ul>
</p>
<hr size=4 width="66%">
@ -64,7 +65,7 @@ Laboratory for Neutron Scattering</a> home page.
</p>
<hr size=4 width="66%">
<p>
Last updated: 6-may-1999, <a href="mailto:Mark.Koennecke@psi.ch">Mark K&ouml;nnecke</a>
Last updated: 11-feb-2000, <a href="mailto:Mark.Koennecke@psi.ch">Mark K&ouml;nnecke</a>
</p>
</body>
</html>

View File

@ -1,11 +1,11 @@
<html>
<head>
<title> DMC-specific commands and device list </title>
<title> DMC and HRPT specific commands and devices</title>
</head>
<body>
<h1>DMC-specific command and device list</h1>
<h1>DMC and HRPT specific commands and devices</h1>
<hr size=4 width="66%">
<H2>DMC specific commands</H2>
<H2>DMC and HRPT specific commands</H2>
<P>
<DL>
<DT>StoreData
@ -56,7 +56,7 @@ memory object. After the count, StoreData will be automatically called.
</DL>
</p>
<h2>Other DMC devices</h2>
<h2>Other DMC and HRPT devices</h2>
<p>
<DL>
<DT>banana
@ -66,7 +66,7 @@ memory object. After the count, StoreData will be automatically called.
</DL>
</p>
<h2>DMC Variables</h2>
<h2>DMC and HRPT Variables</h2>
<p>
<DL>
<DT>Instrument

View File

@ -1,10 +1,10 @@
<html>
<head>
<title> DMC Command Summary </title>
<title> DMC and HRPT Command Summary </title>
</head>
<body>
<h1>DMC Command Summary</h1>
<h1>DMC and HRPT Command Summary</h1>
<hr size=4 width="66%">
<p>
<h2>Most Used Commands</h2>
@ -35,7 +35,8 @@ move. Add 10 extra levels of care to the above when doing this.
<DD> Runs motors.
</DL>
Known motors are: OmegaA, A1, TwoThetaM, A2, MonoX, MonoY, MonoChi, MonoPhi,
CurveM, Table, A3, TwoThetaD, A4.
CurveM, Table, A3, TwoThetaD, A4 at DMC, for HRPT see the <a
href="hrptdev.htm"> HRPT motor list</a>.
</p>
<h2> Counting </h2>
@ -163,3 +164,8 @@ are:
</body>
</html>

View File

@ -7,10 +7,10 @@
<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 do things to the instrument while perhaps a slow device is running into position.</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 immediatetly followed by a Success command.</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>

View File

@ -52,6 +52,7 @@ devices through the network.
\label{f1}
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
@ -59,23 +60,27 @@ 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.
Then there are one to many client programs which interact with the
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 allows to influence the
course of the experiment. Graphical User Interfaces may be added at a
later time.
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 TCP/IP sockets.
with each other through the TCP/IP network.
Currently five SICS clients are available:
\begin{itemize}
\item A command line control client which allows to control the measurement.
\item A status display for DMC.
\item A command line control client for sending commands to the SICS
server and displaying its repsonses.
\item A status display for the powder diffractometers DMC and HRPT.
\item A status display for TOPSI.
\item A status display for SANS.
\item A status display for FOCUS.
\item A SICS variable watcher.
\item A status display for AMOR.
\item A SICS variable watcher. This application graphically logs the
change of a SICS variable over time. Useful for monitoring for
instance temperature controllers.
\end{itemize}
@ -103,6 +108,7 @@ following commands at the command prompt:
\item[topsistatus \&] for the TOPSI status display.
\item[sansstatus \&] for the SANS status display.
\item[focustatus] for the FOCUS status display.
\item[amor] for the AMOR status display and control application.
\item[varwatch \&] for the variable watcher.
\end{description}
On a PC you may find icons for starting the different programs on the
@ -140,11 +146,13 @@ the SICS server log in as the instrument user at the instrument computer and
invoke the apropriate command to start the server. These are:
\begin{description}
\item[DMC] Computer = lnsa05,User = DMC
\item[TOPSI] Computer = lnsa03,User = TOPSI
\item[SANS] Computer = lnsa07,User = SANS
\item[TRICS] Computer = lnsa12, User = TRICS
\item[TOPSI] Computer = lnsa07,User = TOPSI
\item[SANS] Computer = lnsa10,User = SANS
\item[TRICS] Computer = lnsa13, User = TRICS
\item[HRPT] Computer = lnsa11, User = HRPT
\item[FOCUS] Computer = lnsa13, User = FOCUS
\item[FOCUS] Computer = lnsa12, User = FOCUS
\item[AMOR] Computer = lnsa14, User = AMOR
\item[DRUECHAL] Computer = lnsa16, User = DRUECHAL
\end{description}
For starting the SICS server type {\bf startsics}. This is a shell script
which will starts all necessary server programs. This script works only on
@ -161,11 +169,11 @@ SICS (cf.\ Section~\ref{f19}).
Many objects in SICS are {\bf drivable }. This means they can run to a new value. Obvious examples are motors. Less obvious examples include composite adjustments such as setting a wavelength or an energy. This class of objects can be operated by the {\bf drive, run, Success } family of commands. These commands cater for blocking and non-blocking modes of operation.
{\bf run var newval var newval ... } 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 do things to the instrument while perhaps a slow device is running into position.
{\bf run var newval var newval ... } 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.
{\bf Success } waits and blocks the command connection until all pending operations have finished (or an interrupt occured).
{\bf drive var newval var newval ... } 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 immediatetly followed by a Success command.
{\bf drive var newval var newval ... } 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.
% html: End of file: `drive.htm'
% html: Beginning of file: `fomo.htm'
@ -314,16 +322,17 @@ commandlog (cf.\ Section~\ref{f22}) command.
\label{f21}
Some users wish like to have all the input typed to SICS and all responses
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 understands the following syntax:
command. LogBook is actually a wrapper around the config file command.
LogBook understands the following syntax:
\begin{description}
\item[ LogBook] alone prints the name of the current logfile and the status of event
logging.
\item[ LogBook file filename] This command sets the filename to which output will be printed.
Please note that this new filename will only be in effect after restarting
logging.
\item[ LogBook on] This command turns loggin on. All commands and all answers will be
\item[ LogBook on] 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.
\item[ LogBook off] This command closes the logfile and ends logging.
@ -378,11 +387,16 @@ facility is processing batch files.
\label{f23}
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. The following commands allow access to the macro facility:
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:
{\bf FileEval name } tries to open the file name and executes the script in this file. Please note that the server is configured via such a file.
{\bf FileEval name } tries to open the file name and executes the script in this file.
Then there are some special commands which can be used within macro-sripts:
{\bf ClientPut sometext1 ... } writes everything after ClientPut to the client which started the script. Useful for output to a client from macro scripts.
{\bf ClientPut sometext1 ... } 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.
{\bf SICSType object } allows to query the type of the object specified by object. Possible return values are
\begin{itemize}
@ -395,11 +409,13 @@ facility is processing batch files.
{\bf SICSbounds var newval } checks if the new value newval lies within the limits for varaible var. Returns an error or OK depending on the result of the test.
{\bf SICSStatus var } SICS devices such as counters or motor may be started and left running while the program is free to do something else. This command allows to enquire the status of such a running device. Return values are internal SICS integer codes. This command is only of use for SICS programmers.
{\bf SICSStatus var } 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.
{\bf SetStatus newval } allows to set the SICS status to one of: Eager, UserWait, Count, NoBeam, Driving, Running, Scanning, Batch Hatl or Dead. This command is only available in macros.
{\bf SetStatus newval } 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.
{\bf SetInt newval, GetInt } allow for the manipulation of 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.
{\bf SetInt newval, GetInt } 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.
% html: End of file: `macro.htm'
% html: Beginning of file: `buffer.htm'
@ -407,7 +423,18 @@ facility is processing batch files.
\label{f24}
LNS scientists have got used to using R\"unbuffers for instrument control. A R\"unbuffer is an array of SICS commands which typically represent a measurement. This R\"unbuffer 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\"unbuffers. When done with editing the R\"unbuffer it can be entered in a R\"unlist. This is a stack of R\"unbuffers which get executed one by one. While this is happening it is possible (from another client) to modify the R\"unlist and edit and add additional R\"unbuffer 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:
LNS scientists have got used to using R\"unbuffers for instrument
control. A R\"unbuffer is an array of SICS commands which
typically represent a measurement. This R\"unbuffer 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\"unbuffers. When done with
editing the R\"unbuffer it can be entered in a R\"unlist. This
is a stack of R\"unbuffers which get executed one by one. While
this is happening it is possible (from another client) to modify the
R\"unlist and edit and add additional R\"unbuffers 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:
The {\bf Buf } object is responsible for creating and deleting R\"unbuffers. The syntax is:
\begin{itemize}
@ -416,7 +443,8 @@ facility is processing batch files.
\item {\bf Buf del name } deletes the R\"unbuffer name.
\end{itemize}
After creation, the R\"unbuffer is accessible by his name. It than understands the commands:
After creation, the R\"unbuffer is accessible by his name. It
then understands the commands:
\begin{itemize}
\item {\bf NAME append what shall we do with a drunken sailor } will add all text after append as a new line at the end of the R\"unbuffer.
\item {\bf NAME print } will list the contents of the R\"unbuffer.
@ -446,9 +474,10 @@ facility is processing batch files.
\label{f8}
In SICS any client can issue commands to the SICS server. This
is a potential cause for trouble with users issuing conflicting
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. A connection can grab a
{\tt{}"{}}token{\tt{}"{}} 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
@ -545,8 +574,8 @@ reasonable default parameters.
In the SICS model
a sample environment device has in principle two modes of operation. The first
is the drive modus. The device is monitored in this modus when a new value for it
has been requested. The second modus is the monitor modus. This modus is entered
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 {\bf emon}. The emon understands a few commands of its
@ -569,10 +598,10 @@ section discussing the special devices known to the system.
A \label{f10:error}sample 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 differntiated. The SICS model therefore implements several
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 variable which can be set by the user for
any sample environment device separatetly. Additional error handling strategies
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:
\begin{description}
@ -625,8 +654,12 @@ out of tolerance errors on that device no longer be handled.
\label{f10:all}
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 EVFavtory!
of the environment device as configured in EVFactory!
The general commands understood by any environment controller can be subdivided
further into parameter commands and real commands. The parameter commands just
@ -635,7 +668,8 @@ set if a parameter is specified. For example:
\begin{quotation}
Temperature Tolerance\end{quotation}
prints the value of the variable Tolerance for the environment controller
Temperature.
Temperature. This is in the same units as the controller operates,
i. e. for a temperature controller Kelvin.
\begin{quotation}
Temperature Tolerance 2.0\end{quotation}
sets the parameter Tolerance for Temperature to 2.0. Parameters known to ANY
@ -679,31 +713,35 @@ Safe error handling is set.
Additionally the following commands are understood:
\begin{description}
\item[send par par ...] Sends everything after send directly to the controller and return its
response. This is a general purpose command which allows to manipulate controllers
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
calibrartion tables etc.
calibration tables etc.
\item[ list] lists all the parameters for this controller.
\item[ no command, only name.] When only the name of the device is typed it will return its
current value.
\item[ name val ] will drive the device to the new value val. Please note that the same
can be achieved by using the drive command.
\item[ name log on] Switches logging on. If logging is on, at each cycle in the emon the
\item[ name log on] Switches logging on. If logging is on, at each cycle in the
{\bf emon}
the
current value of the environment variable will be recorded together with a
time stamp. Be careful about this, for each log point a bit of memory is
allocated. At some time the memory is exhausted! Log clear frees it again
and log frequency (both below) allows to set the logging time intervall.
allocated. At some time the memory is exhausted! {\bf Log clear}
frees
it again
and {\bf log frequency} (both below)
allows to set the logging time intervall.
\item[ name log off] Switches logging off.
\item[name log clear] Clears all recorded time stamps and values.
\item[name log gettime] This command retrieves a list of all recorded time stamps.
\item[name log getval] This command retrieves all recorded values.
\item[name log getmean] Calculates the mean value and the standard deviation for all logged
values and prints it.
values and prints them.
\item[name log frequency val] With a parameter sets, without a parameter requests the logging intervall
for the log created. This parameter specifies the time intervall in seconds
between log records. The default is 5 minutes. A value of 0 means a record any
cycle of the SICServer.
between log records. The default is 300 seconds.
\item[name log file filename] Starts logging of value data to the file filename. All normal logging to
memory will be
disabled. Logging will happen any 5 minutes initially. The logging frequency
@ -725,8 +763,9 @@ that special device. All of the general commands listed above work as well!
\label{f10:itc4}
These temperature controller are fairly popular at SINQ. It is manufactured by
Oxford Instruments. At the back side of this controller there is a RS-232
These temperature controller are 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
@ -743,9 +782,9 @@ 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:
\begin{quotation}
EVFactory new Temp ITC4 lnsp22.psi.ch 4000 6\end{quotation}
connects Temp to the Macintosh named lnsp22, serial port 5 (6 above is no typo!),
listening at port 4000.
EVFactory new Temp ITC4 lnsp22.psi.ch 4000 7\end{quotation}
connects Temp to the Macintosh named lnsp22, serial port 6
(7 above is no typo!), listening at port 4000.
\paragraph{ITC-4 Additional Parameters}
@ -754,14 +793,14 @@ The ITC-4 has a few more parameter commands:
\begin{description}
\item[timeout] Is the timeout for the Macintosh terminal server program waiting for
responses from the ITC-4. Increase this parameter if error messages
containg ?TMO creeping up.
containg ?TMO appear.
\item[ sensor] Sets the sensor number to be used for reading temperature.
\item[ control] Sets the control sensor for the ITC-4. This sensor will be used
internally for regulating the ITC-4.
\item[divisor] 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. Is usually 10 for a sensor
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.
\item[multiplicator] The same meaning as the divisor above, but for the control sensor.
@ -804,12 +843,15 @@ current one.
If the ITC-4 {\bf does not respond at all}, make sure the serial connection to
the Macintosh is working. Use standard RS-232 debugging procedures for doing
this. The not responding may also come up as a failure to connect to the ITC-4
during startup.
this. The not responding message may also come up as a failure to
connect
to the ITC-4 during startup.
If error messages containing the string {\bf ?TMO} keep creeping up followed
by all signs of command not understood, then increase the timeout. The standard
timeout of 10 microseconds is to short at times.
If error messages containing the string {\bf ?TMO} 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.
You keep on reading {\bf wrong values} from the ITC4. Mostly off by a
factor 10. Then set the divisor correctly. Or you may need to choose a
@ -824,9 +866,10 @@ causes for this problem:
\item 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.
\item The software is reading back wrong temperature because the sensor and
\item 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 parameters accordingly.
it does have nothing to do with reality, set the parameters accordingly.
\item 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.
@ -843,7 +886,7 @@ within the tolerance. That is the temperature value you wanted after all.
\label{f10:haake}
This is sort of a buck full of water equipped with a temperature
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
@ -857,7 +900,7 @@ initialisation parameters, second install the device with evfactory. A
command procedure is supplied for the first step. Thus the initialisation
sequence becomes:
\begin{quotation}
inihaakearray name-o-array macintosh-computer name port channel\newline
inihaakearray name-of-array macintosh-computer name port channel\newline
evfactory new temperature tcl name-of-array\end{quotation}
An example for the SANS:
\begin{quotation}
@ -984,13 +1027,13 @@ serial port 6 at lnsp18.
The additional commands understood by the LTC-11 controller are:
\begin{description}
\item[temperature sensor ] allows to query the current sensor used for temperature readout.
\item[temperature sensor val ] allows to select the sensor val for temperature readout.
\item[temperature controlanalog ] allows to query the sensor used for controlling the analog channel.
\item[temperature controlanalog val ] allows to select the sensor val for controlling the analog channel.
\item[temperature controlheat ] allows to query the sensor used for controlling the heater channel.
\item[temperature controlheat val ] allows to select the sensor val for controlling the heater channel.
\item[temperature mode] Allows to query if the LTC-11 controls the analog or heater channel.
\item[temperature sensor ] queries the current sensor used for temperature readout.
\item[temperature sensor val ] selects the sensor val for temperature readout.
\item[temperature controlanalog ] queries the sensor used for controlling the analog channel.
\item[temperature controlanalog val ] selects the sensor val for controlling the analog channel.
\item[temperature controlheat ] queries the sensor used for controlling the heater channel.
\item[temperature controlheat val ] selects the sensor val for controlling the heater channel.
\item[temperature mode] queries if the LTC-11 is in analog or heater control mode.
\end{description}
Further notes: As the CryoFurnace is very slow and the display at the
@ -1240,13 +1283,13 @@ status display clients.
\item {\bf SoftLowerLim } is the software lower limit. This can be defined by the user in order to restrict instrument movement in special cases.
\item {\bf SoftUpperLim } is the software upper limit. This can be defined by the user in order to restrict instrument movement in special cases.
\item {\bf SoftZero } defines a software zero point for the motor. All further movements will be in respect to this zeropoint.
\item {\bf Fixed } can be greater 0 for the motor being fixed and less
or equal than zero for the motor being movable.
\item {\bf InterruptMode } defines the interrupt to issue when the motor fails. Some motors are so critical for the operation of the instrument that all operations shall 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.
\item {\bf Fixed } can be greater then 0 for the motor being fixed and less then
or equal to zero for the motor being movable.
\item {\bf InterruptMode } 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.
\item {\bf Precision } denotes the precision to expect from the motor in positioning. Can usually only be set by managers.
\item {\bf AccessCode } 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.
\item {\bf Speed }, defunct.
\item {\bf Sign } allows to reverse the operating sense of the motor.
\item {\bf Sign } 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.
\end{itemize}
@ -1259,20 +1302,21 @@ or equal than zero for the motor being movable.
\label{f14}
This section deals with the SICS interface to single counters.
Where the SICS counter concept may include several monitors per
counter. A counter is, again, a named object which takes commands.
A word or two has to be lost about the SICS handling of preset values for counters.
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
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.
The commands understood are:
Again, in SICS the counter is an object which understands a set of
commands:
\begin{itemize}
\item {\bf countername SetPreset val } sets the counting preset to val.
\item {\bf countername GetPreset } prints the current preset value.
@ -1306,6 +1350,12 @@ paused.
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?)
\item {\bf countername send arg1 arg2 arg3 ...} 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.
\end{itemize}
% html: End of file: `counter.htm'
@ -1379,13 +1429,18 @@ server. This command is primarily of interest for status display client
implementors.
{\bf backup file} saves the current values of SICS variables and selected
motor and device parameters to the disk file specified as parameter. The
path to this files is relative to the SICS server directory. The format
of the file is a list of SICS commands to set all these parameters again.
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.
{\bf restore file} 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.
backup. If no file argument is given the system default file gets
read.
% html: End of file: `system.htm'
% html: Beginning of file: `topscan.htm'
@ -1394,6 +1449,11 @@ above and restores SICS to the state it was in when the status was saved with
\label{f17}
An important concept in neutron scattering instrument control is a
{\tt{}"{}}scan{\tt{}"{}}. 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.
The general idea of the scan object for TOPSI 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
@ -1435,7 +1495,7 @@ center value. This mostly used for centering purposes. The syntax is like this:
cscan var center delta np preset\end{quotation}
All parameters must be specified. The parameters and their meanings:
\begin{itemize}
\item {\bf var} is the varibale which is to be center scanned.
\item {\bf var} is the variable which is to be center scanned.
Only one can be specified.
\item {\bf center} is the value to use as center of the scan.
\item {\bf delta} is the step width to use for the scan.
@ -1455,10 +1515,11 @@ sscan var1 start end var2 start end ... np preset\end{quotation}
All parameters must be specified. The parameters and their meanings:
\begin{itemize}
\item {\bf var1 start end} This is how the variables to scan are specified. For
each variable scanned a triplet must be given which consists of the name of the
variable, the start value and the end value of the scan. More then one triplet
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.
\item {\bf np} is the number of points to scan in each direction.
\item {\bf np} is the number of points to scan.
\item {\bf preset} is the preset to use for the counter. As the counter mode,
the mode currently configured active in the scan object is used.
\end{itemize}
@ -1472,7 +1533,8 @@ the results of the last scan still in memory. The command {\bf peak} prints
the position, FWHM and maximum value of the peak in the last scan. The
command {\bf center} 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 about gauss shaped. The
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
@ -1484,7 +1546,7 @@ the position, FWHM and maximum value of the peak in the last scan. The
\label{f18}
SICS allows to change 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:
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:
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 {\bf GetLog } command. It needs to be stressed that this log receives messages from {\bf all } active clients. GetLog understands the following messages:
\begin{itemize}
@ -1503,7 +1565,7 @@ the position, FWHM and maximum value of the peak in the last scan. The
\item {\bf Value } Some commands return requested values to a user. These messages have an output code of Value.
\end{itemize}
{\bf config } allows to configure 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.
The {\bf config } 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.
\begin{itemize} \item The command {\bf config OutCode val } 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.
\item 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 {\bf config Rights Username Password }. If a matching entry can be found in the servers password database new rights will be set.
@ -1546,7 +1608,7 @@ 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
{\bf keepalive}. keepalive is basically an endless loop which calls
the program again and agaian and thus ensures that the program will
the program again and again and thus ensures that the program will
never stop running.
When the SICS server hangs, or you want to enforce an reinitialization of

View File

@ -10,20 +10,45 @@
<h2>Chapter Overview</h2>
<p>
<ul>
<li> This chapter starts with an overview over some <a href="basic.htm">basic</a> SICS concepts.
<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> for managing control access to
<li> The <a href="token.htm">Token command</a>is for managing control access to
the SICS server.
<li> A few commands permit to <a href="config.htm">change</a> user rights, set output files and the like.
<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> Than there is the <a href="buffer.htm">famous</a> LNS-R&#252;nbuffer system.
<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> Logging of client output to a file can be performed with the <a
href=logbook.htm>LogBook</a> command and the <a
href="commandlog.htm">commandlog </a>.
<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>

View File

@ -5,9 +5,10 @@
<body>
<h1>LogBook command</h1>
<p>
Some users wish like to have all the input typed to SICS and all responses
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 understands the following syntax:
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
@ -17,7 +18,7 @@ logging.
Please note that this new filename will only be in effect after restarting
logging.
<DT> LogBook on
<DD> This command turns loggin on. All commands and all answers will be
<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

View File

@ -5,11 +5,16 @@
<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. The following commands allow access to the macro facility:</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 name </b> tries to open the file name and executes the script in this file. Please note that the server is configured via such a file.</p>
<b> FileEval name </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. Useful for output to a client from macro scripts.</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
@ -22,10 +27,14 @@
<p>
<b> SICSbounds var newval </b> checks if the new value newval lies within the limits for varaible var. Returns an error or OK depending on the result of the test.</p>
<p>
<b> SICSStatus var </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 allows to enquire the status of such a running device. Return values are internal SICS integer codes. This command is only of use for SICS programmers.</p>
<b> SICSStatus var </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 newval </b> allows to set 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>
<b> SetStatus newval </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 newval, GetInt </b> allow for the manipulation of 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>
<b> SetInt newval, GetInt </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>

View File

@ -28,13 +28,13 @@ status display clients.
<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 0 for the motor being fixed and less
or equal than 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 shall 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> 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> Speed </b>, defunct.
<li> <b> Sign </b> allows to reverse the operating sense of the motor.
<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>

View File

@ -5,14 +5,14 @@
<BODY>
<H1>The Peak Optimiser</H1>
<P>
In instrument control the need arises to optimise a peak with respect to
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 usefull during instrument calibration.
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 way of
operation is like this:
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

View File

@ -41,8 +41,8 @@ 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 modus. The device is monitored in this modus when a new value for it
has been requested. The second modus is the monitor modus. This modus is entered
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
@ -65,10 +65,10 @@ section discussing the special devices known to the system.
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 differntiated. The SICS model therefore implements several
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 variable which can be set by the user for
any sample environment device separatetly. Additional error handling strategies
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>
@ -122,8 +122,12 @@ out of tolerance errors on that device no longer be handled.
<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 EVFavtory!
of the environment device as configured in EVFactory!
</p>
<p>
The general commands understood by any environment controller can be subdivided
@ -134,7 +138,8 @@ set if a parameter is specified. For example:
Temperature Tolerance
</BLOCKQUOTE>
prints the value of the variable Tolerance for the environment controller
Temperature.
Temperature. This is in the same units as the controller operates,
i. e. for a temperature controller Kelvin.
<BLOCKQUOTE>
Temperature Tolerance 2.0
</BLOCKQUOTE>
@ -188,11 +193,11 @@ 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 which allows to manipulate controllers
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
calibrartion tables etc.
calibration tables etc.
<DT> list
<DD> lists all the parameters for this controller.
<DT> no command, only name.
@ -202,11 +207,16 @@ current value.
<DD> will drive the device to the new value val. Please note that the same
can be achieved by using the drive command.
<DT> name log on
<DD> Switches logging on. If logging is on, at each cycle in the emon the
<DD> Switches logging on. If logging is on, at each cycle in the
<b>emon</b>
the
current value of the environment variable will be recorded together with a
time stamp. Be careful about this, for each log point a bit of memory is
allocated. At some time the memory is exhausted! Log clear frees it again
and log frequency (both below) allows to set the logging time intervall.
allocated. At some time the memory is exhausted! <b>Log clear</b>
frees
it again
and <b>log frequency</b> (both below)
allows to set the logging time intervall.
<DT> name log off
<DD>Switches logging off.
<DT>name log clear
@ -217,12 +227,11 @@ and log frequency (both below) allows to set the logging time intervall.
<DD> This command retrieves all recorded values.
<DT>name log getmean
<DD>Calculates the mean value and the standard deviation for all logged
values and prints it.
values and prints them.
<DT>name log frequency val
<DD> With a parameter sets, without a parameter requests the logging intervall
for the log created. This parameter specifies the time intervall in seconds
between log records. The default is 5 minutes. A value of 0 means a record any
cycle of the SICServer.
between log records. The default is 300 seconds.
<DT>name log file filename
<DD> Starts logging of value data to the file filename. All normal logging to
memory will be
@ -243,8 +252,9 @@ that special device. All of the general commands listed above work as well!
</p>
<h3><a name="itc4">ITC-4</a> and ITC-503 Temperature Controllers</h3>
<p>
These temperature controller are fairly popular at SINQ. It is manufactured by
Oxford Instruments. At the back side of this controller there is a RS-232
These temperature controller are 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
@ -261,10 +271,10 @@ 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 6
EVFactory new Temp ITC4 lnsp22.psi.ch 4000 7
</BLOCKQUOTE>
connects Temp to the Macintosh named lnsp22, serial port 5 (6 above is no typo!),
listening at port 4000.
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>
@ -273,7 +283,7 @@ The ITC-4 has a few more parameter commands:
<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 creeping up.
containg ?TMO appear.
<DT> sensor
<DD> Sets the sensor number to be used for reading temperature.
<DT> control
@ -283,7 +293,7 @@ internally for regulating the ITC-4.
<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. Is usually 10 for a sensor
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
@ -325,12 +335,15 @@ current one.
<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 may also come up as a failure to connect to the ITC-4
during startup.
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 creeping up followed
by all signs of command not understood, then increase the timeout. The standard
timeout of 10 microseconds is to short at times.
<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
@ -348,9 +361,10 @@ causes for this problem:
<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 wrong temperature because the sensor and
<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 parameters accordingly.
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.
@ -365,7 +379,7 @@ within the tolerance. That is the temperature value you wanted after all.
</p>
<h3><a name="haake">Haake</a> Waterbath Thermostat</h3>
<p>
This is sort of a buck full of water equipped with a temperature
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
@ -379,7 +393,7 @@ 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-o-array macintosh-computer name port channel<br>
inihaakearray name-of-array macintosh-computer name port channel<br>
evfactory new temperature tcl name-of-array
</BLOCKQUOTE>An example for the SANS:
<BLOCKQUOTE>
@ -519,19 +533,19 @@ serial port 6 at lnsp18.
The additional commands understood by the LTC-11 controller are:
<dl>
<dt>temperature sensor
<dd> allows to query the current sensor used for temperature readout.
<dd> queries the current sensor used for temperature readout.
<dt>temperature sensor val
<dd> allows to select the sensor val for temperature readout.
<dd> selects the sensor val for temperature readout.
<dt>temperature controlanalog
<dd> allows to query the sensor used for controlling the analog channel.
<dd> queries the sensor used for controlling the analog channel.
<dt>temperature controlanalog val
<dd> allows to select the sensor val for controlling the analog channel.
<dd> selects the sensor val for controlling the analog channel.
<dt>temperature controlheat
<dd> allows to query the sensor used for controlling the heater channel.
<dd> queries the sensor used for controlling the heater channel.
<dt>temperature controlheat val
<dd> allows to select the sensor val for controlling the heater channel.
<dd> selects the sensor val for controlling the heater channel.
<dt>temperature mode
<DD>Allows to query if the LTC-11 controls the analog or heater channel.
<DD>queries if the LTC-11 is in analog or heater control mode.
</dl>
</p>
<p>
@ -603,3 +617,5 @@ special commands are supported for the EL755.
</p>
</body>
</html>

View File

@ -5,6 +5,7 @@
<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
@ -13,24 +14,28 @@ 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 one to many client programs which interact with the
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 allows to influence the
course of the experiment. Graphical User Interfaces may be added at a
later time.
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 TCP/IP sockets.
with each other through the TCP/IP network.
</p>
<p>
Currently five SICS clients are available:
<uL>
<li> A command line control client which allows to control the measurement.
<li> A status display for DMC.
<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 SICS variable watcher.
<li> A status display for AMOR.
<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>
@ -59,6 +64,8 @@ following commands at the command prompt:
<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>varwatch &
<DD> for the variable watcher.
</dl>
@ -93,15 +100,19 @@ invoke the apropriate command to start the server. These are:
<DT>DMC
<DD>Computer = lnsa05,User = DMC
<DT>TOPSI
<DD>Computer = lnsa03,User = TOPSI
<DD>Computer = lnsa07,User = TOPSI
<DT>SANS
<DD>Computer = lnsa07,User = SANS
<DD>Computer = lnsa10,User = SANS
<DT>TRICS
<DD>Computer = lnsa12, User = TRICS
<DD>Computer = lnsa13, User = TRICS
<DT>HRPT
<DD>Computer = lnsa11, User = HRPT
<DT>FOCUS
<DD>Computer = lnsa13, User = FOCUS
<DD>Computer = lnsa12, User = FOCUS
<DT>AMOR
<DD>Computer = lnsa14, User = AMOR
<DT>DRUECHAL
<DD>Computer = lnsa16, User = DRUECHAL
</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

View File

@ -25,14 +25,19 @@ implementors.
</p>
<p>
<b>backup file</b> saves the current values of SICS variables and selected
motor and device parameters to the disk file specified as parameter. The
path to this files is relative to the SICS server directory. The format
of the file is a list of SICS commands to set all these parameters again.
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>restore file</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.
backup. If no file argument is given the system default file gets
read.
</p>
</body>
</html>

View File

@ -6,9 +6,10 @@
<H2>The Token Command</H2>
<P>
In SICS any client can issue commands to the SICS server. This
is a potential cause for trouble with users issuing conflicting
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. A connection can grab 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

View File

@ -1,48 +1,803 @@
<html>
<head>
<title> List of TOPSI devices</title>
</head>
<body>
<h1>TOPSI 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.
</DL>
With all these names, this chapter must be written by Daniel Clemens.
</p>
<h2>Counters </H2>
<p>
There is only one named counter.
</p>
<!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>
<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
<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.
<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.
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>
</p>
</body>
</html>
<!--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>

View File

@ -8,9 +8,9 @@
<p>TOPSI controls a couple of :
<UL>
<LI><a href= motor.htm>motors</a>.
<a href = counter.htm>counter box</a> for
reading monitors.
<LI> and various
<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

View File

@ -7,6 +7,12 @@
<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 for TOPSI 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
@ -59,7 +65,7 @@ cscan var center delta np preset
</BLOCKQUOTE>
All parameters must be specified. The parameters and their meanings:
<UL>
<LI><b>var</b> is the varibale which is to be center scanned.
<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.
@ -79,10 +85,11 @@ sscan var1 start end var2 start end ... np preset
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 a triplet must be given which consists of the name of the
variable, the start value and the end value of the scan. More then one triplet
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 in each direction.
<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>
@ -94,7 +101,8 @@ 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 about gauss shaped. The
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

View File

@ -14,8 +14,18 @@ to be solved are:
<li>Measure a couple of reflections.
<li>Furthermore there are some specialities.
</ul>
</P>
<h2>Locate Reflections</h2>
There are two ways to achieve all this: The older way uses some built in SICS functionality plus some external prograsm inherited from the ILL. This is called the ILL operation. Then a complete four circle packaage called DIFRAC from P. White and Eric Gabe was integrated into SICS. Thsi 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
DIFRAC manual.
</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
@ -53,12 +63,12 @@ accomplished with the object rliste which has the following subcommands:
<DD>Writes the contents of the reflection list to the file specified.
</DL>
</p>
<h2>Indexing Reflections and Refining UB-Matrix</h2>
<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>
<h2>Measuring Reflections</h2>
<h3>Measuring Reflections</h3>
<p>
Before measuring reflections a list of reflections to measure must be
created. This is done with the external program

View File

@ -18,7 +18,7 @@
\begin{huge}
TRICS--Reference Manual \\
\end{huge}
Version November, 1998\\
Version February, 2000\\
Dr. Mark K\"onnecke \\
Labor f\"ur Neutronenstreuung\\
Paul Scherrer Institut\\

View File

@ -89,24 +89,24 @@ detectors.
This chapter contains information about:
\begin{itemize}
\item Basic SICS concepts (cf.\ Section~\ref{f4})
\item Driving motors (cf.\ Section~\ref{f5})
\item Configuring motor parameters (cf.\ Section~\ref{f6}).
\item TRICS motor list (cf.\ Section~\ref{f7}).
\item Counting and monitors (cf.\ Section~\ref{f8}).
\item Sample Environment Device Control (cf.\ Section~\ref{f9}).
\item Log I/O to a client logfile (cf.\ Section~\ref{f10}) at the server, all
command output to a commandlog (cf.\ Section~\ref{f11}) or to your local
\item Basic SICS concepts (cf.\ Section~\ref{f5})
\item Driving motors (cf.\ Section~\ref{f6})
\item Configuring motor parameters (cf.\ Section~\ref{f7}).
\item TRICS motor list (cf.\ Section~\ref{f8}).
\item Counting and monitors (cf.\ Section~\ref{f9}).
\item Sample Environment Device Control (cf.\ Section~\ref{f10}).
\item Log I/O to a client logfile (cf.\ Section~\ref{f11}) at the server, all
command output to a commandlog (cf.\ Section~\ref{f12}) or to your local
machine using the open log file option in the File menu of the
SICS command line client.
\item Doing batch processing using batch files (cf.\ Section~\ref{f12}) or the LNS
specific R\"unbuffer (cf.\ Section~\ref{f13}) system.
\item Doing batch processing using batch files (cf.\ Section~\ref{f13}) or the LNS
specific R\"unbuffer (cf.\ Section~\ref{f14}) system.
\item {\bf Interrupt} SICS by hitting the interrupt button near the bottom of
the SICS command line client.
\item How to perform crystallographic computations (cf.\ Section~\ref{f14}) online.
\item How to perform crystallographic computations (cf.\ Section~\ref{f15}) online.
\item Some specialist commands for configuring certain aspects of your
client connection (cf.\ Section~\ref{f15}) and for in depth interaction with
the SICS server (cf.\ Section~\ref{f16}).
client connection (cf.\ Section~\ref{f16}) and for in depth interaction with
the SICS server (cf.\ Section~\ref{f17}).
\end{itemize}
% html: End of file: `tricsgen.htm'
@ -114,20 +114,31 @@ the SICS server (cf.\ Section~\ref{f16}).
\section{Basic SICS concepts}
\label{f4}
\label{f5}
\subsection{General structure}
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 who will execute the command. The clients second task is to listen to the the server messages and display them in a readable format. This aoproach 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.
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.
\subsection{SICS Command Syntax }
SICS is an object oriented system. This is reflected in the command syntax. SICS objects can be devices such as motors or counters, 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:\begin{verbatim}
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:\begin{verbatim}
A1 list
\end{verbatim}
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
@ -145,7 +156,10 @@ convention.
A client server system is potentially open to unauthorised hackers which might mess up the instrument and your valuable measurements. A known problem in instrument control is that less knowledgeable user accidentally change instrument adjustments which should better 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:
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:
\begin{itemize}
\item {\bf Spy } may look at everything, request any value, but may not actually change anything. No damage potential here.
\item {\bf User } is privileged to perform a certain amount of operations necessary to run the instrument.
@ -174,29 +188,29 @@ 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 to type
commands to the SICS server. For more information about this client consult
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.
% html: End of file: `basic.htm'
% html: Beginning of file: `drive.htm'
\section{Drive commands}
\label{f5}
\label{f6}
Many objects in SICS are {\bf drivable }. This means they can run to a new value. Obvious examples are motors. Less obvious examples include composite adjustments such as setting a wavelength or an energy. This class of objects can be operated by the {\bf drive, run, Success } family of commands. These commands cater for blocking and non-blocking modes of operation.
{\bf run var newval var newval ... } 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 do things to the instrument while perhaps a slow device is running into position.
{\bf run var newval var newval ... } 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.
{\bf Success } waits and blocks the command connection until all pending operations have finished (or an interrupt occured).
{\bf drive var newval var newval ... } 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 immediatetly followed by a Success command.
{\bf drive var newval var newval ... } 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.
% html: End of file: `drive.htm'
% html: Beginning of file: `motor.htm'
\section{SICS motor handling}
\label{f6}
\label{f7}
In SICS each motor is an object with a name. Motors may take commands which basically come in the form {\em motorname command }. Most of these commands deal with the plethora of parameters which are associated with each motor. The syntax for manipulating variables is, again, simple. {\em Motorname parametername } will print the current value of the variable. {\em Motorname parametername newval } 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:
@ -206,11 +220,14 @@ the online help of this application.
This is software zero to 0.0 and software limits are reset to hardware
limits.
\item {\bf Motorname position} prints the current position of the motor.
All zero point and sign corrections are applied.
\item {\bf Motorname hardposition} prints the current position of the motor.
No corrections are applied. Should read the same as the controller box.
\item {\bf Motorname interest} initiates automatic printing of any position
change of the motor. This command is mainly interesting for implementors of
status display clients.
\end{itemize}
Please note that the actual driving of the motor is done via the drive (cf.\ Section~\ref{f5}) command.
Please note that the actual driving of the motor is done via the drive (cf.\ Section~\ref{f6}) command.
\subsection{The motor parameters}
@ -222,13 +239,14 @@ status display clients.
\item {\bf SoftLowerLim } is the software lower limit. This can be defined by the user in order to restrict instrument movement in special cases.
\item {\bf SoftUpperLim } is the software upper limit. This can be defined by the user in order to restrict instrument movement in special cases.
\item {\bf SoftZero } defines a software zero point for the motor. All further movements will be in respect to this zeropoint.
\item {\bf Fixed } can be greater 0 for the motor being fixed and less
or equal than zero for the motor being movable.
\item {\bf InterruptMode } defines the interrupt to issue when the motor fails. Some motors are so critical for the operation of the instrument that all operations shall 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.
\item {\bf Fixed } can be greater then 0 for the motor being fixed and less then
or equal to zero for the motor being movable.
\item {\bf InterruptMode } 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.
\item {\bf Precision } denotes the precision to expect from the motor in positioning. Can usually only be set by managers.
\item {\bf AccessCode } 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.
\item {\bf Speed }, defunct.
\item {\bf Sign } allows to reverse 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.
\item {\bf Sign } 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.
\end{itemize}
@ -237,7 +255,7 @@ or equal than zero for the motor being movable.
\section{TRICS Motors}
\label{f7}
\label{f8}
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
@ -255,32 +273,40 @@ you have to do with:
\section{SICS counter handling}
\label{f8}
\label{f9}
This section deals with the SICS interface to single counters.
Where the SICS counter concept may include several monitors per
counter. A counter is, again, a named object which takes commands.
A word or two has to be lost about the SICS handling of preset values for counters.
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
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.
The commands understood are:
Again, in SICS the counter is an object which understands a set of
commands:
\begin{itemize}
\item {\bf countername SetPreset val } sets the counting preset to val.
\item {\bf countername GetPreset } prints the current preset value.
\item {\bf countername preset val} 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.
\item {\bf countername SetExponent val } sets the exponent for the counting
preset in monitor mode to val.
\item {\bf countername GetExponent } prints the current exponent used
in monitor mode.
\item {\bf countername SetMode val } 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.
\item {\bf countername GetMode } prints the current mode.
\item {\bf countername mode val} 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.
\item {\bf countername SetExponent val } sets the exponent for the counting
preset in monitor mode to val.
\item {\bf countername GetCounts } prints the counts gathered in the last run.
\item {\bf countername GetMonitor n } prints the counts gathered in the monitor number n in the last run.
\item {\bf countername Count preset } starts counting in the current mode and the the preset preset.
@ -298,6 +324,12 @@ paused.
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?)
\item {\bf countername send arg1 arg2 arg3 ...} 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.
\end{itemize}
% html: End of file: `counter.htm'
@ -305,12 +337,12 @@ paused.
\section{ Sample Environment Devices}
\label{f9}
\label{f10}
\subsection{SICS Concepts for Sample Environment Devices}
\label{f9:concept}
\label{f10:concept}
SICS can support any type of sample environment control device if there is a
driver for it. This includes temperature controllers, magnetic field controllers
@ -323,8 +355,8 @@ reasonable default parameters.
In the SICS model
a sample environment device has in principle two modes of operation. The first
is the drive modus. The device is monitored in this modus when a new value for it
has been requested. The second modus is the monitor modus. This modus is entered
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 {\bf emon}. The emon understands a few commands of its
@ -344,13 +376,13 @@ section discussing the special devices known to the system.
\subsection{SampleEnvironment Error Handling}
A \label{f9:error}sample environment device may fail to stay at its preset value during a
A \label{f10:error}sample 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 differntiated. The SICS model therefore implements several
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 variable which can be set by the user for
any sample environment device separatetly. Additional error handling strategies
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:
\begin{description}
@ -363,7 +395,7 @@ user.
\subsection{General Sample Environment Commands}
\label{f9:general}
\label{f10:general}
\subsubsection{EVFactory}
@ -401,10 +433,14 @@ out of tolerance errors on that device no longer be handled.
\subsubsection{General
Commands UnderStood by All Sample Environment Devices}
\label{f9:all}
\label{f10:all}
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 EVFavtory!
of the environment device as configured in EVFactory!
The general commands understood by any environment controller can be subdivided
further into parameter commands and real commands. The parameter commands just
@ -413,7 +449,8 @@ set if a parameter is specified. For example:
\begin{quotation}
Temperature Tolerance\end{quotation}
prints the value of the variable Tolerance for the environment controller
Temperature.
Temperature. This is in the same units as the controller operates,
i. e. for a temperature controller Kelvin.
\begin{quotation}
Temperature Tolerance 2.0\end{quotation}
sets the parameter Tolerance for Temperature to 2.0. Parameters known to ANY
@ -438,7 +475,7 @@ Possible values are:
\item 2 for Interrupt
\item 3 for Safe.
\end{itemize}
For an explanantion of these values see the section about error (cf.\ Section~\ref{f9:error}) handling
For an explanantion of these values see the section about error (cf.\ Section~\ref{f10:error}) handling
above.
\item[ Interrupt] The interrupt to issue when an error is detected and Interrupt error
handling is set. Valid values are:
@ -457,31 +494,42 @@ Safe error handling is set.
Additionally the following commands are understood:
\begin{description}
\item[send par par ...] Sends everything after send directly to the controller and return its
response. This is a general purpose command which allows to manipulate controllers
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
calibrartion tables etc.
calibration tables etc.
\item[ list] lists all the parameters for this controller.
\item[ no command, only name.] When only the name of the device is typed it will return its
current value.
\item[ name val ] will drive the device to the new value val. Please note that the same
can be achieved by using the drive command.
\item[ name log on] Switches logging on. If logging is on, at each cycle in the emon the
\item[ name log on] Switches logging on. If logging is on, at each cycle in the
{\bf emon}
the
current value of the environment variable will be recorded together with a
time stamp. Be careful about this, for each log point a bit of memory is
allocated. At some time the memory is exhausted! Log clear frees it again
and log frequency (both below) allows to set the logging time intervall.
allocated. At some time the memory is exhausted! {\bf Log clear}
frees
it again
and {\bf log frequency} (both below)
allows to set the logging time intervall.
\item[ name log off] Switches logging off.
\item[name log clear] Clears all recorded time stamps and values.
\item[name log gettime] This command retrieves a list of all recorded time stamps.
\item[name log getval] This command retrieves all recorded values.
\item[name log getmean] Calculates the mean value and the standard deviation for all logged
values and prints it.
values and prints them.
\item[name log frequency val] With a parameter sets, without a parameter requests the logging intervall
for the log created. This parameter specifies the time intervall in seconds
between log records. The default is 5 minutes. A value of 0 means a record any
cycle of the SICServer.
between log records. The default is 300 seconds.
\item[name log file filename] Starts logging of value data to the file filename. All normal logging to
memory will be
disabled. 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.
\item[name log close ] Stops logging data to the file.
\end{description}
\subsection{Special Environment Control Devices}
@ -494,10 +542,11 @@ that special device. All of the general commands listed above work as well!
\subsubsection{ITC-4 and ITC-503 Temperature Controllers}
\label{f9:itc4}
\label{f10:itc4}
These temperature controller are fairly popular at SINQ. It is manufactured by
Oxford Instruments. At the back side of this controller there is a RS-232
These temperature controller are 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
@ -514,9 +563,9 @@ 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:
\begin{quotation}
EVFactory new Temp ITC4 lnsp22.psi.ch 4000 6\end{quotation}
connects Temp to the Macintosh named lnsp22, serial port 5 (6 above is no typo!),
listening at port 4000.
EVFactory new Temp ITC4 lnsp22.psi.ch 4000 7\end{quotation}
connects Temp to the Macintosh named lnsp22, serial port 6
(7 above is no typo!), listening at port 4000.
\paragraph{ITC-4 Additional Parameters}
@ -525,14 +574,14 @@ The ITC-4 has a few more parameter commands:
\begin{description}
\item[timeout] Is the timeout for the Macintosh terminal server program waiting for
responses from the ITC-4. Increase this parameter if error messages
containg ?TMO creeping up.
containg ?TMO appear.
\item[ sensor] Sets the sensor number to be used for reading temperature.
\item[ control] Sets the control sensor for the ITC-4. This sensor will be used
internally for regulating the ITC-4.
\item[divisor] 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. Is usually 10 for a sensor
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.
\item[multiplicator] The same meaning as the divisor above, but for the control sensor.
@ -575,12 +624,15 @@ current one.
If the ITC-4 {\bf does not respond at all}, make sure the serial connection to
the Macintosh is working. Use standard RS-232 debugging procedures for doing
this. The not responding may also come up as a failure to connect to the ITC-4
during startup.
this. The not responding message may also come up as a failure to
connect
to the ITC-4 during startup.
If error messages containing the string {\bf ?TMO} keep creeping up followed
by all signs of command not understood, then increase the timeout. The standard
timeout of 10 microseconds is to short at times.
If error messages containing the string {\bf ?TMO} 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.
You keep on reading {\bf wrong values} from the ITC4. Mostly off by a
factor 10. Then set the divisor correctly. Or you may need to choose a
@ -595,9 +647,10 @@ causes for this problem:
\item 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.
\item The software is reading back wrong temperature because the sensor and
\item 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 parameters accordingly.
it does have nothing to do with reality, set the parameters accordingly.
\item 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.
@ -612,9 +665,9 @@ within the tolerance. That is the temperature value you wanted after all.
\subsubsection{Haake Waterbath Thermostat}
\label{f9:haake}
\label{f10:haake}
This is sort of a buck full of water equipped with a temperature
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
@ -628,7 +681,7 @@ initialisation parameters, second install the device with evfactory. A
command procedure is supplied for the first step. Thus the initialisation
sequence becomes:
\begin{quotation}
inihaakearray name-o-array macintosh-computer name port channel\newline
inihaakearray name-of-array macintosh-computer name port channel\newline
evfactory new temperature tcl name-of-array\end{quotation}
An example for the SANS:
\begin{quotation}
@ -647,7 +700,7 @@ val can be either intern or extern.
\subsubsection{Dilution Cryostat}
\label{f9:dilu}
\label{f10:dilu}
This is a large ancient device for reaching very low temperatures. This
cryostat can be configured into SICS with the command:
@ -677,7 +730,7 @@ digests.
\subsubsection{Bruker Magnet Controller B-EC-1}
\label{f9:bruker}
\label{f10:bruker}
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
@ -728,7 +781,7 @@ magnet field.
\subsubsection{The CryoFurnace.}
\label{f9:ltc11}
\label{f10:ltc11}
The CryoFurnace at PSI is equipped with a Neocera LTC-11 temperature
controller. This controller can control either an heater or an analag output
@ -755,13 +808,13 @@ serial port 6 at lnsp18.
The additional commands understood by the LTC-11 controller are:
\begin{description}
\item[temperature sensor ] allows to query the current sensor used for temperature readout.
\item[temperature sensor val ] allows to select the sensor val for temperature readout.
\item[temperature controlanalog ] allows to query the sensor used for controlling the analog channel.
\item[temperature controlanalog val ] allows to select the sensor val for controlling the analog channel.
\item[temperature controlheat ] allows to query the sensor used for controlling the heater channel.
\item[temperature controlheat val ] allows to select the sensor val for controlling the heater channel.
\item[temperature mode] Allows to query if the LTC-11 controls the analog or heater channel.
\item[temperature sensor ] queries the current sensor used for temperature readout.
\item[temperature sensor val ] selects the sensor val for temperature readout.
\item[temperature controlanalog ] queries the sensor used for controlling the analog channel.
\item[temperature controlanalog val ] selects the sensor val for controlling the analog channel.
\item[temperature controlheat ] queries the sensor used for controlling the heater channel.
\item[temperature controlheat val ] selects the sensor val for controlling the heater channel.
\item[temperature mode] queries if the LTC-11 is in analog or heater control mode.
\end{description}
Further notes: As the CryoFurnace is very slow and the display at the
@ -772,7 +825,7 @@ mode of the LTC-11 is possible by computer, but not yet fully understood and
\subsubsection{The Eurotherm Temperature Controller}
\label{f9:euro}
\label{f10:euro}
At SANS there is a Eurotherm temperature controller for the sample heater.
This and probably other Eurotherm controllers can be configured into SICS
@ -805,23 +858,48 @@ to be configured manually. For details see the manual coming with the machine.
environment controller could not be implemented.
\end{itemize}
\subsubsection{The PSI-EL755 Magnet Controller}
\label{f10:el755}
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:
\begin{quotation}
evfactory new name el755 Mac-PC Mac-port Mac-channel index\end{quotation}
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:
\begin{verbatim}
evfactory new maggi el755 lnsa09.psi.ch 4000 5 3
\end{verbatim}
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.
% html: End of file: `samenv.htm'
% html: Beginning of file: `logbook.htm'
\section{LogBook command}
\label{f10}
\label{f11}
Some users wish like to have all the input typed to SICS and all responses
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 understands the following syntax:
command. LogBook is actually a wrapper around the config file command.
LogBook understands the following syntax:
\begin{description}
\item[ LogBook] alone prints the name of the current logfile and the status of event
logging.
\item[ LogBook file filename] This command sets the filename to which output will be printed.
Please note that this new filename will only be in effect after restarting
logging.
\item[ LogBook on] This command turns loggin on. All commands and all answers will be
\item[ LogBook on] 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.
\item[ LogBook off] This command closes the logfile and ends logging.
@ -832,7 +910,7 @@ that this command will overwrite an existing file with the same name.
\section{The Commandlog}
\label{f11}
\label{f12}
The commandlog is a file where all communication with clients
having user or manager privilege is logged. This log allows to retrace each
@ -849,6 +927,7 @@ the log directory.
\item[commandlog auto] 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.
\item[commandlog tail n] 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.
\end{description}
% html: End of file: `commandlog.htm'
@ -856,13 +935,18 @@ Log files are written to the log directory of the instrument account. There
\section{Macro Commands}
\label{f12}
\label{f13}
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. The following commands allow access to the macro facility:
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:
{\bf FileEval name } tries to open the file name and executes the script in this file. Please note that the server is configured via such a file.
{\bf FileEval name } tries to open the file name and executes the script in this file.
Then there are some special commands which can be used within macro-sripts:
{\bf ClientPut sometext1 ... } writes everything after ClientPut to the client which started the script. Useful for output to a client from macro scripts.
{\bf ClientPut sometext1 ... } 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.
{\bf SICSType object } allows to query the type of the object specified by object. Possible return values are
\begin{itemize}
@ -875,19 +959,32 @@ Log files are written to the log directory of the instrument account. There
{\bf SICSbounds var newval } checks if the new value newval lies within the limits for varaible var. Returns an error or OK depending on the result of the test.
{\bf SICSStatus var } SICS devices such as counters or motor may be started and left running while the program is free to do something else. This command allows to enquire the status of such a running device. Return values are internal SICS integer codes. This command is only of use for SICS programmers.
{\bf SICSStatus var } 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.
{\bf SetStatus newval } allows to set the SICS status to one of: Eager, UserWait, Count, NoBeam, Driving, Running, Scanning, Batch Hatl or Dead. This command is only available in macros.
{\bf SetStatus newval } 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.
{\bf SetInt newval, GetInt } allow for the manipulation of 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.
{\bf SetInt newval, GetInt } 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.
% html: End of file: `macro.htm'
% html: Beginning of file: `buffer.htm'
\section{R\"unbuffer Commands}
\label{f13}
\label{f14}
LNS scientists have got used to using R\"unbuffers for instrument control. A R\"unbuffer is an array of SICS commands which typically represent a measurement. This R\"unbuffer 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\"unbuffers. When done with editing the R\"unbuffer it can be entered in a R\"unlist. This is a stack of R\"unbuffers which get executed one by one. While this is happening it is possible (from another client) to modify the R\"unlist and edit and add additional R\"unbuffer 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:
LNS scientists have got used to using R\"unbuffers for instrument
control. A R\"unbuffer is an array of SICS commands which
typically represent a measurement. This R\"unbuffer 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\"unbuffers. When done with
editing the R\"unbuffer it can be entered in a R\"unlist. This
is a stack of R\"unbuffers which get executed one by one. While
this is happening it is possible (from another client) to modify the
R\"unlist and edit and add additional R\"unbuffers 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:
The {\bf Buf } object is responsible for creating and deleting R\"unbuffers. The syntax is:
\begin{itemize}
@ -896,7 +993,8 @@ Log files are written to the log directory of the instrument account. There
\item {\bf Buf del name } deletes the R\"unbuffer name.
\end{itemize}
After creation, the R\"unbuffer is accessible by his name. It than understands the commands:
After creation, the R\"unbuffer is accessible by his name. It
then understands the commands:
\begin{itemize}
\item {\bf NAME append what shall we do with a drunken sailor } will add all text after append as a new line at the end of the R\"unbuffer.
\item {\bf NAME print } will list the contents of the R\"unbuffer.
@ -923,7 +1021,7 @@ Log files are written to the log directory of the instrument account. There
\section{4 Circle Diffractometer Setting Calculation}
\label{f14}
\label{f15}
An essential part of operating a 4 circle diffractometer is the calculation
of the setting angles for the diffractometer for a given reciprocal lattice
@ -969,9 +1067,9 @@ Optionally a psi value and a hamilton position can be specified.
\section{Configuration Commands}
\label{f15}
\label{f16}
SICS allows to change 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:
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:
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 {\bf GetLog } command. It needs to be stressed that this log receives messages from {\bf all } active clients. GetLog understands the following messages:
\begin{itemize}
@ -990,7 +1088,7 @@ Optionally a psi value and a hamilton position can be specified.
\item {\bf Value } Some commands return requested values to a user. These messages have an output code of Value.
\end{itemize}
{\bf config } allows to configure 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.
The {\bf config } 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.
\begin{itemize} \item The command {\bf config OutCode val } 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.
\item 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 {\bf config Rights Username Password }. If a matching entry can be found in the servers password database new rights will be set.
@ -1012,7 +1110,7 @@ rights.
\section{System Commands}
\label{f16}
\label{f17}
{\bf Sics\_Exitus }. A single word commands which shuts the server down. Only Managers may use this command.
@ -1032,13 +1130,18 @@ server. This command is primarily of interest for status display client
implementors.
{\bf backup file} saves the current values of SICS variables and selected
motor and device parameters to the disk file specified as parameter. The
path to this files is relative to the SICS server directory. The format
of the file is a list of SICS commands to set all these parameters again.
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.
{\bf restore file} 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.
backup. If no file argument is given the system default file gets
read.
% html: End of file: `system.htm'
% html: Beginning of file: `tricsingle.htm'
@ -1053,9 +1156,24 @@ to be solved are:
\item Locate Reflections
\item Index reflections and refine a UB-matrix.
\item Measure a couple of reflections.
\item Furthermore there are some specialities.
\end{itemize}
There are two ways to achieve all this: The older way uses some built in SICS functionality plus some external prograsm inherited from the ILL. This is called the ILL operation. Then a complete four circle packaage called DIFRAC from P. White and Eric Gabe was integrated into SICS. Thsi is The Difrac way of operation.
\section{Locate Reflections}
\section{DIFRAC}
The DIFRAC commands are accessed by prepending the difrac commands
with {\bf dif}. For example: {\tt{}"{}}dif td{\tt{}"{}} calls the difrac td
command. For more information on DIFRAC commands see the separate
DIFRAC manual.
\section{ILL operation}
\subsection{Locate Reflections}
@ -1079,7 +1197,7 @@ 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.
Once a peak has been found, its position can be optimised and centered with the
peak optimiser (cf.\ Section~\ref{f17}).
peak optimiser (cf.\ Section~\ref{f18}).
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
@ -1090,21 +1208,21 @@ accomplished with the object rliste which has the following subcommands:
\item[rliste write file] Writes the contents of the reflection list to the file specified.
\end{description}
\section{Indexing Reflections and Refining UB-Matrix}
\subsection{Indexing Reflections and Refining UB-Matrix}
For these purposes the external programs INDEX and
RAFIN are provided. These programs are courtesy of the ILL, France.
\section{Measuring Reflections}
\subsection{Measuring Reflections}
Before measuring reflections a list of reflections to measure must be
created. This is done with the external program
HKLGEN. Then reflections this reflection list can
be fed into SICS using the mess (cf.\ Section~\ref{f19}) command. mess
be fed into SICS using the mess (cf.\ Section~\ref{f20}) 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
@ -1113,21 +1231,29 @@ 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.
\section{Special Commands}
As of current this section only holds the hklscan
commmand (cf.\ Section~\ref{f21}) which allows to express a scan in Miller indizes. This is
in fact a scan in reciprocal space.
% html: End of file: `tricsingle.htm'
% html: Beginning of file: `optimise.htm'
\section{The Peak Optimiser}
\label{f17}
\label{f18}
In instrument control the need arises to optimise a peak with respect to
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 usefull during instrument calibration.
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 way of
operation is like this:
support both usages a more general module has been implemented. The
algorithm is like this:
\begin{verbatim}
while errors gt precision and cycles lt maxcycles
for all variables
@ -1474,7 +1600,7 @@ H H L
\section{Reflection List Processor}
\label{f19}
\label{f20}
This section describes the means for doing a standard single counter four
circle diffractometer measurement with SICS. A prerequisite for that is a
@ -1534,6 +1660,16 @@ This object knows about the following parameters:
omega2theta for omega two theta scans.
\item[np] number of points to collect for each profile.
\item[step] The step width in omega to use for scanning.
\item[compact] Determines if the scan data output to the SICS is in normal
(compact = 0) or condensed (compact = 1) form. The default is 1.
\end{description}
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:
\begin{description}
\item[mess bi] switches into bissectiong mode. This is the default.
\item[mess nb] switches into normal beam mode.
\end{description}
This object supports some file management functionality. It caters
@ -1560,6 +1696,34 @@ the reflection file where processing should continue.
\end{itemize}
% html: End of file: `mesure.htm'
% html: Beginning of file: `hklscan.htm'
\section{Hklscan}
\label{f21}
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:
\begin{description}
\item[hklscan start fH fK fL] sets the start point for the HKL scan. Three values required, one for
each reciprocal axis.
\item[hklscan step sH sK Sl] sets the step width in reciprocal space. Three values required, one for
each reciprocal axis.
\item[hklscan run NP mode preset] 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.
\end{description}
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.
% html: End of file: `hklscan.htm'
% html: Beginning of file: `tricspsd.htm'
\chapter{TRICS with Position Sensitive Detectors}
@ -1570,8 +1734,8 @@ As there are no PSD's available for TRICS, not much can be found here.
In terms of software the following pieces are already available:
\begin{itemize}
\item Instructions for dealing wih
histogram memory (cf.\ Section~\ref{f20}).
\item NeXus (cf.\ Section~\ref{f21}) data handling for TRICS.
histogram memory (cf.\ Section~\ref{f22}).
\item NeXus (cf.\ Section~\ref{f23}) data handling for TRICS.
\end{itemize}
% html: End of file: `tricspsd.htm'
@ -1579,7 +1743,7 @@ histogram memory (cf.\ Section~\ref{f20}).
\section{Histogram memory}
\label{f20}
\label{f22}
Histogram memories are used in order to control large area sensitive
@ -1704,7 +1868,7 @@ allow to retrieve a subset of a histogram between iStart and iEnd.
\section{TRICS NeXus File Writing Object}
\label{f21}
\label{f23}
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

View File

@ -26,7 +26,7 @@ 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 agaian and thus ensures that the program will
the program again and again and thus ensures that the program will
never stop running.
</p>
<p>