The EPICS Channel Archiver

The EPICS Channel Archiver

The EPICS Channel Archiver Timothy Graber The Center for Advanced Radiation Sources The University of Chicago EPICS "Getting Started" Lecture Series August 24, 2004 Credit for the Archiver goes to: Bob Dalesio Thomas Birke Sergei Chevtsov Kay-Uwe Kasemir Chris Larrieu Craig McChesney Peregrine McGehee Nick Pattengale Channel Archiver

Channel Access Client. Stores Process Variable data in disk files. Can post channel access monitors. Archive data can be accessed over the web, providing real-time data from the beamline from any web browser. Additionally, users can look up experimental parameters over the Web from the time of their run. Very useful in debugging beamline problems. Channel Archiver Version There are presently two versions of the Channel Archiver in use. The differences between the versions are significant and will be pointed out where appropriate during this presentation. Since

many groups are still using EPICS R3.13.x the earlier version is still relevant. 1.x is for EPICS base R3.13.x. There is no active development going on. (1.10.2) 2.x is for EPICS base R3.14.x. These releases are new, they undergo testing at the SNS. Overview Data Collection and Storage CA Server CA Server PVs Web Server Archive

Engine Web Apps CA Server CGI/Web CA Server Strip Tool PVs Win Browser Archive Engine Computer Disk Storage

Retrieval Tools V2.x Web Server Archive Export WEB Server XML-Data Server Archive Export Tools Archiving ArchiveEngine Command program, does actual archiving ArchiveDaemon Automatically checks ArchiveEngine and starts if necessary (web based) Data Retrieval

Java Archive Client Used to browse data, plot, and export data to spread sheets. Uses Archive Data Server ArchiveExport Command line tool, functionality similar to Java Client Archive Data Server (Very Useful!) Gives access to archive data via a XML-RPC server. Simple functions can be incorporated into many popular programming languages (C, C++, Java, Perl) Archiving Archive Engine The Archive Engine is a Channel Access client that runs on the computer doing the Archiving. Loads a configuration file with a list of Process variables as well as monitor/scan information File in 2.x version XML File in 1.x version ASCII Has its own built in web server for additional configuration and stopping.

Stores archive data to disk Needs an index file(2.x)/directory file(1.x) in the subdirectory in which the data is stored. ArchiveEngine command-line program Syntax: ArchiveEngine [options] Options: -d -p -l -nocfg : : : : Web page description port for web server

write log file disable online configuration Version 1.x uses a directory file Version 2.x uses an index file Configuration file ASCII File V1.x Configuration file lists channels to archive # Example: 15IDB:vac1.VAL 1 15IDB:vac2.VAL 10 # Monitor: might change every 0.2 second 15IDB:vac3.VAL 0.2 Monitor Scanned Periodically store most recent value Monitor Store all incoming values up to buffer limit

Original time stamps are stored! Configuration file XML File (V2.x) Extensible Markup Language (XML) is a cross-platform, extensible, and text-based standard for representing data. It is also a key technology in the development of Web services. 30 20 30 1.0 3 120 Vacuum Scanned Periodically

