The EPICS Channel Archiver Timothy Graber The Center for Advanced Radiation Sources The University of Chicago EPICS "Getting Started" Lecture Series August.

Slides:



Advertisements
Similar presentations
1 Copyright © 2002 Pearson Education, Inc.. 2 Chapter 1 Introduction to Perl and CGI.
Advertisements

Managed by UT-Battelle for the Department of Energy Best Ever Archive Utility, Yet (BEAUtY) Kay Kasemir April 2013.
CIMCO Integration Software Products
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
Chapter Apache Installation in Linux- Mandrake. Acknowledgment The following information has been obtained directly from
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
1 Software Testing and Quality Assurance Lecture 32 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
CP476 Internet Computing Browser and Web Server 1 Web Browsers A client software program that allows you to access and view Web pages on the Internet –Examples.
Guide to Linux Installation and Administration, 2e1 Chapter 6 Using the Shell and Text Files.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Apache : Installation, Configuration, Basic Security Presented by, Sandeep K Thopucherela, ECE Department.
Introduction to eValid Presentation Outline What is eValid? About eValid, Inc. eValid Features System Architecture eValid Functional Design Script Log.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
CGI Programming: Part 1. What is CGI? CGI = Common Gateway Interface Provides a standardized way for web browsers to: –Call programs on a server. –Pass.
DØ Channel Archiver Tutorial V.Sirotenko, 4/4/2001.
Linux Operations and Administration
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
This presentation will guide you though the initial stages of installation, through to producing your first report Click your mouse to advance the presentation.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Computer Concepts 2014 Chapter 7 The Web and .
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Managed by UT-Battelle for the Department of Energy Best Ever Archive Utility, Yet Creating a BEAST was easy. BEAUtY seems harder. April.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
5 Copyright © 2008, Oracle. All rights reserved. Configuring the Oracle Network Environment.
Channel Archiver Stats & Problems Kay Kasemir, Greg Lawson, Jeff Patton Presented by Xiaosong Geng (ORNL/SNS) March 2008.
Channel Archiver Introduction 2006
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
From the ChannelArchiver to the Best Ever Archive Utility, Yet July 2009.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Imperial College Tracker Slow Control & Monitoring.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Oct EPICS Meeting, PAL, Korea Control System Studio Training.
Chapter 6 Server-side Programming: Java Servlets
The huge amount of resources available in the Grids, and the necessity to have the most up-to-date experimental software deployed in all the sites within.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
WWW: an Internet application Bill Chu. © Bei-Tseng Chu Aug 2000 WWW Web and HTTP WWW web is an interconnected information servers each server maintains.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Greenstone Internals How to Build a Digital Library Ian H. Witten and David Bainbridge.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
Free Powerpoint Templates Page 1 Free Powerpoint Templates Users and Documents.
Channel Archiver Oct 2000 Kay-Uwe Kasemir, LANL. Channel Archiver Generic archiving system for EPICS Stores independent “Channels” = any Process Variable.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Channel Archiver Overview Jan Channel Archiver Channel Access client Stores samples in disk files Design target: handle values/sec Documentation,
Module 14: Advanced Topics and Troubleshooting. Microsoft ® Windows ® Small Business Server (SBS) 2008 Management Console (Advanced Mode) Managing Windows.
July 19, 2004Joint Techs – Columbus, OH Network Performance Advisor Tanya M. Brethour NLANR/DAST.
Implementation and Testing of RDB Channel Archiver with MySQL Richard Ma, DePauw University Supervisor: Richard Farnsworth, Argonne National Laboratory.
PHP / MySQL Introduction
MapServer In its most basic form, MapServer is a CGI program that sits inactive on your Web server. When a request is sent to MapServer, it uses.
Tutorial (4): HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
PHP and Forms.
Lecture 5: Functions and Parameters
Channel Archiver Kay-Uwe Kasemir, LANL
APACHE WEB SERVER.
Presentation transcript:

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 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. 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.

Overview CA Server PVs Data Collection and Storage Retrieval Tools CGI/Web Strip Tool Win Browser Archive Export Archive Engine Web Server Archive Engine V2.x XML-Data Server Archive Export WEB Server Web Apps Computer Disk Storage

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 : Web page description -p : port for web server -l : write log file -nocfg: 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 Scanned Periodically store most recent value Monitor Store all incoming values – up to buffer limit Original time stamps are stored! # Example: 15IDB:vac1.VAL 1 15IDB:vac2.VAL 10 # Monitor: might change every 0.2 second 15IDB:vac3.VAL 0.2 Monitor

