Support #21675

Complete motor control stations 107 and 118 at NML.

Added by Richard Neswold over 2 years ago. Updated over 2 years ago.

NMLB Front-end
Start date:
Due date:
% Done:


Estimated time:


Need to finalize these details to make 107 and 118 operational:

  • Extended text for Basic Status should be the same for 118HP as it is for 118VP, but they're different.
    • Use green "YES" and red "NO" for text associated with limit switch status
    • Remove "Home Limit" status.
    • Bits 0, 1, and 5 depend upon which stepper controller is being used.
  • Add position devices for 118.
    • Mike Coburn has provided a spreadsheet showing which analog channels should be used.
    • Need to calculate scaling by measuring the movement of each assembly.
  • Add rotation devices for 118.
  • Should N:MTR00P be renamed to N:X107CP? And the other station 107 devices, too?
  • The bits for positive and negative limits, in 118VP, are reversed.
  • Remove "n" and "p" status for rotational devices (N:MTR01R and N:MTR03R) since there aren't limits for them.
  • Make sure anti-collision is enabled and working for both stations.


#1 Updated by Richard Neswold over 2 years ago

  • Description updated (diff)

Made database change to reverse the limits for N:X118VP.

The NMLB front-end uses an SM8601 stepper motor controller, so N:X118HP's status is correct.

#2 Updated by Richard Neswold over 2 years ago

  • Description updated (diff)

Converted N:X118VP's status to be the same as the horizontal's.

#3 Updated by Richard Neswold over 2 years ago

  • Description updated (diff)

Updated database entries for 107's rotational devices.

#4 Updated by Richard Neswold over 2 years ago

  • Description updated (diff)

Added N:X118HC and N:X118VC. Updated the N14 Parameter Page to include them. Note that the scaling for these devices is invalid! We need to go out and move the assembly from limit to limit in order to determine the scaling parameters.

I also renamed N:MTR00P to N:X107HC and N:MTR02P to N:X107VC and updated the parameter page accordingly.

#5 Updated by Richard Neswold over 2 years ago

Added code to the driver to prevent collisions (ip-sm8601:69c69571).

This code performs two tests when a setting tries to move a motor's payload into the beam:

  1. It checks to see that all associated motors opened their positive limit switch (i.e. their payload is out of the beamline.) If the positive limit isn't active for one associated motor, the driver returns MOOC_OPERATION_DISABLED.
  2. If the position limit indicates it's out of the beamline, the driver then checks to make sure the other motor doesn't have a negative step loaded into it. This extra check is necessary because computers are much, much faster than stepper motors and it's possible that two motor settings are being applied. The computer could easily load negative steps in both motor controllers before the either positive limit switch indicates motion.

The front-end's startup script needs to be modified to enable this feature. Then it needs to be rebooted and, lastly, tested.

Also available in: Atom PDF