store most recent value 15IDB:vac1.VAL Monitor 0.1 Store all incoming values up to buffer limit Original time stamps are stored! Legacy issues between 1.x and 2.x V2.x requires R3.14.4 or later V2.x requires index files rather directory files to keep track of data files All configuration files are based on XML. In V1.x, ASCII files were used. In the new release there is a perl script ( that will convert the archive engine ASCII files to XML files . The ArchiveDataTool (replaces the ArchiveManager) can be used to convert directory files to index files.

Note: Keep index & data files together, dont modify them. Archive Engine Build Configuration \ChannelArchiver\LibIO\ArchiverConfig.h // Use password mechanism // (for stopping the engine over the web) #undef USE_PASSWD #define DEFAULT_USER #define DEFAULT_PASS "engine" "password" Location of gnuplot is also a configuration parameter. Engines HTTPD

URL of engines HTTPD: http://: Status & Config., not data! Start/Stop Archiver ArchiveDaemon Automatically starts, monitors and restarts ArchiveEngine on local host. Has a built-in web server Will check status of ArchiveEngine process and restart if necessary Data Retrieval XML-RPC Data Server Sends Request

Data Client Program Forwards Data Web Server Forwards Request Gives Data Data Server Archive 1 Archive 2 Configuration File

Archive 3 XML-RPC Function Calls Returns version information archiver.archives Returns archives that the data server can access archiver.names Returns channel names and start and stop times archiver.values Returne values from a particular archive for a given list of channel names Calls can be used in C, C++, Perl See: ArchiveExport Command line tool Requires direct connection to local host disk

Syntax: ArchiveExport [options] [index file] {channel} Options: -verbose -list -info -start

: : : : : : : Verbose Mode List all channels Time range info on channels Data start time Data end time Status/Severity coulmn Channel name pattern Interpolate Value Output data file name Generate gnuplot command file Generate plot file

Java Archive Client Similar to Archive Export Uses XML-RPC Server Can be launched from a Web page Used to browse and plot data Export Tools generate MATLAB command file MATLAB

ASCII, portable No MATLAB binaries required Full value info, time & status Big & slow Fill, Interpol., ... 9 Original Samples "filled" Linear Interpol. Value [a.u.] 8.5 8

7.5 7 6.5 0 0.0002 0.0004 0.0006 0.0008 Time [s] 0.001 0.0012 0.0014

CGI Export Presently ChemMatCARS is running the 1.x version of the Archiver. Archive data is accessed over the internet via a CGI program using a web browser. Web pages are configured using an ASCII file. The program will be ported to the 2.x version of the Archiver. Starting the Archive Engine Command to start engine Version 1.8.2, built Jul 18 2001, 15:09:09 USAGE: ArchiveEngine [Options] [] Options:

-port WWW server's TCP port (default 4812) -description description for HTTP display -log write logfile -nocfg disable online configuratio Default directory-file: 'freq_directory' /home/epics/ html files archiver/CGIExport archiver/15idaArch cgi directory gif files beamline archive files archive configuration file archive log file

archiver/epicsClass freq_directory file Storage Space Below is a listing of the 15IDA archive directory. On a typical day an archive file is ~14Mb. Some PVs such as temperature are Archived every 10 seconds 365*14 Mb= 5.1 Gb/y 89 PVs are being monitored in the FOE at the present time. -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics

-rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics -rw-r--r-1 epics archive_active.lck epics epics epics epics epics epics epics epics

epics epics epics epics epics epics epics epics epics epics epics epics 15659818 Sep 15754854 Aug 16467719 Sep 16685808 Aug 15870058 Aug 16620334 Aug 15861902 Aug

16999390 Sep 14303632 Sep 14159348 Sep 14130316 Aug 14864007 Aug 13824859 Sep 12142632 Sep 9472051 Sep 14071606 Sep 14203620 Sep 14071378 Sep 7444274 Sep 133 Aug 3 15:26 20040818-000000 20 18:15 20040819-000000 2 13:17 20040820-000000 22 02:17 20040821-000000 23 08:58 20040822-000000 26 00:00 20040823-000000

25 12:04 20040824-000000 1 19:29 20040825-000000 1 19:29 20040826-000000 1 19:29 20040827-000000 29 18:59 20040828-000000 30 17:12 20040829-000000 1 19:29 20040830-000000 1 15:23 20040831-000000 2 02:18 20040901-000000 3 01:03 20040902-000000 4 06:35 20040903-000000 5 05:44 20040904-000000 5 16:46 20040905-000000 3 10:56 Modifications to CGI export Added the ability to describe PV on Page. Ability to display a small group of related PVs on a single web page. Manual scaling of each axis.

Log plotting. Choice of left or right axis. Easy configuration of Web Page. Flow Diagram for Modified CGIExport Get request for particular PV group Open PV group text file and decide which page file to use Create and display Web Page Input Parse CGI string Get data Open GnuPlot Pipe Display Plotted Data

Exercise with Virtual Linac ArchiveEngine Config File epics:cathodeTempM epics:PM1:intensityM epics:PM2:intensityM epics:PM3:intensityM epics:PM4:intensityM epics:PM5:intensityM epics:FC1:intensityM 5 5 5 5 5 5 5

Monitor Monitor Monitor Monitor Monitor Monitor Monitor Populating the Web Page with PVs

Recently Viewed Presentations

  • nature of statistical learning theory

    nature of statistical learning theory

    Statistical Learning Theory. ... A high asymptotic rate of convergence in high-dimensional spaces can be guaranteed only for very smooth functions. ... The sets of implementable functions define a structure as the number of hidden units is .
  • Inventory Management - University of Texas at Austin

    Inventory Management - University of Texas at Austin

    Conduct an ABC analysis of inventory items. ... Learning Objectives Role of Inventory in Services Considerations in Inventory Systems Relevant Inventory Costs Inventory Management Questions Inventory Models Inventory Levels For EOQ Model Annual Costs For EOQ Model EOQ Formula Annual...
  • The Periodic Table

    The Periodic Table

    Periodic Table Geography A land far far away, that changes in atomic radius, ionization energy, and where unicorns roam The periodic table can be broken into periods and families Families/groups are the horizontal rows Atomic radius- the distance from the...
  • Brewer 3rd Edition Template - California State University ...

    Brewer 3rd Edition Template - California State University ...

    A standing committee responsible for overall policy matters relating to the budget coordinating the preparation of the budget Production Budget Selling and Administrative Budget Direct Materials Budget Manufacturing Overhead Budget Direct Labor Budget Cash Budget Sales Budget Budgeted Financial Statements...
  • History of Conflict An Introduction to the situation in ...

    History of Conflict An Introduction to the situation in ...

    History of Conflict An introduction to the situation in Northern Ireland _____ Created by Keith O'Connell Penn High School 2004 Background Data The conflict in Northern Ireland is between two groups; Protestants and Catholics. The conflict is not necessarily about...
  • Welcome to Kindergarten - Pages - Home

    Welcome to Kindergarten - Pages - Home

    Kindergarten Orientation James Robinson PS (Eco-friendly and inclusive school - Eco School Board) YRDSB Mission: We unite in our purpose to inspire and prepare learners for life in our changing world community.
  • Learning Management Systems

    Learning Management Systems

    Predominantly used in Rutgers-Newark. Roughly 8,000 courses. ... Seven migration support specialists (1-year contracts) will be hired and assigned to the Moodle migration first, before assisting with migrations from Blackboard and Sakai. Funding for these initial positions will come from...
  • Welcome Families! We encourage you to share with

    Welcome Families! We encourage you to share with

    Ask for a volunteer in each group to read the instructions aloud before they practice using the cards together. Once families are familiar with the cards, encourage them to role play with one person playing the role of a child...