DCS Specifications#

This chapter defines common requirements applicable to each GMT DCS. It comprises DCS architecture, software and hardware specifications.

Functional Requirements#

Process Control#

SWC-DCS-0012: DCS control functions

The DCS shall implement the following control functions:

  • Control process inputs and outputs

  • Operation state monitoring

  • Operation logic

  • Alarms detection and management

  • Configuration change and management

  • Error and status logging

  • CSS startup and shutdown sequences

  • Telemetry sampling and management

  • Software safety when applicable

  • Image and other data processing

  • Goal elaborations (desired goals for state variables over time)

SWC-DCS-0014: Control loop optimization

The DCS shall optimize the control loops in order to reduce the frequency of activation of the CSS Devices.

Process Supervision#

SWC-DCS-0015: DCS supervisory functions

The DCS shall implement the following supervisory functions:

  • Subsystem integrity (e.g., collision avoidance)

  • Subsystem component configuration (e.g., components are configured in the right sequence and with the right configuration properties, LUTs)

  • Subsystem robustness (e.g., behavior in presence of no nominal conditions, fault management and tolerance)

  • Subsystem life-cycle (e.g., startup and shutdown)

  • Subsystem embedded diagnosis

  • Subsystem operation modal transition (for subsystems that have different modes of operation)

  • Subsystem IO health

Note: Supervisory functions include also sequencing, archiving, monitoring, diagnostics, calibration and visualization.

SWC-DCS-0016: Status information

The DCS shall provide status information required to operate and debug the CSS.

Note: The status information includes CSS operating states, state machine transitions, alarm conditions, log messages and configuration change events.

SWC-DCS-0017: Local Storage

The DCS shall not store permanently any data.

SWC-DCS-0018: Central Operation

The DCS shall be able to be operated remotely centrally from the telescope control room(s).

Process Monitoring#

SWC-DCS-0019: State variable sampling

The DCS shall sample each process state variable with an identifier, a time stamp and an error identification in case of error.

Note: Units, name, Quality of Service parameters and description of the state variable are not required in the sampled data as they are defined in the DSC SDF.

SWC-DCS-0020: Raw data conversion

The DCS should apply the conversion from raw data to engineering data (scaling) as near as possible to the source of the data.

SWC-DCS-0021: Time stamping latency

The DCS shall time stamp state variables as close as possible to the source of data.

SWC-DCS-0022: Calibration factor

The DCS shall provide the capability to configure the calibration factor and conversion formula applied to each state variable.

Note: Identify and capture relevant Device properties/features

SWC-DCS-0023: State variable data transmission

The DCS shall provide the capability to transmit both raw data and engineering data to the GCS Core systems.

SWC-DCS-0024: Telemetry data archiving

The DCS shall archive telemetry data only in the case that a circular buffer is required to manage high throughput telemetry.

Note: All the GMT telemetry data is stored and archived by the telemetry service outside the DCS.

State Variables#

Definition of state variables and relationship with goals and sequencing

../../_images/state_variable_relationships.png
../../_images/reactive_close_control_loop.png

Reactive Close Control Loop#

