ACNET vs EPICS at Fermilab Accelerator Physics and Technology Seminar Sharon Lackey 3/14/2006
ACNET vs EPICs at Fermilab 2 Special Thanks to: Ned Arnold – APS Fritz Bartlett – D0 Dennis Nicklaus – AD/Controls Jim Patrick – AD/Controls Charlie Briegel – AD/Controls Brian Hendricks – AD/Controls
ACNET vs EPICs at Fermilab 3 EPICS What is EPICS What EPICS is not Who uses EPICS Comparison of EPICS and ACNET Other Solutions The Future
ACNET vs EPICs at Fermilab 4 EPICS is … Experimental Physics and Industrial Control System A toolkit that Allows a Controls System to be built with configuration rather than programming A set of tools with well defined interfaces Written and Maintained by a Collaboration of Controls groups Client/Server based Distributed, Two Tiered Architecture Allows Communication between any two points Limited primarily by Network Bandwidth Written in C and C++
*Courtesy of N. Arnold ACNET vs EPICs at Fermilab 5 What is EPICS? * Any tool/program/application that abides by the Channel Access protocol could be described as “EPICS Compliant”. My Accelerator Simulator Code (PVs) CAS My Special Data Collection Program CAC EPICS can be viewed as a “toolkit” of EPICS compliant programs. One can select the appropriate tool for their need or develop their own. StripToolMEDM CAC iocCore (PVs) LabView (PVs) CASCACCASCAC
ACNET vs EPICs at Fermilab 6 CA Clients may run on: Unix, Windows, VxWorks or VMS VME,VXI, PCI, ISA, or embedded processors Servers running under: VxWorks, RjTEMS, Solaris, Linux, Windows, Ethernet TCP/IP & UDP
ACNET vs EPICs at Fermilab 7 EPICS IS… EPICS Core: Channel Access Client and Server Process Database Scanners Monitors Database Configuration Tools Build Tools Source/Release EPICS Extensions: GUI Builders: EDD/DM (LNAL) MEDM (ANL) EDM (ORNL) DM2K (BESSY) JoiMint (DESY) Alarm Handler Channel Archiver Sequencer (State Machine) BURT (Back up and Restore Tool) Gateway APIs Python LabVIEW TCL/TK Data Display Tools ADT (Array Display Tool) StripTool (Strip Chart Plotting Tool) Yviewer (Data Visualization Tool) Database Configuration/Management Tools DCT (Tcl/Tk – deprecated) GDCT (Graphical – deprecated) JDCT (Java) VDCT (Visual) CapFast (Commercial schematic capture Tool… More we won’t mention…
*Courtesy of F. Bartlett ACNET vs EPICs at Fermilab 8 Inside a VME IOC * Ethernet LAN Channel Access Database Access Record Support Device Support Driver VME Scanners DB Load IOC Database Customizing Elements
*Courtesy of N. Arnold ACNET vs EPICs at Fermilab 9 Channel Access Server Channel Access in One Slide * CA Server CA Client Process Variables: S1A:H1:CurrentAO S1:P1:x S1:P1:y S1:G1:vacuum Channel Access Client Who has a PV named “S1A:H1:CurrentAO”? I do. What is its value? 25.5 AMPS Change its value to 30.5 “connection request” or “search request” OK, it is now is too high. It is now set to the maximum value of You are not authorized to change this value Notify me when the value changes It is now 20.5 AMPS It is now 10.5 AMPS It is now AMPS “put” or “caPut” “get” or “caGet” “set a monitor” “post an event” or “post a monitor” “put complete” or
ACNET vs EPICs at Fermilab 10 EPICS is NOT… A Control System “in a box” The total solution for all your controls needs Going to allow you to get rid of the controls dept. & all programming Object Oriented
ACNET vs EPICs at Fermilab 11 Channel Access Records Analog Input (double float) Output Long Input (32 bit integer) Long output Binary Input Out Multi-bit Input (16 bits) Multi-bit Output Multi-bit Input Direct (16 bit integer to char[16] ) Multi-bit Output Direct ( char[16] to 16 bit integer) Archive Calculation Calculation Out Compression CPID and PID fanout and dfanout (data fanout) Event (hardware int. handler) Histogram Permissive (client-server communication) Pulse Counter (counts pulses) Delay (generates pulses) Train (generates pulse trains) Scan (used to scan detectors)
ACNET vs EPICs at Fermilab 12 Channel Access Records Select (12 input mux) Sequence (triggers up to 10 other records and sends values) State ( ASCII string representing the current state of a state program ) Stepper Motor String Input Output Array Waveform Sub Array ( reads part of a waveform) Subroutine (calls a C routine with up to 12 input links) Timer ( drives an output to latch data) Wait – obsolete, replaced by calc out
ACNET vs EPICs at Fermilab 13 Who Uses EPICS ? (an incomplete list) SNS & ORNL JLAB APS & ANL LBL LANL DESY BESSY CosyLab Kinetic Systems Intuit FNAL (D0 & SMTF)
ACNET vs EPICs at Fermilab 14 Comparison of EPICS and ACNET ACNET 3 Tiers Central Services Client/Server Uses UDP Uses Multicasts Multiple protocols Snapshot FTP Data acquisition (RetDat/SetDat) Network (Acnet) Single Site More Control Less help Lots of Specialized User Applications Limited to Six Character Names FTDs EPICS 2 Tiers Distributed Services Client/Server Uses TCP/IP Uses Broadcasts Single protocol Data Acquisition (Channel Access) Collaboration More Help Less Control One GUI Application can be used to create many displays Names can be very long Data scan rate set in database
*Courtesy of J. Patrick ACNET vs EPICs at Fermilab 15 ACNET Control System Overview * Console Applications Central Services IRM Front-Ends Java Applications Web Applications MOOC Front-Ends Labview Front-Ends Open Access Clients Field Hardware ethernet CAMAC, VME, PMC, IP, Multibus, CIA, GPIB, … field bus: VME, SLD, Arcnet, ethernet, … ServletsDatabase Application Central Front-End
ACNET vs EPICs at Fermilab 16 EPICS Use at Fermilab D0 slow controls Using EPICS since beginning of Run 2 Extended EPICS by: Adding support for new device types Added Global Event reporting system Added a Central Database Added support for MIL/STD1553B bus Detector configuration tool Proton Driver Plans to use EPICs Meson Test Facility Using EPICS, DOOCs and ACNET
ACNET vs EPICs at Fermilab 17 OAC Local Applications Application 1 ACNET on One Slide Central Services Console Database Entries SQL Server Front Ends Data Pool Manager Read M:OUTTMP What is its value? Already getting this data? No MOOC I’ll get the info and calculate the value Retdat/Setdat Client Application 2 SQL ClientRetDat/SetDat Client Retdat/Setdat Server Methods MOOC Retdat/Setdat Client Retdat/Setdat Server Methods Local Applications MOOC Retdat/Setdat ClientRetdat/Setdat Server Methods Local Applications Console Read C:LUMIN
ACNET vs EPICs at Fermilab 18 Meson Test Facility EPICS used for Cryogenics Controls interface to Siemens- Moore PLCs Implemented in Software IOCs on the PCs that run the APACS+ software Communicate with the PLCs via OPC (OLE for Process Control ) EPICs driver for DESY’s SimCon 3.1 LLRF board Edm used as the GUI builder Using extensions: Plan to use: Alarm handler BURT StripTool for plots Channel Archiver
ACNET vs EPICs at Fermilab 19 Brown Refrigerator GUI Display in edm
ACNET vs EPICs at Fermilab 20 Alarm Handler for Meson Test Facility Cryo
ACNET vs EPICs at Fermilab 21 Strip Tool Plotter
ACNET vs EPICs at Fermilab 22
ACNET vs EPICs at Fermilab 23 Why Use Meson & ILC Test Facility? Test Facility will be used by many visitors from various labs EPICs is used at more labs than other controls systems Argonne personnel have expertise D0 personnel have expertise EPICs or its successor may be considered for the ILC FNAL needs to develop expertise in EPICS in order to fully evaluate it
ACNET vs EPICs at Fermilab 24 Why not use EPICS Now at Fermilab? ACNET is a stable, full featured controls system Operators are familiar with ACNET Huge investment in existing code Users can easily write applications for ACNET ACNET is now ported to Linux We can modify ACNET without the approval of a collaboration Switching controls systems would be a monumental task We would lose functionality
ACNET vs EPICs at Fermilab 25 Why Should We Switch to EPICS at Fermilab? We can benefit from the collaboration of laboratories We can influence the characteristics of Version 4.0 EPICS or its successor may be the choice for the ILC Professional development of staff
ACNET vs EPICs at Fermilab 26 What Does ACNET have that EPICS doesn’t? The Parameter Page Ability to add a data channel on the fly Data has associated error status on each return Redirection Consolidation of requests to front ends Wild card devices Snapshot plots Automatic downloads of settings on reboot Automatic logging of settings SDA Consolidated Error reports An integrated Console environment
ACNET vs EPICs at Fermilab 27 ACNET Parameter Page
ACNET vs EPICs at Fermilab 28
ACNET vs EPICs at Fermilab 29 What Does EPICS have that ACNET Doesn’t? Longer More Descriptive names Distributed database Wide user base and on-line Tech-Talk help Front ends can be “programmed” by configuring database records with minimal real programming
ACNET vs EPICs at Fermilab 30 Some Other Control Systems Tango (Collaboration of Light Sources) LHC (new system using Java, CORBA & C++) DOOCS (DESY Object Oriented Controls System) ALMA Common Software (Large Array Telescope)
ACNET vs EPICs at Fermilab 31 The FUTURE: Version 4.0 Provide online add/delete of I/O to support continuous operation. Provide redundant control of remote I/O to support improved reliability. Provide name introspection and domain control in support of seamless integration of large control systems Provide triggers, filters, and rate limits to improve resource use of network and client side processing Provide hierarchical devices to support higher level view of application in the front-end processors.
ACNET vs EPICs at Fermilab 32 Version 4.0 cont. Provide automatic backup and restore to support bump- less reboot and synchronization of redundant controllers. Provide atomic read, write, and write with read-back to multiple channels to support synchronized access of arbitrary sets of channels. Support international users with uni-code and time. Remove limitations on string lengths, device states, number of input links to support arbitrary sizes. Internationalize Time Stamps
ACNET vs EPICs at Fermilab 33 Allow definition and access to complex devices and multi-dimensional arrays Name hierarchy in Channel Access .structure. Element[n] e.g. Arc3PwrSupply.readback.status, ArcPwrSupply.readback.value Device description in database Support arbitrary number of inputs to calculations and subroutines. Support multi-state devices of an arbitrary number of states Version 4.0 cont.
ACNET vs EPICs at Fermilab 34 Version 4.0 cont. Allow wildcard searches Allow request to send all names supported in the IOC Support redundancy by allowing connections to specify that they are not active Support multiple name servers by allowing connections to specify how close to the source they are. Support Name aliases
ACNET vs EPICs at Fermilab 35 Another Initiative EPICs Office Led by Matthias Clausen of DESY Initiative to provide an Integrated Development Environment for EPICs Provide a common look and feel across EPICs applications
ACNET vs EPICs at Fermilab 36 Status of Version 4.0 as of Feb 3, 2006 Ned Arnold (for the APS Team) wrote in TechTalk: Upon review of last year's efforts and accomplishments, we have realized that EPICS Version 4 is too large of a development to successfully undertake with the part-time resources that can be leveraged from operating facilities. In addition, the ambitious redesign of major portions of EPICS core (database, communications API, device support interface) would be a significant impediment for operating facilities to migrate to Version 4. Therefore, under the current EPICS collaborative structure (and funding model), we have made a decision to focus on small incremental evolutionary steps (3.15, 3.16, etc) rather than revolutionary leaps. We will evaluate the desired features of V4 and develop a roadmap for incorporating some of these features into Version 3. More significant changes/features will have to wait until new opportunities present themselves to fund substantial developments (there are a few ideas on the table, however).
ACNET vs EPICs at Fermilab 37 Andrew Johnson has taken over responsibility of "keeper of the source". His primary emphases will be reliability, maintainability and establishing a well-defined forward migration path for existing applications as new features are added. Some features already identified for possible incorporation into 3.x include enhancement of the build system; unbundling BASE into Core, Channel Access, and IOC; variable length strings; etc. Because of our limited resources, we will be looking for significant assistance in developing these features (i.e. the timeline for delivery is directly proportional to available resources). Some V4 research and development will continue, but not led or coordinated by Argonne. One effort will include investigation of hierarchical records, "devices", and emerging protocols. An initial implementation of some of these ideas will be in a Java IOC (Marty Kraimer is working on this development). Another emerging development effort is the Control System Studio (a.k.a EPICS Office) and IOC redundancy driven by DESY. Any successes in these areas will be considered for integration somewhere in the future. Contact Bob Dalesio or Matthias Clausen if you are interested in these activities.