coda users workshop (data acquisition at jefferson lab) by david abbott

20
CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

Upload: maurice-phelps

Post on 31-Dec-2015

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

CODA Users Workshop(Data Acquisition at Jefferson Lab)

By David Abbott

Page 2: 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.

Page 3: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 4: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 5: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 6: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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.

Page 7: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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)

Page 8: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 9: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 10: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 11: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

DAQ Systems

EB

ER

ROCSimplest System (1 CPU):

ADC/TDC

BUS file

Or get more creative:

ROC ROC ROC ROCROC

EBET

file

Page 12: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 13: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

Run Control

rcServer

cdev

ROC EREB

•User Interface•State Machine•Transition and Monitor multiple components

dptcl

Page 14: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 15: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 16: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 17: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 18: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 19: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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

Page 20: CODA Users Workshop (Data Acquisition at Jefferson Lab) By David Abbott

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.