The above diagram represents an overview of the control, supervision and monitoring functions and their relation with state variables.

  • ops_state State Variable

    The ops_state state variable represents the operational state of a Component [reword]. A set of states addresses the distributed nature of the component and its life cycle management. Figure 5‑1 shows the ops_state state machine. Only the description of each state is shown. Details about entry actions, transitions and activities are omitted in this diagram.

    ../../_images/controller-state-machine1.png

    Controller State Machine#

    Table %s provides the specification of the Controller state machine. The specification defines what actions to implement in every state or transition, however in some of the states each Controller implements its own specific logic.

    Component ops_state Specification#

    State

    State Description

    INITIAL

    Initial pseudo state. The Controller is not operational because it has not been created yet. The Controller cannot inform this state as it is not running. In this state the software is not running and controlled equipment is not available.

    TERMINAL

    Final pseudo state of any Controller. It is equivalent to the initial state. A final state cannot have any outgoing transitions.

    PREVIOUS STATE

    This pseudo state is a UML formalism that, within a composite state, memorizes the previous sub-state that was active prior to leaving the composite state. This is used when a Controller enters the FAULT or DISABLED states.

    OFF

    The Controller is created, loaded and initialized with the default properties, but part of the software and hardware is not initialized and configured yet. All the external Devices controlled by the Controller shall be switched-off. In this state the Controller is not ready for operation, but it is possible to perform tests and diagnostics activities, specially related to the communication capabilities. The Controller is in a static state waiting for events.

    STARTING

    The Controller is being started. Any external equipment controlled by the Controller is being switched on. In some cases, the power supply is shared with other Controllers. It also performs the starting procedure which can include:

    • Obtaining configuration properties from the configuration system

    • Obtaining references to the required device or bus drivers

    • Starting telemetry samplers, alarm rules, etc.

    • Checking communication with the connected Devices (e.g., a motion drive)

    Other activities that depend on the specific Controllers and Devices connected to it.

    ON

    The Controller and the connected Devices are already properly initialized and configured. When connected, and depending on the Controller, external equipment shall be in safe state (e.g., brake engaged, motion drives disabled, locking pins inserted). This state can be the final state after a reset or after a power failure.

    INITIALIZING

    While the Controller is in this state the necessary procedures required to make the controller ready to receive operation requests (e.g., find fiducial marks) are executed.

    RUNNING

    The Controller is running and can be idle or serving an operation request. In this state the Controller can receive new commands or is accepting data in its data inputs and sending data through its data outputs.

    SHUTTING DOWN

    Back to OFF state (different for each Controller: power off Devices)

    HALTING

    Back to ON state (different for each Controller: Engage brakes, disable drives)

    FAULT

    The Controller has detected a severe failure and is waiting for an event to occur (e.g., operator input) to correct such situation.

    RESETTING

    Return to a safe and known state. For example, when the Controller has entered into a FAULT state, due to the ISS triggering an interlock condition (which can disable drives, remove power, etc.), a reset command must be sent to the Controller.

    DISABLED

    In this state the Controller rejects attempts to perform any control action. This is especially important with Controllers connected to Devices. In this state the Controller does not send demands to the equipment requesting motion or a change (a message is sent to the client indicating that the Controller is disabled). Note that the Controller is ready and it will answer requests that ask for some status, but it will not execute any commands that lead to actions on connected Devices. This state can be reached from any state, and when enabled, will return to the previous state.

    SWC-DCS-0079: DCS State Machines

    Each DCS component shall implement ops_state state machine.

    SWC-DCS-0080: State Machine monitoring

    Each DCS component shall send an status message for each state transition to the GCS.

  • sim_mode State Variable

    Controllers that interface with hardware support specialized operation modes, on-line and simulated:

    • In real mode, controllers try to detect and setup the hardware elements connected to them during startup. If some of the required hardware devices are not available the controller will transition to fault mode. This is the default mode when the system is deployed for operation at the observatory.

    • In simulation mode, controllers will setup the I/O framework in simulation mode. Communication messages with the hardware will be logged, but will not be sent to the hardware devices. Hardware devices will not be powered up during the startup sequence. This mode is intended to be use during development when the hardware is not yet available or is available partially. It also enables controller debugging once the hardware is integrated.

    SWC-DCS-0081: on-line operation mode

    DCS shall support the on-line operation mode

    SWC-DCS-0082: simulation operation mode

    DCS shall support the simulation operation mode

  • control_mode State Variable

    GMT distributed components shall support two operation modes, standalone and integrated:

    In integrated mode, components will try to connect with the observatory services. If the services are not available the component will stop its startup sequence. This is the default operation mode when components are integrated and deployed in the observatory or integration simulator.

    In standalone mode, components do not try to connect to the observatory services (e.g., log and alarms send their messages to the console or a file). This operation mode is intended to be used during initial component development or when network services are not available.

    SWC-DCS-0083: Normal operation

    The DCS shall always be in integrated mode during normal operation

    SWC-DCS-0084: Standalone mode

    Use of local standalone mode should be minimized as much as possible.

