LinksRechts_AX

LinksRechts_AX

LinksRechts_AX_ecc

Hinweis: Ein Bild des Funktionsbausteins ist hier nicht verfügbar.


Einleitung

Der Funktionsbaustein LinksRechts_AX (aus dem Paket logiBUS::utils::sequence::verteiler) dient der Steuerung eines alternierenden Prozesses mit zwei Richtungen (Rechtslauf und Linkslauf). Er wurde konzipiert, um zwischen zwei Ausgängen hin- und herzuschalten, wobei Pausenzustände berücksichtigt werden.

Besonders hervorzuheben ist die Möglichkeit, den automatischen Wechsel durch digitale Eingänge (DI_Rechts, DI_Links) zu unterbinden, um einen Lauf in nur einer Richtung zu erzwingen. Der Baustein nutzt hierfür die AX Adapter-Schnittstelle.

Schnittstellenstruktur

Der Baustein verwendet primär Adapter für die Kommunikation, stellt jedoch auch einen Status-String als direkten Ausgang zur Verfügung.

Ereignis-Eingänge

Es sind keine direkten Ereignis-Eingänge vorhanden. Die Steuerung erfolgt über die Ereignisse der Adapter-Sockets.

Ereignis-Ausgänge

Name

Typ

Beschreibung

EO

Event

Ereignis, das ausgelöst wird, wenn sich der interne Zustand (STATE) ändert.

Daten-Eingänge

Es sind keine direkten Daten-Eingänge vorhanden. Die Daten werden über die Adapter-Sockets eingelesen.

Daten-Ausgänge

Name

Typ

Beschreibung

STATE

STRING

Aktueller Zustand des Bausteins (z.B. „Rechtslauf“, „Linkslauf_Pause“).

Adapter

Sockets (Eingangs-Schnittstellen):

Name

Typ

Kommentar

EIN

adapter::types::unidirectional::AX

Einschalten: Das Hauptsignal zum Starten und Stoppen der Bewegung.

DI_Rechts

adapter::types::unidirectional::AX

Nur Rechtslauf: Wenn aktiv, wird ein Wechsel auf Linkslauf verhindert und der Rechtslauf erzwungen.

DI_Links

adapter::types::unidirectional::AX

Nur Linkslauf: Wenn aktiv, wird ein Wechsel auf Rechtslauf verhindert und der Linkslauf erzwungen.

Plugs (Ausgangs-Schnittstellen):

Name

Typ

Kommentar

Rechts

adapter::types::unidirectional::AX

Rechtslauf: Ausgangssignal für die Rechtsbewegung.

Links

adapter::types::unidirectional::AX

Linkslauf: Ausgangssignal für die Linksbewegung.

Funktionsweise

Der LinksRechts_AX Baustein implementiert eine Zustandsmaschine, die grundsätzlich zwischen einer Rechts- und einer Linksbewegung alterniert, getrennt durch Pausenphasen.

  1. Start: Aus dem START-Zustand heraus entscheidet der Baustein basierend auf den Eingängen EIN und DI_Links, ob zuerst in den Linkslauf oder Rechtslauf geschaltet wird.

  2. Aktivierung (Lauf): Solange das Signal EIN.D1 (Daten) zusammen mit einem Event EIN.E1 als TRUE anliegt, geht der Baustein in einen aktiven Zustand (Rechtslauf oder Linkslauf). Dabei wird der entsprechende Ausgangsadapter (Rechts oder Links) auf TRUE gesetzt.

  3. Deaktivierung (Pause): Wird EIN.D1 zu FALSE (Ausschalten), wechselt der Baustein in den entsprechenden Pausenzustand (Rechtslauf_Pause oder Linkslauf_Pause). Die Ausgänge werden deaktiviert (FALSE).

  4. Wechsel-Logik (Alternieren):

    • Befindet sich der Baustein in Rechtslauf_Pause und wird wieder eingeschaltet (EIN = TRUE), wechselt er standardmäßig in den Linkslauf.

    • Befindet sich der Baustein in Linkslauf_Pause und wird wieder eingeschaltet, wechselt er standardmäßig in den Rechtslauf.

  5. Override-Logik (Erzwingen):

    • Ist im Zustand Rechtslauf_Pause der Eingang DI_Rechts aktiv, wird der Wechsel zum Linkslauf unterbunden und erneut der Rechtslauf gestartet.

    • Ist im Zustand Linkslauf_Pause der Eingang DI_Links aktiv, wird der Wechsel zum Rechtslauf unterbunden und erneut der Linkslauf gestartet.

