Incorporating IOCs » History » Version 4

« Previous - Version 4/24 (diff) - Next » - Current version
Zongwei Yuan, 06/12/2019 01:24 PM

Incorporating IOCs

As of this page's creation date, it is generally accepted that we will officially support EPICS IOCs in our control system. The extent of the support isn't clear but, hopefully, documents like this will spur discussion. This document belongs to the whole department so please add comments, concerns, and corrections. I also encourage everyone to click on the "Watch" link so you get email notifications when this page is edited.


ACNET-based front-ends aren't going away soon; it would be prohibitively expensive to replace every piece of hardware and we need to minimize the impact of operating the accelerator. That being said, there are efforts to upgrade systems to newer versions of VxWorks as well as migrating to Linux using the Erlang-based framework. Programmers preparing to upgrade should seriously consider using EPICS.

What needs to be done?

  • Become proficient and knowledgable about EPICS
    • We have scheduled training at the end of August (tentatively, 26th - 30th).
  • Define (and create?) a build-environment for Fermilab's front-end programmer community
  • Determine how IOCs fit our device model
    • Do we augment our central database to include PVs?
    • How do we manage IOC records?

Central Services and Applications

Applications and services should be mainly isolated from the differences between ACNET and EPICS front-ends. Of course some apps will drill down through the layers to eventually reach specifics, but these would be the exception rather than the rule. Most applications are looking for accelerator data, which both styles of front-ends provide. The top, two tiers of the control system will use DPM, which hides these differences by providing a consistent API to obtain device data. This DPM API will use the yet-to-be-ratified DRF3 format which slightly generalizes the device specification so that PVs fit naturally.

What needs to be done?

  • DPM needs to support channel access so it can communicate with both types of front-ends.
  • Finish the DRF3 specification
  • CLIB may need minor tweaks to support DRF3.
  • Services not using CLIB should migrate towards using DPM directly.
    • Synoptic, for example
  • Security schema need to discussion and implements, both for DPM and EPICS applications.