Система экспериментальной физики и промышленного управления ( EPICS ) — это набор программных инструментов и приложений, используемых для разработки и внедрения распределенных систем управления для работы таких устройств, как ускорители частиц , телескопы и другие крупные научные объекты. Инструменты предназначены для помощи в разработке систем, которые часто включают большое количество сетевых компьютеров, обеспечивающих управление и обратную связь. Они также предоставляют возможности SCADA . [1]
EPICS изначально была разработана как Ground Test Accelerator Controls System (GTACS) в Лос-Аламосской национальной лаборатории (LANL) в 1988 году Бобом Далесио, Джеффом Хиллом и др. [2] В 1989 году Марти Краймер из Аргоннской национальной лаборатории (ANL) пришел работать вместе с командой GTA controls на 6 месяцев, привнеся свой опыт из работы над Advanced Photon Source (APS) Control System в проект. Полученное программное обеспечение было переименовано в EPICS и представлено на Международной конференции по системам управления ускорителями и большими экспериментальными физиками (ICALEPCS) в 1991 году. [1]
Первоначально EPICS был доступен по коммерческой лицензии, а улучшенные версии продавались Tate & Kinetic Systems. Лицензии для соавторов были бесплатными, но требовали юридического соглашения с LANL и APS. Было создано сообщество EPICS, и разработка росла по мере того, как к сотрудничеству присоединялось все больше учреждений. В феврале 2004 года EPICS стал свободно распространяемым после его выпуска по открытой лицензии EPICS. [3]
В настоящее время его используют и развивают более 50 крупных научных учреждений по всему миру, а также несколько коммерческих компаний.
EPICS использует клиент-серверные и издательско-подписные методы для связи между компьютерами. Серверы, « контроллеры ввода-вывода » (IOC), собирают экспериментальные и управляющие данные в реальном времени, используя подключенные к ним измерительные приборы. Затем эта информация предоставляется клиентам с использованием широкополосного доступа к каналу (CA) [4] или недавно добавленных сетевых протоколов pvAccess [5] [6] , которые разработаны для приложений реального времени , таких как научные эксперименты.
IOC содержат и взаимодействуют с базой данных «записей», которые представляют либо устройства, либо аспекты устройств, которые необходимо контролировать. IOC могут размещаться на стандартных серверах или ПК, либо на VME , MicroTCA и других стандартных процессорах встроенных систем . Для приложений «жесткого реального времени» обычно используются операционные системы RTEMS или VxWorks , тогда как приложения «мягкого реального времени» обычно работают на Linux или Microsoft Windows .
Данные, хранящиеся в записях, представлены уникальными идентификаторами, известными как переменные процесса (PV). Эти PV доступны по сетевым каналам, предоставляемым протоколом CA/pvAccess.
Многие типы записей доступны для различных типов ввода и вывода (например, аналоговых или двоичных) и для предоставления функционального поведения, такого как вычисления. Также возможно создание пользовательских типов записей. Каждая запись состоит из набора полей, которые содержат статические и динамические данные записи и определяют поведение при локальном или удаленном запросе различных функций. Большинство типов записей перечислены в справочном руководстве по записям EPICS.
Доступны пакеты графического пользовательского интерфейса , позволяющие пользователям просматривать и взаимодействовать с данными PV через типичные виджеты отображения, такие как циферблаты и текстовые поля. Примерами являются EDM (Extensible Display Manager), MEDM ( Motif /EDM) и CSS.
Любое программное обеспечение, реализующее протокол CA/pvAccess, может считывать и записывать значения PV. Доступны пакеты расширения для поддержки MATLAB , LabVIEW , Perl , Python , Tcl , ActiveX и т. д. Их можно использовать для написания скриптов для взаимодействия с оборудованием, управляемым EPICS.