Maschinenzustände aus einem SPS-Zustandswort anzeigen

Einsteiger · 9 Min. · Anzeige

Eine Maschine, die ihren Zustand als eine einzige Ganzzahl liefert — 0 gestoppt, 1 läuft, 2 Störung, 3 Wartung —, sollte dafür ein Binding brauchen und nicht ein Objekt je Zustand. Diese Anleitung zeigt, wie Sie eine Statusleuchte aus dieser Zahl einfärben, den Zustand in Worte fassen und ein Wartungssymbol nur in dem Zustand einblenden, in den es gehört.
  • Maschinenzustände aus einem SPS-Zustandswort anzeigen — MachineState = 0
    MachineState = 0
  • Maschinenzustände aus einem SPS-Zustandswort anzeigen — MachineState = 1
    MachineState = 1
  • Maschinenzustände aus einem SPS-Zustandswort anzeigen — MachineState = 2
    MachineState = 2
  • Maschinenzustände aus einem SPS-Zustandswort anzeigen — MachineState = 3
    MachineState = 3

Das Problem

Üblich ist ein Bildobjekt je Zustand, übereinandergelegt, jedes mit einer Sichtbarkeitsdynamik, die denselben Tag mit einer anderen Zahl vergleicht. Vier Zustände, vier Objekte, vier Dynamiken — und alle müssen gemeinsam verschoben werden, sobald sich das Layout ändert.

Es scheitert außerdem leise, und zwar in beide Richtungen. Vergessen Sie einen Wert, zeigt die Kachel gar nichts — das sieht nach einer nicht geladenen Grafik aus und nicht nach einem Zustand, an den niemand gedacht hat. Überschneiden sich zwei Vergleiche, zeigt sie zwei Zustände gleichzeitig, und es gewinnt das Objekt, das zufällig oben liegt: eine Entscheidung aus der Zeichenreihenfolge statt von jemandem.

Eine Zahl, die eine Farbe steuert, hat beide Fehlerbilder nicht: Genau eine Zeile kann passen, und der Wert, der auf keine passt, bekommt eine Rückfallfarbe, die Sie wählen.

Was Sie brauchen

Eine Statuskachel, in der Leuchte, Beschriftung und Wartungssymbol eigene Elemente sind — das Beispiel unten verwendet die Statuskachel aus dem Beispielsatz. Aus der SPS brauchen Sie das Zustandswort als Zahl und die Beschriftung als Text.

ParameterTypWofür
MachineStatenumberDas Zustandswort: 0 gestoppt, 1 läuft, 2 Störung, 3 Wartung.
StateTextstringDer Zustand in Worten, für die Beschriftung.

Schritt für Schritt

  1. 1. Die Leuchte aus dem Zustandswort einfärben

    Wählen Sie die Statusleuchte aus und fügen Sie ein Cond. Fill (Number)-Binding mit dem Namen MachineState hinzu. Legen Sie je Wert eine Zeile an:

    1. 0 — Grau, gestoppt
    2. 1 — Grün, läuft
    3. 2 — Rot, Störung
    4. 3 — Blau, Wartung

    Wählen Sie danach eine Rückfallfarbe. Sie gilt für jeden Wert, den Sie nicht aufgeführt haben — und genau deshalb lohnt es sich, sie bewusst zu setzen.

    Maschinenzustände aus einem SPS-Zustandswort anzeigen — Die Leuchte aus dem Zustandswort einfärbenMaschinenzustände aus einem SPS-Zustandswort anzeigen — Die Leuchte aus dem Zustandswort einfärben
  2. 2. Den Zustand in Worte fassen

    Wählen Sie die Beschriftung aus und fügen Sie ein Text Content-Binding mit dem Namen StateText hinzu. Die Farbe ist schnell für jemanden, der die Konvention kennt; das Wort macht die Kachel für einen Fremdmonteur, die Nachtschicht oder jeden lesbar, der eine Woche später auf einen Screenshot schaut.

    Als eigener Parameter kann der Text außerdem dort übersetzt werden, wo Ihre Texte ohnehin liegen, statt einsprachig in der Grafik zu stecken.

    Maschinenzustände aus einem SPS-Zustandswort anzeigen — Den Zustand in Worte fassenMaschinenzustände aus einem SPS-Zustandswort anzeigen — Den Zustand in Worte fassen
  3. 3. Das Wartungssymbol nur bei Wartung zeigen

    Wählen Sie das Wartungssymbol aus und fügen Sie ein Visibility (Number)-Binding mit dem Namen MachineState und dem Schwellwert 3 hinzu. Es erscheint bei genau diesem Wert und bei keinem anderen.

    Beachten Sie: Es nutzt denselben Parameter wie die Leuchte — ein Tag, zwei Bindings, und keine Möglichkeit, dass Symbol und Farbe unterschiedlicher Meinung darüber sind, was die Maschine gerade tut.

    Maschinenzustände aus einem SPS-Zustandswort anzeigen — Das Wartungssymbol nur bei Wartung zeigenMaschinenzustände aus einem SPS-Zustandswort anzeigen — Das Wartungssymbol nur bei Wartung zeigen