Operation Support#

  • Visualization

    SWC-DCS-0025: DCS specific user interface elements.

    The DCS shall provide specialized user interface elements when the basic set is not adequate for an efficient operation of the system under control (reword).

    Note: The GMT “User Interface Framework” (ui_fwk) provides visualization components that target general use cases. They may be appropriate for general engineering and basic operation. However with the DCS is controlling a complex subsystem specialized user interface components may need to be deployed.

    TBA: [specific engineering interfaces, specific operation interfaces]

  • Data Processing (draft)

    SWC-DCS-0026: Data processing function

    The DCS shall implement the data processing functions required to operate the system under control.

  • High-Level Operations (draft)

    SWC-DCS-0027: Sequencing

    The DCS shall implement sequencing functions to allow to operate the from the sequencing tools.

    Note: the contents of the sequencer commands per DCS shall be defined.

    SWC-DCS-0028: Operation workflows

    The DCS shall implement diagnosis functions to characterize non-nominal behavior of the system under control or other DCS components.

    SWC-DCS-0029: Operation commands

    The DCS shall implement commands that implement the required state changes.

  • Diagnosis (draft)

    SWC-DCS-0030: Diagnosis function

    The DCS shall implement diagnosis functions to characterize non-nominal behavior of the system under control or other DCS components.

    Note: Diagnosis functions are necessary with the operational complexity of the system makes hard to understand the behavior of the system under nominal and non-nominal operations.

  • Calibration

    SWC-DCS-0031: Calibration function

    The DCS shall provide calibration functions when the operation of the system under control requires parameters that have to be obtained after the execution of measurements.

  • Integrity (draft)

    SWC-DCS-0032: Active alarm status

    The DCS shall identify and monitor the CSS alarm conditions and generate an alarm event when these conditions take place.

  • Life-cycle (draft)

    SWC-DCS-0033: life-cycle requirement

    The DCS master supervisor shall coordinate the life-cycle of the DCS components.

  • Quality Assessment (draft)

    SWC-DCS-0034: Quality assessment requirement

    TBD

  • DCS Operation Parameters Definition (e.g. OT)

    SWC-DCS-0035: Operation tool plugins (draft)

    TBD

    SWC-DCS-0036: Operation tool input parameters (draft)

    Operation definition plugin parameters. Operation Description Files (ODFs).

    Subsystem specific parameter dictionary.

  • DCS Data Products (draft)

    SWC-DCS-0037: Subsystem specific data products

    Keyword dictionary / product dictionary / pipelines / recipes. Data provenance.

  • DCS Controlled Devices

    SWC-DCS-0038: DCS controlled devices

    The DCS shall provide descriptions of the devices under its control. These descriptions should capture the information relevant to perform the control functions and to operate the Devices. The metamodel specifies the features (e.g. vendor, model, location) necessary to model a Device.

    SWC-DCS-0039: Device calibration data provenance

    The description of the devices shall include information about the serial number and location of Devices that can be exchanged so the provenance for the calibration data can be ensured.

  • Alarms

    The purpose of the alarm system is to provide information to the operators for fault diagnosis and correction. The GCS Alarm Service implements an observatory wide fault management strategy to assess and manage the overall health of the system.

    SWC-DCS-0040: Active alarm status

    The DCS shall identify and monitor the CSS alarm conditions and generate an alarm event when these conditions take place.

    SWC-DCS-0026: Active alarm status

    The DCS shall transmit any changes in the status of alarm conditions.

    SWC-DCS-0027: Alarms and operating state consistency

    The DCS shall take into account the operating states of the CSS when monitoring alarm conditions.

    Note: This is needed to avoid sending alarms when they are not significant for a given operation state.

    SWC-DCS-0028: Alarm event information

    An alarm shall contain:
    • A timestamp

    • A severity

    • A value

    • An alarm description

    • Alarm state

  • Error and Status Logging

    The logging function enables to record the history of events, whether normal or abnormal, surrounding the GMT operations. Log events are intended for view and access on an operation console, and stored in a persistent database.

    SWC-DCS-0029: Log event information

    A log message shall include:

    • A time stamp

    • A process identifier according to the naming scheme

    • A text explaining the event

    • A message level (debug, info, warning, error).

    SWC-DCS-0030: Log events

    The DCS shall record and transmit the following messages to the logging system:

    • Each timing, DCC, PLC or embedded system events or state changes.

    • Each change of configuration properties

    • Each transitions in operating states

    • Each command sent by GCS to the DCS

    • Each state variable validity change

    • Each actions done locally by operators

    • Any error shall be detected and an error message shall be generated and communicated to the GCS core systems.

  • Configuration

    SWC-DCS-0031: Configurable properties

    The DCS shall be designed to be configurable by means of a set of properties.

    Note: The specification of the configurable properties of a DCS is captured in the DCS System Definition Files (SDF).

    SWC-DCS-0032: Configuration parameters

    The DCS shall provide the capability to modify any configuration property with minimum disturbance to the correct operation of the CSS

    SWC-DCS-0033: Properties Configuration

    The settings which are expected to be changed, however rarely, in course of the CSS lifetime, should be made configurable without additional program recompilation and, preferably, without program restart.

  • Computing Resources Management

    SWC-DCS-0034: Remote control functions

    The DCS shall provide remote control functions (e.g. reboot, configure, start, stop, switch to standalone/integrated control mode).

    Note: Remote control functions shall comply with the safety rules of the GMT site.

    SWC-DCS-0035: Monitoring function

    The DCS shall provide the capability to monitor DCC functions and equipment.

    SWC-DCS-0036: Equipment to be monitored

    The DCS shall monitor at least:

    • DCS hardware (DCC, PLC) and software

    • Device Controllers

    • Fieldbus networks

    • Interface with GCS

    SWC-DCS-0037: Monitored equipment status

    The DCS shall provide the operational status (operational, partially operational or not operational) of any monitored equipment

    SWC-DCS-0038: Equipment performance monitoring

    The DCS shall provide the capability to monitor the performance of the DCS equipment.

    Note: Performance information such as field bus status, CPU load and memory usage or network bandwidth utilization shall be recorded.

    SWC-DCS-0039: Monitoring function health

    The monitoring function shall include self-tests and live tests.

Non-Functional Requirements#

Security#

SWC-DCS-0040: DCS access control

DCS shall restrict access to authorized systems/people.

[add something about cyber security]

Performance#

SWC-DCS-0041: Availability

The availability of the DCS shall be compliant with the RAMS requirements of the CSS and GMT.

SWC-DCS-0048: Sensor data transport QoS

The duration for update of information from sensors to the GCN shall meet the Quality of Service requirements as defined in each corresponding SDF.

SWC-DCS-0049: Command transport QoS

Duration for commands from GCN to actuators shall meet the QoS requirements as defined in each corresponding SDF.

SWC-DCS-0050: Wavefront control transport QoS

DCS participating in the GMT wavefront control system shall meet the QoS requirements as defined in each corresponding SDF.

SWC-DCS-0051: Time Synchronization

The DCS shall be synchronized with the GMT central time reference.

Availability#

SWC-DCS-0052: Hot swapping

The DCS shall use hot swapping whenever it is required by the RAMS analysis of the CSS.

SWC-DCS-0053: Redundancy

The DCS shall use redundancy whenever it is required by the RAMS analysis of the CSS.

Diagnosis#

SWC-DCS-0054: DCC and PLC Diagnosis

The DCS computers, PC and PLC based DCCs, and equipment shall have provisions for self-diagnosis.

Note: DCCs and equipment should repeat self-checks at scheduled times.

Safety(draft)#

SWC-DCS-0055: Safe operation

The DCS shall be able to autonomously maintain safe operation of the CSS Devices in case of loss of communication with GCS systems.

[Add reference to ISS]

[Add some guideline for safety, address black-channel (TwinSafe) design]

SWC-DCS-0056: Software Safety

The DCS shall not be the ultimate responsible of the safety of the CSS, the system under control or persons.

SWC-DCS-0057: Limit Protection

The DCS shall have built-in absolute-limit protection to prevent errors.

SWC-DCS-0058: Limit Protection

The DCS shall have time-outs to ensure correct operation in case of GCS failure.

SWC-DCS-0059: Non-assumption strategy

The DCS components shall avoid any assumption about the status of the CSS equipment or the plant during the start-up process or normal operation.

Note: Although the DCS records the status of the equipment when it was powered off, human intervention may have change the configuration of the CSS equipment.

Naming Convention#

SWC-DCS-0011: Unique naming

Each DCS, DCS package and DCS component shall have a unique name.

SWC-DCS-0150: Use of abbreviations

Abbreviations used in the componsition of names shall be contained in the glossary n-grams.

Note: See SWC glossary for reference.

SWC-DCS-0151: DCS naming

Each DCS shall be named according to the following format:

<SUBS>_dcs    # where

<SUB>: Abbreviation of the Subsystem

new RegExp ///^#{SUBS}_dcs$///.test dcs.name #formal naming test

SWC-DCS-0152: Package naming

Each DCS Package shall be named according to the following format

<SUBS>_<CAT>_<MCLASS>    # where

<SUB>:     Abbreviation of the Subsystem
<CAT>:     Abbreviation of the functional category of the package as defined in the glossary n-grams
<MCLASS>:  Metamodel class abbreviation (in this case Packages -> pkg)

new RegExp ///#{SUBS}_(#{CATS.join "|"})_pkg$///.test pkg.name #formal naming test

SWC-DCS-0153: Component naming

Each DCS Component shall be named according to the following format:

<SUBS>_<CMP>_<CAT>    # where

<SUB>:     Abbreviation of the Subsystem
<CMP>:     Component abbreviation
<MCLASS>:  Metamodel class abbreviation of the component class (e.g. Controller -> ctrl)
as defined in the glossary n-grams

new RegExp ///#{SUBS}_[a-z_]+_(#{MCLASS.join "|"})$///.test cmp.name    #formal naming test

Software Infrastructure#

A set of software packages, named GMT Software Development Kit (devkit), is distributed by GMTO for the development, test and operation of the DCS. This package includes the required Common Frameworks and Observatory Services distribution.

SWC-DCS-0060: GCS Simulator / early CORE / eCORE

The DCS shall use the GCS Simulator as a tool for DCS software development, support, integration, factory acceptance test and site acceptance test.

SWC-DCS-0061: GDK version

The DCS shall use the latest GDK system version.

SWC-DCS-0062: DCS communication with GCS core systems

The DCS shall use the GMT Core Framework for the communication to/from DCS Controllers and Supervisors.

  • Operating Systems

    SWC-DCS-0063: DCC operating system

    The Operating System for the DCC is Linux, Fedora 21 or later (TBC).

    Note: Current prototypes are running in this platform.

  • Programming Languages and Tools

    SWC-DCS-0064: Software version control tool

    The software version control tool shall be git and github shall be used for collaboration.

    SWC-DCS-0065: PLC-based DCC programming language

    The PLCs shall be programmed using IEC 61131-3.

    SWC-DCS-0066: PLC-based DCC motion control

    The PLCs motion functions shall be implemented using the PLCOpen Motion Control standard.

    SWC-DCS-0067: PLC-based DCC communications

    The PLCs shall implement and OPC UA server to enable communication from/to the DCC Master Supervisor.

    SWC-DCS-0068: PLC-based DCC software

    The PLCs shall be programmed with the engineering software TwinCAT v3.0.

    SWC-DCS-0069: PC-based DCC software

    The DCS shall use the GDK software and environment to develop and test the PC based DCC software.

    SWC-DCS-0070: PC-based DCC fieldbus master

    The DCS shall use the igH etherCAT master in order to acquire the process image of the field devices connected to the fieldbus.

    Note: The I/O Framework provided by GMTO provides a simplified way of accessing the fieldbus process image.

    SWC-DCS-0071: GCS SDK version

    Fast controllers shall be programmed using the latest version of GCS SDK distribution.

    SWC-DCS-0072: Middleware agnostic

    DCS components shall be independent of the communication middleware used.

    SWC-DCS-0073: Distributed middleware transport

    Nanomsg (TBC) shall be used for the communication between distributed components.

    Note: The GMT Core Framework provides independence of the middleware and is the recommended way of implementing distributed communications.

    SWC-DCS-0074: Distributed middleware serialization

    The serialization/deserialization of transmitted packages shall be done using MessagePack (TBC).

    Note: The GMT Core Framework provides independence of the serialization format and is the recommended way of implementing distributed communications.

    SWC-DCS-0075: Programming languages

    The programming languages that can be used in the DCS software development are:

    • ANSI C++ cxx11 (TBC) for performance sensitive application programming in the DCC

    • ANSI C c99 (TBC) for driver programing in the DCC

    • Python 2.7/3.x (TBD) for general programming

    • Javascript /Coffeescript for graphical programming and modeling

    • IEC 61131-3 for PLC programming

    Note: More specific rules should be provided. Check current code generators and provide recommended implementation based on type of component.

    SWC-DCS-0076: User interface components

    User interfaces components shall be developed according to the W3C Web Component standard.

    Note: Google Polymer provides a compliant Web Component implementation. The GMT UI Framework (ui_fwk) provides reusable components to implement user interfaces

  • Modeling Requirements

    System Definition Files (SDF) are used to capture the formal specification of the DCS. Section nnn provides additional requirements on SDF. As SDF play a key role in the specification, testing and validation of the DCS architecture. SDF related life-cycle requirements are defined below.

    SDFs are written in a Domain Specific Language (DSL). A DSL is a computer programming language of limited expressiveness focused on a particular domain. A DSL facilitates productivity and communication with domain experts and DSL stakeholders. SDFs are ASCII files that are parsed and stored in the semantic model database and processed for consistency and completeness. They are hosted in the GMTO central software private repository in Github, for access by DCS developers and revision control.

    The concrete syntax of the SDFs is provided by the DSL, while the semantics are given by a set of models (metamodels) following the Object Management Group Meta Object Facility architecture.

    [add graphic to explain this]

    The GDK provides tools for:

    • DCS component skeletons and scaffolding generation

    • Subsystem build dependencies specification

    • Test procedures and test data generation

    • Stage-gate document generation

    • Project progress reporting

    • Subsystem deployment

    • Interface document generation

    The SDFs are one of the deliverables of the DCS development phases. More information on the SDF lifecycle and contents is available in DCS Specification Workflows document (GMT-SWC-REF-0000).

    SWC-DCS-0077: SDF definition

    The SDF of DCS component shall include the following information:

    • DCS unique identification

    • Commands list

    • Alarm list

    • Property list

    • Control Data Inputs and Outputs

    • Configuration property lists

    • DCS constant values

    • Default values (“factory settings”) for run-time configuration used for

    • DCS start-up

    • Physical (raw) signals list (I/O) [equivalent to data_inputs]

    • Processed/converted signals list [equivalent to data_outputs]

    • Telemetry monitor list

    • Logging messages list

    • Definition of the DCS state variables and corresponding state machines when applicable.

    • Definition of the DCS user interface components

    • Description of every component feature. [???]

    Note: The formal specification of the SDF DSL is defined by the GMF metamodel.

    [TBD] Add example?

    [Add requirements about SDF validation, test generation and test execution?]

    SWC-DCS-0077: Graphical modeling

    SysML shall be used in the graphical description of the DCS designs.

    Note: Although SDF provide a formal definition of the DCS that can be validated and it is used to drive the development of the system, graphic representations are useful to present high level views of the system structure and behavior (state diagrams, activity diagrams, internal block diagrams).

Hardware Requirements#

Device Control Computer#

The DCC (Device Control Computer) is a standardized computer specified by GMTO to be used in the deployment of the DCS. The DCC is connected to the GMT Control Network (GCN).

Each DCC host the software components that implement the functional and physical part of the control and data acquisition functions of the CSS devices, i.e. the Controlled Subsystem Plant – CSP in the Figure 3‑1.

Each DCC includes a processor and an interface to the I/O modules required to connect to hardware Devices.

I/O interfaces are either I/O adapters within the DCC (e.g. detector controller interface cards), or use a field bus to connect with remote I/O modules (i.e. Motion drives or discrete I/O signal interfaces).

Two types of DCCs are supported:

  • PC-based DCCs Intel-based Industrial Computers (PCs) running Linux with real time extensions (RT_PREEMPT) are used in the following use cases:

    • High bandwidth telemetry is required

    • The DCS has to be integrated with the low latency network.

    • High computing performance is required.

    • Implementing complex operation scenarios is required

    • Control loops or data acquisition rates are faster than 100 Hz.

  • PLC-based DCCs Programmable Logic Controllers (PLCs) are used in the following use cases:

    • The bandwidth necessary for telemetry is low.

    • Simple supervision, coordination or operation scenarios.

When PLC based DCCs are used a Master Supervisor is deployed in a PC-based DCC that communicates with the PLC(s) using OPC UA. The procurement of this DCC Master Supervisor depends on the procurement agreement and may be provided by GMTO if the DCS provider is not familiar with the technologies used for DCS / GCS integration. The Figure below shows an example of this arrangement.

[review drawing to include physical interface]

../../_images/tiered_controller_architecture.png

Single and Two Tier Controller Architecture#

The primary functions of the DCC are:

  • Hosting the supervisory and control DCS software components

  • Hosting the GMT frameworks that enable communication between the DCS and the GCS

  • Hosting the fieldbus (EtherCAT) master

  • Hosting the physical interface that connects the DCC with the fieldbus

  • Hosting the physical interface that connects the DCC with the GMT Control Network

  • Hosting the physical interface that connects the DCC with the Low Latency Network

SWC-DCS-0086: DCS master supervisor deployment

Each DCS shall have one an only one DCS Master Supervisor deployed in one of the DCS DCCs.

SWC-DCS-0087: DCC physical interface

Each DCC shall provide at least two ports to connect to the GCN.

SWC-DCS-0088: DCC – DCS integration

Each DCC shall be integrated into the DCS.

SWC-DCS-0089: DCC location

Each DCC shall be installed in the GMT Electronics room.

SWC-DCS-0090: DCC power consumption

Each DCC shall not exceed 200W (TBC) of power consumption.

Note: DCC are installed in the Electronics Room.

SWC-DCS-0092: DCC physical envelope

Each DCC shall not use more than 4U (TBC) in a 19” rack.

SWC-DCS-0093: DCC processor

Each DCS DCCs shall use an Intel compatible processor.

Note: The GMT DCS Product Catalog (GMT-SWC-REF-00000) provides a list of standardized

SWC-DCS-0092: DCC physical environment

Environment requirements (seismic, etc).

PLC-based DCS#

SWC-DCS-0103: Physical interface

The physical interface between the DCS Master Supervisor DCC and the PLC(s) shall be Gigabit Ethernet Internet.

SWC-DCS-0107: Data interface

The data interface protocol between the DCS Master Supervisor DCC and the PLC(s) controllers shall be OPC UA.

Note: The GMT core_fwk provides an OPC-UA client for Python and node.js [client platform].

SWC-DCS-0108: PLC

PLC-based DCC shall be Beckhoff series TBD or equivalent.

SWC-DCS-0109: Standard products

PLC-based DCC, I/O Modules and field buses shall be selected from the GMT Software and Controls product catalogue (GMT-SWC-REF-00000).

PC-based DCS#

SWC-DCS-0111: PC-based standard products

PC-based DCS shall use Device Control Computers (DCC) based on Intel industrial computers with PCI Express bus system and adequate interface to fieldbus and GCN.

SWC-DCS-0112: DCC standard products

PC-based DCC, I/O Modules, terminal blocks and field buses shall be selected from the GMT Software and Controls product catalogue. (GMT-SWC-REF-00000)

Computing Resources Sizing#

SWC-DCS-0042: Computing resources

