Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
EPICS
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Architecture== EPICS uses [[client–server]] and [[publish–subscribe]] techniques to communicate between computers. Servers, the “[[input/output]] controllers” (IOCs), collect experiment and control data in real time, using the measurement instruments attached to them. This information is then provided to clients, using the high-bandwidth Channel Access (CA)<ref name="epics-r3.14-reference-manual">{{cite web|url=http://www.aps.anl.gov/epics/base/R3-14/12-docs/CAref.html#port|title=EPICS R3.14 Channel Access Reference Manual|website=www.aps.anl.gov}}</ref> or the recently added pvAccess<ref name="epics-pvAccessCPP-specification-wiki">{{cite web|url=https://github.com/epics-base/pvAccessCPP/wiki/protocol|title=pvAccess Protocol Specification|website=github.com}}</ref><ref name="epics-pvxs-pva-network-configuration">{{cite web|url=https://epics-base.github.io/pvxs/netconfig.html|title=PVA Network Configuration|website=epics-base.github.io}}</ref> networking protocols that are designed to suit [[Real-time computing|real-time]] applications such as scientific experiments. IOCs hold and interact with a database of "records", which represent either devices or aspects of the devices to be controlled. IOCs can be hosted by stock-standard servers or PCs or by [[VMEbus|VME]], [[MicroTCA]], and other standard [[embedded system]] processors. For "hard real-time" applications the [[RTEMS]] or [[VxWorks]] operating systems are normally used, whereas "soft real-time" applications typically run on [[Linux]] or [[Microsoft Windows]]. Data held in the records are represented by unique identifiers known as Process Variables (PVs). These PVs are accessible over the network channels provided by the CA/pvAccess protocol. Many record types are available for various types of input and output (e.g., analog or binary) and to provide functional behaviour such as calculations. It is also possible to create custom record types. Each record consists of a set of fields, which hold the record's static and dynamic data and specify behaviour when various functions are requested locally or remotely. Most record types are listed in the [https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14 EPICS record reference manual]. [[Graphical user interface]] packages are available, allowing users to view and interact with PV data through typical display widgets such as dials and text boxes. Examples include EDM (Extensible Display Manager), MEDM ([[Motif (software)|Motif]]/EDM), and [https://controlssoftware.sns.ornl.gov/css_phoebus CSS]. Any software that implements the CA/pvAccess protocol can read and write PV values. Extension packages are available to provide support for [[MATLAB]], [[LabVIEW]], [[Perl]], [[Python (programming language)|Python]], [[Tcl]], [[ActiveX#ActiveX|ActiveX]], etc. These can be used to write scripts to interact with EPICS-controlled equipment.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)