実験物理学および産業制御システム(EPICS )は、粒子加速器、望遠鏡、その他の大型科学施設などの装置を操作するための分散制御システムを開発および実装するために使用されるソフトウェアツールとアプリケーションのセットです。これらのツールは、制御とフィードバックを提供する多数のネットワークコンピュータを特徴とするシステムの開発を支援するように設計されています。また、 SCADA機能も提供します。[ 1 ]
EPICSは、1988年にロスアラモス国立研究所(LANL)でボブ・ダレシオ、ジェフ・ヒルらによって地上試験加速器制御システム(GTACS)として開発されました。[ 2 ] 1989年、アルゴンヌ国立研究所(ANL)のマーティ・クライマーがGTA制御チームと6か月間協力し、アドバンスト・フォトン・ソース(APS)制御システムでの経験を活かしてプロジェクトに取り組みました。その結果、ソフトウェアはEPICSと改名され、1991年の加速器および大型実験物理制御システムに関する国際会議(ICALEPCS)で発表されました。[ 1 ]
EPICSは当初商用ライセンスで提供され、拡張版はTate & Kinetic Systemsによって販売されていました。共同研究者向けのライセンスは無料でしたが、LANLおよびAPSとの法的合意が必要でした。EPICSコミュニティが設立され、より多くの施設が協力に参加するにつれて開発が進みました。2004年2月、EPICSはEPICSオープンライセンスの下でリリースされ、自由に配布できるようになりました。[ 3 ]
現在、世界中の50以上の大規模な科学研究機関に加え、複数の民間企業でも利用・開発されている。
EPICSは、コンピュータ間の通信にクライアント/サーバー方式とパブリッシュ/サブスクライブ方式を採用しています。サーバー(「入出力コントローラ」(IOC))は、接続された計測機器を使用して、実験データと制御データをリアルタイムで収集します。この情報は、高帯域幅のチャネルアクセス(CA) [ 4 ]、または最近追加されたpvAccess [ 5 ] [ 6 ]ネットワークプロトコルを使用してクライアントに提供されます。これらのプロトコルは、科学実験などのリアルタイムアプリケーションに適した設計になっています。
IOC(情報オブジェクト制御)は、制御対象となるデバイスまたはデバイスの側面を表す「レコード」のデータベースを保持し、それとやり取りします。IOCは、標準的なサーバーやPC、あるいはVME、MicroTCA、その他の標準的な組み込みシステムプロセッサ上で動作させることができます。「ハードリアルタイム」アプリケーションでは通常RTEMSまたはVxWorksオペレーティングシステムが使用されますが、「ソフトリアルタイム」アプリケーションは一般的にLinuxまたはMicrosoft Windows上で動作します。
レコードに格納されているデータは、プロセス変数(PV)と呼ばれる固有の識別子によって表されます。これらのPVは、CA/pvAccessプロトコルによって提供されるネットワークチャネルを介してアクセス可能です。
さまざまなタイプの入力と出力(アナログまたはバイナリなど)に対応し、計算などの機能的な動作を提供するレコードタイプが多数用意されています。カスタムレコードタイプを作成することも可能です。各レコードは、レコードの静的データと動的データを保持し、ローカルまたはリモートでさまざまな機能が要求されたときの動作を指定するフィールドのセットで構成されています。ほとんどのレコードタイプは、EPICSレコードリファレンスマニュアルに記載されています。[ 7 ]
グラフィカルユーザーインターフェースパッケージが用意されており、ユーザーはダイヤルやテキストボックスなどの一般的な表示ウィジェットを通してPVデータを表示したり操作したりできます。例としては、EDM(Extensible Display Manager)、MEDM(Motif /EDM)、CSSなどがあります。
このプロトコルを実装するソフトウェアであればCA/pvAccess、PV値の読み書きが可能です。MATLAB 、LabVIEW、Perl、Python、Tcl、ActiveXなどに対応した拡張パッケージも用意されています。これらを使用することで、 EPICS制御機器と連携するスクリプトを作成できます。