LinksRechts_AX¶
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.
- Start: Aus dem
START-Zustand heraus entscheidet der Baustein basierend auf den EingängenEINundDI_Links, ob zuerst in den Linkslauf oder Rechtslauf geschaltet wird. - Aktivierung (Lauf): Solange das Signal
EIN.D1(Daten) zusammen mit einem EventEIN.E1alsTRUEanliegt, geht der Baustein in einen aktiven Zustand (RechtslaufoderLinkslauf). Dabei wird der entsprechende Ausgangsadapter (RechtsoderLinks) aufTRUEgesetzt. - Deaktivierung (Pause): Wird
EIN.D1zuFALSE(Ausschalten), wechselt der Baustein in den entsprechenden Pausenzustand (Rechtslauf_PauseoderLinkslauf_Pause). Die Ausgänge werden deaktiviert (FALSE). - Wechsel-Logik (Alternieren):
- Befindet sich der Baustein in
Rechtslauf_Pauseund wird wieder eingeschaltet (EIN= TRUE), wechselt er standardmäßig in den Linkslauf. - Befindet sich der Baustein in
Linkslauf_Pauseund wird wieder eingeschaltet, wechselt er standardmäßig in den Rechtslauf.
- Befindet sich der Baustein in
- Override-Logik (Erzwingen):
- Ist im Zustand
Rechtslauf_Pauseder EingangDI_Rechtsaktiv, wird der Wechsel zum Linkslauf unterbunden und erneut der Rechtslauf gestartet. - Ist im Zustand
Linkslauf_Pauseder EingangDI_Linksaktiv, wird der Wechsel zum Rechtslauf unterbunden und erneut der Linkslauf gestartet.
- Ist im Zustand
Technische Besonderheiten¶
- AX-Adapter: Der Baustein nutzt den generischen
unidirectional::AXTyp. 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 dasEO-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_AXschaltet 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_AXbeinhaltet 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.