# Sollwertschieber

> Ein Griff zwischen zwei Enden: das Ziehen bereitet den Wert vor, die Taste schreibt ihn, und sonst folgt der Griff der Anlage.

**Sollwertschieber** verstellt einen Sollwert mit einer Geste statt durch Tippen. Sein Schutz
gegen den einen Unfall, den ein Schieber haben kann, ist die Regel der zwei Schritte: **das
Ziehen bereitet vor, die Taste schreibt**. Den Griff zu bewegen ändert nichts außerhalb des
Bildes, es sagt nur den Wert an, der verlangt wird, und die Anlage wird berührt, wenn der
Bediener die Sendetaste daneben drückt. Ein Ärmel, der über einen Berührungsbildschirm streift,
endet in einem Loslassen wie jedes andere Ziehen, beim Loslassen zu schreiben würde also genau
die Geste senden, die niemand wollte. Er ist eine Komponente der Kategorie *Bedienung*; ein neuer
belegt 6 × 1 Zellen.

Das Bedienelement zeichnet keinen eigenen Messwert; setzen Sie einen [Wert](component-value)
neben den Stellweg, wenn die Zahl auf dem Bild stehen soll.

## Daten {#data}

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Adresse | Die verwurzelte Logic-Adresse, in der der Sollwert landet und aus der er zurückgelesen wird: eine Merkervariable oder ein schreibbares Tag. Die Liste ist auf schreibbare Datenpunkte eingeengt. | Freier Text; Vorschläge schreibbarer Datenpunkte | leer |

## Format {#format}

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Dezimalstellen | Nachkommastellen, mit denen der vorbereitete Wert und die Rückmeldezeile geschrieben werden, die beiden Stellen, an denen dieses Bedienelement eine Zahl schreibt. Leer folgt der Dezimalvorgabe der Station. Anzahlen außerhalb des Bandes werden am Rand genommen, und der Bereich sagt das. | 0 bis 15 oder leer | leer |

## Stellweg {#travel}

Wohin der Griff gehen und wo er anhalten darf. Die Enden sind die eigene Erklärung des
Bedienelements und kein Messwert, und genau deshalb fährt der Griff auch dann, wenn der
Datenpunkt nichts sagt.

| Feld | Was es tut | Werte | Vorgabe |
|---|---|---|---|
| Minimum | Wo der Stellweg beginnt. | Eine beliebige endliche Zahl | 0 |
| Maximum | Wo der Stellweg endet. Auf oder unter dem Minimum gibt es nichts zu fahren: der Bereich warnt, und der Schieber ist gesperrt, weil er nichts senden würde. | Eine beliebige endliche Zahl | 100 |
| Schritt | Die kleinste Bewegung, die der Griff macht. Jede Stellung, an der er anhält, ist eine ganze Anzahl Schritte vom Minimum entfernt, der gesendete Wert ist also immer einer der erklärten Halte. Ein Schritt, der den Stellweg nicht teilt, ist erlaubt, und der Bereich sagt, wo der letzte Halt liegt: das Maximum ist dann kein Wert, den dieser Schieber sendet. | Eine beliebige positive endliche Zahl | 1 |

Über einem Tag, dessen Stufe **Grenzen** eingeschaltet ist, warnt der Bereich außerdem, wenn
die Halte des Stellwegs über diese Grenzen hinausreichen, und nennt sie: ein dort
vorbereiteter Wert wird an der Sendetaste abgewiesen, statt am Rand genommen zu werden.

## Wie er sich verhält {#how-it-behaves}

- **Der Anlage folgen.** Ist nichts vorbereitet, steht der Griff am eigenen Messwert des
  Datenpunkts. Ein Messwert *außerhalb* des erklärten Stellwegs, oder überhaupt kein guter
  Messwert, zeichnet **keinen Griff**: ein Daumen, der an der Untergrenze parkt, wäre ein
  Sollwert, den das Bild erfunden hat.
- **Vorbereiten.** Die erste Berührung friert den Griff dort ein, wo der Datenpunkt ihn zuletzt
  gemeldet hat, und färbt das Bedienelement, was dem Bediener sagt, dass er es jetzt in der Hand
  hält. Das Ziehen rastet an den Halten ein und begrenzt in den Stellweg hinein. Der vorbereitete
  Wert gehört allein diesem Bild: er erreicht keinen anderen Kreis, und nichts zeichnet ihn als
  Messwert.