Technische Besonderheiten

  • AX-Adapter: Der Baustein nutzt den generischen unidirectional::AX Typ. Dieser kombiniert typischerweise ein boolesches Datensignal (D1) mit einem Ereignis (E1).

  • Priorisierung: Laut der internen Beschreibung ist „Nur Rechtslauf vorrangig vor Nur Linkslauf“, was sich in den Startbedingungen widerspiegelt, jedoch wird die Sequenzlogik primär durch den vorherigen Zustand (History) bestimmt.

  • Status-Reporting: Jede Zustandsänderung aktualisiert die STATE-Variable und feuert das EO-Event. Die Zustandsnamen werden über eine externe Enumeration (STATES::...) bezogen.

Zustandsübersicht

Die ECC (Execution Control Chart) definiert folgende Zustände:

Zustand Name

Aktion

Beschreibung

START

-

Initialzustand. Wartet auf das EIN-Signal.

Rechtslauf

Set_Rechts_TRUE, Set_Links_FALSE, Status update

Aktiviert den Adapter Rechts, deaktiviert Links.

Rechtslauf_Pause

Set_Rechts_FALSE, Set_Links_FALSE, Status update

Beide Ausgänge aus. System merkt sich, dass es zuletzt rechts war.

Linkslauf

Set_Rechts_FALSE, Set_Links_TRUE, Status update

Aktiviert den Adapter Links, deaktiviert Rechts.

Linkslauf_Pause

Set_Rechts_FALSE, Set_Links_FALSE, Status update

Beide Ausgänge aus. System merkt sich, dass es zuletzt links war.

Anwendungsszenarien

  • Pendelbetrieb: Automatische Steuerung von Mechanismen, die sich hin- und herbewegen müssen (z.B. ein Scheibenwischer-Modus oder ein Reinigungskopf), gesteuert durch einen einzigen Taster (EIN).

  • Beregnungsanlagen: Sequentielle Ansteuerung von zwei Sektoren (Sektor Rechts -> Pause -> Sektor Links -> Pause), wobei bei Bedarf ein Sektor mehrfach hintereinander aktiviert werden kann (mittels DI_Rechts/DI_Links).

  • Reversiermotor: Steuerung eines Motors, der bei jedem Neustart die Drehrichtung ändern soll, sofern nicht anders vorgegeben.

⚖️ Vergleich mit ähnlichen Bausteinen

  • Einfaches Toggle (FlipFlop): Ein Standard-Toggle schaltet nur einen Ausgang Ein/Aus. LinksRechts_AX schaltet zwischen zwei Ausgängen um.

  • RS-Glied: Ein RS-Glied speichert nur einen Zustand basierend auf Set/Reset. Dieser Baustein beinhaltet eine Sequenzlogik (History-Memory), da er weiß, welcher Zustand vor der Pause aktiv war.

  • E_SELECT: Ähnelt einem Selektor, aber LinksRechts_AX beinhaltet die zeitliche Komponente des „Pausierens“ und des automatischen Wechsels beim nächsten Startsignal.

Fazit

Der Funktionsbaustein LinksRechts_AX ist eine spezialisierte Komponente für Ablaufsteuerungen, die einen alternierenden Betrieb zwischen zwei Ausgängen erfordern. Durch die Integration der Adapter-Technologie (AX) und die Möglichkeit, die Sequenz durch digitale Eingänge (DI) zu beeinflussen, bietet er eine flexible Lösung für sequentielle Steuerungsaufgaben mit Richtungspriorisierung.