Two digital oscilloscopes are dedicated to NMR readout – one for the analysis line NMRs and one for the spectrograph NMRs. The scopes are located in data-U6, in upper two shelves on the right electronics rack. They are isolated from clean ground because this signals from the NMR probes are on a dirty ground.
Due to the location of the NMR probes in the dipoles of both the S800 analysis line and spectrograph, the NMR signals are usually too small for the NMR module to lock on. This has been a long standing problem which required the users to manually search the resonance, a painful and lengthy process (especially at 3:00 AM!), as well as costly in beam time. The improvement made in 2001 was a remote control panel for the NMR modules that prevented the users from having to enter the vault in order to measure the fields and match the dipoles. Although it greatly shortened the amount of time and energy spent in performing those tasks, it still remained laborious compared to a fully autonomous system like the NMR program running on the A1900 for which the signals are strong enough for the module to lock on.
The solution implemented on the S800 uses digital oscilloscopes to digitize the NMR signal. The digitized signal is then used in a program that calculates the position of the resonance and deduces the value of the magnetic field. This program (written in Tcl/Tk) is fully autonomous and automatically writes the measured Brho values to the relevant EPICS channels. In addition, it offers the possibility to match the dipoles by pairs and keeps a log file of the measured fields.
The NMR running programs for both the S800 analysis line and spectrograph dipoles can be started from the desktop of computer u6pc5, by clicking in the icons NMR Analysis for the analysis line dipoles, and NMR Spectrograph for the spectrograph magnets. Alternatively, the NMR control programs can be run from a Linux session by typing
/usr/bin/wish analysis.tcl in directory /user/s800/Documents/Run/analysis, for the analysis line, and
/usr/bin.wish spectrograph_sjw.tcl in directory /user/s800/Documents/Run/spectrograph, for the spectrograph.
Sometimes the initialization of these applications fail. In that case check section "Troubleshooting" below). The picture below shows the NMR panel for the S800 Analysis Line GUI as an example. The top (yellow) panel shows the data relevant to the NMR module, the middle (pink) the digitized signal from the oscilloscope and the bottom (blue) the status and measurements for the dipoles.
The NMR program constantly checks the status of the various dipoles from the EPICS system and updates the status column. In addition, the program checks the log file at startup for the closest previously measured value. In case no previous measurement can be used the program searches for a signal around the guessed value of the field. This search can take some time if the calibration is off or the hysteresis of the dipole is large. The maximum number of attempts is limited to 200. After that the status is marked as “Failed” and the program gives up on this dipole.
In order to reduce the searching time, the program tries to guess the field from the following sources, in priority order:
Once a signal is found, the measuring sequence tries to find two resonance positions on either side of 0. Each resonance is calculated as the average between the negative and positive modulation minima (blue and green curves, and corresponding arrows). The final field is interpolated from those measurements, simulating a lock on the NMR signal.
If a dipole is turned off or its field is being changed, the status shows either “Off” or “Unstable” and the program issues a beep. If this happens under running condition in data-taking mode, stop the beam and ask the operator to assist you in investigating the situation of the magnet giving the problem. The operators have the possibility to check on all magnet power supplies and helium fill levels in the control room. A magnet current below the set value, for example, is indicated in Barney as a blue circle on the respective optics element. In the figure below, the S800 Barney page with all magnets operational is shown. The grey square in the third dipole of the analysis line indicates that the system is trying to read the current of the magnet. The blue squares in the second dipole of the analysis line and the two dipoles of the spectrograph indicate that the read and desired current values differ by more than 0.1%.
The magnet currents, measured fields, and deviation from the set value are logged in a file that is soft-linked from the “current run” directory. An example of the log file (analysis.log) for the four dipoles of the analysis line is shown below.
The button labeled “Match” opens a new window for matching the dipoles by pairs (see picture below). The user has the possibility to match the dipoles to either Barney or to the average calculated from the present measurements. This last function is useful when the dipoles have been tweaked to adjust the position of the beam, leading to an unmatched pair of dipoles. Since matching the dipoles involves changing their fields, it is necessary to wait for the measuring loop to go over each dipole before the effect of matching can be observed.
The NMR program is connected to the following devices and systems:
Any of these connections can eventually be broken, and the program tries to catch the failures and report them to the user. However there are cases when the program “hangs” and need to be manually aborted. The little heart displayed at the top left corner of the oscilloscope display indicates the liveliness of the EPICS loop, as well as the liveliness of the program itself. If the heart stops beating for more than 10 seconds, it probably means the program is frozen. To restart it, simply click on the program's icon again, which will kill the existing process and start a new one.
In case nothing happens after clicking on the icon, the connection to the NMR module is probably locked and needs to be freed. To free it, type the following from any shell window (actual typing show in this font ):