In diesem Abschnitt sollen die einfachen Schaltregeln und Details der Druchführung von Aktionen erlern werden. In der Lektion 7 wird dann der etwas kompliziertere Fall, nämlich bei der Synchronisation von Abläufen behandelt.
- Markierung der vorangehenden Schritte:
Es ist klar, dass eine Transition nur dann schalten kann, wenn der unmittelbar vorangehende Schritt aktiv ist. In der Ablaufsprache ist es möglich, dass mehrere Schritte einer Transition vorangehen. (siehe Beispiel der Synchronisation). Die Schaltregel verlangt dann, dass alle vorangehenden Schritte markiert sind, damit eine Transition schalten kann. Eine Transition wird als 'enabled' bezeichnet, falls alle unmittelbar vorangehenden Schritte aktiv sind. Andernfalls wird die Transition als 'disabled' bezeichnet.
- Wahrheitswert der Schaltbedingung:
Die Transition kann nur schalten, wenn die Schaltbedingung wahr ist. Eine Schaltung erfolgt sofort.
Ein weiterer Aspekt betreffend den Aufruf von Aktionen ergibt sich aus der Art, wie die Ablauflogik im Automat berechnet wird. Für die Ablaufsprache bestehen zwei Varianten. Es kann festgelegt werden, dass Aktionen nur dann durchgeführt werden, wenn ein Schritt 'stabil' markiert ist. Stabil markiert heisst, dass im Berechnungszyklus keine Transition mehr schalten kann. Die zwei Varianten für Berechnung des Automaten sind in der folgenden Tabelle dargestellt.
Einmaliges Schalten der möglichen Transitionen |
Schalten bis stabil (Search for stability) |
|
|
Tabelle 1: Varianten für die Berechnung des Automaten
Abbildung Ausf¨ührung von Aktionen
Für das Motorenbeispiel vom vorangehenden Kapitel sollen die praktischen Konsequenzen der ‚search for stability’ gezeigt werden. Um den Motor sauber einzuschalten, sollte die Störbedingung ‚Temperatur hoch’ vorangehend geprüft werden. Ansonsten riskiert man, dass der Motor kurz eingestellt wird. Wird der Ablauf nun im ‚Search for Stability’-Mode gefahren, so werden die Aktionen im Schritt ‚Motor Ein’ gar nicht durchgeführt, wenn eine Weiterschaltbedingung, in diesem Fall das ‚Temperatur hoch’ erfüllt ist. Man erspart sich also viele Vorüberprüfungen, wenn der Ablauf mit ‚Search for Stability’ berechnet wird. Andererseits muss man auch sehr vorsichtig sein, dass man alle Signale, die mit Transitionsbedingungen verknüpft sind, sauber zurücksetzt. Ansonsten riskiert man, dass ein Ablauf ungewollt weiterschaltet, im Extremfall sogar in einen unendlichen Loop kommt. Die SPS ist dann blockiert und nicht alle Systeme besitzen für diesen Fall eine Fehlerbehandlung.
In der IEC-61131-3 ist nicht klar festgelegt worden, ob Aktionen nur dann durchgeführt werden, wenn eine stabile Markierung erreicht wurde. (Search for Stability). Die Lösungen in SPS-Programmierumgebungen sind daher nicht einheitlich.