Prüfen

Öffnen Sie Simulieren und schalten Sie MachineState durch 0, 1, 2 und 3. Die Leuchte muss sich bei jedem Schritt ändern, und das Symbol darf bei genau einem davon erscheinen.

Setzen Sie den Wert danach auf 7. Das ist die Prüfung, die sich bewusst lohnt: Ein Wert, an den niemand gedacht hat, soll sich über die Rückfallfarbe melden, statt still wie ein vorgesehener Zustand auszusehen.

Für die Simulation ist ein kostenloses Konto nötig. Für alles davor nicht.

Varianten

  • Mehr Symbole, dieselbe Zahl. Ergänzen Sie ein zweites Element mit einem eigenen Visibility (Number)-Binding auf denselben Parameter und einem anderen Schwellwert. Ein Zustandswort kann beliebig viele Überlagerungen steuern, und genau eine wird sichtbar.
  • Bits statt einer Zahl. Liefert Ihre SPS einzelne Bits statt eines Zustandsworts, nehmen Sie Cond. Fill (Multi-Bool) — eine Zeile je Bit, die erste wahre gewinnt, und eine Rückfallfarbe für den Fall, dass keines gesetzt ist.
  • Farben vom Faceplate. Stellen Sie eine Zeile von Fixed auf Param, dann wird ihre Farbe zum Parameter — ein Projekt setzt seine Zustandsfarben einmal statt je Grafik.

Fragen

Warum eine Zahl statt eines Objekts je Zustand?
Weil getrennte Objekte gleichzeitig keines oder zwei zeigen können — und beides sieht nicht kaputt genug aus, um gemeldet zu werden. Eine numerische Farbzuordnung trifft genau eine Zeile, und die Werte, die sie nicht trifft, bekommen eine Rückfallfarbe Ihrer Wahl.
Welche Rückfallfarbe soll ich nehmen?
Eine, die sonst nirgends im Bild vorkommt. Zustandswörter wachsen, und eine Rückfallfarbe, die einem echten Zustand gleicht, lässt einen nicht vorgesehenen Wert wie einen vorgesehenen aussehen.
Kann derselbe Parameter mehrere Bindings steuern?
Ja, und hier sollte er es. Leuchte und Wartungssymbol lesen beide das Zustandswort — genau das macht es unmöglich, dass sie unterschiedlicher Meinung darüber sind, was die Maschine tut.
Müssen die Zeilen in einer bestimmten Reihenfolge stehen?
Nein. Jede Zeile ist ein Gleichheitstest gegen ihren eigenen Wert, anders als bei einer booleschen Kette trägt die Reihenfolge also keine Bedeutung. Halten Sie sie numerisch sortiert — für den nächsten Leser, nicht für die Laufzeit.
Dieses Beispiel im Editor öffnen.svghmi herunterladen

Verwandte Tutorials

Maschinenzustände aus einem SPS-Zustandswort anzeigen — WinCC Unified & WinCC V8+ | DynSVG