220 likes | 243 Views
Channel Archiver Overview. Jan. 2003. Channel Archiver. Channel Access client Stores samples in disk files Design target: handle 10000 values/sec Documentation, Snapshots: LANL EPICS Page. From http://www.aps.anl.gov/epics , see Other Sites, LANL, Tools, Archiver. Operation.
E N D
Channel ArchiverOverview Jan. 2003
Channel Archiver • Channel Access client • Stores samples in disk files • Design target: handle 10000 values/sec • Documentation, Snapshots:LANL EPICS Page.From http://www.aps.anl.gov/epics,see Other Sites, LANL, Tools, Archiver.
Operation • Config. file lists channels to archive# Example: <channel> <period [s]>channel_X 1channel_Y 10# Monitor: might change every 0.2 secondchannel_Z 0.2 Monitor • Scanned • Periodically store most recent value • Monitor • Store all incoming values – up to buffer limit • Original time stamps are stored!
Scripting: WebServer PerlCGI,DBI,DBD TCL tk,BLT Pythontk,BLT,PMW ArchiveEngine WinBrowser(Win32) CGIExport SWIG SWIG SWIG LibIO (C++) LibIO (C++) LibIO (C++) LibIO (C++) LibIO (C++) LibIO (C++) Archive- Export Archive- Manager StripTool (Unix) xarr(Unix) LibIO (C++) LibIO (C++) LibIO (C++) LibIO (C++) Directory Data Components Storage Retrieval Native: CA Online: (also possible via scripting)
ArchiveEngine • Syntax:ArchiveEngine [options] config [dir] • Options:-d <desciption>-p <port> : change HTTPD from 4812-l <log> : write log file
Engine’s HTTPD • URL of engine’s HTTPD: http://<machine>:<port> • Status & Config., not data! • “Client Pull”: Updates on reload • Changes (added groups/channels) written to cfg subdirectory, original config. files unchanged
“Directory File” • File name, not a directory name • Specified when running archive engine • Default: “freq_directory”. Better: “dir”. • Used by retrieval tools • Details of “directory” and “data” files are given in documentation • Note: Keep directory & data files together, don’t modify them.
ArchiveExport • Syntax:ArchiveExport [options] [dir] {channel names} • Options:-start “mm/dd/yyyy hh:mm:ss”-end “mm/dd/yyyy hh:mm:ss”-fill-interpolate <seconds>-gnuplot-Matlab…
Export Options • Original Time Stamps:ill-suited for Spreadsheets • “Fill” missing values by repetition • Linear Interpolationfor given period (initial #N/A until all channels have valid value)
MATLAB • ExportToolsgenerate MATLAB command file • ASCII, portable • No MATLAB binaries required • Full value info,time & status • Big & slow
WinBrowser • Win. Only
WWW Web Server CGIExport Data CGI Export • Data Access from any Web browser • Download formats: Spreadsheet, Matlab
Scripting • Allows writing perl/tcl/python programs for • Automated generation of daily beam statistics for Web page • Specialized scripts to answer questions like:“How often was XX below 10.0 and for how long?” • …
ArchiveEngine Details • More options, see manual: !write_period <seconds> • “Groups” for • getting organized • conditional archiving !group <other file> <channel> <period> Disable
Retrieval f. Multiple Archives • Run several ArchiveEngines, creating several “small enough” data sets • Look at them all at once: master_version=1# List sub-archives, most recent first/archives/2001/july/dir/archives/2001/june/dir/archives/2001/may/dir# …# Then check Fred's "xyz" archive /home/fred/xyzarchive/dir • Sub-archives should not “overlap”
Suggested Setup • Long Term ArchiveSample ~10min, kept forever • Middle TermSample every 60s, restarted after 15 days, switching between two directories • Short TermUp to ‘Monitor’, toggling two directories every shift • High-grained data for last shift, good data for last 2 weeks, some log of everything kept forever
CAManager (Thomas Birke, BESSY) • ArchiveEngine control GUI Status of (multiple) ArchiveEngines Start/Stop Periodic re-start in different directory, updating a MultiArchive File
Data Management • Do not separate Directory & Data files! • Periodically restart Engine in new directory to keep data sets manageable (CAManager helps) • ArchiveManager program can copy selected channels & time range, performing basic repairs and compression while doing this
Summary • “ChannelArchiver” is a Toolset for archiving any ChannelAccess data • Some generic retrieval options, scripting and Matlab allow further analysis • Future Plans: • Port to R3.14 and RH8 • CORBA interface for data retrieval(common w/ JLab archiver, replace tcl/perl/python binding, allow Java access to data)