Upload
maurice-phelps
View
223
Download
0
Tags:
Embed Size (px)
Citation preview
CODA Users Workshop(Data Acquisition at Jefferson Lab)
By David Abbott
Welcome - Goals for the Workshop
Who are the DAQ GroupHistoryWhat is CODAIntroduce CODA 2.5 - new features, tools, and requirementsShare what others have doneDiscuss where we are and where we need to go - in the short term and the long term.
Introduction
About Us:Six member physics support group -
Responsible for providing software and hardware to meet the continually changing data acquisition needs of Jefferson Lab physics…
We’re up here
Who we are…
Me - Team LeadFront-end, Real-time systems,
Ed - Custom hardware design
Carl - Event Transport,EB, GUI’s
Vardan - Java, Intelligent control systems
Elliott - Databases,Event I/O, EBHall B Liaison
Dave - Newest member, Hall D Liaison
History of CODA
Circa 1980s - DAQ systems were closed and custom-built based on the detectors. ------->JLAB has 3 different experimental halls. We didn’t need 3 different DAQ systems. Chip Watson had a better idea…
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
CAMAC
MBDVAX
CODA History cont…
Modular software components use the network for inter-process communication and event transport. Use open standards and minimize the use of commercial software while maximizing use of commercial hardware.DAQ systems for each experimental hall can be “built-up” from common components to fit their needs.
CODA Timeline
Developed on DEC Ultrix - ported to HP_UXVxWorks front-end, 68K CPUs.RPC-based componentsEiffel - RunControlConfigure - Flat filesProduction use in Halls A and C
Developed on Solaris - ported to Linux (Red Hat)VxWorks front-end, both 68K and PowerPC CPUsTcl with Extensions, thread-based components.X/Motif/C++ RunControlConfigure - Mini-sql databaseUsed in all three experimental halls
Version 1.x (1990-2000) Version 2.x (1996-present)
What is CODA?CODA is a software toolkit from which data acquisition systems with varying degrees of complexity can be built.
A typical system might look
Single Board Computer
FASTBUSVMECAMAC
ROC rcServer
EB
ROC
Network: Ethernet FDDI ATM
UNIX/LINUX
DISK/TAPEET
User Proc.
RunControlGUI
ER
cdev
dp_tcl
mSQL Database
msqld cmlogServer
cmlogDatabase
DAQ Components
ROC EREB
Tcl, Tcl-dp, Itcl,
tclStruct, tcl_msqlmsql
coda_component.c
CODA_class.tcl ROC_class.tcl
roc_component.c
coda_main.c
RunControl
DATA
VxWorks
UNIX
Network
LINK_class.tcl
msqld
cmlogClientD
link_support.c
cmlogServer
dalogmsg
Push Architecture
Build
Thread
EB
ROC
Write
Thread
FIFO
Read Thread
ROC
Write
Thread
FIFO
ROC
Write
Thread
FIFO
ROC
Write
Thread
FIFO
Read Thread
Read Thread
Read Thread
• Send big buffers• Most efficient use of TCP/IP protocol
DAQ Systems
EB
ER
ROCSimplest System (1 CPU):
ADC/TDC
BUS file
Or get more creative:
ROC ROC ROC ROCROC
EBET
file
The Database - mSQL
msqld
Comp Host PortROC1 tom 1234EB1 harry 5678ER1 harry 910
ROC1
Process Table
ER1EB1
tom harry
• Components register in the database
• Retrieve run configuration information
• Editing tools: cedit, dbeditConfig Table
ROC1 myexp.oEB1 ROC1
ER1 myfile.dat
Run Control
rcServer
cdev
ROC EREB
•User Interface•State Machine•Transition and Monitor multiple components
dptcl
CODA - Current status
Last working release tagged in late 2000 as 2.2.1Many small changes, additions, and upgrades since thenExperimental Halls are working with “different” implementationsCODA 3 is under development, but meanwhile we need a stable supportable branch to work with - CODA 2.5
CODA 2.5
Two years in the making - incorporate bug fixes, new features, new hardware.Close to a million lines of code to maintainSupport updated operating systems and compilers (e.g. Solaris 8, Red Hat 9, Enterprise, vxWorks 5.5)Drop old support (e.g. 68K CPUs, Red Hat 6, Solaris 2.6, DD System etc…)A launching point for introducing CODA version 3 software
CODA 2.5 -New Stuff
OS SupportSolaris 8 Sun 6.2 compilerRedHat 7.x, 9.x, Enterprise gcc 2.96, 3.2VxWorks 5.4, 5.5 gcc 2.96+ (ppc)
Redhat 7, 9 will be phased out68K CPUs (MV162,MV167) will be droppedDependencies on external packages
CMLOG 2.1 xpm 4.10cdev 1.7.5 expat .195Java 1.4+ openmotif 2.1
CODA 2.5 - New cont…
DAQ: bug fixes, ROC-->ET supportET: java, vxWorks, tcl_etROL: GEN lists, new headers to support new hardwareRunControl: New Java-based system
Utilities: XML evio, vxServer, codamaster, fbdiag, Database proxy server, etc…Hardware:
New libraries for support of VME modules (ADCs, TDCs, scalers, etc…)New TS, interface cardsVME, SFI DMA librariesF1 TDC
Front-End Support
VxWorks - real-time OSWith 5.5 - new compiler, more UNIX APIs (e.g. pthreads) Most efficient, convenient hardware accessLarger CPU memorys (512MB) supported
FASTBUS is headed outRepair costs prohibitiveNo commercial support
VME and PCI are inVME64X - Necessary for F1 TDCPCI interface to CAMAC for small systems
Aging TechnologiesRunControl (runcontrol, rcServer)
Poor maintainabilityDifficult to extend to other control apps
Other X11/Motif Apps - xcefdmp, cedit Tcl 7.4 /Tk 4.0 and extensions
itcl/itk, tclStruct, dp, blt, tclcdev, tcl_cmlog, tcl_msql, Tix4.0.4, debug, svipc
Mini-SQL DatabaseComponent nameserviceConfig and Status
SummaryCODA has evolved into a successful and stable DAQ toolkit used both at the Lab and in other institutions (e.g. MIT-Bates, TUNL, RHIC).Today’s workshop is an opportunity to learn and share what can be done.CD-0 for the 12 GeV upgrade brings new DAQ challenges - high rates, fully dead-timeless systems.Goals:
Keep everything we like.Adapt to new technologies.Introduce what you need and want.