Download presentation
Presentation is loading. Please wait.
Published byKelly Hubbard Modified over 9 years ago
1
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 A generic driver for Data Buffer of MRF Timing System Babak Kalantari Paul Scherrer Institute Switzerland
2
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 MRF Event System Data Buffer ■ Real-time data transfer parallel to event distribution ■ 2048 Bytes of raw data ■ Transfer rate half of the event clock ■ Applications include: ► Beam parameter distribution ► Beam-synchronous DAQ ► Bunch marking ► Global command/status distribution
3
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Exp._x Bunch_ID Exp. 2 Exp. 3 Exp. 4 Exp. 1 Beam source dev. 1 dev. 2 dev. 3 dev. 4 start Pulser RF Diag. Pulser RF Diag. …… 12 start Pulser RF Diag. … 3 Exp._x Bunch_ID
4
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Problem / Similarities? ■ Need an EPICS driver that: ● can send/receive data by standard record types ● is application- and site- independent ● easy to understand / use ■ Dev. Sup. layer similar to S7 PLC ● A data buffer of PVs (each in certain offset) sent over network ● Uses a generic device support layer ( regDev by Dirk Zimoch) ■ Need a driver layer for ► interaction with hardware ► low level communication handling
5
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 One-to-one data mapping EVG DBuff EVR DBuff ao Offs=x Offs=y aao Offs=z bo ai Offs=x Offs=y waveform Offs=z bi 2)Flush 1)Write3)receive (I/O Intr) Protocol_data
6
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Support for protocols EVG (H/W) Data Buffer Tx Local Buffer (protocol_1) Local Buffer (protocol_2) Local Buffer (protocol_x) EVR (H/W) Data Buffer Rx Local Buffer (protocol_1) Local Buffer (protocol_2) Local Buffer (protocol_3) Flush Deliver Output records (set_x) Input records (set_x) Output records (set_1) Write Input records (set_1) Read
7
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Driver Software ■ Configuration mrfDBuffConfigure ("device", cardNum, Tx, protocolID) ■ DB: ► Output records ( ao, bo, mbbo, aao, stringout, longout, etc. ) ● OUT, “#C S @ / T= " ● SCAN, “Passive” ► Input records ( ai, bi, mbbi, waveform, stringin, longin, etc. ) ● OUT, “#C S @ / T= " ● SCAN, “I/O Intr” ► Special “bo” record: (data Flush) ● SCAN, “Passive” ● OUT, "#C S @" device name offset in bytes data type
8
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Example: ■ Startup: mrfDBuffConfigure (“myEvg_A", 2, 1, 10) mrfDBuffConfigure (“myEvr_A", 3, 0, 10) mrfDBuffConfigure (“myEvg_B", 2, 1, 15) mrfDBuffConfigure (“myEvr_B", 3, 0, 15) ■ DB: record (ai, "($NAME)") { field (DTYP, "regDev") field (INP, "@myEvr_A/4 T=FLOAT") field (SCAN, "I/O Intr") } record (stringin, "($NAME)") { field (DTYP, "regDev") field (INP, "@myEvr_B/4 T=STRING L=10") field (SCAN, "I/O Intr") }
9
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Status ■ In production use at swissFEL test-facilities ► Bunch marker ► Beam synchronous DAQ (single-shot) ■ How to get it: ► sourceForge EPICS Applications ● “mrfDataBufferApp” included in MRF Event System driver package http://epics.svn.sourceforge.net/viewvc/epics/applications/trunk/mrfEventSystem/
10
Babak Kalantari, EPICS Collaboration Meeting, Kobe 2009 Thanks!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.