PV Save and Restore tool Requirements List

++++++++++++++++++++++==
!! SEE ATTACHMENTS below for the full MS Word Requirements Documents !!
++++++++++++++++++++++==

Basic functions:

  • Save and restore settings to a know working configuration (e.g. "gold") on demand.
  • Save and restore settings for different machine operating modes on demand.
  • NOT bumpless reboot/Channel Watcher functions (i.e. not used to restore IOC across reboot)

Details:

PV Group Configuration and Management:

  • Create a named list of PVs, a Group (generally corresponds to a functional region that is useful to save/restore altogether) No need to specify fields - .VAL is what will be restored.
  • Allow wildcards in PV name lists that get expanded at save and restore time. (i.e. don't need to worry about maintaining exact names in list)
  • Keep track of PV vs Group relationship: identify PVs in more than one group and potential problems of this sort
  • View and print Groups
  • Modify Groups, with change history and comments.
  • Configure restore behavior based on device types, a la VMS, especially for magnet PVs. In the VMS system, restore of magnet values in VMS is multi-step: load to BCON, and activate to BDES. (In the VMS system, EPICS PVs are restored a single step right now, basically as caput) Which means that the concept of "device" would be useful, to act on multiple attributes of the same device, although simply selecting PVs during configuration may suffice, at first anyway. The multistep restore destinations are configurable, for example for magnets:
    • save PV (BACT)
    • load PV (BCON)
    • activate PV (BDES) - the magnet software then takes over to turn BDES into BACT.
  • Also see BPMs in the restore section below.
  • Create a named list of Groups to be restored on demand: for example, "Save the World" Group of Groups. (on the SCP, these are button macros created on the fly by operators)

Save:

  • Save values in a specified Group on demand: create a Snapshot, as configured in the Group, with comments.
  • Select save location (a la VMS Scratch, Normal selection) Scratch configs may be deleted at a scheduled time, and are generally Groups saved by operators many times per shift. Normal ones are more formal, maybe saved by physicists.

Snapshot Management:

  • Save and manage multiple Snapshots, with timestamps/labels
  • View and print the list of PVs and values in a Snapshot. It might be nice to be able to sort the list in various ways (i.e. click on the column, like excel)
  • Compare snapshot values with current control system values - flag the differences (for example, red color). For VMS, there are ranges of colors, with yellow indicating a slight difference, red a larger difference. The difference to trigger a color are based on device type, and maybe this could be configured somewhere. Like this:
    • magnet-like devices: diff of 0.5%
    • analogs: diff of 5.0%
    • timing: any difference at all
    • etc.
  • View and print the list of PVs that differ from the control system (show "red")
  • Easily identify specific snapshots for a Group:
    • current
    • gold
    • (last loaded - not used as much)
    • (about to load - not used as much)
  • Compare Snapshots (color code things far apart in value) This is useful for comparing values at different machine operating times and states. Used often, e.g. for BPMs and temperatures.
  • List all gold Snapshots for all Groups in the system. (not used much for PEPII, more for SLC - probably not an initial requirement)

Restore:

  • Select a Group and Snapshot to restore
  • Partial restore capability: specify subset of PVs in the Snapshot to restore, or remove PVs from the set to restore. Could click to highlight specific items (would be easiest in a sorted list), or enter an expression (as for VMS)
  • Edit values before restoring, if appropriate
  • Show what's about to be restored, if partial.
  • Restore default (in the gui) is the last one saved.
  • Restore based on configuration (a la VMS) See Configuration above.
  • For BPMs the values get restored to a "comparison array" (my words - this must have a more official name!) The current values are subtracted from the comparison values, and the results displayed. With BPMs, can take an instant snapshot straight to the comparison array, and do a compare. The UI is the same as the comparison with a saved set of values. Mike would like this carried over into the EPICS system too.
  • For magnets, the SCP can create a large multiknob for all the values in a save Group. Can then slowly ramp in all values simultaneously. Mike S. thinks this may be more relevant for PEPII than LCLS, but we should think about it (and it may be requested later)
  • Do the restore, and report status and results to the user (plus see logging below)

Logging:

  • automatically log saves and restores and errors to cmlog
  • optionally log saves and restores to e-log (if it's occurring often, could clog up e-log)

Other aspects, and bells and whistles:

  • Handle waveforms (Mike Z. would like this for his stuff. Mike S. thinks this won't be used much)
  • RDB hook (pretty much necessary for doing all that wildcarding and device-oriented stuff!)
  • Programmers' API (Java, Matlab) (Mike S. thinks this could be very useful for grabbing saved BPM data for matlab, for example)

Tools discussed by the EPICS collaboration and whoever else

General comments? Here-->
a comment

  • No labels