Speicherprogrammierbare Steuerungen sind so aufgebaut, dass sie verschiedene Signaltypen (diskret, analog) eingeben, Steueralgorithmen auf diese Signale anwenden und dann Signale als Reaktion auf Steuerprozesse ausgeben. Eine SPS allein ist im Allgemeinen nicht in der Lage, diese Signalwerte und Algorithmusvariablen menschlichen Bedienern anzuzeigen.
Ein Techniker oder Ingenieur mit Zugang zu einem PC und der erforderlichen Software zum Bearbeiten des SPS-Programms kann sich mit der SPS verbinden und den Programmstatus „online“ anzeigen, um Signalwerte und Variablenzustände zu überwachen. Dies ist jedoch keine praktische Möglichkeit für Betriebspersonal, regelmäßig zu überwachen, was die SPS tut.
Damit Bediener Parameter im Speicher der SPS überwachen und anpassen können, benötigen wir eine andere Art von Schnittstelle, die das Lesen und Schreiben bestimmter Variablen ermöglicht, ohne die Integrität der SPS zu beeinträchtigen, indem zu viele Informationen preisgegeben werden oder unqualifizierte Personen das Programm selbst ändern können.
Eine Lösung für dieses Problem ist ein dediziertes Computerdisplay, das so programmiert ist, dass es selektiven Zugriff auf bestimmte Variablen im Speicher der SPS bietet. Dies wird allgemein als Mensch-Maschine-Schnittstelle oder HMI bezeichnet.
HMIs können die Form von Allzweckcomputern („Personalcomputern“) haben, auf denen spezielle Grafiksoftware zur Schnittstelle mit einer SPS läuft, oder von Spezialcomputern, die in Blechfronten eingebaut werden und keine andere Aufgabe als die Schnittstelle zwischen Bediener und SPS erfüllen.
Dieses erste Foto zeigt ein Beispiel eines gewöhnlichen Personalcomputers (PC) mit darauf laufender HMI-Software:
Das hier gezeigte Display dient zufällig zur Überwachung eines Beispiels, eines Vakuum-Schwingadsorptionsprozesses (VSA) zur Reinigung von Sauerstoff, der aus der Umgebungsluft gewonnen wird. Irgendwo überwacht und steuert eine SPS (oder eine Gruppe von SPS) diesen VSA-Prozess, wobei die HMI-Software als „Fenster“ in den Speicher der SPS fungiert, um relevante Variablen in einer für das Betriebspersonal leicht verständlichen Form anzuzeigen. Der PC, auf dem diese HMI-Software läuft, wird über digitale Netzwerkkabel wie Ethernet mit den SPS(s) verbunden.
Hinweis: Ein älterer Begriff für ein Bedienfeld war „Mensch-Maschine-Schnittstelle“ oder „MMI“.
Das nächste Foto zeigt ein Beispiel eines speziellen HMI-Panels, das speziell für den Einsatz in industriellen Betriebsumgebungen entwickelt und gebaut wurde:
Diese HMI-Panels sind eigentlich nichts anderes als „gehärtete“ PCs, die robust und in einem kompakten Format gebaut wurden, um ihren Einsatz in industriellen Umgebungen zu erleichtern.
Die meisten industriellen HMI-Panels sind mit berührungsempfindlichen Bildschirmen ausgestattet, sodass Bediener mit ihren Fingerspitzen auf angezeigte Objekte drücken können, um Bildschirme zu wechseln, Details zu Teilen des Prozesses anzuzeigen usw.
Techniker und/oder Ingenieure programmieren HMI-Displays, um Daten über ein digitales Netzwerk an eine oder mehrere SPS(s) zu lesen und zu schreiben.
Auf dem Bildschirm eines HMI angeordnete grafische Objekte imitieren häufig reale Anzeigen und Schalter, um dem Betriebspersonal eine vertraute Schnittstelle zu bieten.
Ein „Druckknopf“-Objekt auf der Vorderseite eines HMI-Panels wäre beispielsweise so konfiguriert, dass es ein Datenbit in die SPS schreibt, ähnlich wie ein realer Schalter ein Datenbit in das Eingangsregister der SPS schreibt.
Moderne HMI-Panels und -Software sind fast ausschließlich tagbasiert, wobei jedes grafische Objekt auf dem Bildschirm mit mindestens einem Datentagnamen verknüpft ist, der wiederum über eine im HMI vorhandene Tagnamendatenbankdatei mit Datenpunkten (Bits oder Wörtern) in der SPS verknüpft ist.
Grafische Objekte auf dem HMI-Bildschirm akzeptieren (lesen) entweder Daten von der SPS, um dem Bediener nützliche Informationen zu präsentieren, senden (schreiben) Daten aus der Bedienereingabe an die SPS oder beides.
Die Aufgabe beim Programmieren einer HMI-Einheit besteht darin, eine Tagnamendatenbank aufzubauen und dann Bildschirme zu zeichnen, um den Prozess so detailliert darzustellen, wie es die Bediener zum Ausführen benötigen.
Hier sehen Sie einen Beispiel-Screenshot einer Tag-Namen-Datenbanktabelle für ein modernes HMI:
Die Tag-Namen-Datenbank wird mit derselben Software aufgerufen und bearbeitet, mit der auch grafische Bilder im HMI erstellt werden.
In diesem Beispiel können Sie mehrere Tag-Namen sehen (z. B. START-DRUCKTASTE, MOTORLAUF-TIMER, FEHLERMELDUNG, MOTORDREHZAHL), die mit Datenpunkten im Speicher der SPS verknüpft sind (in diesem Beispiel werden die SPS-Adressen im Modbus-Registerformat angezeigt).
In vielen Fällen kann der Tag-Namen-Editor entsprechende SPS-Speicherpunkte auf dieselbe Weise anzeigen, wie sie in der SPS-Programmiereditor-Software erscheinen (z. B. I:5/10, SM0.4, C11 usw.).
Ein wichtiges Detail, das in dieser Anzeige der Tag-Namen-Datenbank zu beachten ist, sind die Lese-/Schreibattribute jedes Tags.
Beachten Sie insbesondere, dass vier der angezeigten Tags schreibgeschützt sind. Dies bedeutet, dass die HMI nur die Berechtigung hat, die Werte dieser vier Tags aus dem Speicher der SPS zu lesen, nicht aber, diese Werte zu schreiben (zu ändern).
Der Grund dafür ist bei diesen vier Tags, dass sich diese Tags auf SPS-Eingangsdatenpunkte beziehen. Das Tag START PUSHBUTTON bezieht sich beispielsweise auf einen diskreten Eingang in der SPS, der durch einen echten Druckknopfschalter aktiviert wird.
Daher erhält dieser Datenpunkt seinen Zustand durch die Aktivierung des diskreten Eingangsanschlusses. Wenn der HMI Schreibberechtigung für diesen Datenpunkt erteilt würde, würde es wahrscheinlich zu einem Konflikt kommen.
Nehmen wir an, der Eingangsanschluss der SPS wäre aktiviert (wodurch das Bit START PUSHBUTTON auf den Zustand „1“ gesetzt würde) und die HMI würde gleichzeitig versuchen, den Zustand „0“ in dasselbe Tag zu schreiben.
Eine dieser beiden Datenquellen würde gewinnen und die andere würde verlieren, was möglicherweise zu unerwartetem Verhalten des SPS-Programms führen würde.
Aus diesem Grund sollten Datenpunkte in der SPS, die mit realen Eingängen verknüpft sind, in der Datenbank der HMI immer auf „Nur-Lesen“-Berechtigung beschränkt sein, damit die HMI unmöglich einen Konflikt erzeugen kann.
Das Potenzial für Datenkonflikte besteht jedoch auch für einige der anderen Punkte in der Datenbank.
Ein gutes Beispiel hierfür ist das MOTOR RUN-Bit, das Bit im SPS-Programm, das dem realen Motor mitteilt, dass er laufen soll.
Vermutlich erhält dieses Bit seine Daten von einer Spule im Kontaktplanprogramm der SPS. Da es jedoch auch in der HMI-Datenbank mit Lese-/Schreibberechtigung erscheint, besteht die Möglichkeit, dass die HMI dasselbe Bit im Speicher der SPS überschreibt (d. h. es kommt zu Konflikten).
Angenommen, jemand hat ein umschaltbares „Druckknopf“-Bildschirmobjekt in der mit diesem Tag verknüpften HMI programmiert: Durch Drücken dieses virtuellen „Knopfs“ auf dem HMI-Bildschirm würde versucht, das Bit (1) zu setzen, und durch erneutes Drücken würde versucht, das Bit (0) zurückzusetzen.
Wenn dasselbe Bit jedoch von einer Spule im Programm der SPS beschrieben wird, besteht die eindeutige Möglichkeit, dass das „Druckknopf“-Objekt der HMI und die Spule der SPS in Konflikt geraten, da das eine versucht, dem Bit eine „0“ zuzuweisen, während das andere versucht, dem Bit eine „1“ zuzuweisen.
Diese Situation ist dem Problem sehr ähnlich, das auftritt, wenn mehrere Spulen in einem Kontaktplanprogramm an dasselbe Bit adressiert sind.
Die allgemeine Regel hier ist, niemals mehr als ein Element an einen Datenpunkt schreiben zu lassen. Meiner Erfahrung nach ist dies einer der häufigsten Fehler, den Studenten machen, wenn sie zum ersten Mal lernen, HMIs zu programmieren: Sie versuchen, sowohl die HMI als auch die SPS an dieselben Speicherorte schreiben zu lassen, was seltsame Ergebnisse bringt.
Eine der Lektionen, die Sie beim Programmieren großer, komplexer Systeme lernen werden, ist, dass es sehr nützlich ist, alle erforderlichen Tag-Namen zu definieren, bevor Sie mit dem Layouten von Grafiken in einer HMI beginnen.
Dasselbe gilt für die SPS-Programmierung: Das gesamte Projekt läuft schneller und weniger verwirrend ab, wenn Sie sich die Zeit nehmen, alle erforderlichen E/A-Punkte (und Tag-Namen, wenn die SPS-Programmiersoftware Tag-Namen in der Programmierumgebung unterstützt) zu definieren, bevor Sie mit der Erstellung von Code beginnen, der angibt, wie diese Ein- und Ausgänge miteinander in Beziehung stehen.
Es ist auch wichtig, eine konsistente Konvention für Tag-Namen beizubehalten. Beispielsweise möchten Sie vielleicht den Tag-Namen jedes fest verdrahteten I/O-Punkts entweder mit INPUT oder OUTPUT beginnen lassen (z. B. INPUT PRESSURE SWITCH HIGH, OUTPUT SHAKER MOTOR RUN usw.).
Der Grund für die Einhaltung einer strengen Namenskonvention ist zunächst nicht offensichtlich, da der Sinn von Tag-Namen darin besteht, dem Programmierer die Freiheit zu geben, Datenpunkten im System beliebige Namen zuzuweisen.
Sie werden jedoch feststellen, dass die meisten Tag-Namen-Editoren die Tags in alphabetischer Reihenfolge auflisten, was bedeutet, dass eine auf diese Weise organisierte Namenskonvention alle Eingabe-Tags zusammenhängend (benachbart) in der Liste, alle Ausgabe-Tags zusammenhängend in der Liste usw. präsentiert.
Eine andere Möglichkeit, die alphabetische Auflistung von Tag-Namen zu Ihrem Vorteil zu nutzen, besteht darin, jeden Tag-Namen mit einem Wort zu beginnen, das seine Verbindung zu einem wichtigen Gerät beschreibt.
Nehmen wir beispielsweise dieses Beispiel eines Prozesses mit mehreren Datenpunkten, die in einem SPS-Steuerungssystem definiert und in einer HMI angezeigt werden:
Wenn wir alle diese Tags in alphabetischer Reihenfolge auflisten, ist die Verbindung sofort offensichtlich:
- Austauscher-Abflusspumpe
- Austauscher-Abflusstemperatur Ausgang
- Austauscher-Vorwärmpumpe
- Austauscher-Vorwärmtemperatur Eingang
- Austauscher-Vorwärmventil
- Reaktorbetttemperatur
- Reaktor-Zufluss
- Reaktor-Zuflusstemperatur
- Reaktormantelventil
Wie Sie dieser Tag-Namensliste entnehmen können, befinden sich alle direkt mit dem Wärmetauscher verbundenen Tags in einer zusammenhängenden Gruppe und alle direkt mit dem Reaktor verbundenen Tags in der nächsten zusammenhängenden Gruppe.
Auf diese Weise dient eine sorgfältige Benennung der Tags dazu, sie hierarchisch zu gruppieren, sodass der Programmierer sie jederzeit leicht in der Tag-Namensdatenbank finden kann.
Sie werden feststellen, dass alle hier angezeigten Tag-Namen keine Leerzeichen zwischen den Wörtern aufweisen (z. B. sollte ein Tag-Name anstelle von „Reaktorbetttemperatur“ Bindestriche oder Unterstriche als Leerzeichen verwenden: „Reaktorbetttemperatur“), da Leerzeichen in Computerprogrammiersprachen im Allgemeinen als Trennzeichen (Trennzeichen zwischen verschiedenen Variablennamen) angesehen werden.
Wie bei speicherprogrammierbaren Steuerungen selbst haben die Fähigkeiten von HMIs stetig zugenommen, während ihr Preis gesunken ist.
Moderne HMIs unterstützen grafische Trendanalyse, Datenarchivierung, erweiterte Alarmfunktionen und sogar Webserverfunktionen, sodass andere Computer problemlos über Weitverkehrsnetze auf bestimmte Daten zugreifen können.
Die Fähigkeit von HMIs, Daten über lange Zeiträume aufzuzeichnen, entlastet die SPS von dieser Aufgabe, die sehr speicherintensiv ist.
Auf diese Weise „liefert“ die SPS der HMI lediglich aktuelle Daten, und die HMI kann mithilfe ihrer wesentlich größeren Speicherreserven eine Aufzeichnung aktueller und vergangener Daten führen.
Wenn das HMI auf einer PC-Plattform basiert (z. B. Rockwell RSView, Wonderware, FIX/Intellution-Software), kann es sogar mit einer Festplatte ausgestattet sein, auf der enorme Mengen historischer Daten gespeichert werden können.
Einige moderne HMI-Panels verfügen sogar über eine integrierte SPS, die Steuerung und Überwachung im selben Gerät ermöglicht.
Solche Panels bieten Klemmenleisten-Anschlusspunkte für diskrete und sogar analoge E/A, sodass alle Steuerungs- und Schnittstellenfunktionen in einer einzigen Panel-Montageeinheit untergebracht werden können.