- **Die Sendetaste** benennt ihre Folge, bevor der Finger landet: sie liest sich als
  "42,5 setzen", solange ein Wert vorbereitet ist. Ein gesendeter Wert gibt den Griff an den
  Datenpunkt zurück; einer, den der Kanal abgewiesen hat, bleibt vorbereitet, die Berichtigung
  ist also ein Nachschieben und nicht die ganze Geste noch einmal. Ihre Breite ändert sich nie:
  Von Anfang an hält sie Platz für den breitesten Wert frei, den der Stellweg auf sie bringen
  kann, sodass weder die Taste ✕ noch der Stellweg daneben rückt, wenn ein Wert vorbereitet oder
  der Griff zurückgegeben wird.
- **Die Taste ✕** gibt den Griff an den Datenpunkt zurück, der Weg aus einem Vorbereiten heraus,
  das niemand wollte. Sie steht immer in der Zeile (gesperrt, solange nichts vorbereitet ist), es
  bewegen sich also nie Tasten unter dem Finger.
- Einem Screenreader sagt der Schieber den vorbereiteten Wert ("42,5, noch nicht gesendet"), den
  eigenen Messwert des Datenpunkts oder "Kein Messwert", nie eine Zahl, die der Datenpunkt nicht
  gemeldet hat.

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

Die Sendetaste schreibt den vorbereiteten Wert durch den einen Schreibkanal der Logik der
Station. Ein Datenpunkt, der keine Zahl halten kann, antwortet mit der Abweisung auf der Zeile
des Bedienelements; ein erfolgreiches Senden antwortet "42,5 geschrieben". Werte, die durch
Schreiten erreicht wurden, werden vor dem Senden von binären Resten befreit, ein Sollwert
erreicht die Anlage also nie als `0.30000000000000004`. Die Berechtigung wird beim Druck erneut
geprüft, und die Rückmeldezeile verfällt nach wenigen Sekunden. Ein neuer Schieber ist eine
Rasterzeile hoch, und unter einem Titel in der Ecke lässt diese Zeile der Antwort selten
Platz: Die Antwort nimmt dann den Platz des Titels ein, solange sie steht. Wo kein Titel
über dem Bedienelement steht (keiner wurde geschrieben, oder er hat seine Zeile abgegeben) und
die Zelle trotzdem keine Zeile für die Antwort hat, nimmt sie die Aufschrift der Sendetaste
ein; die Taste behält ihre Breite, sodass weder die Taste ✕ noch der Stellweg rückt (siehe die
[Seite der Dashboards](home#commands-permissions-and-the-lock-mark)).

Über einem Tag, dessen Stufe **Grenzen** eingeschaltet ist, wird ein vorbereiteter Wert
außerhalb dieser Grenzen genauso abgewiesen, mit einem Grund, der diese Grenzen nennt, und bleibt vorbereitet: sonst nähme das Tag ihn am Rand, und die Zeile meldete
einen Wert, den die Anlage nie bekommen hat.

Über einem Datenpunkt, der Ganzzahlen hält (ein Tag eines ganzzahligen Typs, dessen Skalierung und Kalibrierung den Wert unverändert lassen, oder eine Variable im Merker, die Ganzzahlen hält), wird ein vorbereiteter Wert mit Nachkommastellen genauso abgewiesen, statt gerundet zu werden ("Dieser Datenpunkt nimmt eine Ganzzahl auf, also wird 2.5 nicht geschrieben."), und bleibt vorbereitet: über einem solchen Datenpunkt macht ein Schritt mit Nachkommastellen diese Halte zu Werten, die nie gesendet werden.

## Berechtigungen und die Sperre {#permissions-and-the-lock}

Das Senden verlangt die Berechtigung der Rolle, Dashboards zu bedienen. Solange die Sperre gilt,
sind der Stellweg und die Sendetaste gesperrt, und die Komponente trägt das gemeinsame
Sperrzeichen mit dem Grund in ihrem Tooltip (siehe die
[Seite der Dashboards](home)). Ein gebundener Datenpunkt,
der nicht liest, trägt das gemeinsame Zeichen für den misslungenen Messwert; das Bedienelement
selbst bleibt benutzbar, denn ein Sollwert ist ein absoluter Wert und verlangt vorher keinen
Messwert.

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