DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control1 MBS monitor (FOPI) (J.Adamczewski, M.Stockmeier)

Slides:



Advertisements
Similar presentations
How to use TinyOS Jason Hill Rob Szewczyk Alec Woo David Culler An event based execution environment for Networked Sensors.
Advertisements

EPICS-DIM Interface Peter Zumbruch Experiment control systems group GSI (KS/EE)
Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
OPERATING SYSTEMS PROCESSES
Operating System.
Hans G. Essel, GSI: HGF Workshop Experiment Data Processing at GSI.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
IOC Application Development/Debugging Beijing EPICS Seminar Tuesday, 8/ J.Odagiri.
CHEP 2012 – New York City 1.  LHC Delivers bunch crossing at 40MHz  LHCb reduces the rate with a two level trigger system: ◦ First Level (L0) – Hardware.
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
Page 1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 1 Introduction.
Monitoring System Monitors Basics Monitor Types Alarms Actions RRD Charts Reports.
Control and monitoring of on-line trigger algorithms using a SCADA system Eric van Herwijnen Wednesday 15 th February 2006.
Module 15: Monitoring. Overview Formulate requirements and identify resources to monitor in a database environment Types of monitoring that can be carried.
Dirk Zimoch, KSTAR Meeting 2009 Auto Save and Restore.
Input/Output Controller (IOC) Overview Andrew Johnson Computer Scientist, AES Controls Group.
NV V5.7 Product Presentation. Brand New Professional GUI  Multiple User Interface for different look and feel  Audio indicator on camera (play audio.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
Guide to Linux Installation and Administration, 2e1 Chapter 10 Managing System Resources.
1 1999/Ph 514: Record Support EPICS Record Support Marty Kraimer APS.
MACCE and Real-Time Schedulers Steve Roberts EEL 6897.
EPICS record/device/driver Support many slides copied from
D ata A cquisition B ackbone C ore DABCDABC , Huelva J.Adamczewski, H.G.Essel, N.Kurz, S.Linev 1 Work.
DABCDABC J. Adamczewski-Musch, H.G. Essel, S. Linev Software development for CBM DAQ J. Adamczewski-Musch, H.G. Essel, S.
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
7. CBM collaboration meetingXDAQ evaluation - J.Adamczewski1.
V.Sirotenko, July Status of Online Databases Currently there are 2 online Oracle Databases running on d0online cluster: 1.Production DB, d0onprd,
THttpServer for ROOT Bertrand Bellenot, CERN Sergey Linev, GSI Darmstadt
37 Copyright © 2007, Oracle. All rights reserved. Module 37: Executing Workflow Processes Siebel 8.0 Essentials.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Online Software 8-July-98 Commissioning Working Group DØ Workshop S. Fuess Objective: Define for you, the customers of the Online system, the products.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
IOC Application Development/Debugging Shanghai EPICS Seminar Tuesday, 8/29 J.Odagiri.
Go4 v3 - J.Adamczewski, H.G.Essel, S.Linev IT/EE Palaver Go4 version 3.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Process-Concept.
Reliability/ Secure IOC / Outlook M. Clausen / DESY 1 CA-Put Logging BurtSave Warm Reboot Matthias Clausen DESY/ MKS.
DABCDABC D ata A cquisition B ackbone C ore J.Adamczewski, H.G.Essel, N.Kurz, S.Linev 1 Work supported by EU RP6 project.
Writing EPICS Channel Access Clients in Python Geoff Savage March 2003.
1 1999/Ph 514: Flow of Control EPICS Flow of Control Marty Kraimer APS.
PIKA Technologies Inc. CAS Logger Application Sample August 2014.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Processes and Threads.
The DØ Control System J. Frederick Bartlett For The DØ Controls Group.
1 2003/P571: Lab #2 : IOC Database EPICS Lab #2 IOC Database.
Practical Workflow Services Peter Goodman. Agenda  Why Workflow?  The Workflow Runtime  Workflow Services  Windows Server AppFabric  Demo.
Aug/20/2002EPICS Progress at IHEP1 BEPCII Control Group Presented by Ge Lei Aug/20/2002.
Matthias Clausen, Jan Hatje, DESY CSS Overview – Alarm System and Management CSS Overview - GSI, 11 Februrary CSS Overview Alarm System and CSS.
© 2009 IBM Corporation Tianhong Wang 2012/06/28 Android’s udev —— Vold.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
EPICS and LabVIEW Tony Vento, National Instruments
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
Unit 4: Processes, Threads & Deadlocks June 2012 Kaplan University 1.
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
1 DAQ.IHEP Beijing, CAS.CHINA mail to: The Readout In BESIII DAQ Framework The BESIII DAQ system consists of the readout subsystem, the.
LonWorks Introduction Hwayoung Chae.
An Introduction to Epics/Tango Steve Hunt Alceli EPICS Meeting 2008 INFN Legnaro 15 Oct 17:15.
January 2010 – GEO-ISC KickOff meeting Christian Gräf, AEI 10 m Prototype Team State-of-the-art digital control: Introducing LIGO CDS.
Clara Gaspar, February 2010 DIM A Portable, Light Weight Package for Information Publishing, Data Transfer and Inter-process Communication.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
IOC Application Development / Debugging
Process concept.
GFA Controls IT Alain Bertrand
Technology Literacy Hardware.
Distributed object monitoring for ROOT analyses with Go4 v.3
Mid Term review CSC345.
Writing a Channel Access Client in EPICS
Channel Access Concepts
Presentation transcript:

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control1 MBS monitor (FOPI) (J.Adamczewski, M.Stockmeier)

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control2 DAQ Control Control –Setup –Steering –Observing –Configuration persistency Monitoring –Status of all components –Performance –Logging Alarms –Messages –Conditions Diagnosis

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control3 EPICS Components FEB DCB ABB PC IOCs –One IOC per standard CPU (Linux, Lynx, VxWorks) clients –on Linux, (Windows) Agents –Segment IOCs beeing also clients IOC

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control4 Hierarchy in a flat system tasks IOC Client IOCs –One IOC per standard CPU (Linux, Lynx, VxWorks) clients –on Linux, (Windows) Agents –Segment IOCs beeing also clients Name space architecture!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control5 Local communication status segment IOC Task intertask commands messages memory Task command thread working thread message thread Commands handled by threads Execution maybe in working thread Message thread maybe not needed

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control6 MBS node status segment Dispatcher Task commands (text) messages (text) Task Messageserver Statusserver External control asynchronous on request asynchronous

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control7 MBS node and monitor IOC External control asynchronous IOC status segment Dispatcher Task commands (text) messages (text) Task Messageserver Statusserver asynchronous on request

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control8 MBS monitor IOC After one week work from scratch new MBS record type one record instance per MBS node Device support gets status of MBS node and fills MBS record Fan out to MBS node process variables IOC started on any Linux IOC could also run on each MBS node Display with medm

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control9 #!epics/mbs/bin/linux-x86/mbsmon dbLoadDatabase("dbd/mbsmon.dbd") # Load all record definitions mbsmon_registerRecordDeviceDriver(pdbbase) # Register all support components # Load record instances, one line for each MBS node to be monitored. dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs1, mbsname=lxi010, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs2, mbsname=lxi011, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs3, mbsname=lxi012, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs4, mbsname=lxi013, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs5, mbsname=r3-2, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsSums.db","user=FOPI, mbsnode1=mbs1,,,,,mbsnode2=mbs2, scan=2 second,evhirange=300000, kbhirange=15000") cd ${TOP}/iocBoot/${IOC} iocInit() Starting script IOC Listings not complete!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control10 #!epics/mbs/bin/linux-x86/mbsmon dbLoadDatabase("dbd/mbsmon.dbd") # Load all record definitions mbsmon_registerRecordDeviceDriver(pdbbase) # Register all support components # Load record instances, one line for each MBS node to be monitored. dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs1, mbsname=lxi010, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs2, mbsname=lxi011, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs3, mbsname=lxi012, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs4, mbsname=lxi013, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs5, mbsname=r3-2, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsSums.db","user=FOPI, mbsnode1=mbs1,,,,,mbsnode2=mbs2, scan=2 second,evhirange=300000, kbhirange=15000") cd ${TOP}/iocBoot/${IOC} iocInit() Starting script IOC mbsmon.dbd recordtype(mbsStatus) { include "dbCommon.dbd" field(VAL,DBF_DOUBLE) { prompt("dummy value") asl(ASL0) pp(TRUE) } field(ISRUN,DBF_ENUM) { prompt("Acquisition running") asl(ASL0) pp(TRUE) } field(ISAVAIL,DBF_ENUM) { prompt("Mbs node available") asl(ASL0) pp(TRUE) }.....} device(mbsStatus,CONSTANT,devmbsStatusSoft,"SoftChannel") Listings not complete!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control11 #!epics/mbs/bin/linux-x86/mbsmon dbLoadDatabase("dbd/mbsmon.dbd") # Load all record definitions mbsmon_registerRecordDeviceDriver(pdbbase) # Register all support components # Load record instances, one line for each MBS node to be monitored. dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs1, mbsname=lxi010, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs2, mbsname=lxi011, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs3, mbsname=lxi012, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs4, mbsname=lxi013, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs5, mbsname=r3-2, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsSums.db","user=FOPI, mbsnode1=mbs1,,,,,mbsnode2=mbs2, scan=2 second,evhirange=300000, kbhirange=15000") cd ${TOP}/iocBoot/${IOC} iocInit() Starting script IOC dbMbsMonitor.db record(mbsStatus, { field(DESC, field(SCAN, "$(scan)") field(FLNK, } record(fanout, { field(DESC, "Trigger all") field(LNK1, } record(fanout, { field(DESC, "Trigger runstates") field(LNK1, field(LNK6, } mbsmon.dbd recordtype(mbsStatus) { include "dbCommon.dbd" field(VAL,DBF_DOUBLE) { prompt("dummy value") asl(ASL0) pp(TRUE) } field(ISRUN,DBF_ENUM) { prompt("Acquisition running") asl(ASL0) pp(TRUE) } field(ISAVAIL,DBF_ENUM) { prompt("Mbs node available") asl(ASL0) pp(TRUE) }.....} device(mbsStatus,CONSTANT,devmbsStatusSoft,"SoftChannel") Listings not complete!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control12 #!epics/mbs/bin/linux-x86/mbsmon dbLoadDatabase("dbd/mbsmon.dbd") # Load all record definitions mbsmon_registerRecordDeviceDriver(pdbbase) # Register all support components # Load record instances, one line for each MBS node to be monitored. dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs1, mbsname=lxi010, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs2, mbsname=lxi011, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs3, mbsname=lxi012, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs4, mbsname=lxi013, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsMonitor.db","user=FOPI, mbsnode=mbs5, mbsname=r3-2, scan=1 second, evhirange=30000, kbhirange=1500") dbLoadRecords("db/dbMbsSums.db","user=FOPI, mbsnode1=mbs1,,,,,mbsnode2=mbs2, scan=2 second,evhirange=300000, kbhirange=15000") cd ${TOP}/iocBoot/${IOC} iocInit() Starting script IOC dbMbsMonitor.db record(mbsStatus, { field(DESC, field(SCAN, "$(scan)") field(FLNK, } record(fanout, { field(DESC, "Trigger all") field(LNK1, } record(fanout, { field(DESC, "Trigger runstates") field(LNK1, field(LNK6, } dbMbsSums.db record(calc, { field(DESC, "Sum of Mbs datarates") field(SCAN,"$(scan)") field(FLNK, field(CALC, "A+B+C+D+E") field(INPA, NPP NMS") field(INPB, NPP NMS") field(INPC, NPP NMS") field(INPD, NPP NMS") field(INPE, NPP NMS") field(EGU, "kB/s") } mbsmon.dbd recordtype(mbsStatus) { include "dbCommon.dbd" field(VAL,DBF_DOUBLE) { prompt("dummy value") asl(ASL0) pp(TRUE) } field(ISRUN,DBF_ENUM) { prompt("Acquisition running") asl(ASL0) pp(TRUE) } field(ISAVAIL,DBF_ENUM) { prompt("Mbs node available") asl(ASL0) pp(TRUE) }.....} device(mbsStatus,CONSTANT,devmbsStatusSoft,"SoftChannel") Listings not complete!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control13 Device support devmbsStatusSoft.c struct { longnumber; DEVSUPFUNreport; DEVSUPFUNinit; DEVSUPFUNinit_record; DEVSUPFUNget_ioint_info; DEVSUPFUNread_mbsStatus; }devmbsStatusSoft={ 5, NULL, init_record, NULL, read_mbsStatus, }; epicsExportAddress(dset,devmbsStatusSoft);// Macro! static long read_mbsStatus(mbsStatusRecord *pmbsStatus) // called for each mbsStatus instance { s_daqst daqstatus; //daqstatus curs = // to get MBS node name from descriptor strncpy(node,++curs,63); // copy MBS node name status=f_mbs_status(node,&daqstatus); // request status block from MBS node pmbsStatus->isrun=daqstatus.bh_running; // copy variables pmbsStatus->udf = FALSE; // nothing undefined return(0); } function table Listings not complete!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control14 mbsStatusRecord.c #include "mbsStatusRecord.h" static long process(void *precord) // overloaded! { mbsStatusRecord*pmbsStatus = (mbsStatusRecord *)precord; mbsStatusdset*pdset = (mbsStatusdset *)(pmbsStatus->dset); status=(*pdset->read_mbsStatus)(pmbsStatus); // from devmbsStatusSoft.c recGblGetTimeStamp(pmbsStatus); checkAlarms(pmbsStatus);// check for alarms monitor(pmbsStatus);// check event list recGblFwdLink(pmbsStatus);// process the forward scan link record return(status); } static void monitor(mbsStatusRecord *pmbsStatus) { unsigned shortmonitor_mask; monitor_mask = recGblResetAlarms(pmbsStatus); // send out monitors connected to the value field if (monitor_mask) db_post_events(pmbsStatus,&pmbsStatus->val,monitor_mask); return; } static void checkAlarms(mbsStatusRecord *pmbsStatus) { } Record support Listings not complete!

DAQ Control GSI, Aug 2005Hans G. Essel CBM - DAQ Control15 Screen shot FOPI