Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Pulse Picker Edm Screens

  • pp_mode_control.edl
    • User screen for pulse picker motor
    • Displays current motor status including: blade position, pulse picker mcode status and version, fan status, limit violations, error mode, mcode heartbeat, and selected pulse picking mode.
    • Contains buttons to select pulse picking mode and perform  a hard reset of the pulse picker mcode. 
    • Contains button to open
  • pp_gui.edl
    • Expert screen for pulse picker motor
    • Contains all displays and controls contained the in pp_mode_control.edl screen
    • Contains displays and controls for all variables for pulse picker Mcode.

Motor Interlocks

  • If pules picking motor is in pulse picking mode, $(MOTOR):SE_L != 0, X and Y stepper motors are disabled
  • If Y motor position is greater than 10mm X motor is disabled
  • If X motor position is greater then 5mm or less then -5mm Y motor is disabled.

Records located in xip.template

$(MOTOR):SE

  • Pulse picking mode select
  • Reads Se from mcode
  • Returns string corresponding to selected pulse picking mode

$(MOTOR):SE_L

$(MOTOR):SET_SE

  • Pulse picking mode select
  • Writes Se to Mcode, values 0 to 100 are allowed

$(MOTOR):MCODE:INIT

  • Sends a hard reset to the Mcode
  • Sets Se to 99
  • Executes program 1
  • Motor will need to be re-homed if this is called

$(MOTOR):RESET_PG

  • Resets pulse picking mode
  • Sets Se to 0
  • Mcode will see Se=0, branch to close, return to mode select
Info
titleReset Program

The reset process is completed when the SD is "Waiting for Se", SD_L=0

$(MOTOR):SD_L

$(MOTOR):SD

  • Mcode program status
  • Returns string corresponding to status of mcode program

$(MOTOR):RUN_ONESHOT

  • Selects One Shot pulse picking mode
  • Sets SET_SE to 1
  • Turns output 4 on
  • Read Se back from Mcode

$(MOTOR):RUN_FLIPFLOP

  • Selects Flip Flop pulse picking mode Mode
  • Sets SET_SE to 2
  • Turns output 4 on
  • Reads Se back from mcode

$(MOTOR):RUN_BURSTMODE

  • Selects Burst Mode
  • Sets SET_SE to 3
  • Turns output 4 on
  • Reads Se back from mcode

$(MOTOR):RUN_FLIPFLOP

  • Selects Flip Flop Mode
  • Sets SET_SE to 2
  • Turns output 4 on
  • Reads Se back from mcode

$(MOTOR):S_OPEN

  • Moves shutter to open position
  • Sets Se to 4
  • Reads Se from Mcode

$(MOTOR):S_CLOSE

  • Moves shutter to close position
  • Sets Se to 5
  • Reads Se from Mcode

$(MOTOR):HOME:MOTOR

  • Selects automatic motor homing and offset
  • Sets Se to 7
  • Reads Se from Mcode
Info
titleMode Selecting

To change pulse picking modes, ie processing RUN_<MODE> PV, RESET_PG must be processed before selecting the new mode

$(MOTOR):LD

  • Lower limit drift violation counter
  • Scanned at 1 second
  • Minor alarm at 100

$(MOTOR):UD

  • Upper limit violation
  • Scanned at 1 second
  • Minor alarm at 100

Records that use xip_readwrite.template called by pulse-motor-ims.sub-db

$(MOTOR):N0

  • Center position of motor in Encoder Counts
  • Reads N0 from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_N0

  • Center position of motor in Encoder Counts
  • Writes N0 to mcode

$(MOTOR):N1

  • Positive motor closed position in Encoder Counts
  • Reads N1 from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_N1

  • Positive motor closed position in Encoder Counts
  • Writes N1 to mcode

$(MOTOR):N2

  • Negative closed position of motor in Encoder Counts
  • Reads N2 from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_N2

  • Negative closed position of motor in Encoder Counts
  • Writes N2 to mcode

$(MOTOR): P0

  • Center motor position in motor microsteps
  • Reads P0 from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_P0

  • Center motor position in motor microsteps
  • Writes P0 to mcode

$(MOTOR): P1

  • Positive closed motor position in motor microsteps
  • Reads P1 from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_P1

  • Positive closed motor position in motor microsteps
  • Writes P1 to mcode

$(MOTOR): P2

  • Negative closed motor position in motor microsteps
  • Reads P2 from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_P2

  • Negative closed motor position in motor microsteps
  • Writes P2 to mcode

$(MOTOR): SW

  • Sweep distance from closed position to open position in microsteps
  • Reads SW from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_SW

  • Sweep distance from closed position to open position in microsteps
  • Writes SW to mcode

$(MOTOR):SR

  • Sweep distance from closed position to open position in encoder counts
  • Reads SR from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_SR

  • Sweep distance from closed position to open position in microsteps
  • Writes SR to mcode

$(MOTOR):DR

  • Position drift at closed positions in encoder counts
  • Reads DR from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_DR

  • Position drift at closed positions in encoder counts
  • Writes DR to mcode

$(MOTOR):DL

  • Position drift limit in encoder counts
  • Reads DL from mcode
  • Passive Scanning
  • Processed at IOC start

$(MOTOR):SET_DL

  • Position drift limit in encoder counts
  • Writes DL to mcode

Records that use xip_read.template called by pulse-motor-ims.sub-db

$(MOTOR):DF

  • Current motor position
  • Reads DR from mcode
  • Scanned at 1 second

$(MOTOR):HB

  • Mcode Heartbeat
  • Reads HB from mcode
  • Passive scanning

$(MOTOR):NS

  • Pulse picker mcode version
  • Reads NS from mcode
  • Scanned at 1 second

Records contained in xip_evr_seq.template.

Info
titleEVR SEQ Records

All records in template do not have inputs or outputs. They are read by python module to select proper pulse selecting mode

$(MOTOR):PP_EVRDELAY

  • EVR Delay for pulse picker
  • Engineering units 'ms'

$(MOTOR):PP_NSHOTS

  • Number of shots for picker to select

$(MOTOR):PP_REPEAT

  • Number of repetitions of pulse selecting

$(MOTOR):PP_FREQ

  • Frequency of selected pulses

$(MOTOR):PP_SEQ

  • Use Sequencer <Yes,No>

$(MOTOR):PP_EVRDELAY

  • EVR Delay for pulse picker

...