EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: EPICS naming services
From: "Allison, Stephanie" <[email protected]>
To: "'[email protected]'" <[email protected]>
Date: Fri, 2 Jul 2004 12:37:39 -0700
Hello,

> It should be relatively straightforward to write some IOC-side code which 
> queries the database in memory using dbStaticLib routines, and sends the 
> results directly to the name server; I'm not aware of anyone who has 
> actually implemented something like this though.  This code would be able 
> to resolve the field names issue without having to write a parser to 
> extract the DBD filename(s) from the st.cmd file.

At SPEAR, we have written a simple program that runs after all the databases are loaded but before iocInit is run.  It goes through all the records, one-by-one, gets static ASCII information per record, packages up the results and sends the results to a server running on one of our hosts.  The host server then updates a relational database (not Oracle, sorry, but VMS RDB) by adding any new records and updating fields (including a boot timestamp and the IOC that the record belongs to) for existing records.  We periodically manually remove any records that are no longer on any IOC.  

After receiving all the records, the host server then sends back any setpoints it finds in the relational database for the records that it has been sent.  These values are then restored using static database access.  Since this functionality is considered to be critical, the IOC boot will not proceed to iocInit if the host server is down or not responding.

The information that is sent from the IOC to the host server includes record name, record type, native data type, DESC, EGU, DTYP, INP or OUT, and ASG.  (If the field doesn't exist for the record, then a blank string is used instead).  We then peruse this information offline with PHP web pages that access the relational database.  Through the web pages, we then pick records that need to be in history, bumpless reboot, or status recording.   Another process then monitors the PVs accordingly and stores values in RDB.

Here is the source of the IOC side of all this if anybody is interested:
http://www.slac.stanford.edu/~saa/restore.tar.gz
It runs on 3.13.6 and 3.14.1 IOCs.

Stephanie  Allison

Navigate by Date:
Prev: Re: EPICS naming services Luedeke Andreas
Next: Re: EPICS naming services Matthias Clausen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: EPICS naming services Rowland, J (James)
Next: [Fwd: Re: EPICS naming services] Luedeke Andreas
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·