AS_MUX_4¶
Einleitung¶
Der Funktionsblock AS_MUX_4 ist ein generischer Multiplexer für unidirektionale AS-Datenströme. Er ermöglicht die Auswahl eines von vier AS-Eingängen (IN1…IN4) und stellt den gewählten Datenstrom an den AS-Ausgang (OUT) bereit. Die Auswahl erfolgt über einen Index K, der beim Eintreffen des Ereignisses REQ ausgewertet wird. Der Baustein wird in der 4diac-IDE eingesetzt und ist als generischer FB mit dem Klassennamen GEN_AS_MUX hinterlegt.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
| REQ | Event | Set Index K |
Der Eingang REQ löst die Multiplex-Operation aus. Bei jedem Ereignis wird der aktuelle Wert von K gelesen und der entsprechende AS-Eingang an den Ausgang durchgeschaltet.
Ereignis-Ausgänge¶
| Name | Typ | Kommentar |
|---|---|---|
| CNF | Event | Confirmation of Set Index K |
Nach erfolgreicher Umschaltung wird das Ereignis CNF ausgegeben. Es bestätigt, dass die durch den Index K bestimmte Verbindung hergestellt ist.
Daten-Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
| K | UINT | Index (0…3) |
Der Dateneingang K definiert den auszuwählenden Pfad. Gültige Werte sind 0 bis 3 für die Eingänge IN1 bis IN4.
Daten-Ausgänge¶
Keine expliziten Datenausgänge, da der Ausgang als AS-Adapter (Plug) realisiert ist.
Adapter¶
| Name | Typ | Richtung | Kommentar |
|---|---|---|---|
| OUT | adapter::types::unidirectional::AS | Plug | AS-Ausgang: liefert den Datenstrom des ausgewählten Eingangs |
| IN1 | adapter::types::unidirectional::AS | Socket | AS-Eingang 1 (Index 0) |
| IN2 | adapter::types::unidirectional::AS | Socket | AS-Eingang 2 (Index 1) |
| IN3 | adapter::types::unidirectional::AS | Socket | AS-Eingang 3 (Index 2) |
| IN4 | adapter::types::unidirectional::AS | Socket | AS-Eingang 4 (Index 3) |
Die Adapter sind vom Typ adapter::types::unidirectional::AS. Der Plug OUT wird mit dem ausgewählten Socket verbunden; alle nicht ausgewählten Sockets bleiben inaktiv.
Funktionsweise¶
Der Funktionsblock arbeitet ereignisgesteuert:
- Ein Ereignis am Eingang REQ triggert die Verarbeitung.
- Der aktuelle Wert des Dateneingangs K wird gelesen.
- Abhängig von K (0, 1, 2 oder 3) wird der entsprechende AS-Eingang (IN1, IN2, IN3 oder IN4) auf den AS-Ausgang OUT geschaltet.
- Nach der Umschaltung wird das Bestätigungsereignis CNF ausgegeben.
Der Baustein besitzt keine interne Datenhaltung oder Zustandsmaschine; die Umschaltung erfolgt bei jedem REQ-Ereignis neu.
Technische Besonderheiten¶
- Generische Implementierung: Der FB ist als generischer Baustein (
GEN_AS_MUX) deklariert, was eine einfache Wiederverwendung und Anpassung in verschiedenen Projekten ermöglicht. - Adapterbasierte Kommunikation: Der gesamte Datenfluss erfolgt über AS-Adapter, nicht über einzelne Datenports. Dies vereinfacht die Verbindung mit anderen AS-kompatiblen Bausteinen.
- Eingeschränkter Indexbereich: Der Index K muss im Wertebereich 0…3 liegen; Werte außerhalb dieses Bereichs führen zu undefiniertem Verhalten. Eine Plausibilitätsprüfung obliegt der Anwendung.
- Kein interner Zustand: Der FB hat keinen ECC (Execution Control Chart) – die Verarbeitung erfolgt direkt und ohne Verzögerung bei jedem REQ.
Zustandsübersicht¶
Der Funktionsblock besitzt keine explizite Zustandsmaschine. Es gibt nur einen impliziten Zustand „Bereit“, in dem er auf ein REQ-Ereignis wartet. Nach Eintreffen von REQ wird die Umschaltung ausgeführt und sofort CNF gesendet. Ein Fehlerzustand ist nicht definiert.
Anwendungsszenarien¶
- Sensordatenauswahl: Auswahl eines von vier analogen oder digitalen Sensorwerten, die über AS‑Adapter bereitgestellt werden.
- Parametrierung: Umschaltung zwischen verschiedenen Parametersätzen in einer Steuerungslogik.
- Signalrouting: Selektives Durchschalten von AS-Datenströmen in Abhängigkeit eines Steuerindex.
- Test- und Simulationsumgebungen: Gezielte Auswahl von Testsignalen für Prüfzwecke.
Vergleich mit ähnlichen Bausteinen¶
- AS_MUX_2: Ein Multiplexer mit nur zwei Eingängen. Der vorliegende FB erweitert die Flexibilität auf vier Eingänge.
- Standard-MUX-FBs: Oft mit einzelnen Datenports (z. B. INT, BOOL) realisiert. Der hier gezeigte FB hingegen arbeitet ausschließlich mit AS-Adaptern, was eine konsistente Datenübertragung in AS-basierten Systemen ermöglicht.
- Dekomposition in mehrere AS_MUX_2: Prinzipiell möglich, aber weniger effizient und übersichtlich.
Fazit¶
Der Funktionsblock AS_MUX_4 bietet eine elegante und flexible Möglichkeit, aus vier AS-Datenquellen eine auszuwählen. Durch die adapterbasierte Schnittstelle fügt er sich nahtlos in die 4diac-IDE und in AS-Kommunikationsstrukturen ein. Seine einfache, ereignisgesteuerte Funktionsweise macht ihn zu einem Grundbaustein für Selektionsaufgaben in der Automatisierungstechnik. Die generische Auslegung erlaubt eine problemlose Integration in unterschiedlichste Projekte.