Title: How To Set Up for the Event System on an IOC with an EVR(s)
1How To Set Up for the EventSystem on an IOC with
an EVR(s)
- Assumes you already know what the event system
provides and how it works.
2epics/modules/event/ltversiongt/README
- configure/RELEASE and xxxApp/src/Makefile
- ErConfigure and other st.cmd commands
- Hardware Setup
- Correcting IDs on PMC EVRs
- Database, ChannelWatcher, and Archiver Setup
- Nothing on Display Setup though
- Nothing on VME EVR vs PMC EVR
3Hardware Block Diagram 2007 Commissioning
Modulator Triggers
Beam Path
Existing Control System
PADs and PACs
Acq and Calibration Triggers
BPM FEE
Acc and Standby Triggers
Timing Crate
EVR
I O C
E V G
P N E T
EVR 1
F A N 1
F A N 2
I O C
EVR 2
I O C
EVR 3
360Hz Fiducial
RF Timing
BPM Crates
LLRF Crate
119MHz Clock
Future MPS
Beam Rate, Beam Path
Fiber Distribution Timing Pattern, Timestamp,
Event Codes
Triggers
Triggers
TORO FEE
Trigger
EVR 1
I O C 1
C A M 1
EVR 4
I O C 4
C A M 7
C A M 2
C A M 8
F A N 3
EVR 1
...
I O C 1
C A M 1
EVR 8
I O C 8
C A M 8
F A N 4
Profile Monitor Crate
EVR
I O C
Laser Steering Crate
Toro Farc Crate
4EVG Event Time Line 4 Fiducials
360Hz Fiducial
F3 (n3)
F1 (n1)
F2 (n2)
F0 (n0)
2.8
0
5.6
Time (msec)
9.3
8.3
1.0
HW starts sending event codes, starting with
fiducial event code
R3
R1
R2
R0
Receive Fn3 PNET, determine Fn3 LCLS pattern,
and advance pipeline (n-2-gtn-1-gtn)
P0
P2
P3
P1
L3
L2
L0
L1
Send LCLS pattern
Set Event Codes in Other RAM based on the last
patterns for Fn1
E3
E4
E1
E2
B-3
B0
120Hz BEAM
5Trigger Event Time Line 1 Beam Pulse (B0)
Record processing (event, interrupt)
Hardware Triggers
Receive pattern for 3 pulses ahead
Triggering Event Codes Start
Beam
Kly Standby
Event Timestamp, pattern records, and BSA ready
Acq Trigger
Kly Accel
Fiducial Event Received
Fiducial
B0
F3
500
18
0
1023
Time (usec)
100
0.3
6Event System Requirements
- Event Generator IOC
- Send out proper event codes at 360Hz based on
- PNET pattern input (beam code and bits that
define beam path and other conditions) - Add LCLS conditions such as BPM calibration on
off-beam pulses , diagnostic pulse etc. - Future event codes also based on new MPS and
user input - Send out system timestamp with encoded pulse ID
from PNET - Send out PNET pattern to be used by SLC-aware
IOCs - Manage user-defined beam-synchronous acquisition
measurement definitions (event definition or
EDEF) - Check for match between user EDEFs and input PNET
pattern at 360Hz and tag matches in outgoing
pattern
7Event System Requirements, cont
- Event Receiver IOC
- Set trigger delays, pulse widths, and
enable/disable via user requests (not yet done on
a pulse-by-pulse basis) - Set event code per trigger (triggering done in HW
when event code received) - Receive event pattern 8.3 msec before
corresponding pulse - Perform beam-synchronous acquisition based on
tags set by EVG in the event pattern - Perform beam-synchronous acquisition for the
SLC-aware IOC based on the PNET part of the event
pattern - Process pre-defined records when specific event
codes are received
8Databases and Displays
- Each IOC has its own substitutions files using
databases/cwConfig files provided by the event
module. - Each IOC has its own displays for triggered and
beam-synchronous devices. Other event-related
diagnostics displays provided by the event module
and currently accessible from the Event tab on
lclshome. - Databases divided into 4 categories
- EVR Databases
- Pattern Databases
- Trigger Database
- BSA Databases
9EVR Databases
- One evr record per EVR.
- Use evr.db (most apps) from event module.
- Apps that dont use the trigger database or
dont save/restore delays, polarities, or pulse
widths will use evrWithDelays.db or
evrWithExtendedDelays.db from the event module
instead. - Matching display tools/edm/display/event/evrDiag
s.edl - Record Reference http//www.slac.stanford.edu/gr
p/lcls/controls/global/subsystems/timing/globalEve
ntV3.htm
10EVR Databases - cont
- One erevent record per triggering event per EVR
- Use evrEventCtrl.db from event module.
- Always instantiate ltevrgtEVENT1 to 14 you want
the spares. - See timing block diagram in sharepoint to find
mapping between triggered device and TTB/front
panel ports. - See EVG event display to find event code numbers
once you know how devices are to be triggered.
One device can be triggered by multiple event
codes (ie, BPMs) though not event codes on the
same time slot. - Enable IRQ if you want records processed on
event. - Matching display tools/edm/display/event/evrTrig
gerDiags.edl - Record Reference http//www.slac.stanford.edu/grp
/lcls/controls/global/subsystems/timing/globalEven
tV3.htm
11Pattern Databases
- One Pattern Record Group per IOC
- Provides beam/BSA/destination/timeslot
information on the current time slot next 3
timeslots. They also provide generalTime
records. All apps (including EVG IOC) should
load this one. - Use evrPatternAll.db from the event module.
- Matching displays tools/edm/display/event/evrPat
ternDiags.edl and tools/edm/display/event/generalT
ime.edl
12Pattern Databases - cont
- One Pattern Event Record Group per IOC
- Provides event records that will fire if IRQ is
enabled on an event code. Also provides delay
from the fiducial for each event code (used by
the trigger database). Must be loaded with
evrPatternAll.db. - Use evrEventAll.db from the event module.
- Matching display tools/edm/display/event/evrEven
tDiags.edl
13Trigger Database
- One Trigger Record Group per triggered device
- Provides more user-friendly interface for setting
delays, pulse widths, polarities than comes with
evr.db. Comes with matching CW configuration. - Use evrDevTrig.db, evrDevTrig.cwConfig, and
evrIocTrig.cwConfig from the event module. - Must be consistent with event codes selected in
the EVR databases. - See timing block diagram in sharepoint to find
mapping between triggered device and TTB/front
panel ports https//slacspace.slac.stanford.edu/s
ites/LCLS20Document20Storage/0120-20LCLS20Sys
tems/electronbeamsys/controls/Shared20Documents/T
iming/TIMING20System20BD.pdf - Matching display tools/edm/display/event/evr_dev
_diags.edl