RetrievalThe ArchiveEngine stores the data in a collection of disk files. To look at the data, you should not open these files yourself but use one of the retieval tools mentioned in the overview..
These are some common issues that pertain to all retrieval tools.
Directory FileAll retrieval tools have to know where the archive data is that they are supposed to look at. Therefore you provide the name of the "directory file" that the ArchiveEngine created. Note that this is a file name, not a directory name. The file itself is called a directory file. By default, the ArchiveEngine will create a direcory file called
freq_directory, but this is configurable (I personally prefer to run the ArchiveEngine such that the directory file ends up being called
dir). If you are not in the directory which contains the directory file, you have to provide the full path name, e.g.
In some cases you might not actually know which directory file you are using because somebody else prepared e.g. a script for you, a script that launches some retrieval tool and provides the correct directory file to the tool. Another common example: You are going through a web page that uses the CGIExport tool. If you are interested in getting at the same data with other tools, you have to ask that helpful person for the full path to the directory file.
Details on the directory file, the data files, the "Multi Archive", ...
Non-ValuesThe ChannelArchiver does not only store the raw values but also status information. When the comminucation with the ChannelAccess server goes down (Example: IOC rebooted), a value with a status of "Channel Disconnected" is stored. Furthermore, channels can be disabled (see ArchiveEngine configuration) or the ArchiveEngine can be stopped. Some tools allow you to see these informational values when exporting the data with an additional "text" or "status" column. Others might just show "#N/A" to indicate that this value has no numeric meaning.
Time Stamp IssuesThe ChannelArchiver uses the full EPICS time stamps as they are served by the ChannelAccess server (usually IOCs). The EPICS time stamps provide accuracy up to the nanosecond level and the ChannelArchiver saves those stamps without loss. The clocks of multiple I/O controllers can be synchronized to a high degree, so time stamps remain comparable even if the channels originate from different machines.
A problem arises when you compare different channels. The time stamps might differ slightly because a single CPU cannot scan several channels exactly at once. In addition, scan tasks on different machines are not synchronized, you might also want to compare channels that were scanned at different rates or were archived on change ('monitored').
The net result is that for a given exact point in time the archiver will seldom find more than one value. When exporting in a spreadsheet format, '#N/A' is used to indicate this:
In the example, the time stamps of channels A and B are obviously "close", but they are still different and cannot simply be put on a single line in a spreadsheet format.
Time A B 3/22/2000 17:02:28.700986000 0.0718241 #N/A 3/22/2000 17:02:28.701046000 #N/A -0.0860064 3/22/2000 17:02:37.400964000 0.0543581 #N/A 3/22/2000 17:02:37.510961000 #N/A -0.111776 ...
You can still plot this data, even with interpolated lines, but calculations like "A-B" will always yield '#N/A' for the example above since either A or B is undefined.
Filling, Staircase InterpolationWhen the "Fill" option is enabled, the previous value of a channel will be repeated, filling what used to end up as "#N/A" in the original data:
The remaining '#N/A' entries are caused by special conditions, e.g. a disconnected channel. An initial undefined value appears because the filling mechanism starts only after the channel has a valid value.
Time A B 3/22/2000 17:02:28.700986000 0.0718241 #N/A 3/22/2000 17:02:28.701046000 0.0718241 -0.0860064 3/22/2000 17:02:37.400964000 0.0543581 -0.0860064 3/22/2000 17:02:37.510961000 0.0543581 -0.111776 3/22/2000 17:02:39.410965000 0.139948 -0.111776 ...
To remind you that these time stamps are not the exact ones from the archive, a comment is added to the header of the exported data. (A similar remark is added for the following, time-stamp-changing operations)
Linear InterpolationWith linear interpolation, time stamps will be chosen with a fixed period as specified in the "Interpolate" field. The values are then interpolated from the raw values:
Again some undefined values remain initially and whenever special conditions don't allow interpolation.
Time A B 3/22/2000 17:02:28.700986000 0.0718241 #N/A 3/22/2000 17:02:28.701046000 #N/A -0.0860064 3/22/2000 17:02:30.000000000 0.0692162 -0.089806 3/22/2000 17:02:32.000000000 0.065201 -0.0956562 3/22/2000 17:02:34.000000000 0.0611858 -0.101506 3/22/2000 17:02:36.000000000 0.0571706 -0.107357
Available Tools.. are listed in the overview..