Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen
Einsteiger · 10 Min. · Ventil
ClosedLimit = true DiscAngle = 0 keine Endlage DiscAngle = 45 OpenLimit = true DiscAngle = 90 Fault = true DiscAngle = 45
Das Problem
Üblicherweise zeichnet man das Ventil viermal — grau, grün, gelb, rot — legt die Kopien übereinander und gibt jeder eine Sichtbarkeitsdynamik. Das funktioniert, bis jemand einen fünften Zustand möchte, eine zweite Ventilgröße dazukommt oder das Grün geändert werden soll. Dann bearbeiten Sie vier Objekte pro Ventil in jedem Bild, das eines verwendet.
Außerdem sind die Zustände auf eine Weise fehleranfällig, die monatelang niemandem auffällt. Zwei Endlagenschalter haben vier Kombinationen, nicht zwei, und die unbequemen sind die wichtigen: keiner belegt heißt, das Ventil fährt gerade, und beide gleichzeitig heißt, etwas ist defekt. Sichtbarkeitsdynamiken auf getrennten Objekten lassen zwei davon gleichzeitig sichtbar werden.
Ein dynamisches SVG ersetzt das alles. Das Ventil wird einmal gezeichnet, und seine Farbe ist ein einziges Binding, das die Priorität für Sie auflöst.
Was Sie brauchen
Eine Ventilgrafik, in der Körper, Klappe und Statustext eigene Elemente sind — das Beispiel unten verwendet das Regelventil aus dem Beispielsatz. Aus der SPS brauchen Sie die beiden Endlagenschalter und das Störbit als Booleans sowie eine Zahl für die Klappenstellung.
Am Ende fragt das Widget diese fünf Parameter ab:
| Parameter | Typ | Wofür |
|---|---|---|
| Fault | boolean | Störbit. Hat Vorrang vor beiden Stellungen. |
| OpenLimit | boolean | Endlagenschalter offen. Wahr, wenn das Ventil die Offenstellung erreicht hat. |
| ClosedLimit | boolean | Endlagenschalter geschlossen. Wahr, wenn das Ventil die Zustellung erreicht hat. |
| DiscAngle | number | Klappenstellung in Grad: 0 ist geschlossen, 90 ist offen. |
| StatusText | string | Das Wort, das im Statusfeld erscheint. |
Schritt für Schritt
1. Den Körper aus den drei Bits einfärben
Wählen Sie den Ventilkörper aus und fügen Sie ein Cond. Fill (Multi-Bool)-Binding hinzu. Legen Sie drei Bedingungszeilen an, in dieser Reihenfolge:
Fault— RotOpenLimit— GrünClosedLimit— Grau
Setzen Sie die Rückfallfarbe auf Gelb. Das ist die gesamte Zustandslogik: Die erste Zeile, deren Parameter wahr ist, gewinnt; ist keine wahr, greift die Rückfallfarbe.


2. Die Klappe mit der Stellung drehen
Wählen Sie die Klappe aus und fügen Sie ein Rotation-Binding mit dem Namen
DiscAnglehinzu. Der Editor trägt den Drehpunkt aus dem Rahmen der Form ein — prüfen Sie, dass er auf der Ventilnabe liegt, denn ein Drehpunkt wenige Pixel daneben lässt die Klappe eiern statt schwenken.Null ist geschlossen, 90 ist offen. Alles dazwischen liest sich als fahrend, und genau das lässt ein fahrendes Ventil fahren statt springen.


3. Den Zustand in Worte fassen
Wählen Sie den Statustext aus und fügen Sie ein Text Content-Binding mit dem Namen
StatusTexthinzu. Die Farbe genügt einem Bediener, der die Konvention kennt; das Wort erreicht alle anderen — und es steht später im Screenshot, der an einen Schichtbericht geht.

Prüfen
Öffnen Sie Simulieren: Sie erhalten je Parameter ein Bedienelement. Gehen Sie die vier Kombinationen vom Anfang dieser Seite durch — setzen Sie ClosedLimit bei Winkel 0, nehmen Sie es zurück und erhöhen Sie den Winkel, setzen Sie OpenLimit bei 90, setzen Sie dann Fault.
Bewusst prüfen sollten Sie den unmöglichen Fall: beide Endlagenschalter gleichzeitig. Das Ventil muss auf der Zeile bleiben, die in Ihrer Liste weiter oben steht, und darf nicht zwischen beiden springen — daran erkennen Sie, dass die Priorität tut, was Sie erwarten.
Für die Simulation ist ein kostenloses Konto nötig. Für alles davor nicht.
Varianten
- Die Farben vom Faceplate liefern lassen. Stellen Sie eine Zeile von Fixed auf Param um, dann wird diese Farbe selbst zum Parameter. So folgt ein Widget einer Hausfarbpalette, die pro Projekt eingestellt wird statt pro Grafik.
- Eine Stellungsanzeige ergänzen. Zeichnen Sie eine kleine Anzeige auf den Antrieb und geben Sie ihr ein eigenes Text Content-Binding. Das Widget liest sich dann zusätzlich als Prozentwert — was ein Regelventil meist braucht und ein Auf/Zu-Ventil nicht.
- Ein Bit statt drei. Liefert Ihre SPS nur offen/geschlossen, ersetzen Sie das Multi-Bool durch Cond. Fill (Boolean): ein Parameter, zwei Farben. Liefert sie stattdessen eine Zustandszahl, nehmen Sie Cond. Fill (Number) und geben jedem Wert eine eigene Zeile.
Fragen
- Warum nicht ein Binding je Zustand?
- Weil sie sich in die Quere kämen. Getrennte Sichtbarkeits-Bindings können gleichzeitig wahr sein, sodass ein gestörtes, offenes Ventil zwei Farben zeigt. Ein Multi-Bool löst die Priorität in einem einzigen Binding: Die erste wahre Zeile gewinnt, alle anderen haben nichts mehr zu sagen.
- Was passiert, wenn keine Bedingung wahr ist?
- Dann greift die Rückfallfarbe. Das ist kein Fehlerfall — dort lebt der Zustand "fährt", denn ein Ventil zwischen seinen beiden Endlagen belegt keine davon.
- Muss der Drehpunkt exakt stimmen?
- Er muss auf der Drehachse liegen. Der Editor leitet ihn beim Anlegen des Bindings aus dem Rahmen des Elements ab, was für eine symmetrisch um ihre Nabe gezeichnete Klappe richtig ist. Ist die Klappe außermittig gezeichnet, tragen Sie die Koordinaten der Nabe selbst ein.
- Geht das auch mit mehr als drei Zuständen?
- Ja — ein Multi-Bool nimmt so viele Bedingungszeilen auf, wie Sie Booleans haben, plus die Rückfallfarbe. Kommen die Zustände aus einer Zahl statt aus einzelnen Bits, passt Cond. Fill (Number) besser: ein Parameter, eine Zeile je Wert.