Current user stages should be entered here. This page lists the part number, has a link to manufacturer documentation and gives each stage a "name". This name corresponds to the configuration in the parameter manager which contains all the settings of the controller that make the stage work well. Entering this name in the questionnaire for a beam time will enable a single command to push all the right settings to the motor controller after the stage has been connected. These configurations are shared among hutches as stages are moving between hutches. This list is also shared with the beam line engineer/designer so that they know what stages are available when planning an upcoming experiment. As more stages become available in LCLS, the page should also be updated. Also seeing as though some stages under the same name can be outfitted with a gear reducer, these configurations should be saved within the parameter manager and the confluence page updated

The procedure for setting up IMS/dumb motion stages:

  1. Open the confluence page and look for the stage you will be using and note its corresponding parameter manager name. If a new stage is being used, discuss with your local ECS staff member on the support available.
  2. Open the questionnaire for the specific experiment and navigate to the "CDS" tab
    1. You will notice that there is a space to enter information about the various motor stages needed. The information entered in these columns allows the stages to be automatically loaded into the local hutch python sessions and the archiver without the need for manual additions to separate experiment files. Scientists and ECS staff can work together to populate these columns.
      1. Purpose -
      2. python/archive name -
      3. Stage Identifier -
      4. Location  -
      5. Base PV -
  3. Fill in the necessary information to the best of your ability. Keep in mind that the stage identifier should match exactly what can be found in the parameter manager (i.e. confluence page)
  4. Begin the experimental set up of your motors and stages.(i.e, affix to the beamline, connect cables to appropriate motor controllers, etc...). Contact your local ECS staff member if assistance is needed during this step.
    1. If you haven't input the base PV in the questionnaire before this step, now is the time since all motors should be connected to a smart/dumb motor controller channel. The controller should be labeled with some information regarding the base PV of each channel or found in hutch documentation.
  5. Open a terminal and start a new hutch python session (i.e. <hutch>3) on the specific hutch machine (i.e. <hutch>-control, <hutch>-daq, etc...).
    1. You will notice that among the devices loaded on the screen, there should be a section that loads in the experiment questionnaire. There you will see your stage names. After the session loads, you should run x.<stage python name>.diff_configuration() to list all the parameters that have changed between the configuration (stage identifier) listed in the questionnaire and the parameters restored from previous setups (limits are not usually included here). If you accept these changes, it is best to run x.<stage python name>.configure() to apply those changes. If you do not accept the changes, it is best to discuss with an ECS staff member about updating the stage parameters for future applications, if the parameters have been successfully tested. To see what the different "FLD_"s are check out the table below.
  6. Once your parameters have been confirmed, now is the time to test the functionality of your motion stage. This step also applies to testing out parameters that weren't accepted during the initial configuration.
    1. First, set velocity, acceleration, user and dial limits (adjust as necessary, basic hutch python commands can also be found below)
    2. Confirm that the motor moves the correct distance when commanded. This parameter usually corresponds to the UREV parameter which, if configured properly, should not need to be amended. If the motor does not move at all, and it is confirmed that the cables are all connected properly there could be a few reasons to take note of here:
      1. The PV associated with the stage does not correspond to the motor controller port used.
      2. Limits have been set to unreasonable values (i.e. 0)
      3. Velocities and accelerations have not been set
      4. The run current is too low.
    3. Manually check limit switch functions if the stage is equipped with them. It may be easiest to confirm this through the motor-expert-screen.

Notable hutch python IMS motion stage field descriptions

FieldDescription
FLD_LMLimit Stop Mode
FLD_SMStall Mode
FLD_SF

Stall factor

FLD_STSVStall severity level for reporting
FIELD_ERSVError Severity Level for reporting
FLD_EEEncoder Enabled
FLD_ELEncoder Lines
FLD_MTMotor Settling Time (ms)
FLD_HT

Holding Current Delay Time (ms)

FLD_RCMX

Run current max (0..100 %)

FLD_RCRun current (0..100 %)
FLD_HCMXHolding current max (0..100 %)
FLD_HCHolding current (0..100 %)
FLD_MODERun Mode
FLD_PDBDPosition Tolerance for monitoring (EGU)
FieldDescription
FLD_EGUEngineering units name
FLD_UREVUnits per Revolutions (EGU/rev)
FLD_FREVFull steps per rev
FLD_SREVmicro-steps per revolution
FLD_ERESEncoder Step Size (EGU)
FLD_MRESMotor Resolution (EGU/micro-step)
FLD_DIR

Direction

FLD_OFFUser Offset
FLD_FOFFAdjust Offset/Controller
FLD_HTYPHoming Type
FLD_HEGEHoming edge of index or limit
FLD_BDSTBacklash distance (EGU)
FLD_HDSTBack-off distance for limit-switch-homing (EGU)
FLD_RTRYMax # of Retries
FLD_RDBDRetry deadband (egu)
FieldDescription
FLD_SMAXmax speed (rev/s)
FLD_Sspeed (rev/s)
FLD_BSbacklash speed
FLD_HSHome speed
FLD_ACCLAcceleration
FLD_BACCBacklash acceleration
FLD_HACCHoming acceleration
FLD_TWVTweak Value
FLD_HOMDDial Value at home
FLD_EGAGUse external gauge
FLD_ESKLExternal Gauge Scale
FLD_DLVLDebugging Level
FLD_S1Limit switch setting 1
FLD_S2Limit switch setting 2
FLD_S3Limit switch setting 3
FLD_S4Limit switch setting 4
PV_FW__MEANSName of forward direction
PV_REV__MEANSName of reverse direction
FLD_SBASbase speed (rev/s)

Basic hutch-python 3 commands

FunctionCommandDescription
Absolute move

.mv(value)

Absolute move to a position
Relative move.mvr(value)Relative move from this position
Set velocity.velocity.put(value)
Set user limits.set_high_limit(value)/.set_low_limit(value)
set dial limits

  • No labels