470 likes | 718 Views
My Week in Berlin. Ron Chestnut. Outline. Channel Archiver EDM E-Log Serial Support CALCString record RDB Support A-beans JOIMINT. JLAB CZAR System Overview. Database (MySQL). Embedded SQL. DAQ Engine. History Server. JDBC. CORBA. Manager GUI. XARR. CORBA. StripTool.
E N D
My Week in Berlin Ron Chestnut
Outline • Channel Archiver • EDM • E-Log • Serial Support • CALCString record • RDB Support • A-beans • JOIMINT
JLAB CZAR System Overview Database (MySQL) Embedded SQL DAQ Engine History Server JDBC CORBA Manager GUI XARR CORBA StripTool Filesystem DARTH
CZAR Data Store • Engine • streams raw data to disk • Converter • runs periodically, or on-demand • “cooks” raw data (convert, compress, index) • Database • connection history • data directory • file status
CZAR History Server Remote API • Supplies archive accessor objects to clients • Client initializes range in archive accessor • data summary • first, last point • before, after point • num points • range accessor object • provides data pull interface • serves sequences of data in large chunks • timestamp, value, status, severity, control info
CZAR Status • Engine up since January 2002 • ~ 21,000 signals • ~ 2Gb / day raw; ~ 600Mb processed • < 20% CPU (HP B2000, 1GB RAM) • XARR • retrieve 100,000 points: ~ 3 sec. • Management GUI 1.0 99% done • Port to Solaris, Oracle: June
CA Config CAManager ArchiveEngine LibIO (C++) Python LibIO (C++) Perl casi (swig) Archive Tcl Channel Archiver Overview Online Access CGIExport to Excel/GNUplot… ArchiveExport WinBrowser Graphic Retrieval StripTool xarr extract, merge, delete ArchiveManager some examples provided
JLAB CZAR System Overview Database (MySQL) Embedded SQL DAQ Engine History Server JDBC CORBA Manager GUI XARR CORBA StripTool Filesystem DARTH
(non) Decisions • Chris to continue ; Steve Hunte will testJuly target • Thomas and LeeAnn/Bob to continueJuly target • Comparison of engine capabilities needed • Channel Archiver should not require Oracle or CORBA, or CORBA should be supplied too • Look again at performance at next meeting
EDM Status • New Features • Select colors from palette or by function • Blinking colors for all display depths • Select color schemes by menu • EDMDATAFILES is now a colon separated list • Various new edit mode operations • New drag & drop behavior (Thomas Birke) • Online help
EDM Status • New widgets • text entry (Kay Kasemir) • text update (Kay Kasemir) • strip chart (Kay Kasemir) • text update with reg expr (Pam Gurd) • static text with reg expr (Pam Gurd) • Byte (Carl Lionberger) • X-Y Graph • Motif slider • Radio Box • Up/Down button
Future • Complete documentation • User • Widget developer • Runtime shutdown/restart • Modify all widgets to utilize pv factory • Implement remaining undo operations • New file format (xml?) • Enhance compatibility with medm • Increment local PV class • New scheme for printing displays
History • First instituted at the lab in 1996. • Variously used • Official Record for DOE • Knowledge repository • Bulletin board to pass info among shifts • Heavily Used • ~35,000 entries/year in main ops logbook • 400 MB/year in main ops logbook • Other logbooks for Software, FEL, etc.
Shortcomings • Reliance on static html files – 100,000’s • Sheer number a headache to manage • The html mingling of content and formatting makes data searching and extraction difficult • Every program (60+ of them) responsible for number assignment, content formatting, not clobbering other entries. Little consistency.
Components of an Entry • Required • Keywords/Title, Timestamps (create, commit),Logbook(s), Entry-type • Optional • Attachment(s) (screenshots, documents, etc.) • Downtime information • References to other logs (backward/forward) • Problem-Tracking History
New Version • Summer 2002. • Addresses shortcomings • RDMS replaces files. • Dynamic Scripting replaces static HTML • APIs shield apps from entry-making details • New Features • Integrated problem tracking • Threaded/linked entries
Underpinnings • Relational Database (Oracle) • Web Application Server (Apache + PHP) • Libraries for programs that make entries • Tcl Package • Perl Module • C++ Library • HTTP API
Future Direction • Enhance Problem-Tracking • Track problems with specific hardware in addition to general hardware types. • Integrate with future Plant Engineering Work Order system • Enhance Query/Search Tools • Oracle Intermedia to search attachments such as PDF, Word documents.
Serial Interfaces Sharp intakeof breath!
Vacuum Equipment Test Rack • VME 64x Crate • Processors: • MVME 167 & PPC 604 • IP Carriers: • Hytec VICB8002 • Greenspring VIPC601 • Serial Interface Card: • Greenspring IPOctal - 8 channel IP card
EPICS Devices • devAscii - Allan Honey/Jeff Hill - KECK • Stream Device - Dirk Zimoch - DELTA • MPF - Mohan Ramanathan - APS • ornlSerial - John Sinclair - Oak Ridge • tyGSOctal - Peregrine McGehee - Hawaii
Summary • All software built and worked • minor glitches 68k / PPC • Where existing support exists - use it • For new development we like: • stream devicefor most cases • ornlSerialfor complex protocols/checksums
Motors Scalers Multichannel analyzer Multichannel scaler Serial (RS-232) GPIB ADC’s DAC’s Encoders Optical table String calc, sequence Complex expressions Enhanced PID Scan Scan parameter Generic VME Basic record/device support
Optical tables Slits Mirrors Monochromators Piezo controller Digital Multimeter Current preamplifier Interpolation N-step measurement Serial I/O block GPIB I/O block Autocollimator Temperature controller X-ray microscope Insertion device Filter/shutter Layered devices, techniques
String Expressions • Extends CALC record to combine string and numeric expressions • Useful for run-time programming of serial devices • EPICS links are programmable at run time
Serial O/I Block • Combination of string calc to construct output message, serial record to send and/or receive, and string calc to parse reply • Intended for run-time programming • Similar GPIB support
CCD support • CA server on CCD’s native platform • Calls vendor-supplied software • Stores images to local disk (HDF format) • Some simple image analysis • Hosts EPICS PV’s for control
Goal: DB Based Configuration Maintenance Add/Delete Devices in DB Procedures and Scripts propagate Changes to Configuration Files Consistency Guaranteed
family PS name I/O params node specs IOC CAN segment EPICS specs device specs measure node name family device specs Controls Initial BESSY Database SystemDevice Oriented Magnets Power Supplies magnet name m:n
Graphical Editor Text Editor DCT Script Text Editor RTDB Template Substitutions RTDB DB Worked Sufficiently Well forCreation of RTDB Standard mechanismpower supplies, vacuum system, RF PLC-interface, triggers/timings, … Many instances (substitutions)of few different types (templates)
Applications Applications Abeans IOC IOC Hardware Hardware Abeans (or xal at SNS) • Application framework • Hide comm layer • Provide application services • Provide CS models (device, channel, etc.) • RAD, easier maintenance :
Abeans Features • Hide details of Control System - just one of many: • launch application/applet, remote install • Logging, alarm, and communication error reporting • Resource initialization and destruction, provide defaults • find, choose and connect to selected device • supports different protocol via plugs (e.g. CORBA, EPICS,…) • Same core code is used everywhere • The code is tested very well • Visual composition and normal programming together • choose device type and command through menu! • almost all errors detected by compiler not during operation
Abeans and EPICS ? • MEDM is faster for “expert” panels, TCL is simpler for prototyping, but: • Abeans application development is scalable! • profit from standard Java features • GUI layout, file I/O, XML, WebStart, resources, logging,… • Abeans fight Java deficiencies • optimize graphic performance and reduce memory usage • Use Abeans for complex applications… • client-side algorithms (machine physics) • display of multiple data (tables, tree, bird-view) • …and when long-term maintenance matters
JoiMintWhere to use it? • Create graphics ‘on the fly’ -> JoiMint does not distinguish between runtime and edit mode.All changes (adding/ removing objects; save/ restore displays) is done in the online mode. • Remote access to control system’s data • Diagnostic data from ‚smart devices‘ • PLC‘s or power supplies • Get graphic config file from default http port • Quick diagnostic using a PDA version (planned) • An example of a ‘light weight’ application for Global Accelerator Networks
Timer Scan Engine Configuration & Commands Data local thread (monitor) Basic Structure Any Java Object Graphic Objects ? The Core Registry Data Source Connector http client http server Cfg files Databases / Control Systems Applications
XMLIs used for: • Configuration Data: • Graphic Object Tab • (Http) Data source definition • Synoptic Displays (i.e. translated dm2k screens) • Data/ Commands • Value Updates • Archived Data • Commands to/ from Applications
Activateby MB3 on graphic device Select: Device -> Device Property Device Properties ‚known‘ by http (DIXI) serverNo special knowledge programmed into JoiMint DIXI server creates JoiMint graphic (as XML file) Display of graphic and dynamic updates in JoiMint Diagnostic Tools: EPICS property table
Send Command Send Value „JoiTextField-1“ „setWidth“ „200“ „ EPICS|WLST1D32_temp“ „actual value“ Registration Register a Graphic text Object Class: JoiTextField Object: JoiTextField-1 Class: JoiTextField Object: JoiTextField-1 Property: Value Property.deviceName Graphic Text Object EPICS|WLST1D32_temp actual value register object register devicename /object Registry Name Object JoiTextField-1 instanceof JoiTextField Name Object Method JoiTextField-1 instance of JoiTextField setValue ... EPICS|WLST1D32_temp
Future Plans (I)Command Record and Playback • Record all operator commands • Allow command editing • Store commands as XML file • Load command-set from XML file • Replay commands • Implementation of sequencing features: • Loops • If – then – else structures(based on live data from the underlying control system)