Versions Compared

Key

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

Welcome!

You'll want to read this first: Pulse Picker Presentation 2014-06-26.pptx (UPDATED 2014-06-26 with new "Follower" mode).

For more detailed information you can read the children pages below.

Children Display

Pulse Selector in the Hutches

Table of Contents

TODO and issues in XCS

  1. ISSUE: No counting -> trigger "burst stop" sometimes
  2. FIXME: Avoid arm/disarm
  3. TODO: Benchmark time needed for position correction
  4. FIXME: Start position dependent on present position
  5. TODO: If
    position correction takes <= 10ms the do each time
  6. TODO: Home offset as PV
  7. TODO: Make Aperture Angle as VAR and PV (to be changed as needed)
  8. TODO: Dial zero @ Encoder Home marker
    User zero @ "Aligned" position (means that RESET_PG reset only users) - to be discussed with Jeff
  9. TODO: Fast Open/Close PV
  1. NEXT: Uses First Trigger to Open, Second Trigger to Close
    The PP listen then for just one Event Code.
    Example of sequence:
    84 1 -> PP
    85 2 -> DAQ
    85 1 -> DAQ
    85 1 -> DAQ
    84 1 -> PP
    85 1 -> DAQ

MCODE programs (Jeff version on Jun 26 2013):

located in:

Code Block

    /pcds_motion/current/pcds_motionApp/src/ims_bootup_V3.mcode
    

Single Shot Mode (MODE 1)

Code Block

' Program Fragment: MODE_1 (Single Shot)
 

Continuous Mode (MODE 2)

Code Block

' Program Fragment: MODE_2 (Continuous)
 

Burst Mode (MODE 3)

Code Block

' Program Fragment: MODE_3 (Burst mode)
 

Settings in XCS

Server running the IOC

Code Block

ssh ioc-xcs-mot1

Startup IOC

Code Block

su <authorized_user>
ssh ioc-xcs-mot1
sudo /reg/d/iocCommon/sioc/ioc-xcs-trigger-ims/startup.cmd
telnet localhost 30999

How to start the Pulse Selector Python script:

Code Block

/reg/neh/home1/paiser/working/ioc/xcs/xip_pp/current/pyscripts/src/run_pp.sh

Configuration file

Code Block

~/.pp_xcs/pvlist.lst

Current configuration (Working in progress)

Code Block

# ---------------------------------------------------------------
# Pulse Selector Description File
# ---------------------------------------------------------------
# Syntax:
#   <TYPE>, <PVNAME|IOCNAME|SCRIPT>, <DESC> # some_more_comments
# Where:
#   <Type>    : "SEQ" -> Sequencer
#               "EVR" -> EVR associated to sequencer
#               "PPM" -> Pulse Selector
#               "SVR" -> Motor and Pulse Selector Server
#               "IOC" -> Motor and Pulse Selector software IOC
#               "SPP" -> EDM screens for motion
#               "SEV" -> EDM screens for evr
#   <PVNAME>  : PV base name
#   <IOCNAME> : Server name associated to Pulse Selector PVs
#   <DESC>    : User description
# Notes:
#   PVNAME or IOCNAME are not case sensitive.
#   Line can be commented out by starting with '#' character.
# ---------------------------------------------------------------
SEQ, XPP:R35:IOC:SEQ,     XPP DAQ Sequencer                            # FIXME To check
PLY, IOC:IN20:EV01,       XPP DAQ Sequencer play mode                  # FIXME to check
EVR, XCS:R42:EVR:01,      VME EVR located in XCS Rack 42               # OK
IOC, ioc-xcs-trigger-ims, IOC running pulse selector                   # OK
SPP, ppm_gui.sh,          EDM screen startup shell script for PP motor # OK
PPM, XCS:SB2:MMS:09,      Pulse Selector Motor                         # OK
YTR, XCS:SB2:MMS:21,      Y translation motor                          # OK
XTR, XCS:SB2:MMS:08,      X translation motor                          # OK
SEV, evr_gui.sh,          EDM screen startup shell script for EVR      # OK
SVR, ioc-xcs-mot1,        server running IOC for pulse selector        # OK

Screens

PP and Motor GUIs :

Code Block

/reg/neh/home1/paiser/working/ioc/xcs/xip_pp/current/pyscripts/ppm_gui.sh XCS:SB2:MMS:09 XCS:SB2:MMS:21 XCS:SB2:MMS:08

TODO:

