Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen

Einsteiger · 10 Min. · Ventil

Ein Ventil im Bild muss eine Frage auf einen Blick beantworten: Steht es dort, wo es stehen soll? Diese Anleitung zeigt, wie Sie ein Ventilsymbol aus den beiden Endlagenschaltern und dem Störbit ansteuern, die in der SPS ohnehin vorliegen — vier Zustände aus drei Booleans, mit einem Binding für die Farbe, einem für die Klappe und einem für den Text.
  • Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — ClosedLimit = true, DiscAngle = 0
    ClosedLimit = true DiscAngle = 0
  • Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — keine Endlage, DiscAngle = 45
    keine Endlage DiscAngle = 45
  • Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — OpenLimit = true, DiscAngle = 90
    OpenLimit = true DiscAngle = 90
  • Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Fault = true, DiscAngle = 45
    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:

ParameterTypWofür
FaultbooleanStörbit. Hat Vorrang vor beiden Stellungen.
OpenLimitbooleanEndlagenschalter offen. Wahr, wenn das Ventil die Offenstellung erreicht hat.
ClosedLimitbooleanEndlagenschalter geschlossen. Wahr, wenn das Ventil die Zustellung erreicht hat.
DiscAnglenumberKlappenstellung in Grad: 0 ist geschlossen, 90 ist offen.
StatusTextstringDas Wort, das im Statusfeld erscheint.

Schritt für Schritt

  1. 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:

    1. Fault — Rot
    2. OpenLimit — Grün
    3. ClosedLimit — 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.

    Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Den Körper aus den drei Bits einfärbenEin Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Den Körper aus den drei Bits einfärben
  2. 2. Die Klappe mit der Stellung drehen

    Wählen Sie die Klappe aus und fügen Sie ein Rotation-Binding mit dem Namen DiscAngle hinzu. 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.

    Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Die Klappe mit der Stellung drehenEin Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Die Klappe mit der Stellung drehen
  3. 3. Den Zustand in Worte fassen

    Wählen Sie den Statustext aus und fügen Sie ein Text Content-Binding mit dem Namen StatusText hinzu. 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.

    Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Den Zustand in Worte fassenEin Ventil als offen, geschlossen, fahrend oder gestört anzeigen — Den Zustand in Worte fassen

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.
Dieses Beispiel im Editor öffnen.svghmi herunterladen

Verwandte Tutorials

Ein Ventil als offen, geschlossen, fahrend oder gestört anzeigen — WinCC Unified & WinCC V8+ | DynSVG