Configuration file XML File (V2.x) Scanned Periodically store most recent value Monitor Store all incoming values – up to buffer limit Original time stamps are stored! Vacuum 15IDB:vac1.VAL 0.1 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.Web services

Note: Keep index & data files together, don’t modify them. Legacy issues between 1.x and 2.x V2.x requires R 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 (ConvertEngineConfig.pl) 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.

Archive Engine Build Configuration // Use password mechanism // (for stopping the engine over the web) #undef USE_PASSWD #define DEFAULT_USER "engine" #define DEFAULT_PASS "password" \ChannelArchiver\LibIO\ArchiverConfig.h Location of gnuplot is also a configuration parameter.

Engine’s HTTPD URL of engine’s HTTPD: : 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 Archive 1 Configuration File Archive 2Archive 3 Data Server Forwards Request Gives Data Web Server Data Client Program Sends Request Forwards Data

XML-RPC Function Calls archiver.info –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 Syntax: ArchiveExport [options] [index file] {channel} Options: -verbose: Verbose Mode -list: List all channels -info: Time –range info on channels -start : Data start time -end : Data end time -text: Status/Severity coulmn -match: Channel name pattern -interpolate: Interpolate Value -output : Output data file name -gnuplot: Generate gnuplot command file -Gnuplot: Generate plot file Command line tool Requires direct connection to local host disk

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

MATLAB Export Tools generate MATLAB command file –ASCII, portable –No MATLAB binaries required –Full value info, time & status –Big & slow

“Fill”, “Interpol.”,...

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 , 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/ archiver/15idaArch archiver/CGIExport archiver/epicsClass html files cgi directory gif files beamline archive files archive configuration file archive log file freq_directory file

Storage Space Below is a listing of the 15IDA archive directory. On a typical day an archive file is ~14Mb. Some PV’s such as temperature are Archived every 10 seconds -rw-r--r-- 1 epics epics Sep 3 15: rw-r--r-- 1 epics epics Aug 20 18: rw-r--r-- 1 epics epics Sep 2 13: rw-r--r-- 1 epics epics Aug 22 02: rw-r--r-- 1 epics epics Aug 23 08: rw-r--r-- 1 epics epics Aug 26 00: rw-r--r-- 1 epics epics Aug 25 12: rw-r--r-- 1 epics epics Sep 1 19: rw-r--r-- 1 epics epics Sep 1 19: rw-r--r-- 1 epics epics Sep 1 19: rw-r--r-- 1 epics epics Aug 29 18: rw-r--r-- 1 epics epics Aug 30 17: rw-r--r-- 1 epics epics Sep 1 19: rw-r--r-- 1 epics epics Sep 1 15: rw-r--r-- 1 epics epics Sep 2 02: rw-r--r-- 1 epics epics Sep 3 01: rw-r--r-- 1 epics epics Sep 4 06: rw-r--r-- 1 epics epics Sep 5 05: rw-r--r-- 1 epics epics Sep 5 16: rw-r--r-- 1 epics epics 133 Aug 3 10:56 archive_active.lck 365*14 Mb= 5.1 Gb/y 89 PV’s are being monitored in the FOE at the present time.

Modifications to CGI export Added the ability to describe PV on Page. Ability to display a small group of related PV’s 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 epics:cathodeTempM 5 Monitor epics:PM1:intensityM 5 Monitor epics:PM2:intensityM 5 Monitor epics:PM3:intensityM 5 Monitor epics:PM4:intensityM 5 Monitor epics:PM5:intensityM 5 Monitor epics:FC1:intensityM 5 Monitor ArchiveEngine Config File

Populating the Web Page with PV’s 15IDC_MOT idc/idcMotData.txt 15IDC_PREAMP idc/idcPreampData.txt 15IDC_SCAL1 idc/idcScal1Data.txt 15IDC_MM4005 idc/idcMM4005Data.txt EPICS_CLASS epicsClass/data.txt Vlinac Vlinac parameters. pvgroup.txt data.txt Cathode Temperature epics:cathodeTempM Position Monitor 1 epics:PM1:intensityM Position Monitor 2 epics:PM2:intensityM Position Monitor 3 epics:PM3:intensityM Position Monitor 4 epics:PM4:intensityM Position Monitor 5 epics:PM5:intensityM Faraday Cup 1 epics:FC1:intensityM

Web Page Generated by CGIExport

Demonstration of CGIExport

Summary The Channel Archiver is a Toolset for archiving any Channel Access data. Generic retrieval options, scripting, and Matlab allow further analysis. The XML-RPC Data Server will allow for relatively easy data retrieval over the web. The present CGI Program for data retrieval over the web will be updated to utilize the XML-RPC Data Server