IDL at EH2 user guide

Version 13.1 by fwilde on 2016-04-19 17:37

General remarks

Beamline control at the P05 µCT hutch uses TANGO server as backend for most applications. At P05 the Interactive Data Language (IDL) serves as user interface to the TANGO servers. IDL procedures and functions provide the functionality to control the µCT experiment and beamline optics components conveniently. A couple of general remarks should facilitate to work with IDL at P05.

  • IDL has a command history (use arrow keys to browse through recent commands)
  • IDL has tab completion (start typing a command e.g. refl<TAB> to complete reflex_opt taken from the command history), Multiple presses on tab will browse through the filtered command history.
  • IDL makes a difference between PROCEDURES and FUNCTIONS. A procedure is a piece of code that is executed without delivering a return value whereas a function does. A procedure's (optional) arguments are separated with commas. Functions need to be called with brackets and optionally a comma separated argument list inside the brackets.

    Procedures and functions
    print, 'hello world.'
    i=quick(300)
  • In IDL you can chain commands with the & sign

    Chaining commands
    i=quick(300) & tv, bytscl(bin(i,4),0,65000)
  • When IDL is ready to accpt commands, the IDL> prompt is printed in a roman font. When IDL is busy doing something (e.g. waiting for a motor to end its move), the IDL> prompt is printed in  an italic font.

    Information
    Warning

    When IDL is busy, you can enter a new command, but it will not be executed until the last command is finished. In order to avoid confusion always wait until IDL is ready to accept commands before typing a new command.

  • Scripts can be written inside the IDL IDE and saved as .pro files. A script will not be automatically compiled after saving. Press the compile button in IDL in order to make changes in your code applicable.

IDL Macro guide

About IDL macros

To understand the macro naming convention it helps to categorize the the acors roughly into three categories:

  1. Motor macros
  2. Info macros
  3. Script macros

Motor Macros

Motor macros loosely follow a certain naming convention according to the EH2 setup:

  • commands contain a name for the stage:

    command particle

    stage

    o_stage

    camera stage

    s_stage

    rotation stage

    s_pos

    sample stage

    app_tripod or app

    base stage

    o_ccd

    camera housing

    o

    microscope optics

  • Most commands are followed by a direction or rotation axis (x,y,z, rot_x, rot_y, rot_z)
  • A motor command moves either relative or absolute, e.g:

    goto_s_stage_z, -10This moves the rotation stage to the position -10 mm in z direction.

     

    s_stage_z, 1This example moves the rotation stage by 1 mm up in z direction.

Info macros

These are macros that return one more values.

todo

This user guide is very incomplete.

fill with life @fwilde