diff --git a/documentation/pilatusDoc.html b/documentation/pilatusDoc.html index 3043f22..813c435 100755 --- a/documentation/pilatusDoc.html +++ b/documentation/pilatusDoc.html @@ -3,7 +3,7 @@ areaDetector Pilatus driver -
+

areaDetector Pilatus driver

@@ -12,8 +12,7 @@ Mark Rivers

University of Chicago

-
-
+

Table of Contents

-

Introduction

+

+ Introduction

This is a driver for the Pilatus pixel array detectors Dectris. It inherits from ADDriver and implements many of the parameters in @@ -44,7 +44,8 @@ reads these disk files in order to read the data, because camserver does not provide another mechanism to access the data.

-

Implementation of standard driver parameters

+

+ Implementation of standard driver parameters

The following table describes how the Pilatus driver implements some of the standard driver parameters. @@ -181,7 +182,8 @@ This ROI can be monitored to make sure that the 20-bit limit of 1,048,575 is not being approached in any pixel.

-

Pilatus specific parameters

+

+ Pilatus specific parameters

The Pilatus driver implements the following parameters in addition to those in ADStdDriverParams.h:

@@ -445,7 +447,8 @@ -

Configuration

+

+ Configuration

The Pilatus driver is created with the following command, either from C/C++ or from the EPICS IOC shell. @@ -472,8 +475,8 @@ camserverPort - The name of the asyn TCP/IP port to communicate with camserver. This must have - been previously created with drvAsynIPPortConfig(), + The name of the asyn TCP/IP port to communicate with camserver. This must have been + previously created with drvAsynIPPortConfig(), @@ -590,8 +593,8 @@ iocInit() create_monitor_set("auto_settings.req", 30,"P=13PIL1:,D=cam1:") -
-

MEDM screens

+

+ MEDM screens

The following show the MEDM screens that are used to control the Pilatus debtector. Note that the general purpose screen ADBase.adl can be used, but it exposes many @@ -600,19 +603,19 @@ create_monitor_set("auto_settings.req", 30,"P=13PIL1:,D=cam1:") pilatusDetector.adl is the main screen used to control the pilatusROI SNL program. All records except those for ROIs are accessed through this screen.

-
+

pilatusDetector.adl

- pilatusDetector.png
+ pilatusDetector.png

NDROI8.adl is used to define the ROIs, and to display the statistics for each ROI. In this example there are 3 valid ROIs defined. ROI 0 is the entire detector.  ROI 1 is a 100x50 rectangle starting at [300,60], and ROI 2 is a 50x30 rectangle starting at [320,70]..

-
+

NDROI8.adl

- NDROI8.png
+ NDROI8.png

mca.adl can be used to plot the net or total counts in an ROI when NImages>1. In this example the plot is the net counts in ROI 1 as the diffractometer @@ -624,51 +627,52 @@ create_monitor_set("auto_settings.req", 30,"P=13PIL1:,D=cam1:")

using trajectory scanning on a Newport kappa diffractometer. This was a compound motor scan with the Newport XPS putting out pulses every .02 seconds. These pulses - triggered the Pilatus in External Enable mode. The Pilatus driver read each - TIFF file as it was created and updated this plot every 0.2 seconds. The total time - to collect this scan with 1000 images was 20 seconds.

-

mca.adl

- pilatusMCA.png + triggered the Pilatus in External Enable mode. The Pilatus driver read each TIFF + file as it was created and updated this plot every 0.2 seconds. The total time to + collect this scan with 1000 images was 20 seconds.

+
+

+ mca.adl

+ pilatusMCA.png

scan_more.adl is used to define a scan. In this example the sscan record is set up to scan the ThresholdEnergy PV and to collect the total counts in ROI2, which was defined to include the entire detector.

-

scan_more.adl

-
pilatusROI_scan_more.png
+
+

+ scan_more.adl

+ pilatusROI_scan_more.png

scanDetPlot.adl is used to plot the results of a scan after it is complete. In this example the total counts in ROI 2 are plotted as a function of the ThresholdEnergy as it was scanned from 3000 to 10000 eV in 250 eV steps. The source was Fe55, and the cut-off is at 6 keV, as expected for the Mn Ka and Mn Kb x-rays that this source produces.

-
+

scanDetPlot.adl

- pilatus_scan_plot.png
+ pilatus_scan_plot.png

asynRecord.adl is used to control the debugging information printed by the asyn TCP/IP driver (asynTraceIODriver) and the SNL program (asynTraceIODevice).

-
+

asynRecord.adl

- pilatusAsynRecord.png
+ pilatusAsynRecord.png

asynOctet.adl can be used to send any command to camserver and display the response. It can be loaded from the More menu in asynRecord.adl above.

-
+

asynOctet.adl

- pilatusAsynOctet.png
-
-
-

- SPEC interface

-
+ pilatusAsynOctet.png +

+ SPEC interface

At the GSECARS beamlines (13-ID-C and 13-BM-C) at the APS we use SPEC to control our Newport diffractometers. We have added and modified SPEC macros to use the pilatusDetector - areaDetector driver to treat the Pilatus detector as a SPEC counter. This works in both traditional - step-scanning mode, as well as in + areaDetector driver to treat the Pilatus detector as a SPEC counter. This works + in both traditional step-scanning mode, as well as in trajectory scanning mode. Here are some snippets from the SPEC macros for the Pilatus. We can supply the source files on request.

# need some more globals (kludge)
@@ -737,13 +741,8 @@ def user_getcounts '{
         S[iroi] = 0
         S[iroi] = epics_get(PILATUS_ROI_PV)
 
-
-
-

-  

-

- Performance measurements

-
+

+ Performance measurements

The following measurements were done to demonstrate the performance that can be obtained with pilatusROI.

@@ -790,10 +789,10 @@ def user_getcounts '{ (15 images total). The total additional time was less than 1.3 seconds for all 1000 images. As soon as the acquisition was complete SPEC plotted the net counts in the first ROI (containing the Bragg peak) as follows: -
+

1000 point SPEC scan with 15 ms per point collected in 16.3 seconds

- pilatusROI_spec.png
+ pilatusROI_spec.png

For comparison this identical scan was executed in traditional step-scanning mode, @@ -804,13 +803,10 @@ def user_getcounts '{ mode. The trajectory scanning mode is thus more than 50 times faster to execute the identical SPEC scan. -
-
-

-  

-

- Hardware notes

-
+

+  

+

+ Hardware notes

Trigger pulses

@@ -866,8 +862,9 @@ def user_getcounts '{ readout time is set via the knobs on the pulse generator to be 3 ms, which is close to the minimum time allowed on the Pilatus. -

The Tenma TGP110 seems to be currently called a Tenma 72-6860, and lists for about - $350 new at Newark. +

+ The Tenma TGP110 seems to be currently called a Tenma 72-6860, and lists for about + $350 new at Newark.

Detector Voltage

@@ -884,13 +881,8 @@ def user_getcounts '{

Dectris has since informed me that they have increased the power supply voltage on all new Pilatus systems, so this should no longer be an issue.

-
-
-

-  

-

- Restrictions

-
+

+ Restrictions

The following are some current restrictions of the pilatusROI SNL program: