# Schalter

> Ein Schalter über einem Wahrheitswert-Datenpunkt, der der Anlage folgt: der Klick schreibt, die Anlage bestätigt.

**Schalter** ist ein Schalter über einem schreibbaren Wahrheitswert-Datenpunkt. Er folgt der
SCADA-Regel, wem ein Zustand gehört: die Darstellung *folgt dem Datenpunkt*, aus dem lebenden
Adressraum aufgefrischt, und der Klick schreibt nur die Verneinung dessen, was der Datenpunkt
gerade sagt: der Schalter kippt, wenn die Anlage bestätigt. Das Bild zeigt nie einen Zustand, den
der Datenpunkt nicht gemeldet hat. Er ist eine Komponente der Kategorie *Bedienung*; ein neuer
belegt 4 × 1 Zellen.

## Inhalt {#content}

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Beschriftung | Mögliche Bildunterschrift neben dem Schalter. | Freier Text | leer |

## Daten {#data}

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Adresse | Die verwurzelte Logic-Adresse des geschalteten Datenpunkts: eine Variable im Merker oder ein schreibbares Tag. Die Liste der Vorschläge führt mit Wahrheitswerten. | Freier Text; Vorschläge aus der lebenden Liste der Datenpunkte | leer |

Unter dem Feld zeigt der Editor, was der gewählte Datenpunkt gerade liest.

## Wann der Schalter bedient werden kann {#when-the-switch-can-be-operated}

Der Schalter ist nur freigegeben, solange all das gilt:

- der Datenpunkt löst sich auf ein **zulässiges Ziel zum Schreiben** auf, also auf eine Variable
  im Merker (nicht auf eine Ausdrucksvariable, deren Wert berechnet wird) oder auf ein Tag, das
  nicht nur zum Lesen ist;
- der Datenpunkt liest in **guter Qualität**: der Klick schreibt die *Verneinung* des aktuellen
  Zustands, ohne verlässlichen Messwert gibt es also nichts zu verneinen;
- von diesem Schalter ist kein Schreiben mehr unterwegs;
- die angemeldete Rolle **darf Dashboards bedienen** (siehe das Berechtigungsmodell auf der
  [Seite der Dashboards](home)). Eine Rolle, die es nicht darf, sieht stattdessen das leise
  Sperrzeichen, mit dem Grund im Tooltip der Komponente.

## Was ein Schreiben bedeutet {#write-semantics}

Ein Klick schreibt `true` oder `false`, immer das Gegenteil des letzten guten Messwerts des
Datenpunkts, durch den einen Schreibtrichter der Logik auf der Station, journalisiert wie jedes
andere Schreiben. Die flüchtige Rückmeldezeile unter dem Schalter meldet das Ergebnis ("Ein
geschrieben", "Aus geschrieben" oder der Fehler) und leert sich nach einigen Sekunden von selbst.
In einer Zelle ohne Zeile für sie und ohne Titel in der Ecke über dem Schalter wird die
Antwort an die Stelle der Beschriftung neben dem Schalter geschrieben, solange sie steht,
eine Ablehnung in der Fehlerfarbe, mit der ganzen Antwort im Tooltip; der Schalter rückt
nicht, die Beschriftung kehrt zurück, wenn die Antwort sich leert, und ein Schalter ohne
Beschriftung hält ihr dieselbe Stelle frei.
Die Berechtigung wird im Moment des Klicks neu geprüft, ein Rollenwechsel oder eine Abmeldung bei
offenem Bild kann also keinen veralteten Druck absetzen.

Der Schalter ist es, der auf die Anlage wartet, nicht die Logic: "Ein geschrieben" bedeutet also,
dass die Anlage den Wert angenommen hat. Alles andere setzt die Ablehnung auf diese Zeile, in den
Worten dessen, der sie ausgesprochen hat: in die eigenen der Station für das, was sie vor dem Senden
entschieden hat ("'Cmd' wurde nicht geschrieben: das Gerät ist nicht verbunden.") und in die der
Anlage oder ihres Treibers für das, was auf der Leitung geschah. Ein Zustand, den ein neuerer
Schreibzugriff auf denselben Datenpunkt vor dem Senden überholt hat, ist keine Ablehnung und wird
als geschrieben gemeldet, denn der neuere Zustand ist der, den die Anlage bekommt.

Liest der gebundene Datenpunkt nicht (die Adresse löst sich nicht auf, oder die Qualität ist
schlecht), trägt die Komponente das gemeinsame Zeichen für den misslungenen Messwert, und der
Schalter ist gesperrt, bis der Messwert zurückkommt.

Die gemeinsamen Abschnitte Darstellung, Kennung, Position und Ebene und Aktionen sind auf
der [Seite der Komponenten](components#the-shared-property-sections) beschrieben.
