Vorteile der automatischen Programmierung in der Steuerungsentwicklung
Die Vorteile der automatischen Programmierung In der Steuerungsentwicklung ist die Programmierung ein kritischer Schritt, der oft viel Zeit und...
Programmierung, wie wir sie bislang kennen, ist ein manueller Prozess.
Um ein System, beispielsweise eine Maschine, steuern zu können, wird ein Programm benötigt. Dafür beschreibt der Programmierer den gewünschten logischen Ablauf in einem Prozess. Dieser umfasst allerdings nur die gewünschten Zustände der Maschine. Um sicherzustellen, dass ein Fehler im Prozess auch als solcher erkannt wird, müsste der Programmierer alle übrigen möglichen Zustände der Maschine als Fehler programmieren. Und hier liegt das Problem: Die Anzahl möglicher Zustände eines Systems ist oft so groß, dass die Beschreibung aller Fehler unmöglich wäre. Selmo hat dieses Problem erkannt – und gelöst. Wie wir das gemacht haben, erklären wir Ihnen in diesem Blogbeitrag.
Jeder von uns kennt und nutzt digitale Systeme, beispielsweise Computer und Smartphones. Aber auch Maschinen, Anlagen und Automaten sind Systeme. Sie alle vereint, dass sie ausschließlich Nullen und Einsen verarbeiten.
Null und Eins sind die beiden Zustände eines Bits. Ein Bit entspricht der kleinsten Information und ist in jedem System vorhanden. Weil jedes System natürlich nicht nur aus einem Bit, sondern vielen Bits besteht, ergibt sich schnell eine sehr große Anzahl möglicher Bit-Kombinationen, auch Bitmuster genannt. Die Summe aller Zustände errechnet sich aus der Formel 2 hoch Anzahl der Bits und wird als Zustandsraum bezeichnet. So beschreibt ein Bitmuster aus 16 Bits beispielsweise bereits 65.536 Zustände. Diese Problematik der schnell wachsenden Anzahl möglicher Zustände wird auch als "state explosion problem" bezeichnet.
Mithilfe der unterschiedlichen Bit-Konstellationen ist ein System in der Lage mit seiner Außenwelt zu kommunizieren. Das System kann dabei zu jedem Zeitpunkt ein beliebiges Bitmuster ausgeben. Solche Systeme in einer Echtzeitumgebung zu programmieren, stellt eine große Herausforderung dar.
Damit ein System einem definierten Ablauf folgen kann, braucht es Eingangssignale und Ausgangssignale. Dazu werden Ausgänge geschaltet und es wird ein Feedback als Eingang erwartet. Es kann aber auch eine Aktion am System ausgeführt werden, beispielsweise durch das Drücken einer Taste, woraufhin ein Eingangssignal erkannt wird.
Alle Signale werden im Steuerungsprogramm des Systems in einer bestimmten Reihenfolge logisch verarbeitet: In Echtzeit werden zuerst die Eingangssignale eingelesen, verarbeitet und anschließend die Ausgangssignale ausgegeben. Durch die Ausgabe wirkt das Steuerungsprogramm aktiv auf das System ein und erwartet die richtige Antwort über die Eingangssignale.
Damit dieser logische Ablauf in der gewünschten Art und Weise stattfindet, definiert der Programmierer dafür einen Automaten. Genau genommen einen deterministischen endlichen Automaten (DEA). Dieser besteht aus einer Grundstellung und einer anschließenden Folge von Zuständen oder auch Schritten. Damit das System funktioniert, muss es diesen Ablauf immer wieder exakt wiederholen. Grundlage für jede Programmierung bildet daher dieser logische Ablauf.
Seit mehr als 40 Jahren werden Steuerungen mithilfe von DEA auf die gleiche Art und Weise programmiert. Der Ablauf wird, ausgehend von der Grundstellung, in einer Schrittkette definiert. Dabei gibt es zwei wichtige Elemente: den Zustand und den Zustandsübergang, auch Transition genannt.
Bei jedem Schritt wird zunächst der Ausgang geschaltet und mit dem Feedback des Eingangs wird ein Zustandswechsel herbeigeführt. Alle Zustände, die der Programmierer so als ganzzahlige Werte definiert, stellen im Programm ein fiktives Abbild der Maschine dar. Es handelt sich also um eine Zahl, die zwar einen Zustand ausdrückt, aber nichts mit dem realen System zu tun hat. Der Zustand des Systems wird dadurch nicht abgebildet. Das heißt: Die Programmierung bildet einen Ist-Zustand ab und das System selbst befindet sich ebenfalls in einem Ist-Zustand. Beide Ist-Zustände sind nicht vergleichbar. Vom Programm kann demnach nicht auf den Zustand der Maschine geschlossen werden.
Um im Falle einer Fehlermeldung herausfinden zu können, wo genau der Fehler liegt, müsste der Programmierer nun aus der hohen Anzahl möglicher Zustände im System jeden einzelnen Fehlerzustand programmieren. Jedes Bitmuster aus dem System müsste als unerlaubt oder erlaubt beschrieben werden. Das ist aufgrund der hohen Zahl an Fehlermöglichkeiten jedoch in den allermeisten Fällen unmöglich. Deshalb gilt in einem herkömmlichen Programm, dass ein System nicht zwangsweise fehlerfrei sein muss, wenn keine Fehlermeldung angezeigt wird. Es steht lediglich fest, dass der Fehler nicht programmiert wurde. Die manuelle Programmierung mit herkömmlichen Methoden ist limitiert und unvollständig, weil viele Zustände in einem System undefiniert bleiben. Aber genau diese undefinierten Fehlerzustände sind es, die zu Fehlverhalten und oft auch zu ungeplanten Stillständen führen. Die Selmo Solution denkt Programmierung neu, um Systeme endlich vollständig kontrollierbar zu machen und so schlussendlich eine höhere Maschinen- und Anlagenverfügbarkeit zu ermöglichen.
Wie in der herkömmlichen Programmierung auch, wird der gewünschte Ablauf zunächst in einem DEA formuliert. Im Gegensatz zur manuellen Programmierung verwendet Selmo zur Zustandsbeschreibung jedoch keine fiktiven Werte in der Steuerung. Selmo definiert das gesamte Bitmuster als erlaubten Zustand. Das heißt: Nur die Bitmuster sind erlaubt, die im Prozessmodell formuliert werden. So entsteht ein Soll-Zustand der Bitmuster, die im System möglich sind. Alle anderen Bitmuster sind nicht erlaubt und somit automatisch als Fehler definiert. Mit Selmo findet also kein Ist-Ist-Vergleich mehr statt, sondern ein Soll-Ist-Vergleich.
Wenn in einem mit Selmo programmierten System keine Fehlermeldung angezeigt wird, ist sichergestellt, dass auch wirklich kein Fehler im System vorliegt. Der Zustand in der Programmierung und der Zustand im System sind zu jedem Zeitpunkt abgestimmt. Kommt es zu einer Abweichung, wird diese als bitgenaue Fehlermeldung angezeigt. Fehler können so schnell und einfach beseitigt werden. Durch diese Logik kann eine Synchronisierung zwischen Programm und System stattfinden. Zum einen kann der Bediener die Abweichung des Systems vom aktuellen Zustand im Programm erkennen und diese mit einfachen Bedienschritten beseitigen. Zum anderen kann er den richtigen Zustand in der Programmierung suchen, der zum aktuellen Zustand im System passt.
Unvollständig kontrollierbare Systeme als Ergebnis der herkömmlichen Programmierung führen zu unkalkulierbaren Risiken. Mit der Selmo Solution werden Programme für Systeme endlich vollständig beherrschbar. Weil Selmo jede Abweichung sofort erkennt, verhindert es lange ungeplante Stillstände durch unvollständige Programmierung sowie Fehlverhalten, das zu teurer Fehlproduktion führt.
Vergleichen Sie Selmo am besten mit dem ABS in Ihrem Auto: Beim normalen Fahren wird es zwar nicht gebraucht, aber beim Bremsen kann es über Leben und Tod entscheiden. Genauso ist es mit Selmo. Wenn die Maschine läuft, bemerken Sie Selmo nicht. Wird aber eine Abweichung erkannt, wirkt es sofort und verhindert teure Ausfälle. Deshalb gehört Selmo in jede Maschine – damit im entscheidenden Moment weiter kontrolliert und sicher produziert werden kann.
Die Vorteile der automatischen Programmierung In der Steuerungsentwicklung ist die Programmierung ein kritischer Schritt, der oft viel Zeit und...
Kostenfalle Maschinenstillstände: Warum ein neuer Blick auf die PLC-Programmierung notwendig ist.
Die Optimierung von Maschinen und Produktionsprozessen ist ein entscheidender Faktor für den Erfolg eines Unternehmens innerhalb der gesamten...