The DCS computing resources shall be adequate to support the correct operation of the DCS.

SWC-DCS-0043: Computing resource sizing

The DCS computing resources shall provide sufficient margins to allow adding additional functions.

SWC-DCS-0044: Load factor characterization during acceptance tests

The acceptance tests shall provide information about the load factor of the DCS computing and network resources.

SWC-DCS-0045: IO Module sizing

Additional reserve space for IO Modules per DIN rail in the allocated Standard Electronic Cabinet (SEC) should be more than 20% (TBC)

SWC-DCS-0046: Not equipped I/O channel additional reserve

Additional reserve I/O channels (not equipped) per type should be more than 20% (TBC)

SWC-DCS-0047: Equipped I/O channel additional reserve

Additional reserve I/O channels (equipped) per type should be more than 5% (TBC)

Field Device Interface#

SWC-DCS-0093: DCS field Devices interface

The interface between the DCC (both PLC and PC based) and the field Devices shall be the EtherCAT fieldbus.

SWC-DCS-0094: DCS fieldbus layout

The first IO Module of the DCS fieldbus shall be installed in the GMT Electronics room. The rest of the fieldbus IO Modules shall be installed in the Enclosure building SECs or smaller boxes when the performance requirements for the electrical signal path requires it.

SWC-DCS-0095: DCS fieldbus cabling

The cabling between the first IO Module of the DCS and the rest shall be optical fiber. GMTO provides fiber links between the electronics room and the enclosure building as part of the GCN. The cabling between the field IO Modules shall be Ethernet UTP CAT 6 (TBC).

SWC-DCS-0096: DCS cable redundancy

The fieldbus layout shall be designed to support cable redundancy as stated in EtherCAT protocol.

Motion Control Deployment#

SWC-DCS-0085: Motion control deployment mode

The DCS shall use one of the recommended control deployment modes defined in the Table below for each individual degree of freedom.

Motion Control Deployment Mode#

Control Deployment Mode

Description

PVT

Position, Velocity and Torque control loops are implemented on a motion drive. This mode is recommended for single degree of freedom controllers with single or dual encoder feedback. In this mode encoder feedback is connected to the drive.

P-VT

The Position control loop is implemented in the DCC, while the Velocity and Torque loops are implemented in the drive. This mode is recommended when the position feedback cannot be connected directly to the drive.

PV-T

The Position and Velocity control loops are implemented in the DCC, while the Torque control loops is implemented in the drive. This mode is necessary when several actuators act on the same axis.

Note: Motion drives are assumed to comply the IEC 61800-7-201 and IEC61800-7-301 mapping to EtherCAT.

SWC-DCS-0097: Motion Control

Motion control functions shall be implemented using motion drives that implement the CiA 402 profiles as defined in IEC 61800-7-201 / 301 (RD-5, RD-6).

Note: This is especially recommended in the case of single axis with single or dual feedback and single actuator.

SWC-DCS-0098: Motion Control Signals

Motion control related signals shall be connected to the drive auxiliary inputs/outputs.

Note: Example of motion signals are encoder feedback or home switches.

SWC-DCS-0099: Motion Control Loops

Depending on the Motion Deployment mode [swc-dcs-0085], motion control loops shall be closed in the drives using one of the standard profiles defined in IEC 61800-7-201/301 (RD-5, RD-6).

DCS Software Platform#

SWC-DCS-0100: DCS software platform

Each DCC shall be configured by the DCS developer using the GDK provided by GMTO.

SWC-DCS-0101: DCS hardware configuration

Each DCC shall be compatible with the GMT DCS Product Catalog (GMT-SWC-REF-00000).

Technical Camera Interface#

SWC-DCS-0113: Technical camera data interface

The interface between the DCC and a technical CCD camera shall be GigE Vision.

Note: Goal GigE [ref] cameras with Genicam [ref] profile.

Science CCDs Interface#

SWC-DCS-0113: Technical CCD camera data interface

The interface between the DCC and a science CCD camera shall be TBD.

Control Cabinets#

[TBA] Add drawing. Include fiber transceivers

SWC-DCS-0113: Standard Electronic Cabinets

DCS field hardware shall be installed in the assigned standard electronic cabinets (SEC) as defined in the GMT Electronic Standards (AD-n).

SWC-DCS-0114: DCC and PLC location

PC-based and PLC-based DCCs shall be installed in the electronics room electronic racks (ref).

SWC-DCS-0115: DCC and I/O Module interface

DCCs and field I/O Modules are connected using the GCN fiber trunk lines.

Note: The GMT control network is a combination of fiber distribution units, fiber transceivers and CAT5 electrical cable to field elements.

Control Signal Cabling Rules#

SWC-DCS-0116: Cabling rules

