| |
Next: The Pulse Programmer Language
Up: Computer Installation
Previous: General Setup
SeveNMR is originally written by Tomaz Apih, using Delphi. It has
been expanded many times and adapted to our needs in the flow cryostate.
SeveNMR enables us to control the complete experimental setup by a
computer. It consists mainly of three parts. The central part contains
the following modules:
| module name |
functionality |
| |
|
| Ethmain7 |
main program, makes initialisations etc. |
| Chrt* |
the real time chart |
| Aboutfrm |
the copyright box from LabOBJX |
| Global7 |
global variables |
| Stredfrm |
the string editor for *.AU and *.PC programs |
It is partially based on the LabOBJX real time chart from Scientific Software Tools Inc.
In addition to the functionality of the real time chart there are some buttons and screens
which allow an interactive access to the hardware and software configuration. There
is also an input line of a command line interpreter. The command line interpreter
is the key interface to the user. Since it is also possible to run little scripts
-- the *.AU programs -- in that interpreter, it can be told to make
even long and complicated measurements on its own.
The second part of SeveNMR is the pulse program compiler CPC7. It translates the *.PC
pulse programs to the Forth language programs *.FTH mentioned above. CPC7
is used by some commands of the command line interpreter.
The third part is intended to handle the data traffic to the hardware. The modules of this
part are:
| module name |
functionality |
| |
|
| GPIB7ETH |
makes the GPIB-related functions available |
| Imtec7 |
makes the scope card-related functions available |
| Smis7 |
makes the pulse card-related functions available |
These modules access the device drivers and the dynamically linked libraries through some
*.DCU (Delphi compiled units) files which are available from some sites in the web.
A bit apart from the SeveNMR project file is the module AU7.PAS. From a logical point
of view it should be inserted to the project as well because it is the crucial part of
the command line interpreter. In AU.PAS one finds
the implementation of the commands available in the command line. It is very easy
to add new commands or to change old ones. A strong candidate for a change is for
example the command sweep. It
sweeps the field from the actual memory value to the set point. But since the input
from the command line is in kG and the imput from the HP 3497A is in V, this function
has to contain the shunt voltage to field ratio. And this ratio may vary a bit
every time one inserts the probe slightly different (thought this variation is of the
order of several ppm).
By the time SeveNMR is started up, it initializes the real time chart and loads the pulse definition
table PULSEDEF.7CF from the SETTINGS directory. The pulse definition table
defines some often used pulse masks in order to simplify the making of *.PC programs
(conf. appendix ). After this SeveNMR is running the AU script
INI.AU from the AU directory which
sets the initial dwell time to 10 s, the time domain (number of points sampled by the
scope card) to 512 words, the vertical base to 2V/div, the number of averages to two, the gain
to 6.4V and the response of the program to no response during the trigger wait 6.1. The vertical
base is only a parameter of the real time chart and has nothing to do with the gain. The
range given by the gain is the range which is actually sampled and digitized with 8 bits.
An overview over the basic structure of SeveNMR is given in figure . Since
it is beyond the scope of this work to give a complete manual to SeveNMR we only want to refer
to an example and some additional explanations given in the chapter .
Figure:
Sketch of the structure of SeveNMR. The arrows denote the direction of the data flow. A
detailed explication is given in the text.
|
|
Next: The Pulse Programmer Language
Up: Computer Installation
Previous: General Setup
|
| |
|
|