ILOCK_BLOCK_PROTECT_AX¶
Einleitung¶
Der Funktionsblock ILOCK_BLOCK_PROTECT_AX realisiert eine priorisierte Verriegelung (Interlock) für zwei gegenläufige Richtungen (UP/DOWN) unter Berücksichtigung einer konfigurierbaren Schutz-Totzeit. Der Baustein ist als Adapter-Version ausgeführt, d. h. die Ein- und Ausgänge werden über IEC 61499-Adapter bereitgestellt. Ziel ist die sichere Steuerung von Aktoren, bei denen nur eine Richtung gleichzeitig aktiv sein darf, beispielsweise bei Hebe- oder Schwenkbewegungen. Der erste aktivierte Eingang erhält den Vorrang; ein Wechsel der Richtung erfolgt erst nach Ablauf der Schutzzeit und einer erneuten Bewertung.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Name | Typ | Mitgeführte Daten | Beschreibung |
|---|---|---|---|
UPDATE |
Event | DT_PROTECT |
Ereignis zum dynamischen Aktualisieren der Schutzzeit DT_PROTECT. |
Ereignis-Ausgänge¶
Der FB besitzt keine eigenständigen Ereignis-Ausgänge. Ereignisse werden über die als Plugs ausgeführten Adapter UP_OUT, DOWN_OUT und timeOut bereitgestellt.
| Adapter-Ausgang | Ereignis | Beschreibung |
|---|---|---|
UP_OUT |
E1 |
Wird ausgelöst, wenn der UP-Zustand aktiv ist oder der UP_STOP-Zustand erreicht wird. |
DOWN_OUT |
E1 |
Wird ausgelöst, wenn der DOWN-Zustand aktiv ist oder der DOWN_STOP-Zustand erreicht wird. |
timeOut |
TimeOut |
Wird ausgelöst, wenn die eingestellte Schutzzeit abgelaufen ist (vom Adapter selbst generiert). |
Daten-Eingänge¶
| Name | Typ | Initialwert | Beschreibung |
|---|---|---|---|
DT_PROTECT |
TIME | T#50ms |
Schutzzeit, die nach einer Deaktivierung eines Eingangs verstreicht, bevor eine erneute Bewertung der Eingänge erfolgt. |
Daten-Ausgänge¶
Der FB besitzt keine eigenständigen Daten-Ausgänge. Ausgangsdaten werden über die Adapter UP_OUT, DOWN_OUT und timeOut bereitgestellt.
| Adapter-Ausgang | Daten | Beschreibung |
|---|---|---|
UP_OUT |
D1 (BOOL) |
Signalisiert den aktiven UP-Zustand (TRUE) oder inaktiven UP-Zustand (FALSE). |
DOWN_OUT |
D1 (BOOL) |
Signalisiert den aktiven DOWN-Zustand (TRUE) oder inaktiven DOWN-Zustand (FALSE). |
timeOut |
DT (TIME) |
Wird vom Algorithmus auf den Wert von DT_PROTECT gesetzt und bestimmt die Timer-Dauer. |
Adapter¶
| Typ | Name | Richtung | Beschreibung |
|---|---|---|---|
adapter::types::unidirectional::AX |
UP_IN |
Socket | Eingang für die UP-Richtung. Das Event E1 (steigende Flanke) aktiviert die Verarbeitung; D1 (BOOL) gibt den gewünschten Zustand vor. |
adapter::types::unidirectional::AX |
DOWN_IN |
Socket | Eingang für die DOWN-Richtung. Analog zu UP_IN. |
adapter::types::unidirectional::AX |
UP_OUT |
Plug | Ausgang für die UP-Richtung. Stellt Ereignis und Daten für die angeschlossene Logik bereit. |
adapter::types::unidirectional::AX |
DOWN_OUT |
Plug | Ausgang für die DOWN-Richtung. Stellt Ereignis und Daten bereit. |
iec61499::events::ATimeOut |
timeOut |
Plug | Adapter für einen Timer. Der FB setzt die Zeitdauer (DT) und startet den Timer über das Ereignis START. Das Ereignis TimeOut signalisiert den Ablauf. |
Funktionsweise¶
Der Baustein arbeitet als zustandsgesteuerte Verriegelung mit zwei Prioritätseingängen. Die grundsätzliche Funktionsweise:
-
Initialzustand (
STOP): Keine Richtung ist aktiv. Ein eingehendes Ereignis anUP_IN.E1oderDOWN_IN.E1wird nur dann verarbeitet, wenn das zugehörige DatensignalD1den WertTRUEhat. Der erste Eingang, der diese Bedingung erfüllt, wechselt in den entsprechenden Zustand (UPoderDOWN). Sind beide gleichzeitigTRUE, wird keiner akzeptiert – der Baustein bleibt imSTOP. -
Aktiver Zustand (
UPoderDOWN): Der Ausgangsadapter (UP_OUToderDOWN_OUT) signalisiert die aktive Richtung überD1 = TRUEund löst das EreignisE1aus. Die Schutzzeit wird im Timer gespeichert, jedoch aktiv noch nicht gestartet. -
Deaktivierung und Schutzzeit: Wenn der aktive Eingang sein Datensignal auf
FALSE(oder das Ereignis ohneTRUE) zurücksetzt, wechselt der FB in den entsprechenden Stop-Zustand (UP_STOPoderDOWN_STOP). Dabei wird der Ausgang aufFALSEgesetzt und der Timer über das EreignistimeOut.STARTgestartet. Nach Ablauf der eingestellten Schutzzeit (timeOut.TimeOut) wechselt der FB in den Evaluierungszustand (EVAL). -
Evaluierung (
EVAL): Im Evaluierungszustand werden die aktuellen Datensignale beider Eingänge ausgewertet: - Nur
UP_IN.D1 = TRUE→ Wechsel zuUP - Nur
DOWN_IN.D1 = TRUE→ Wechsel zuDOWN -
Keines oder beide
TRUE→ Wechsel zurück zuSTOP -
Dynamische Aktualisierung: Das Ereignis
UPDATEerlaubt es, während des Betriebs die SchutzzeitDT_PROTECTzu ändern. Die aktualisierte Zeit wird bei nächster Verwendung des Timers wirksam (der Timer wird nur in den Stop-Zuständen gestartet). Das Ereignis kann in jedem Zustand empfangen werden, ohne den aktuellen Steuerungszustand zu verlassen.
Technische Besonderheiten¶
- Adapter-Schnittstelle: Der gesamte Datenaustausch erfolgt über Adapter. Dadurch wird eine saubere Trennung zwischen Steuerungslogik und Peripherie erreicht, die Wiederverwendbarkeit erhöht und die Kapselung verbessert.
- Dynamische Schutzzeit: Über das
UPDATE-Ereignis kann die Totzeit zur Laufzeit verändert werden, ohne den Baustein neu zu starten. Dies ist besonders in Applikationen mit variablen Schaltzeiten (z. B. temperaturabhängige Verzögerungen) nützlich. - Totzeit-Prinzip: Der FB geht nach Deaktivierung eines Eingangs nicht sofort in den anderen Zustand, sondern erzwingt eine minimale Verzögerung (
DT_PROTECT). Dies verhindert Prellen oder ungewollte schnelle Umschaltungen. - Priorisierung nach erstem Aktiv: Die Logik reagiert nur auf das erste
TRUE-Signal eines Eingangsereignisses. Gleichzeitige Aktivierung beider Eingänge führt zu keiner Richtungsänderung. - Selbsthaltung ohne externes Ereignis: Solange ein aktiver Eingang sein
D1aufTRUEhält, bleibt der zugehörige Ausgangszustand erhalten, auch ohne weitere Ereignisse.
Zustandsübersicht¶
| Zustand | Beschreibung | Aktivitäten |
|---|---|---|
STOP |
Initial- und Ruhezustand. Keine Richtung aktiv. | – |
UP |
UP-Richtung aktiv. | Algorithmus UP: setzt UP_OUT.D1 = TRUE, DOWN_OUT.D1 = FALSE, überträgt DT_PROTECT an timeOut.DT und sendet UP_OUT.E1. |
DOWN |
DOWN-Richtung aktiv. | Algorithmus DOWN: setzt DOWN_OUT.D1 = TRUE, UP_OUT.D1 = FALSE, überträgt DT_PROTECT an timeOut.DT und sendet DOWN_OUT.E1. |
UP_STOP |
Wartezeit nach Deaktivierung von UP. | Algorithmus STOP: setzt beide Ausgänge auf FALSE, überträgt DT_PROTECT an timeOut.DT und startet den Timer mit timeOut.START. |
DOWN_STOP |
Wartezeit nach Deaktivierung von DOWN. | Algorithmus STOP (analog zu UP_STOP). |
EVAL |
Evaluierung nach Ablauf der Schutzzeit. | Kein Algorithmus; die Transitionen entscheiden über den nächsten Zustand basierend auf den aktuellen Eingangsdaten. |
Transitionen (vereinfacht):
STOP → UPwennUP_IN.E1undUP_IN.D1 = TRUESTOP → DOWNwennDOWN_IN.E1undDOWN_IN.D1 = TRUEUP → UP_STOPwennUP_IN.E1undUP_IN.D1 = FALSEDOWN → DOWN_STOPwennDOWN_IN.E1undDOWN_IN.D1 = FALSEUP_STOP → EVALwenntimeOut.TimeOutDOWN_STOP → EVALwenntimeOut.TimeOutEVAL → UPwennUP_IN.D1 = TRUEundDOWN_IN.D1 = FALSEEVAL → DOWNwennDOWN_IN.D1 = TRUEundUP_IN.D1 = FALSEEVAL → STOPwenn beideFALSEoder beideTRUE- In jedem Zustand kann das Ereignis
UPDATEzum selben Zustand zurückführen (dient nur der Aktualisierung vonDT_PROTECT).
Anwendungsszenarien¶
- Hebebühnensteuerung: Verriegelung von Heben und Senken; nach Loslassen des Hebebefehls wird eine Totzeit von z. B. 100 ms eingehalten, bevor ein Senken möglich ist.
- Ventilsteuerung: Umschaltung zwischen zwei Medien (z. B. Heizen/Kühlen) mit einer Schutzzeit, um Druckstöße zu vermeiden.
- Roboterachsen: Vermeidung von Kollisionen durch gleichzeitige Ansteuerung gegenläufiger Bewegungen.
- Türsteuerung: Öffnen/Schließen mit Verzögerung beim Richtungswechsel zum Schutz von Endanschlägen.
Vergleich mit ähnlichen Bausteinen¶
| Baustein / Eigenschaft | ILOCK_BLOCK_PROTECT_AX |
Einfacher Interlock (ohne Totzeit) | Interlock mit fester Totzeit |
|---|---|---|---|
| Totzeit | Dynamisch konfigurierbar über UPDATE |
Keine | Fest (meist im Baustein verdrahtet) |
| Schnittstelle | Adapter (AX), lose Kopplung | Meist direkte Ein-/Ausgänge | Direkte Ein-/Ausgänge |
| Priorität | Erster aktiver Eingang | Oft festgelegte Priorität | Unterscheidet sich |
| Evaluierung nach Totzeit | Ja, mit klarer Zustandsmaschine | Nein | Teilweise |
| Flexibilität | Hoch (Laufzeitänderung) | Gering | Mittel |
Der ILOCK_BLOCK_PROTECT_AX bietet eine besonders flexible Lösung durch die Adapter-Schnittstelle und die dynamisch änderbare Totzeit. Er ist ideal für modulare, wiederverwendbare Steuerungsprojekte nach IEC 61499.
Fazit¶
Der Funktionsblock ILOCK_BLOCK_PROTECT_AX ist ein robuster, zustandsgesteuerter Verriegelungsbaustein für zwei gegenläufige Richtungen. Die Kombination aus Priorisierung des ersten aktiven Eingangs, einer konfigurierbaren Schutz-Totzeit und der vollständigen Adapter-Schnittstelle macht ihn zu einer hervorragenden Wahl für sichere und flexible Steuerungsaufgaben in der Automatisierungstechnik. Die dynamische Anpassung der Totzeit über das UPDATE-Ereignis erhöht die Anpassungsfähigkeit an wechselnde Prozessbedingungen. Durch die klare Zustandsmaschine und die Berücksichtigung der IEC 61499-Standards ist der Baustein sowohl in einfachen als auch in komplexen verteilten Systemen einsetzbar.