Code Block

 # FIXME Configuration file default location
 # TODO  Autosave default rampup values
 # TODO  Fast close and open functions
 # TODO  Test Sequencer

Setup Lab tests

Table of Contents

XIP Pulse Selector: Files, modes, schematics

Setup Lab: EVR Settings

Setup Lab: Working with the EVR from pslogin
  1. in pslogin type (you need to have your securekeys):
    Code Block
    
     ssh ioc-tst-cam5 /reg/neh/home1/paiser/bin/evr.sh EVR=TST:CAM:05:EVR
     
  2. Then configure EVR as you need manually...
Setup Lab: In case the server ioc-tst-cam5 was power cycled
  1. Connect to the server:
    Code Block
    
     ssh ioc-tst-cam5
     
  2. Run the startup command that contains EVR ioc in:
    Code Block
    
     sudo /reg/d/iocCommon/sioc/ioc-tst-cam5/startup.cmd
     
  3. You should see with psproc:
    Code Block
    
     [paiser@ioc-xrt-xcscam04 ~ 12:18:20] psproc
     PID   USER-ID   SIOC                      COMMAND   HOSTNAME            PORT
     4851  tstioc    caRepeater                procServ  ioc-xrt-xcscam04    30000
     5147  tstioc    ioc-tst-cam5              procServ  ioc-xrt-xcscam04    30001
     5150  tstioc    ioc-tst-cam5              procServ  ioc-xrt-xcscam04    40000
     
Setup Lab : In case you need to power cycle ioc-tst-cam5
Code Block

 ipmitool -I lanplus -U ADMIN -P <you_should_know> -H ioc-tst-cam5-ipmi power status
 ipmitool -I lanplus -U ADMIN -P <you_should_know> -H ioc-tst-cam5-ipmi power reset
 

Where: <you_should_know> is the standard ipmi password that you_should_know...

Setup Lab : Test Screens

Python homing script:
/reg/neh/home1/jsludvik/test-python/xip-home.py

XIP main GUI:
/reg/neh/home1/jsludvik/svn/trunk/ioc/xpp/xip_pp/current/motionScreens/xip_gui.sh

XPP motor GUIs:

Code Block

/reg/g/pcds/package/epics/3.14/modules/pcds_motion/R2.3.4/launch-motor.sh XPP:TST:MMS:01
/reg/g/pcds/package/epics/3.14/modules/pcds_motion/R2.3.4/launch-motor.sh XPP:TST:MMS:02
/reg/g/pcds/package/epics/3.14/modules/pcds_motion/R2.3.4/launch-motor.sh XPP:TST:MMS:03

Startup.cmd:

Code Block

/reg/d/iocCommon/sioc/ioc-xpp-trigger-ims/startup.cmd

Mode Descriptions

Mode 1: Single pulse
Mode 2: Continuous trigger

Mode 1 and 2 should be the same program, as the Seq will generate the pulses to the motor, and open/close operation shouldn't make any difference whether it is 1 or more. The motor sees a trigger and moves.

This mode is accessed by <PV>:RUN_MODE2

Mode 3: The motor opens on a pulse, counts N pulses and closes on the Nth pulse. The pre-trigger and close trigger should be factored in by the upper layer software to determine the proper N value to put into the motor. All the motor does is, open on N=1, count, then close on N=N.

This mode is accessed by <PV>:RUN_MODE3

Mode 1 was programmed like just mode 2 with a User "Trigger" enable/disable, which may or may not be useful for us. Sort of like 2 layers of enabling, versus just 1 for mode2
This mode is accessed by <PV>:RUN_MODE1

Reset Modes to start new mode:
<PV>:RESET

Homing Sequence

1) EPICS Motor Record: HOMF
2) Zero Position
3) Move Relative -76.25 degrees
4) Zero Position

MCode Program State Diagram

<insert VISIO diagram>
<code example>

Motor Interlock Scheme

Screenshots

Pulse Selector Test/Checkout Procedure (6/10/2013)

X motor calibration

  • Found offset from X zero position: 5.8075 mm from + limit
  • Offset for X zero position: 5.7332 mm from - limit
  • Limits performed as expected, and in place before hardstops

Y motor calibration

  • Offset from +Y limit to zero: 15.6689 mm
  • Offset from -Y limit to zero: 7.9956 mm
  • Limits performed as expected, and in place before hardstops

New Interlock:

Add Y motor interlock, position >= 2 mm above 0 position, no X movement allowed

X-Y interlock stopped working today, need to investigate.

Image Removed