LeCroy High Voltage EPICS Interface 

General:

To enable programs to interact with EPICS and the persistant database constructed with Objectivity, several C++ classes were defined.  There are two separate catergories:  the classes developed to interact directly with Objectivity databases, and the wrapper classes that fit around them.  Ideally, the user should only have to write programs that use the wrapper classes; a design decision was made to hide from the user the interactions of the program with Objectivity database and the EPICS records.  Those .cc and .h files that begin with a "dbhv" prefix define aspects of the Objectivity database classes; those beginning with "hv_" deal with the wrapper classes.

Documentation:

The documentation of the HV wrapper classes can be found here

Existing Programs Written Using These Classes:

There are currently two programs that make use of these classes:  oodb_mgr and test_stand.

oodb_mgr is a database management program that is used to access and make changes to the Objectivity datbases that are generated.  It uses the Objectivity database classes directly, without making use of the wrapper classes.  Using oodb_mgr, databases can have modules, mainframes, or channels added or removed; it can also make changes to the module serial numbers and merge a database into another one.  This program does not communicate with the IOC (Input-Output Controller) or mainframes -- it only deals with the databases.

test_stand is the program used to test the quality of the modules.  It makes use of the wrapper classes and uses them to communicate with the IOC.  In addition to testing, this program can display information about the modules currently installed in the test stand mainframe.  This program requires that the IOC and mainframe be booted and be operating normally.  A description of the HV test procedure, which includes instructions on how to properly boot the IOC and mainframe, can be found here.

Other Programs:

hvcontrol is a debugging program.  It does not make use of the classes or EPICS at all -- instead, it sends LeCroy mainframe commands, similiar to the ones used in a serial connection, to the mainframe via the ARCNET.  hvcontrol is arranged to be a bit more user-friendly than a VT100 serial port session, and is generally preferrable.  This program requires that the IOC be booted with a separate file that doesn't load the EPICS records; the IOC has a driver and this program loaded onto it instead.  This program is run while remotely logged onto the IOC.  Code documentation for this program can be found here.

EPICS Database Definitions:

The EPICS system used in PHENIX was adapted from a similar system used in the CEBAF Hall B experiment.  As a result, the EPICS database definition files used are copies of the CEBAF files.  They can be found in the under EPICSB directory ($EPICSB/baseB/dbd/).  Not all of them are used; when the IOC boots, it loads those files concerned with menus, analog input and output, output strings, high voltage records, the support database, and the records of the individual modules installed in the mainframe.  The module records are generated from a .dat file when the text-parsing Perl script hv2db ($EPICSB/app/hvca/db/hv2db) is run; this program is executed when gmake is used in that directory.
 
HomePhenix Home PageOnlineOnline Computing GroupAncillary Home Page

Ryan Roth (rothr@db.erau.edu)
Last Modified:  12 October 1998