DCS cabling shall be compliant with the GMT Electronic Standards (GMT-SE-REF-00191) for signal cabling and routing.

SWC-DCS-0117: SCP single connection point

A particular Subsystem Controlled Plant (SCP) / (Device Port) signal shall not be connected to different DCSs.

Note: In the case in which more than one DCS required access to a signal, the corresponding data shall be transmitted through the GCN.

SWC-DCS-0119: Long distance signal connection

If the SCP equipment and the DCS I/O Modules connected to it are far away from each other, then an optical fiber connection shall be used.

SWC-DCS-0120: Types of cables

The cables used to connect the DCS with the SCP shall be compliant with the GMT Electronic Standards (GMT-SE-REF-00191).

SWC-DCS-0121: Analogue signal cabling

Analogue signal cabling shall be compliant with the GMT Electronic Standards (GMT-SE-REF-00191).

SWC-DCS-0121: Signal standards

Signals ranges and types shall be compliant with the GMT Electronic Standards (GMT-SE-REF-00191).

Interface Specification#

The main building blocks of a DCS are Components. Components may communicate with other Components in their own containing Package, with other Components of other Package of the same DCS or with Components in other Subsystems.

Components use ports to connect with other components. The connection between two ports is represented by a connector. Connectors are grouped in connection maps. Connection maps are part of the System Definition Files specification

SWC-DCS-0160: Package connection map

The connections between ports of components beloging to the same package shall be specified in the Package connectors property.

SWC-DCS-0161: DCS connection map

The connections between ports of components beloging to different packages of the same DCS shall be specified in the DCS connectors propertys

SWC-DCS-0162: DCS external connection map

The connections between ports of components beloging a DCS with components of an external subsystem shall be specified in the DCS connectors property of the <subsystem>-DCS Interface.

Physical Interface#

  • Device Control Computer (DCC)

    DCC is considered being a part of the DCS. All DCC are connected to the GMT Control Network (GCN), although one and only one DCS Master Supervisor shall be deployed.

  • Network Interface

    Network interfaces provide the only physical interconnection between DCS and GCS. GMTO manages the GMT networks.

    The GCN comprise the general-purpose service network (GSN), the Low Latency Network (LLN), the Data Archiving Network (DAN) and the Time Distribution Network (TDN).

  • Network Equipment

    GCS network equipment is installed in the GMT electronics room. GMTO will provide the cables from DCS DCCs and PLCs to the GCS network equipment.

  • General Service Network (GSN)

    SWC-DCS-0129: GSN

    Each DCS shall have a redundant connection to the GSN.

  • Low Latency Network (LLN)

    The LLN provides transport for real-time WFC control and telemetry. It guarantees data exchange with latency less than 10 microsec and jitter less than TBD microsec. The communication protocol is RDMA over 40Gbps Infiniband. Only DCS participating in fast WFC feedback control shall be connected to the LLN. DCSs may have multiple LLN network interfaces.

    SWC-DCS-0130: LLN NIC

    The DCS shall use only GMTO approved LLN NIC interfaces to connect to the LLN.

    SWC-DCS-0131: LLN interface procurement

    Specific hardware and software required by the LLN interface will be supplied by GMTO.

    SWC-DCS-0132: LLN interface location

    The LLN Interface is located in the GMT Electronic Room hosted by the DCC.

  • Time Distribution Network (TDN)

    The TDN provides project-wide time synchronization. It allows the DCS DCCs to be synchronized with an accuracy of 50 us RMS to the GMT Time, which is Universal Coordinated Time (UTC). The TCN network is carrying Precision Time Protocol (PTP version 2, IEEE-11588-2008). Any DCC requiring high accuracy time synchronization and time stamping shall be connected the TCN.

    SWC-DCS-0133: TDN interface

    The DCS shall use only GMTO approved TDN interfaces to connect to the TDN.

    SWC-DCS-0134: TDN interface procurement

    Specific hardware and software required by the TDN interface will be supplied by GMTO.

    SWC-DCS-0135: TDN interface location

    The TDN Interface is located in the GMT Electronics Room hosted by the DCC.

  • Data Archiving Network (DAN) (TBC)

    The Data Archiving Network (DAN) allows transferring the scientific data into the GMT Scientific Data Archiving System. The DAN is deployed using a dedicated high-throughput Ethernet network infrastructure.

    SWC-DCS-0136: DAN interface

    The DCS shall use only GMTO certified DAN interfaces to connect to the DAN.

    SWC-DCS-0137: DAN interface procurement

    Specific hardware and software required by the DAN interface will be supplied by GMTO.

    SWC-DCS-0138: DAN interface location

    The DAN interface shall be located in the GMT Electronics Room hosted by the DCC.