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 |
---|
Table of Contents |
---|
Code Block |
---|
#!/bin/bash
# Start the XCS Pulse Selector Python GUI
cd /reg/neh/home1/jsludvik/svn/trunk/ioc/xcs/xip_pp/current/pyscripts/src
python main.py --instr xcs
|
Code Block |
---|
~/.pp_xcs/pvlist.lst
|
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
PLY, IOC:IN20:EV01, XPP DAQ Sequencer play mode # FIXME
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 FIXME 1st arg in ppm_gui.sh update in python main.py
YTR XCS:SB2:MMS:21, Y translation motor # OK FIXME 2nd arg in ppm_gui.sh update in python main.py
XTR XCS:SB2:MMS:08, X translation motor # OK FIXME 3th arg in ppm_gui.sh update in python main.py
SVR, ioc-xcs-mot1, server running IOC for pulse selector # OK
SEV, evr_gui.sh, EDM screen startup shell script for EVR # OK FIXME 1st arg in evr_gui.sh update in python main.py
|
XIP main GUI:
/reg/neh/home1/jsludvik/svn/trunk/ioc/xpp/xip_pp/current/motionScreens/xip_gui.sh
XCS Motor GUIs:
Code Block |
---|
/reg/g/pcds/package/epics/3.14/modules/pcds_motion/R2.3.4/launch-motor.sh XCS:SB2:MMS:09
/reg/g/pcds/package/epics/3.14/modules/pcds_motion/R2.3.4/launch-motor.sh XCS:SB2:MMS:08
/reg/g/pcds/package/epics/3.14/modules/pcds_motion/R2.3.4/launch-motor.sh XCS:SB2:MMS:21
|
Startup.cmd:(Working in progress)
Code Block |
---|
/reg/d/iocCommon/sioc/ioc-xcs-trigger-ims/startup.cmd
|
Code Block |
---|
ssh ioc-xcs-mot1
|
Table of Contents |
---|
Code Block |
---|
ssh ioc-tst-cam5 /reg/neh/home1/paiser/bin/evr.sh EVR=TST:CAM:05:EVR
|
Code Block |
---|
ssh ioc-tst-cam5
|
Code Block |
---|
sudo /reg/d/iocCommon/sioc/ioc-tst-cam5/startup.cmd
|
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
|
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...
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 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
1) EPICS Motor Record: HOMF
2) Zero Position
3) Move Relative -76.25 degrees
4) Zero Position
Pulse Selector Test/Checkout Procedure (6/10/2013)
X motor calibration
Y motor calibration
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.