.. _epics_nustar_dcs: NUSTAR DCS ========== The distributed control system (DCS) of the NUSTAR collaboration is split into many sub-systems, oriented around the respective detector sub-system. Each of the control sub-systems should provide the needed control and monitoring capabilities needed for each detector sub-system. In addition, each control sub-system should provide a standardised interface to higher level control structures, such as the main NUSTAR control system. The rough layout of the NUSTAR DCS including associated infrastructure is also proposed in the NUSTAR DAQ Technical Design Report (TODO: link). .. image:: png/nustar_dcs_main.png In addition to the sub-systems, NUSTAR DCS also provides a set of centralised services for use by all sub-systems. In spirit and structure NUSTAR DCS draws from ideas also implemented in the PANDA DCS and CBM DCS, adapted to the needs of the experiments in the NUSTAR collaboration. EPICS ----- `EPICS `_, the experimental physics and industrial control system is used as the basis for NUSTAR DCS. To ensure proper and flawless control and monitoring of all devices required for operation, their parameters should be made available via EPICS process variables. The access to the hardware is usually realised via EPICS IOCs (server software). For information, which types of hardware are currently supported by NUSTAR DCS, see :ref:`epics_device_support`. For information on operator displays, see :ref:`epics_operator_interfaces`. Sub-systems ----------- A NUSTAR DCS sub-system consists of a collection of EPICS IOCs which are needed to control and monitor all components of this sub-system. In the ideal case, a sub-system should be able to be operated independently from the rest of the NUSTAR DCS, and therefore should not rely on any input from other sub-systems. To further enforce encapsulation, a NUSTAR DCS sub-system may be operated inside its own private network, accessible only via a dedicated gateway, but this is not mandatory. .. image:: png/nustar_dcs_subsystem.png Where appropriate, each sub-system should be controlled by a finite state machine, to allow easy startup and shutdown actions. This state machine should be realised using the EPICS sequencer module and written in the SNL (state notation language). For information, check `the documentation `_. For a list of sub-systems, see :ref:`nustar_dcs_subsystems`. For sub-system guidelines, see :ref:`nustar_dcs_subsystem_guidelines`. Central services ---------------- NUSTAR DCS provides a few important centralised services. These allow interaction of sub-systems with external resources, and with each other. .. image:: png/nustar_dcs_central_services.png For more information, see :ref:`nustar_dcs_central_services`.